Examples of RelationalSchema


Examples of nexj.core.meta.persistence.sql.RelationalSchema

      outline.setName("idx01");
      outline.addColumn("id", true);
      outline.addColumn("value", true);
      m_doubleColTableStep.addIndexOutline(outline);

      RelationalSchema schema = upgrade(m_doubleColTableStep, null, null);
      Table table = schema.getTable(m_doubleColTableStep.getName());

      assertNotNull(table);
      assertEquals(1, table.getIndexCount());
      assertEquals(2, table.getIndex(0).getIndexColumnCount());
      table.setType(Table.MANAGED); // comes in as Table.EXTERNAL from DB

      Index aspect = new Index("aspect", Index.ASPECT, null);

      aspect.addIndexColumn(new IndexColumn(table.getColumn("value"), true));
      table.getIndex(0).addAspect(aspect);
      schema.addIndex(aspect);

      RemoveIndexAspectStep step = new RemoveIndexAspectStep();

      step.setAspectName("aspect");
      step.addPointcutPattern(table.getIndex(0).getName(), true);
      schema = upgrade(step, schema, null);
      table = schema.getTable(m_doubleColTableStep.getName());
      assertNotNull(table);
      assertEquals(1, table.getIndexCount());

      Index index = table.getIndex(0);
View Full Code Here

Examples of nexj.core.meta.persistence.sql.RelationalSchema

      assertEquals("id", index.getIndexColumn(0).getColumn().getName());
   }

   public void testRemoveTableAspectStep()
   {
      RelationalSchema schema = upgrade(m_doubleColTableStep, null, null);
      Table table = schema.getTable(m_doubleColTableStep.getName());

      assertNotNull(table);
      assertEquals(2, table.getColumnCount());
      table.setType(Table.MANAGED); // comes in as Table.EXTERNAL from DB

      Table aspect = new Table(schema);

      aspect.setName(m_manager.getFullTableName(null, "aspect"));
      aspect.setType(Table.ASPECT);
      aspect.addColumn(new Column("value", aspect));
      table.addAspect(aspect);
      schema.addTable(aspect);

      RemoveTableAspectStep step = new RemoveTableAspectStep();

      step.setAspectName(aspect.getName());
      step.addPointcutPattern(table.getName(), true);
      schema = upgrade(step, schema, null);
      table = schema.getTable(m_doubleColTableStep.getName());
      assertNotNull(table);
      assertEquals(1, table.getColumnCount());
      assertEquals("id", table.getColumn(0).getName());
   }
View Full Code Here

Examples of nexj.core.meta.persistence.sql.RelationalSchema

      assertEquals("id", table.getColumn(0).getName());
   }

   public void testRenameColumnStep() throws SQLException
   {
      RelationalSchema schema = upgrade(m_singleColTableStep, null, null);
      Table table = schema.getTable(m_singleColTableStep.getName());

      assertNotNull(table);
      assertEquals(1, table.getColumnCount());
      assertEquals("id", table.getColumn(0).getName());
      table.setType(Table.MANAGED); // comes in as Table.EXTERNAL from DB

      SQLStatement statement = new SQLStatement();
      SQLScript script = new SQLScript();
      ExecStep populate = new ExecStep();

      statement.setSQL("insert into " + table.getQuotedName() + " values (1)");
      script.addStatement(statement);
      populate.getScriptHolder().addScript(script);
      upgrade(populate, schema, null);

      RenameColumnStep step = new RenameColumnStep();

      step.setTableName(table.getName());
      step.setOldName("id");
      step.setNewName("id1");
      schema = upgrade(step, schema, null);
      table = schema.getTable(m_singleColTableStep.getName());
      assertNotNull(table);
      assertEquals(1, table.getColumnCount());
      assertEquals("id1", table.getColumn(0).getName());

      // ensure no data loss
View Full Code Here

Examples of nexj.core.meta.persistence.sql.RelationalSchema

      }
   }

   public void testRenameIndexStep()
   {
      RelationalSchema schema = upgrade(m_singleIdxColTableStep, null, null);
      Table table = schema.getTable(m_singleIdxColTableStep.getName());

      assertNotNull(table);
      assertEquals(1, table.getIndexCount());
      assertEquals(m_manager.generateIndexName(table.getTableName(), "ind0", null),
                   table.getIndex(0).getName());
      table.setType(Table.MANAGED); // comes in as Table.EXTERNAL from DB

      RenameIndexStep step = new RenameIndexStep();

      step.setOldName(table.getIndex(0).getName());
      step.setNewName("ind1");
      schema = upgrade(step, schema, null);
      table = schema.getTable(m_singleIdxColTableStep.getName());
      assertNotNull(table);
      assertEquals(1, table.getIndexCount());
      assertEquals(m_manager.generateIndexName(table.getTableName(), "ind1", null),
                   table.getIndex(0).getName());
   }
