Repository: cayenne Updated Branches: refs/heads/master 67bf710b7 -> 660dd4b28
http://git-wip-us.apache.org/repos/asf/cayenne/blob/660dd4b2/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DefaultDbImportActionTest.java ---------------------------------------------------------------------- diff --git a/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DefaultDbImportActionTest.java b/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DefaultDbImportActionTest.java deleted file mode 100644 index 42ff6e9..0000000 --- a/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DefaultDbImportActionTest.java +++ /dev/null @@ -1,356 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -package org.apache.cayenne.tools.dbimport; - -import org.apache.cayenne.CayenneRuntimeException; -import org.apache.cayenne.configuration.DataNodeDescriptor; -import org.apache.cayenne.configuration.server.DataSourceFactory; -import org.apache.cayenne.configuration.server.DbAdapterFactory; -import org.apache.cayenne.dba.DbAdapter; -import org.apache.cayenne.dbsync.DbSyncModule; -import org.apache.cayenne.dbsync.filter.NamePatternMatcher; -import org.apache.cayenne.dbsync.merge.builders.DataMapBuilder; -import org.apache.cayenne.dbsync.merge.factory.DefaultMergerTokenFactory; -import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactoryProvider; -import org.apache.cayenne.dbsync.merge.token.MergerToken; -import org.apache.cayenne.dbsync.merge.token.db.CreateTableToDb; -import org.apache.cayenne.dbsync.merge.token.model.AddColumnToModel; -import org.apache.cayenne.dbsync.merge.token.model.AddRelationshipToModel; -import org.apache.cayenne.dbsync.merge.token.model.CreateTableToModel; -import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator; -import org.apache.cayenne.dbsync.naming.NoStemStemmer; -import org.apache.cayenne.dbsync.naming.ObjectNameGenerator; -import org.apache.cayenne.dbsync.reverse.dbload.DbLoader; -import org.apache.cayenne.dbsync.reverse.dbload.DbLoaderConfiguration; -import org.apache.cayenne.dbsync.reverse.dbload.DbLoaderDelegate; -import org.apache.cayenne.dbsync.reverse.dbload.DefaultModelMergeDelegate; -import org.apache.cayenne.di.DIBootstrap; -import org.apache.cayenne.di.Injector; -import org.apache.cayenne.map.DataMap; -import org.apache.cayenne.map.DbEntity; -import org.apache.cayenne.map.MapLoader; -import org.apache.cayenne.project.FileProjectSaver; -import org.apache.cayenne.project.Project; -import org.apache.cayenne.resource.URLResource; -import org.apache.cayenne.tools.configuration.ToolsModule; -import org.apache.cayenne.util.Util; -import org.apache.commons.logging.Log; -import org.junit.Before; -import org.junit.Test; -import org.xml.sax.InputSource; - -import javax.sql.DataSource; -import java.io.File; -import java.net.URL; -import java.sql.Connection; -import java.sql.SQLException; -import java.util.LinkedList; -import java.util.List; - -import static java.util.Arrays.asList; -import static org.apache.cayenne.dbsync.merge.builders.ObjectMother.dbAttr; -import static org.apache.cayenne.dbsync.merge.builders.ObjectMother.dbEntity; -import static org.apache.cayenne.dbsync.merge.builders.ObjectMother.objAttr; -import static org.apache.cayenne.dbsync.merge.builders.ObjectMother.objEntity; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Matchers.any; -import static org.mockito.Mockito.doNothing; -import static org.mockito.Mockito.doThrow; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.stub; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -public class DefaultDbImportActionTest { - - public static final File FILE_STUB = new File("") { - @Override - public boolean exists() { - return true; - } - - @Override - public boolean canRead() { - return true; - } - }; - - private DbAdapter mockAdapter; - private Connection mockConnection; - private DbLoaderDelegate mockDelegate; - private ObjectNameGenerator mockNameGenerator; - - @Before - public void before() { - mockAdapter = mock(DbAdapter.class); - mockConnection = mock(Connection.class); - mockDelegate = mock(DbLoaderDelegate.class); - mockNameGenerator = mock(ObjectNameGenerator.class); - } - - @Test - public void testNewDataMapImport() throws Exception { - - DbImportConfiguration config = mock(DbImportConfiguration.class); - when(config.createMergeDelegate()).thenReturn(new DefaultModelMergeDelegate()); - when(config.getDbLoaderConfig()).thenReturn(new DbLoaderConfiguration()); - when(config.getTargetDataMap()).thenReturn(new File("xyz.map.xml")); - when(config.createNameGenerator()).thenReturn(new DefaultObjectNameGenerator(NoStemStemmer.getInstance())); - when(config.createMeaningfulPKFilter()).thenReturn(NamePatternMatcher.EXCLUDE_ALL); - - DbLoader dbLoader = new DbLoader(mockAdapter, mockConnection, config.getDbLoaderConfig(), mockDelegate, mockNameGenerator) { - @Override - public DataMap load() throws SQLException { - DataMap map = new DataMap(); - new DataMapBuilder(map).withDbEntities(2).build(); - return map; - } - }; - - final boolean[] haveWeTriedToSave = {false}; - DefaultDbImportAction action = buildDbImportAction(new FileProjectSaver() { - @Override - public void save(Project project) { - haveWeTriedToSave[0] = true; - - // Validation phase - assertTrue(project.getRootNode() instanceof DataMap); - } - }, null, dbLoader); - - action.execute(config); - - assertTrue("We should try to save.", haveWeTriedToSave[0]); - } - - @Test - public void testImportWithFieldChanged() throws Exception { - - DbImportConfiguration config = mock(DbImportConfiguration.class); - - when(config.getTargetDataMap()).thenReturn(FILE_STUB); - when(config.createMergeDelegate()).thenReturn(new DefaultModelMergeDelegate()); - when(config.getDbLoaderConfig()).thenReturn(new DbLoaderConfiguration()); - when(config.createNameGenerator()).thenReturn(new DefaultObjectNameGenerator(NoStemStemmer.getInstance())); - when(config.createMeaningfulPKFilter()).thenReturn(NamePatternMatcher.EXCLUDE_ALL); - - DbLoader dbLoader = new DbLoader(mockAdapter, mockConnection, config.getDbLoaderConfig(), mockDelegate, mockNameGenerator) { - @Override - public DataMap load() throws SQLException { - DataMap dataMap = new DataMap(); - new DataMapBuilder(dataMap).with( - dbEntity("ARTGROUP").attributes( - dbAttr("GROUP_ID").typeInt().primaryKey(), - dbAttr("NAME").typeVarchar(100).mandatory(), - dbAttr("NAME_01").typeVarchar(100).mandatory(), - dbAttr("PARENT_GROUP_ID").typeInt() - )).with( - objEntity("org.apache.cayenne.testdo.testmap", "ArtGroup", "ARTGROUP").attributes( - objAttr("name").type(String.class).dbPath("NAME") - )); - return dataMap; - } - }; - - final boolean[] haveWeTriedToSave = {false}; - DefaultDbImportAction action = buildDbImportAction( - new FileProjectSaver() { - @Override - public void save(Project project) { - haveWeTriedToSave[0] = true; - - // Validation phase - DataMap rootNode = (DataMap) project.getRootNode(); - assertEquals(1, rootNode.getObjEntities().size()); - assertEquals(1, rootNode.getDbEntityMap().size()); - - DbEntity entity = rootNode.getDbEntity("ARTGROUP"); - assertNotNull(entity); - assertEquals(4, entity.getAttributes().size()); - assertNotNull(entity.getAttribute("NAME_01")); - } - }, - - new MapLoader() { - @Override - public synchronized DataMap loadDataMap(InputSource src) throws CayenneRuntimeException { - return new DataMapBuilder().with( - dbEntity("ARTGROUP").attributes( - dbAttr("GROUP_ID").typeInt().primaryKey(), - dbAttr("NAME").typeVarchar(100).mandatory(), - dbAttr("PARENT_GROUP_ID").typeInt() - )).with( - objEntity("org.apache.cayenne.testdo.testmap", "ArtGroup", "ARTGROUP").attributes( - objAttr("name").type(String.class).dbPath("NAME") - )).build(); - } - }, - dbLoader - ); - - action.execute(config); - - assertTrue("We should try to save.", haveWeTriedToSave[0]); - } - - @Test - public void testImportWithoutChanges() throws Exception { - DbImportConfiguration config = mock(DbImportConfiguration.class); - when(config.getTargetDataMap()).thenReturn(FILE_STUB); - when(config.createMergeDelegate()).thenReturn(new DefaultModelMergeDelegate()); - when(config.getDbLoaderConfig()).thenReturn(new DbLoaderConfiguration()); - - DbLoader dbLoader = new DbLoader(mockAdapter, mockConnection, config.getDbLoaderConfig(), mockDelegate, mockNameGenerator) { - @Override - public DataMap load() throws SQLException { - DataMap dataMap = new DataMap(); - new DataMapBuilder(dataMap).with( - dbEntity("ARTGROUP").attributes( - dbAttr("NAME").typeVarchar(100).mandatory() - )); - return dataMap; - } - }; - - FileProjectSaver projectSaver = mock(FileProjectSaver.class); - doNothing().when(projectSaver).save(any(Project.class)); - - MapLoader mapLoader = mock(MapLoader.class); - stub(mapLoader.loadDataMap(any(InputSource.class))).toReturn(new DataMapBuilder().with( - dbEntity("ARTGROUP").attributes( - dbAttr("NAME").typeVarchar(100).mandatory() - )).build()); - - DefaultDbImportAction action = buildDbImportAction(projectSaver, mapLoader, dbLoader); - - action.execute(config); - - // no changes - we still - verify(projectSaver, never()).save(any(Project.class)); - verify(mapLoader, times(1)).loadDataMap(any(InputSource.class)); - } - - @Test - public void testImportWithDbError() throws Exception { - DbLoader dbLoader = mock(DbLoader.class); - doThrow(new SQLException()).when(dbLoader).load(); - - DbImportConfiguration params = mock(DbImportConfiguration.class); - - FileProjectSaver projectSaver = mock(FileProjectSaver.class); - doNothing().when(projectSaver).save(any(Project.class)); - - MapLoader mapLoader = mock(MapLoader.class); - when(mapLoader.loadDataMap(any(InputSource.class))).thenReturn(null); - - DefaultDbImportAction action = buildDbImportAction(projectSaver, mapLoader, dbLoader); - - try { - action.execute(params); - fail(); - } catch (SQLException e) { - // expected - } - - verify(projectSaver, never()).save(any(Project.class)); - verify(mapLoader, never()).loadDataMap(any(InputSource.class)); - } - - private DefaultDbImportAction buildDbImportAction(FileProjectSaver projectSaver, MapLoader mapLoader, final DbLoader dbLoader) - throws Exception { - - Log log = mock(Log.class); - when(log.isDebugEnabled()).thenReturn(true); - when(log.isInfoEnabled()).thenReturn(true); - - DbAdapter dbAdapter = mock(DbAdapter.class); - - DbAdapterFactory adapterFactory = mock(DbAdapterFactory.class); - when(adapterFactory.createAdapter(any(DataNodeDescriptor.class), any(DataSource.class))).thenReturn(dbAdapter); - - DataSourceFactory dataSourceFactory = mock(DataSourceFactory.class); - DataSource mock = mock(DataSource.class); - when(dataSourceFactory.getDataSource(any(DataNodeDescriptor.class))).thenReturn(mock); - - MergerTokenFactoryProvider mergerTokenFactoryProvider = mock(MergerTokenFactoryProvider.class); - when(mergerTokenFactoryProvider.get(any(DbAdapter.class))).thenReturn(new DefaultMergerTokenFactory()); - - return new DefaultDbImportAction(log, projectSaver, dataSourceFactory, adapterFactory, mapLoader, mergerTokenFactoryProvider) { - - protected DbLoader createDbLoader(DbAdapter adapter, - Connection connection, - DbImportConfiguration config) { - return dbLoader; - } - }; - } - - @Test - public void testSaveLoaded() throws Exception { - Log log = mock(Log.class); - Injector i = DIBootstrap.createInjector(new DbSyncModule(), new ToolsModule(log), new DbImportModule()); - - DefaultDbImportAction action = (DefaultDbImportAction) i.getInstance(DbImportAction.class); - - String packagePath = getClass().getPackage().getName().replace('.', '/'); - URL packageUrl = getClass().getClassLoader().getResource(packagePath); - assertNotNull(packageUrl); - URL outUrl = new URL(packageUrl, "dbimport/testSaveLoaded1.map.xml"); - - File out = new File(outUrl.toURI()); - out.delete(); - assertFalse(out.isFile()); - - DataMap map = new DataMap("testSaveLoaded1"); - map.setConfigurationSource(new URLResource(outUrl)); - - action.saveLoaded(map); - - assertTrue(out.isFile()); - - String contents = Util.stringFromFile(out); - assertTrue("Has no project version saved", contents.contains("project-version=\"")); - } - - @Test - public void testMergeTokensSorting() { - LinkedList<MergerToken> tokens = new LinkedList<MergerToken>(); - tokens.add(new AddColumnToModel(null, null)); - tokens.add(new AddRelationshipToModel(null, null)); - tokens.add(new CreateTableToDb(null)); - tokens.add(new CreateTableToModel(null)); - - assertEquals(asList("CreateTableToDb", "CreateTableToModel", "AddColumnToModel", "AddRelationshipToModel"), - toClasses(DefaultDbImportAction.sort(tokens))); - } - - private List<String> toClasses(List<MergerToken> sort) { - LinkedList<String> res = new LinkedList<String>(); - for (MergerToken mergerToken : sort) { - res.add(mergerToken.getClass().getSimpleName()); - } - return res; - } -} http://git-wip-us.apache.org/repos/asf/cayenne/blob/660dd4b2/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/ManyToManyCandidateEntityTest.java ---------------------------------------------------------------------- diff --git a/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/ManyToManyCandidateEntityTest.java b/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/ManyToManyCandidateEntityTest.java deleted file mode 100644 index 297dd14..0000000 --- a/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/ManyToManyCandidateEntityTest.java +++ /dev/null @@ -1,115 +0,0 @@ -/***************************************************************** - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - ****************************************************************/ -package org.apache.cayenne.tools.dbimport; - -import org.apache.cayenne.configuration.ConfigurationNameMapper; -import org.apache.cayenne.configuration.ConfigurationTree; -import org.apache.cayenne.configuration.DataChannelDescriptor; -import org.apache.cayenne.configuration.DataMapLoader; -import org.apache.cayenne.configuration.DefaultConfigurationNameMapper; -import org.apache.cayenne.configuration.XMLDataChannelDescriptorLoader; -import org.apache.cayenne.configuration.XMLDataMapLoader; -import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator; -import org.apache.cayenne.dbsync.naming.NoStemStemmer; -import org.apache.cayenne.di.AdhocObjectFactory; -import org.apache.cayenne.di.Binder; -import org.apache.cayenne.di.ClassLoaderManager; -import org.apache.cayenne.di.DIBootstrap; -import org.apache.cayenne.di.Injector; -import org.apache.cayenne.di.Module; -import org.apache.cayenne.di.spi.DefaultAdhocObjectFactory; -import org.apache.cayenne.di.spi.DefaultClassLoaderManager; -import org.apache.cayenne.map.DataMap; -import org.apache.cayenne.map.ObjEntity; -import org.apache.cayenne.map.Relationship; -import org.apache.cayenne.resource.URLResource; -import org.junit.Before; -import org.junit.Test; - -import java.net.URL; -import java.util.ArrayList; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertNull; - -public class ManyToManyCandidateEntityTest { - - private DataMap map; - - @Before - public void setUp() throws Exception { - Module testModule = new Module() { - - public void configure(Binder binder) { - binder.bind(ClassLoaderManager.class).to(DefaultClassLoaderManager.class); - binder.bind(AdhocObjectFactory.class).to(DefaultAdhocObjectFactory.class); - binder.bind(DataMapLoader.class).to(XMLDataMapLoader.class); - binder.bind(ConfigurationNameMapper.class).to(DefaultConfigurationNameMapper.class); - } - }; - - Injector injector = DIBootstrap.createInjector(testModule); - - // create and initialize loader instance to test - XMLDataChannelDescriptorLoader loader = new XMLDataChannelDescriptorLoader(); - injector.injectMembers(loader); - - String testConfigName = "relationship-optimisation"; - URL url = getClass().getResource("cayenne-" + testConfigName + ".xml"); - - ConfigurationTree<DataChannelDescriptor> tree = loader.load(new URLResource(url)); - - map = tree.getRootNode().getDataMap(testConfigName); - } - - @Test - public void testMatchingForManyToManyEntity() throws Exception { - ObjEntity manyToManyEntity = map.getObjEntity("Table1Table2"); - - assertNotNull(ManyToManyCandidateEntity.build(manyToManyEntity)); - } - - @Test - public void testMatchingForNotManyToManyEntity() throws Exception { - ObjEntity entity = map.getObjEntity("Table1"); - - assertNull(ManyToManyCandidateEntity.build(entity)); - } - - @Test - public void testOptimisationForManyToManyEntity() { - ObjEntity manyToManyEntity = map.getObjEntity("Table1Table2"); - - ManyToManyCandidateEntity.build(manyToManyEntity).optimizeRelationships( - new DefaultObjectNameGenerator(NoStemStemmer.getInstance())); - - ObjEntity table1Entity = map.getObjEntity("Table1"); - ObjEntity table2Entity = map.getObjEntity("Table2"); - - assertEquals(1, table1Entity.getRelationships().size()); - assertEquals(table2Entity, new ArrayList<Relationship>(table1Entity.getRelationships()).get(0) - .getTargetEntity()); - - assertEquals(1, table2Entity.getRelationships().size()); - assertEquals(table1Entity, new ArrayList<Relationship>(table2Entity.getRelationships()).get(0) - .getTargetEntity()); - } - -} http://git-wip-us.apache.org/repos/asf/cayenne/blob/660dd4b2/cayenne-tools/src/test/resources/org/apache/cayenne/tools/dbimport/cayenne-relationship-optimisation.xml ---------------------------------------------------------------------- diff --git a/cayenne-tools/src/test/resources/org/apache/cayenne/tools/dbimport/cayenne-relationship-optimisation.xml b/cayenne-tools/src/test/resources/org/apache/cayenne/tools/dbimport/cayenne-relationship-optimisation.xml deleted file mode 100644 index d4fea49..0000000 --- a/cayenne-tools/src/test/resources/org/apache/cayenne/tools/dbimport/cayenne-relationship-optimisation.xml +++ /dev/null @@ -1,4 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<domain project-version="6"> - <map name="relationship-optimisation"/> -</domain> http://git-wip-us.apache.org/repos/asf/cayenne/blob/660dd4b2/cayenne-tools/src/test/resources/org/apache/cayenne/tools/dbimport/relationship-optimisation.map.xml ---------------------------------------------------------------------- diff --git a/cayenne-tools/src/test/resources/org/apache/cayenne/tools/dbimport/relationship-optimisation.map.xml b/cayenne-tools/src/test/resources/org/apache/cayenne/tools/dbimport/relationship-optimisation.map.xml deleted file mode 100644 index e68645f..0000000 --- a/cayenne-tools/src/test/resources/org/apache/cayenne/tools/dbimport/relationship-optimisation.map.xml +++ /dev/null @@ -1,43 +0,0 @@ -<?xml version="1.0" encoding="utf-8"?> -<data-map xmlns="http://cayenne.apache.org/schema/3.0/modelMap" - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" - xsi:schemaLocation="http://cayenne.apache.org/schema/3.0/modelMap http://cayenne.apache.org/schema/3.0/modelMap.xsd" - project-version="6"> - <property name="defaultPackage" value="com.objectstyle"/> - <db-entity name="table1" catalog="many_to_many_test"> - <db-attribute name="id1" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/> - <db-attribute name="table1col" type="VARCHAR" length="45"/> - </db-entity> - <db-entity name="table1_table2" catalog="many_to_many_test"> - <db-attribute name="fk1" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/> - <db-attribute name="fk2" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/> - </db-entity> - <db-entity name="table2" catalog="many_to_many_test"> - <db-attribute name="id2" type="INTEGER" isPrimaryKey="true" isMandatory="true" length="10"/> - <db-attribute name="table2col" type="VARCHAR" length="45"/> - </db-entity> - <obj-entity name="Table1" className="com.objectstyle.Table1" dbEntityName="table1"> - <obj-attribute name="table1col" type="java.lang.String" db-attribute-path="table1col"/> - </obj-entity> - <obj-entity name="Table1Table2" className="com.objectstyle.Table1Table2" dbEntityName="table1_table2"> - </obj-entity> - <obj-entity name="Table2" className="com.objectstyle.Table2" dbEntityName="table2"> - <obj-attribute name="table2col" type="java.lang.String" db-attribute-path="table2col"/> - </obj-entity> - <db-relationship name="table1Table2Array" source="table1" target="table1_table2" toDependentPK="true" toMany="true"> - <db-attribute-pair source="id1" target="fk1"/> - </db-relationship> - <db-relationship name="toTable1" source="table1_table2" target="table1" toMany="false"> - <db-attribute-pair source="fk1" target="id1"/> - </db-relationship> - <db-relationship name="toTable2" source="table1_table2" target="table2" toMany="false"> - <db-attribute-pair source="fk2" target="id2"/> - </db-relationship> - <db-relationship name="table1Table2Array" source="table2" target="table1_table2" toDependentPK="true" toMany="true"> - <db-attribute-pair source="id2" target="fk2"/> - </db-relationship> - <obj-relationship name="table1Table2Array" source="Table1" target="Table1Table2" deleteRule="Deny" db-relationship-path="table1Table2Array"/> - <obj-relationship name="toTable1" source="Table1Table2" target="Table1" deleteRule="Nullify" db-relationship-path="toTable1"/> - <obj-relationship name="toTable2" source="Table1Table2" target="Table2" deleteRule="Nullify" db-relationship-path="toTable2"/> - <obj-relationship name="table1Table2Array" source="Table2" target="Table1Table2" deleteRule="Deny" db-relationship-path="table1Table2Array"/> -</data-map> http://git-wip-us.apache.org/repos/asf/cayenne/blob/660dd4b2/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoaderContext.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoaderContext.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoaderContext.java index d11691a..2fb85a0 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoaderContext.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/DbLoaderContext.java @@ -25,13 +25,14 @@ import javax.swing.JOptionPane; import javax.swing.SwingUtilities; import org.apache.cayenne.configuration.ConfigurationNode; -import org.apache.cayenne.dbimport.Catalog; -import org.apache.cayenne.dbimport.ExcludeTable; -import org.apache.cayenne.dbimport.IncludeProcedure; -import org.apache.cayenne.dbimport.IncludeTable; -import org.apache.cayenne.dbimport.ReverseEngineering; -import org.apache.cayenne.dbimport.Schema; import org.apache.cayenne.dbsync.naming.NameBuilder; +import org.apache.cayenne.dbsync.reverse.dbimport.Catalog; +import org.apache.cayenne.dbsync.reverse.dbimport.DbImportConfiguration; +import org.apache.cayenne.dbsync.reverse.dbimport.ExcludeTable; +import org.apache.cayenne.dbsync.reverse.dbimport.IncludeProcedure; +import org.apache.cayenne.dbsync.reverse.dbimport.IncludeTable; +import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering; +import org.apache.cayenne.dbsync.reverse.dbimport.Schema; import org.apache.cayenne.dbsync.reverse.dbload.DbLoaderDelegate; import org.apache.cayenne.dbsync.reverse.filters.FiltersConfigBuilder; import org.apache.cayenne.map.DataMap; @@ -39,7 +40,6 @@ import org.apache.cayenne.modeler.Application; import org.apache.cayenne.modeler.ProjectController; import org.apache.cayenne.modeler.dialog.db.DataSourceWizard; import org.apache.cayenne.modeler.pref.DBConnectionInfo; -import org.apache.cayenne.tools.dbimport.DbImportConfiguration; import org.apache.cayenne.util.Util; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; http://git-wip-us.apache.org/repos/asf/cayenne/blob/660dd4b2/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/LoadDataMapTask.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/LoadDataMapTask.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/LoadDataMapTask.java index d592385..f0576ea 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/LoadDataMapTask.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/LoadDataMapTask.java @@ -26,9 +26,9 @@ import org.apache.cayenne.di.DIBootstrap; import org.apache.cayenne.di.Injector; import org.apache.cayenne.modeler.util.LongRunningTask; import org.apache.cayenne.modeler.util.ProjectUtil; -import org.apache.cayenne.tools.configuration.ToolsModule; -import org.apache.cayenne.tools.dbimport.DbImportAction; -import org.apache.cayenne.tools.dbimport.DbImportModule; +import org.apache.cayenne.dbsync.reverse.configuration.ToolsModule; +import org.apache.cayenne.dbsync.reverse.dbimport.DbImportAction; +import org.apache.cayenne.dbsync.reverse.dbimport.DbImportModule; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; http://git-wip-us.apache.org/repos/asf/cayenne/blob/660dd4b2/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerDbImportAction.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerDbImportAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerDbImportAction.java index 34ad1b5..bf74a0c 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerDbImportAction.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerDbImportAction.java @@ -25,8 +25,8 @@ import org.apache.cayenne.di.Inject; import org.apache.cayenne.map.DataMap; import org.apache.cayenne.map.MapLoader; import org.apache.cayenne.project.ProjectSaver; -import org.apache.cayenne.tools.dbimport.DbImportConfiguration; -import org.apache.cayenne.tools.dbimport.DefaultDbImportAction; +import org.apache.cayenne.dbsync.reverse.dbimport.DbImportConfiguration; +import org.apache.cayenne.dbsync.reverse.dbimport.DefaultDbImportAction; import org.apache.commons.logging.Log; import java.io.IOException; http://git-wip-us.apache.org/repos/asf/cayenne/blob/660dd4b2/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerSyncModule.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerSyncModule.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerSyncModule.java index 24fdfcf..e4a7975 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerSyncModule.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/load/ModelerSyncModule.java @@ -24,7 +24,7 @@ import org.apache.cayenne.di.Module; import org.apache.cayenne.map.DataMap; import org.apache.cayenne.modeler.ProjectController; import org.apache.cayenne.project.ProjectSaver; -import org.apache.cayenne.tools.dbimport.DbImportAction; +import org.apache.cayenne.dbsync.reverse.dbimport.DbImportAction; class ModelerSyncModule implements Module { http://git-wip-us.apache.org/repos/asf/cayenne/blob/660dd4b2/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/merge/MergerOptions.java ---------------------------------------------------------------------- diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/merge/MergerOptions.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/merge/MergerOptions.java index 26564a3..3bb67f1 100644 --- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/merge/MergerOptions.java +++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/merge/MergerOptions.java @@ -22,21 +22,22 @@ package org.apache.cayenne.modeler.dialog.db.merge; import org.apache.cayenne.CayenneRuntimeException; import org.apache.cayenne.configuration.event.DataMapEvent; import org.apache.cayenne.dba.DbAdapter; -import org.apache.cayenne.dbsync.merge.token.db.AbstractToDbToken; import org.apache.cayenne.dbsync.merge.DataMapMerger; -import org.apache.cayenne.dbsync.reverse.dbload.DefaultModelMergeDelegate; import org.apache.cayenne.dbsync.merge.context.MergeDirection; import org.apache.cayenne.dbsync.merge.context.MergerContext; -import org.apache.cayenne.dbsync.merge.token.MergerToken; -import org.apache.cayenne.dbsync.reverse.dbload.ModelMergeDelegate; -import org.apache.cayenne.dbsync.reverse.dbload.ProxyModelMergeDelegate; import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactory; import org.apache.cayenne.dbsync.merge.factory.MergerTokenFactoryProvider; +import org.apache.cayenne.dbsync.merge.token.MergerToken; +import org.apache.cayenne.dbsync.merge.token.db.AbstractToDbToken; import org.apache.cayenne.dbsync.naming.DefaultObjectNameGenerator; import org.apache.cayenne.dbsync.naming.NoStemStemmer; +import org.apache.cayenne.dbsync.reverse.dbimport.DefaultDbImportAction; import org.apache.cayenne.dbsync.reverse.dbload.DbLoader; import org.apache.cayenne.dbsync.reverse.dbload.DbLoaderConfiguration; +import org.apache.cayenne.dbsync.reverse.dbload.DefaultModelMergeDelegate; import org.apache.cayenne.dbsync.reverse.dbload.LoggingDbLoaderDelegate; +import org.apache.cayenne.dbsync.reverse.dbload.ModelMergeDelegate; +import org.apache.cayenne.dbsync.reverse.dbload.ProxyModelMergeDelegate; import org.apache.cayenne.dbsync.reverse.filters.FiltersConfig; import org.apache.cayenne.dbsync.reverse.filters.PatternFilter; import org.apache.cayenne.dbsync.reverse.filters.TableFilter; @@ -52,7 +53,6 @@ import org.apache.cayenne.project.Project; import org.apache.cayenne.resource.Resource; import org.apache.cayenne.swing.BindingBuilder; import org.apache.cayenne.swing.ObjectBinding; -import org.apache.cayenne.tools.dbimport.DefaultDbImportAction; import org.apache.cayenne.validation.ValidationResult; import org.apache.commons.logging.LogFactory; http://git-wip-us.apache.org/repos/asf/cayenne/blob/660dd4b2/plugins/cayenne-maven-plugin/pom.xml ---------------------------------------------------------------------- diff --git a/plugins/cayenne-maven-plugin/pom.xml b/plugins/cayenne-maven-plugin/pom.xml index 1c2e6ea..eb5c4db 100644 --- a/plugins/cayenne-maven-plugin/pom.xml +++ b/plugins/cayenne-maven-plugin/pom.xml @@ -146,7 +146,7 @@ <dependency> <groupId>org.apache.cayenne</groupId> - <artifactId>cayenne-tools</artifactId> + <artifactId>cayenne-dbsync</artifactId> <version>${project.version}</version> <scope>test</scope> <type>test-jar</type> http://git-wip-us.apache.org/repos/asf/cayenne/blob/660dd4b2/plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbGeneratorMojo.java ---------------------------------------------------------------------- diff --git a/plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbGeneratorMojo.java b/plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbGeneratorMojo.java index f951cb5..0ef8a1c 100644 --- a/plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbGeneratorMojo.java +++ b/plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbGeneratorMojo.java @@ -30,7 +30,7 @@ import org.apache.cayenne.di.Injector; import org.apache.cayenne.log.NoopJdbcEventLogger; import org.apache.cayenne.map.DataMap; import org.apache.cayenne.map.MapLoader; -import org.apache.cayenne.tools.configuration.ToolsModule; +import org.apache.cayenne.dbsync.reverse.configuration.ToolsModule; import org.apache.cayenne.util.Util; import org.apache.commons.logging.Log; import org.apache.maven.plugin.AbstractMojo; http://git-wip-us.apache.org/repos/asf/cayenne/blob/660dd4b2/plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java ---------------------------------------------------------------------- diff --git a/plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java b/plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java index 9c9cddf..e473c37 100644 --- a/plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java +++ b/plugins/cayenne-maven-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java @@ -18,15 +18,16 @@ ****************************************************************/ package org.apache.cayenne.tools; -import org.apache.cayenne.dbimport.ReverseEngineering; import org.apache.cayenne.dbsync.DbSyncModule; +import org.apache.cayenne.dbsync.reverse.configuration.ToolsModule; +import org.apache.cayenne.dbsync.reverse.dbimport.DbImportAction; +import org.apache.cayenne.dbsync.reverse.dbimport.DbImportConfiguration; +import org.apache.cayenne.dbsync.reverse.dbimport.DbImportConfigurationValidator; +import org.apache.cayenne.dbsync.reverse.dbimport.DbImportModule; +import org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineering; import org.apache.cayenne.dbsync.reverse.filters.FiltersConfigBuilder; import org.apache.cayenne.di.DIBootstrap; import org.apache.cayenne.di.Injector; -import org.apache.cayenne.tools.configuration.ToolsModule; -import org.apache.cayenne.tools.dbimport.DbImportAction; -import org.apache.cayenne.tools.dbimport.DbImportConfiguration; -import org.apache.cayenne.tools.dbimport.DbImportModule; import org.apache.cayenne.util.Util; import org.apache.commons.logging.Log; import org.apache.maven.plugin.AbstractMojo; http://git-wip-us.apache.org/repos/asf/cayenne/blob/660dd4b2/plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoConfigurationTest.java ---------------------------------------------------------------------- diff --git a/plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoConfigurationTest.java b/plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoConfigurationTest.java index af6219a..e904216 100644 --- a/plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoConfigurationTest.java +++ b/plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoConfigurationTest.java @@ -18,13 +18,13 @@ ****************************************************************/ package org.apache.cayenne.tools; -import org.apache.cayenne.dbimport.Catalog; -import org.apache.cayenne.dbimport.Schema; +import org.apache.cayenne.dbsync.reverse.dbimport.Catalog; +import org.apache.cayenne.dbsync.reverse.dbimport.DbImportConfiguration; +import org.apache.cayenne.dbsync.reverse.dbimport.Schema; import org.apache.cayenne.dbsync.reverse.filters.FiltersConfig; import org.apache.cayenne.dbsync.reverse.filters.IncludeTableFilter; import org.apache.cayenne.dbsync.reverse.filters.PatternFilter; import org.apache.cayenne.dbsync.reverse.filters.TableFilter; -import org.apache.cayenne.tools.dbimport.DbImportConfiguration; import org.apache.commons.logging.Log; import org.apache.maven.plugin.testing.AbstractMojoTestCase; import org.junit.Test; @@ -34,7 +34,7 @@ import java.util.Map; import java.util.TreeSet; import java.util.regex.Pattern; -import static org.apache.cayenne.dbimport.ReverseEngineeringUtils.*; +import static org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineeringUtils.*; import static org.mockito.Mockito.mock; public class DbImporterMojoConfigurationTest extends AbstractMojoTestCase { http://git-wip-us.apache.org/repos/asf/cayenne/blob/660dd4b2/plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java ---------------------------------------------------------------------- diff --git a/plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java b/plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java index 7d8cbfe..a99f309 100644 --- a/plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java +++ b/plugins/cayenne-maven-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java @@ -18,12 +18,12 @@ ****************************************************************/ package org.apache.cayenne.tools; -import org.apache.cayenne.dbimport.Catalog; -import org.apache.cayenne.dbimport.IncludeTable; -import org.apache.cayenne.dbimport.Schema; +import org.apache.cayenne.dbsync.reverse.dbimport.Catalog; +import org.apache.cayenne.dbsync.reverse.dbimport.DbImportConfiguration; +import org.apache.cayenne.dbsync.reverse.dbimport.IncludeTable; +import org.apache.cayenne.dbsync.reverse.dbimport.Schema; import org.apache.cayenne.test.jdbc.SQLReader; import org.apache.cayenne.test.resource.ResourceUtil; -import org.apache.cayenne.tools.dbimport.DbImportConfiguration; import org.apache.commons.logging.Log; import org.apache.maven.plugin.MojoExecutionException; import org.apache.maven.plugin.testing.AbstractMojoTestCase; http://git-wip-us.apache.org/repos/asf/cayenne/blob/660dd4b2/plugins/maven-cayenne-plugin/pom.xml ---------------------------------------------------------------------- diff --git a/plugins/maven-cayenne-plugin/pom.xml b/plugins/maven-cayenne-plugin/pom.xml index ccd20ab..d762d0d 100644 --- a/plugins/maven-cayenne-plugin/pom.xml +++ b/plugins/maven-cayenne-plugin/pom.xml @@ -124,7 +124,7 @@ <dependency> <groupId>org.apache.cayenne</groupId> - <artifactId>cayenne-tools</artifactId> + <artifactId>cayenne-dbsync</artifactId> <version>${project.version}</version> <scope>test</scope> <type>test-jar</type> http://git-wip-us.apache.org/repos/asf/cayenne/blob/660dd4b2/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterOldMojoConfigurationTest.java ---------------------------------------------------------------------- diff --git a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterOldMojoConfigurationTest.java b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterOldMojoConfigurationTest.java index 48549dd..a14a6b3 100644 --- a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterOldMojoConfigurationTest.java +++ b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterOldMojoConfigurationTest.java @@ -24,17 +24,17 @@ import java.util.Map; import java.util.TreeSet; import java.util.regex.Pattern; -import org.apache.cayenne.dbimport.Catalog; -import org.apache.cayenne.dbimport.Schema; +import org.apache.cayenne.dbsync.reverse.dbimport.Catalog; +import org.apache.cayenne.dbsync.reverse.dbimport.DbImportConfiguration; +import org.apache.cayenne.dbsync.reverse.dbimport.Schema; import org.apache.cayenne.dbsync.reverse.filters.FiltersConfig; import org.apache.cayenne.dbsync.reverse.filters.IncludeTableFilter; import org.apache.cayenne.dbsync.reverse.filters.PatternFilter; import org.apache.cayenne.dbsync.reverse.filters.TableFilter; -import org.apache.cayenne.tools.dbimport.DbImportConfiguration; import org.apache.commons.logging.Log; import org.apache.maven.plugin.testing.AbstractMojoTestCase; -import static org.apache.cayenne.dbimport.ReverseEngineeringUtils.*; +import static org.apache.cayenne.dbsync.reverse.dbimport.ReverseEngineeringUtils.*; import static org.mockito.Mockito.mock; public class DbImporterOldMojoConfigurationTest extends AbstractMojoTestCase {