You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2016/11/03 16:22:21 UTC

[2/2] cayenne git commit: CAY-2116 Split schema synchronization code in a separate module

CAY-2116 Split schema synchronization code in a separate module

* refactoring


Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo
Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/2a06041d
Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/2a06041d
Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/2a06041d

Branch: refs/heads/master
Commit: 2a06041df8f39485a8ca3c31a6439c7c5a182e1d
Parents: 30f9279
Author: Andrus Adamchik <an...@objectstyle.com>
Authored: Thu Nov 3 19:03:11 2016 +0300
Committer: Andrus Adamchik <an...@objectstyle.com>
Committed: Thu Nov 3 19:19:27 2016 +0300

----------------------------------------------------------------------
 .../apache/cayenne/tools/DbImporterTask.java    |  6 +-
 .../tools/dbimport/DbImportConfiguration.java   | 12 +--
 .../tools/dbimport/DefaultDbImportAction.java   |  8 +-
 .../dbimport/DbImportConfigurationTest.java     | 81 --------------------
 .../dbimport/DefaultDbImportActionTest.java     | 14 ++--
 .../modeler/dialog/db/DbLoaderHelper.java       |  2 +-
 .../dialog/db/ModelerDbImportAction.java        |  6 +-
 .../apache/cayenne/tools/DbImporterMojo.java    | 10 +--
 .../cayenne/tools/DbImporterMojoTest.java       |  8 +-
 9 files changed, 28 insertions(+), 119 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/2a06041d/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java b/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