View Full Code Here

Examples of nexj.core.meta.persistence.sql.RelationalSchema

                   table.getIndex(0).getName());
   }

   public void testRenameTableStep() throws SQLException
   {
      RelationalSchema schema = upgrade(m_singlePKColTableStep, null, null);
      Table table = schema.getTable(m_singlePKColTableStep.getName());

      assertNotNull(table);
      table.setType(Table.MANAGED); // comes in as Table.EXTERNAL from DB

      SQLStatement statement = new SQLStatement();
      SQLScript script = new SQLScript();
      ExecStep populate = new ExecStep();

      statement.setSQL("insert into " + table.getQuotedName() + " values (1)");
      script.addStatement(statement);
      populate.getScriptHolder().addScript(script);
      upgrade(populate, schema, null);

      RenameTableStep step = new RenameTableStep();
      step.setOldName(table.getName());
      step.setNewName("B");
      schema = upgrade(step, schema, null);

      assertNull(schema.findTable(m_singlePKColTableStep.getName()));

      table = schema.getTable(schema.getPrefix() + "b");

      assertNotNull(table);
      assertEquals(1, table.getColumnCount());

      Column column = table.getColumn(0);
View Full Code Here

Examples of nexj.core.meta.persistence.sql.RelationalSchema

      }
   }

   public void testSchemaVersion()
   {
      RelationalSchema schema = (RelationalSchema)m_database.getSchema();
      Metadata metadata = schema.getMetadata();
      StringWriter writer = new StringWriter();
      Table origVersionTable = schema.getVersionTable(); // note original
      SQLAppender origAppender = m_manager.getSQLAppender();

      try
      {
         schema.setVersionTable(schema.getTable("Version"));
         m_manager.setSQLAppender(m_manager.new SQLWriterAppender(writer));
         m_manager.createSchema(schema);
      }
      finally
      {
         m_manager.setSQLAppender(origAppender);
         schema.setVersionTable(origVersionTable); // reset so testUpgrade() will not fail
      }

      StringBuffer buf =
         new StringBuffer(".Version(namespace, version, step, upgradable, test, loaded) values (");
View Full Code Here

Examples of nexj.core.meta.persistence.sql.RelationalSchema

      AssertUtil.assertContained(buf, writer.toString());
   }

   public void testSetupDefaultProperties()
   {
      RelationalSchema schema = (RelationalSchema)m_database.getSchema();
      PropertyMap defaults = m_manager.getDefaultDatabaseProperties(schema, null);
      PropertyMap custom = m_manager.getDefaultDatabaseProperties(schema, defaults); // reinterpret

      assertEquals(defaults.getValueCount(), custom.getValueCount());
View Full Code Here

Examples of nexj.core.meta.persistence.sql.RelationalSchema

   }

   public void testSetupReader() throws IOException
   {
      StringWriter output = new StringWriter();
      RelationalSchema schema = new RelationalSchema();
      TransferObject valueMap = new TransferObject();
      TransferObject defaultsMap = new TransferObject();
      Table tmpTable;

      tmpTable = new Table(schema);
      tmpTable.setName("table1"); // required for addTable() to work
      tmpTable.setLongspaceName("longspace1");
      schema.addTable(tmpTable);
      tmpTable = new Table(schema);
      tmpTable.setName("table2"); // required for addTable() to work
      tmpTable.setLongspaceName("longspace2");
      schema.addTable(tmpTable);
      tmpTable = new Table(schema);
      tmpTable.setName("table3"); // required for addTable() to work
      tmpTable.setLongspaceName("longspace3");
      schema.addTable(tmpTable);
      valueMap.setValue("valid-key", "valid-value");
      valueMap.setValue("missing-key", null);
      valueMap.setValue("default-key", null);
      defaultsMap.setValue("default-key", "default-value");
      valueMap.setValue("tablespace", null);
      valueMap.setValue("indexspace", "indexspace-value");
      valueMap.setValue("longspace", null);

      // existing value
      IOUtil.copy(output,
                  new SQLSchemaManager.DatabaseTemplateSubstReader(
                     new StringReader("[${valid-key}]"),
                     schema,
                     valueMap,
                     defaultsMap,
                     '/'));
      assertEquals("[valid-value]", output.toString());

      // missing value
      output.getBuffer().setLength(0);
      try
      {
         IOUtil.copy(output,
                     new SQLSchemaManager.DatabaseTemplateSubstReader(
                        new StringReader("[${missing-key}]"),
                        schema,
                        valueMap,
                        defaultsMap,
                        '/'));
         fail(); // exception expected
      }
      catch (LookupException e)
      {
         assertEquals("err.meta.persistence.sql.undefined", e.getErrorCode());
      }

      // missing value with default
      output.getBuffer().setLength(0);
      IOUtil.copy(output,
                  new SQLSchemaManager.DatabaseTemplateSubstReader(
                     new StringReader("[${default-key}]"),
                     schema,
                     valueMap,
                     defaultsMap,
                     '/'));
      assertEquals("[default-value]", output.toString());

      // unknown value
      output.getBuffer().setLength(0);
      try
      {
         IOUtil.copy(output,
                     new SQLSchemaManager.DatabaseTemplateSubstReader(
                        new StringReader("[${unknown-key}]"),
                        schema,
                        valueMap,
                        defaultsMap,
                        '/'));
         fail(); // exception expected
      }
      catch (LookupException e)
      {
         assertEquals("err.meta.persistence.sql.variable", e.getErrorCode());
      }

      // foreach with no tables, no default tablespace
      output.getBuffer().setLength(0);
      IOUtil.copy(output,
                  new SQLSchemaManager.DatabaseTemplateSubstReader(
                     new StringReader("[${for-each:tablespace:${tablespace}}]"),
                     schema,
                     valueMap,
                     defaultsMap,
                     '/'));
      assertEquals("[]", output.toString());

      // foreach with no tables, only default tablespace
      output.getBuffer().setLength(0);
      IOUtil.copy(output,
                  new SQLSchemaManager.DatabaseTemplateSubstReader(
                     new StringReader("[${for-each:indexspace:${indexspace}}]"),
                     schema,
                     valueMap,
                     defaultsMap,
                     '/'));
      assertEquals("[indexspace-value]", output.toString());

      // foreach with several tables
      output.getBuffer().setLength(0);
      IOUtil.copy(output,
                  new SQLSchemaManager.DatabaseTemplateSubstReader(
                     new StringReader("[${for-each:longspace:${longspace}}]"),
                     schema,
                     valueMap,
                     defaultsMap,
                     '/'));
      assertEquals("[longspace1longspace2longspace3]", output.toString());

      // foreach not collection
      output.getBuffer().setLength(0);
      IOUtil.copy(output,
                  new SQLSchemaManager.DatabaseTemplateSubstReader(
                     new StringReader("[${for-each:non-collection:default-value}]"),
                     schema,
                     valueMap,
                     defaultsMap,
                     '/'));
      assertEquals("[non-collection:default-value]", output.toString());

      // set schema.getMetadata().isTestEnvironment() return value for test
      XMLMetadata metadata = new XMLMetadata(null, null, null, null, null);
      DataSourceType dsType = new DataSourceType(null);
      DataSource ds = new DataSource(null) {};

      dsType.setMetadata(metadata);
      ds.setType(dsType);
      schema.setDataSource(ds);

      // iftest enabled
      metadata.setTestEnvironment(true);
      output.getBuffer().setLength(0);
      IOUtil.copy(output,
View Full Code Here

Examples of nexj.core.meta.persistence.sql.RelationalSchema

   {
      Upgrade upgrade = new Upgrade(null);
      RelationalSchemaUpgrade version = new RelationalSchemaUpgrade("test");
      XMLMetadata metadata = new XMLMetadata(null, null, null, null, null);
      RelationalDatabase ds = new RelationalDatabase(null);
      RelationalSchema schema = new RelationalSchema();
      CreateTableStep step = new CreateTableStep(); // only step that can populate ViewScript
      Table table = new Table(schema);
      SQLScript finalScript = new SQLScript();
      SQLScript upgradeScript = new SQLScript();
      SQLStatement finalStmt = new SQLStatement();
      SQLStatement upgradeStmt = new SQLStatement();

      upgradeStmt.addAdapter("*", m_database.getSchema().getDataSource().getType());
      finalStmt.addAdapter("*", m_database.getSchema().getDataSource().getType());
      upgradeStmt.setSQL("upgrade view SQL");
      finalStmt.setSQL("final view SQL");
      upgradeScript.addStatement(upgradeStmt);
      finalScript.addStatement(finalStmt);
      table.setName("testTable");
      table.setType(Table.VIEW);
      step.setName(table.getName());
      step.setType(table.getType());
      step.setViewScript(upgradeScript);
      schema.addTable(table);
      schema.setDataSource(ds);
      ds.setAdapter(m_database.getSchema().getDataSource().getAdapter());
      ds.setSchema(schema);
      ds.setType(new DataSourceType(null));
      ds.getType().setMetadata(metadata);
      version.setDataSource(ds);
View Full Code Here

Examples of nexj.core.meta.persistence.sql.RelationalSchema

   {
      StringWriter buf = new StringWriter();
      DataSourceAdapter invalid = new DataSourceAdapter("InvalidAdapter");
      DataSourceAdapter valid = new DataSourceAdapter("ValidAdapter");
      RelationalDatabase ds = new RelationalDatabase("DataSource");
      RelationalSchema schema = new RelationalSchema();
      final Upgrade upgrade = new Upgrade(null);
      XMLMetadata metadata = new XMLMetadata(null, null, null, null, null)
      {
         public Upgrade getUpgrade(String sName) { return upgrade; }
      };
      SQLSchemaManager manager = m_adapter.createSchemaManager();
      RelationalSchemaUpgrade upgradeVersion;

      ds.setAdapter(valid);
      ds.setComponent(new Component("Component"));
      ds.setSchema(schema);
      ds.setType(new DataSourceType("DataSourceType"));
      ds.getType().setMetadata(metadata);
      ds.getType().addAdapter(ds.getAdapter());
      ds.getType().addAdapter(invalid);
      ((RelationalDatabaseFragment)ds.getDefaultFragment()).setDatabase("Database");
      metadata.addDataSource(ds);
      manager.setSQLAppender(manager.new SQLWriterAppender(buf));
      schema.setVersionTable(new Table(schema));
      schema.getVersionTable().setName("VersionTable");
      schema.addTable(schema.getVersionTable());
      upgrade.setMetadata(metadata);

      // setup for first upgrade version
      ExecStep execStep = new ExecStep(); // step lacking match for current adapter
      SQLScript stepScript = new SQLScript();
      SQLStatement stepStmt = new SQLStatement();

      stepStmt.addAdapter(invalid.getName(), ds.getType());
      stepStmt.setSQL("SQLStatement SQL");
      stepScript.addStatement(stepStmt);
      execStep.getScriptHolder().addScript(stepScript);

      // single incompatible step
      metadata.setVersion("1-step");
      upgradeVersion = new RelationalSchemaUpgrade(metadata.getVersion());
      upgradeVersion.addStep(execStep);
      upgradeVersion.setDataSource(ds);
      upgrade.addVersion(upgradeVersion);

      try
      {
         upgrade.validate(null, null); // must fail since an incompatible step "1-step" exists
         fail(); // exception expected
      }
      catch (MetadataException e)
      {
         assertTrue(e.getCause() instanceof MetadataException);
         e = (MetadataException)e.getCause();
         assertTrue(e.getCause() instanceof MetadataException);
         e = (MetadataException)e.getCause();
         assertTrue(e.getCause() instanceof MetadataException);
         e = (MetadataException)e.getCause();
         assertEquals("err.meta.sql.statementAdapter", e.getErrorCode());
      }

      try
      {
         manager.upgrade(schema, null); //must fail since no compatible versions found to start with
         fail(); // exception expected
      }
      catch (MetadataException e)
      {
         assertTrue(e.getCause() instanceof MetadataException);
         e = (MetadataException)e.getCause();
         assertTrue(e.getCause() instanceof MetadataException);
         e = (MetadataException)e.getCause();
         assertTrue(e.getCause() instanceof MetadataException);
         e = (MetadataException)e.getCause();
         assertEquals("err.meta.sql.statementAdapter", e.getErrorCode());
      }

      try
      {
         manager.upgrade(schema, "1-step"); // must fail since step "1-step" is incompatible
         fail(); // exception expected
      }
      catch (MetadataException e)
      {
         assertTrue(e.getCause() instanceof MetadataException);
         e = (MetadataException)e.getCause();
         assertTrue(e.getCause() instanceof MetadataException);
         e = (MetadataException)e.getCause();
         assertTrue(e.getCause() instanceof MetadataException);
         e = (MetadataException)e.getCause();
         assertEquals("err.meta.sql.statementAdapter", e.getErrorCode());
      }

      // setup for second upgrade version
      SupportAdapterStep adapterStep = new SupportAdapterStep();
      CreateTableStep createTableStep = new CreateTableStep(); // step has match for current adapter
      Table table = new Table(schema);
      SQLScript tableScript = new SQLScript();
      SQLStatement tableStmtInvalid = new SQLStatement();
      SQLStatement tableStmtValid = new SQLStatement();

      tableStmtInvalid.addAdapter(invalid.getName(), ds.getType());
      tableStmtInvalid.setSQL("SQLStatement Table SQL Invalid");
      tableStmtValid.addAdapter(ds.getAdapter().getName(), ds.getType());
      tableStmtValid.setSQL("SQLStatement Table SQL Valid");
      tableScript.addStatement(tableStmtValid);
      tableScript.addStatement(tableStmtInvalid);
      tableScript.addStatement(stepStmt);
      table.setName("Table");
      table.setType(Table.VIEW);
      table.setViewScript(tableScript);
      schema.addTable(table);
      createTableStep.setName(table.getName());
      createTableStep.setType(table.getType());
      createTableStep.setViewScript(tableScript);
      adapterStep.setAdapter(invalid);
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.