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 {