index 87fc179..48eb93c 100644
--- a/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
+++ b/cayenne-tools/src/main/java/org/apache/cayenne/tools/DbImporterTask.java
@@ -161,7 +161,7 @@ public class DbImporterTask extends Task {
     protected void validateAttributes() throws BuildException {
         StringBuilder error = new StringBuilder("");
 
-        if (config.getDataMapFile() == null) {
+        if (config.getTargetDataMap() == null) {
             error.append("The 'map' attribute must be set.\n");
         }
 
@@ -222,11 +222,11 @@ public class DbImporterTask extends Task {
     }
 
     public File getMap() {
-        return config.getDataMapFile();
+        return config.getTargetDataMap();
     }
 
     public void setMap(File map) {
-        config.setDataMapFile(map);
+        config.setTargetDataMap(map);
     }
 
     public DbImportConfiguration toParameters() {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2a06041d/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DbImportConfiguration.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DbImportConfiguration.java b/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DbImportConfiguration.java
index 17537ca..16f5abf 100644
--- a/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DbImportConfiguration.java
+++ b/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DbImportConfiguration.java
@@ -48,7 +48,7 @@ public class DbImportConfiguration {
     private static final String DATA_MAP_LOCATION_SUFFIX = ".map.xml";
     private final DataSourceInfo dataSourceInfo = new DataSourceInfo();
     private final DbLoaderConfiguration dbLoaderConfiguration = new DbLoaderConfiguration();
-    private File dataMapFile;
+    private File targetDataMap;
     /**
      * A default package for ObjEntity Java classes.
      */
@@ -70,12 +70,12 @@ public class DbImportConfiguration {
     /**
      * Retruns DataMap XML file representing the target of the DB import operation.
      */
-    public File getDataMapFile() {
-        return dataMapFile;
+    public File getTargetDataMap() {
+        return targetDataMap;
     }
 
-    public void setDataMapFile(File map) {
-        this.dataMapFile = map;
+    public void setTargetDataMap(File map) {
+        this.targetDataMap = map;
     }
 
     public String getDefaultPackage() {
@@ -207,7 +207,7 @@ public class DbImportConfiguration {
     }
 
     public String getDataMapName() {
-        String name = dataMapFile.getName();
+        String name = targetDataMap.getName();
         if (!name.endsWith(DATA_MAP_LOCATION_SUFFIX)) {
             throw new CayenneRuntimeException("DataMap file name must end with '%s': '%s'", DATA_MAP_LOCATION_SUFFIX,
                     name);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2a06041d/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java b/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java
index eab7c44..4d6fffb 100644
--- a/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java
+++ b/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DefaultDbImportAction.java
@@ -164,7 +164,7 @@ public class DefaultDbImportAction implements DbImportAction {
         if (targetDataMap == null) {
             logger.info("");
             logger.info("Map file does not exist. Loaded db model will be saved into '"
-                    + (config.getDataMapFile() == null ? "null" : config.getDataMapFile().getAbsolutePath() + "'"));
+                    + (config.getTargetDataMap() == null ? "null" : config.getTargetDataMap().getAbsolutePath() + "'"));
 
             hasChanges = true;
             targetDataMap = newTargetDataMap(config);
@@ -239,7 +239,7 @@ public class DefaultDbImportAction implements DbImportAction {
 
     protected DataMap existingTargetMap(DbImportConfiguration configuration) throws IOException {
 
-        File file = configuration.getDataMapFile();
+        File file = configuration.getTargetDataMap();
         if (file != null && file.exists() && file.canRead()) {
             DataMap dataMap = mapLoader.loadDataMap(new InputSource(file.getCanonicalPath()));
             dataMap.setNamespace(new EntityResolver(Collections.singleton(dataMap)));
@@ -256,7 +256,7 @@ public class DefaultDbImportAction implements DbImportAction {
         DataMap dataMap = new DataMap();
 
         dataMap.setName(config.getDataMapName());
-        dataMap.setConfigurationSource(new URLResource(config.getDataMapFile().toURI().toURL()));
+        dataMap.setConfigurationSource(new URLResource(config.getTargetDataMap().toURI().toURL()));
         dataMap.setNamespace(new EntityResolver(Collections.singleton(dataMap)));
 
         // update map defaults
@@ -368,7 +368,7 @@ public class DefaultDbImportAction implements DbImportAction {
     }
 
     protected DataMap load(DbImportConfiguration config, DbAdapter adapter, Connection connection) throws Exception {
-        DataMap dataMap = config.createDataMap();
+        DataMap dataMap = new DataMap("_import_source_");
         DbLoader loader = config.createLoader(adapter, connection, config.createLoaderDelegate());
         loader.load(dataMap, config.getDbLoaderConfig());
         return dataMap;

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2a06041d/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DbImportConfigurationTest.java
----------------------------------------------------------------------
diff --git a/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DbImportConfigurationTest.java b/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DbImportConfigurationTest.java
deleted file mode 100644
index e8f03d0..0000000
--- a/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DbImportConfigurationTest.java
+++ /dev/null
@@ -1,81 +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.map.DataMap;
-import org.apache.cayenne.map.DbEntity;
-import org.apache.cayenne.util.XMLEncoder;
-import org.junit.Test;
-
-import java.io.File;
-import java.io.PrintWriter;
-import java.net.MalformedURLException;
-import java.net.URL;
-
-import static org.junit.Assert.*;
-
-public class DbImportConfigurationTest {
-
-    @Test
-    public void testCreateDataMap_New() throws Exception {
-        URL outUrl = dataMapUrl("testCreateDataMap1.map.xml");
-
-        File out = new File(outUrl.toURI());
-        out.delete();
-        assertFalse(out.isFile());
-
-        DbImportConfiguration parameters = new DbImportConfiguration();
-        parameters.setDataMapFile(out);
-        DataMap dataMap = parameters.createDataMap();
-        assertEquals("testCreateDataMap1", dataMap.getName());
-        assertEquals(outUrl, dataMap.getConfigurationSource().getURL());
-    }
-
-    @Test
-    public void testCreateDataMap_Existing() throws Exception {
-
-        URL outUrl = dataMapUrl("testCreateDataMap2.map.xml");
-
-        File out = new File(outUrl.toURI());
-        out.delete();
-        assertFalse(out.isFile());
-
-        DataMap tempMap = new DataMap();
-        tempMap.addDbEntity(new DbEntity("X"));
-
-        PrintWriter writer = new PrintWriter(out);
-        tempMap.encodeAsXML(new XMLEncoder(writer));
-        writer.close();
-        assertTrue(out.isFile());
-
-        DbImportConfiguration parameters = new DbImportConfiguration();
-        parameters.setDataMapFile(out);
-        DataMap dataMap = parameters.createDataMap();
-        assertEquals("testCreateDataMap2", dataMap.getName());
-        assertEquals(outUrl, dataMap.getConfigurationSource().getURL());
-    }
-
-    private URL dataMapUrl(String name) throws MalformedURLException {
-        String packagePath = getClass().getPackage().getName().replace('.', '/');
-        URL packageUrl = getClass().getClassLoader().getResource(packagePath);
-        assertNotNull(packageUrl);
-        return new URL(packageUrl, "dbimport/" + name);
-    }
-
-}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2a06041d/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
index 1bf48c7..aa2a561 100644
--- 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
@@ -70,7 +70,6 @@ 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.assertSame;
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 import static org.mockito.Matchers.any;
@@ -124,10 +123,11 @@ public class DefaultDbImportActionTest {
         when(config.createLoader(any(DbAdapter.class), any(Connection.class), any(DbLoaderDelegate.class)))
                 .thenReturn(dbLoader);
 
-        final DataMap dataMap = new DataMap();
-        when(config.createDataMap()).thenReturn(dataMap);
         when(config.createMergeDelegate()).thenReturn(new DefaultModelMergeDelegate());
         when(config.getDbLoaderConfig()).thenReturn(new DbLoaderConfiguration());
+        when(config.getTargetDataMap()).thenReturn(new File("xyz.map.xml"));
+        when(config.getNameGenerator()).thenReturn(new DefaultObjectNameGenerator());
+        when(config.getMeaningfulPKFilter()).thenReturn(NamePatternMatcher.EXCLUDE_ALL);
 
         final boolean[] haveWeTriedToSave = {false};
         DefaultDbImportAction action = buildDbImportAction(new FileProjectSaver() {
@@ -136,7 +136,7 @@ public class DefaultDbImportActionTest {
                 haveWeTriedToSave[0] = true;
 
                 // Validation phase
-                assertSame(dataMap, project.getRootNode());
+                assertTrue(project.getRootNode() instanceof DataMap);
             }
         }, null);
 
@@ -167,8 +167,7 @@ public class DefaultDbImportActionTest {
         when(params.createLoader(any(DbAdapter.class), any(Connection.class), any(DbLoaderDelegate.class)))
                 .thenReturn(dbLoader);
 
-        when(params.createDataMap()).thenReturn(new DataMap("testImport"));
-        when(params.getDataMapFile()).thenReturn(FILE_STUB);
+        when(params.getTargetDataMap()).thenReturn(FILE_STUB);
         when(params.createMergeDelegate()).thenReturn(new DefaultModelMergeDelegate());
         when(params.getDbLoaderConfig()).thenReturn(new DbLoaderConfiguration());
         when(params.getNameGenerator()).thenReturn(new DefaultObjectNameGenerator());
@@ -227,8 +226,7 @@ public class DefaultDbImportActionTest {
         when(params.createLoader(any(DbAdapter.class), any(Connection.class), any(DbLoaderDelegate.class)))
                 .thenReturn(dbLoader);
 
-        when(params.createDataMap()).thenReturn(new DataMap("testImport"));
-        when(params.getDataMapFile()).thenReturn(FILE_STUB);
+        when(params.getTargetDataMap()).thenReturn(FILE_STUB);
         when(params.createMergeDelegate()).thenReturn(new DefaultModelMergeDelegate());
         when(params.getDbLoaderConfig()).thenReturn(new DbLoaderConfiguration());
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2a06041d/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
index 7dede61..81b10be 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/DbLoaderHelper.java
@@ -381,7 +381,7 @@ public class DbLoaderHelper {
             }
 
             if (dataMap.getConfigurationSource() != null) {
-                config.setDataMapFile(new File(dataMap.getConfigurationSource().getURL().getPath()));
+                config.setTargetDataMap(new File(dataMap.getConfigurationSource().getURL().getPath()));
             }
 
             FiltersConfigBuilder filtersConfigBuilder = new FiltersConfigBuilder(reverseEngineering);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2a06041d/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ModelerDbImportAction.java
----------------------------------------------------------------------
diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ModelerDbImportAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ModelerDbImportAction.java
index cbda470..19d9b03 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ModelerDbImportAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/dialog/db/ModelerDbImportAction.java
@@ -33,11 +33,11 @@ import org.apache.cayenne.modeler.ProjectController;
 import org.apache.cayenne.project.ProjectSaver;
 import org.apache.cayenne.resource.Resource;
 import org.apache.cayenne.tools.dbimport.DbImportAction;
-import org.apache.cayenne.tools.dbimport.DefaultDbImportAction;
 import org.apache.cayenne.tools.dbimport.DbImportConfiguration;
+import org.apache.cayenne.tools.dbimport.DefaultDbImportAction;
 import org.apache.commons.logging.Log;
 
-import java.io.File;
+import java.io.IOException;
 import java.sql.Connection;
 
 public class ModelerDbImportAction implements DbImportAction {
@@ -75,7 +75,7 @@ public class ModelerDbImportAction implements DbImportAction {
         new DefaultDbImportAction(logger, projectSaver, dataSourceFactory, adapterFactory, mapLoader, mergerTokenFactoryProvider) {
 
             @Override
-            protected DataMap loadExistingDataMap(File dataMapFile) {
+            protected DataMap existingTargetMap(DbImportConfiguration configuration) throws IOException {
                 return dbLoaderHelper.getDataMap();
             }
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2a06041d/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java b/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
index 5cd3478..92857e2 100644
--- a/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
+++ b/plugins/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
@@ -18,21 +18,15 @@
  ****************************************************************/
 package org.apache.cayenne.tools;
 
-import org.apache.cayenne.configuration.ConfigurationNameMapper;
 import org.apache.cayenne.configuration.DataNodeDescriptor;
-import org.apache.cayenne.configuration.XMLDataMapLoader;
 import org.apache.cayenne.configuration.server.DataSourceFactory;
 import org.apache.cayenne.configuration.server.DbAdapterFactory;
 import org.apache.cayenne.dba.DbAdapter;
-import org.apache.cayenne.dbimport.DefaultReverseEngineeringLoader;
 import org.apache.cayenne.dbimport.ReverseEngineering;
 import org.apache.cayenne.dbsync.CayenneDbSyncModule;
 import org.apache.cayenne.dbsync.reverse.filters.FiltersConfigBuilder;
 import org.apache.cayenne.di.DIBootstrap;
 import org.apache.cayenne.di.Injector;
-import org.apache.cayenne.map.DataMap;
-import org.apache.cayenne.resource.Resource;
-import org.apache.cayenne.resource.URLResource;
 import org.apache.cayenne.tools.configuration.ToolsModule;
 import org.apache.cayenne.tools.dbimport.DbImportAction;
 import org.apache.cayenne.tools.dbimport.DbImportConfiguration;
@@ -45,8 +39,6 @@ import org.apache.maven.plugin.MojoFailureException;
 
 import javax.sql.DataSource;
 import java.io.File;
-import java.net.MalformedURLException;
-import java.net.URL;
 
 /**
  * Maven mojo to reverse engineer datamap from DB.
@@ -202,7 +194,7 @@ public class DbImporterMojo extends AbstractMojo {
         config.setAdapter(adapter);
         config.setDefaultPackage(defaultPackage);
         config.setDriver(driver);
-        config.setDataMapFile(map);
+        config.setTargetDataMap(map);
         config.setMeaningfulPkTables(meaningfulPkTables);
         config.setNamingStrategy(namingStrategy);
         config.setPassword(password);

http://git-wip-us.apache.org/repos/asf/cayenne/blob/2a06041d/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
----------------------------------------------------------------------
diff --git a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
index d1c0e48..3fa9f2f 100644
--- a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
+++ b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoTest.java
@@ -76,7 +76,7 @@ public class DbImporterMojoTest extends AbstractMojoTestCase {
 
         DbImportConfiguration parameters1 = getCdbImport("dbimporter-pom1.xml").toParameters();
         assertNull(parameters1.getMeaningfulPkTables());
-        assertPathEquals("target/test/org/apache/cayenne/tools/dbimporter-map1.map.xml", parameters1.getDataMapFile()
+        assertPathEquals("target/test/org/apache/cayenne/tools/dbimporter-map1.map.xml", parameters1.getTargetDataMap()
                 .getPath());
 
         assertEquals("x,b*", getCdbImport("dbimporter-pom2.xml").toParameters().getMeaningfulPkTables());
@@ -86,11 +86,11 @@ public class DbImporterMojoTest extends AbstractMojoTestCase {
     public void testToParameters_Map() throws Exception {
 
         DbImportConfiguration parameters1 = getCdbImport("dbimporter-pom1.xml").toParameters();
-        assertNotNull(parameters1.getDataMapFile());
-        assertPathEquals("target/test/org/apache/cayenne/tools/dbimporter-map1.map.xml", parameters1.getDataMapFile()
+        assertNotNull(parameters1.getTargetDataMap());
+        assertPathEquals("target/test/org/apache/cayenne/tools/dbimporter-map1.map.xml", parameters1.getTargetDataMap()
                 .getPath());
 
-        assertNull(getCdbImport("dbimporter-pom2.xml").toParameters().getDataMapFile());
+        assertNull(getCdbImport("dbimporter-pom2.xml").toParameters().getTargetDataMap());
     }
 
     private DbImporterMojo getCdbImport(String pomFileName) throws Exception {