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 {

Reply via email to