Repository: cayenne Updated Branches: refs/heads/master 2f104817e -> fdfeb3ac4
CAY-2051 Improvement of cdbimport behavior in maven and ant Project: http://git-wip-us.apache.org/repos/asf/cayenne/repo Commit: http://git-wip-us.apache.org/repos/asf/cayenne/commit/b5bfbd5f Tree: http://git-wip-us.apache.org/repos/asf/cayenne/tree/b5bfbd5f Diff: http://git-wip-us.apache.org/repos/asf/cayenne/diff/b5bfbd5f Branch: refs/heads/master Commit: b5bfbd5fede8c0919c7657a0cf137475b17524e0 Parents: fe82b47 Author: ollybondareva <ollybondar...@gmail.com> Authored: Tue Feb 2 19:47:59 2016 +0100 Committer: Dzmitry Kazimirchyk <dkazimirc...@gmail.com> Committed: Fri Feb 26 11:38:57 2016 +0300 ---------------------------------------------------------------------- .../DefaultReverseEngineeringWriterTest.java | 63 +++++----- .../cayenne/dbimport/reverseEngineering.xml | 21 +++- .../apache/cayenne/tools/DbImporterTask.java | 117 ++++++++++++++----- .../apache/cayenne/tools/DbImporterMojo.java | 109 ++++++++++++++--- .../cayenne/tools/DbImporterMojoTest.java | 1 + 5 files changed, 229 insertions(+), 82 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cayenne/blob/b5bfbd5f/cayenne-server/src/test/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringWriterTest.java ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringWriterTest.java b/cayenne-server/src/test/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringWriterTest.java index e028431..68a214d 100644 --- a/cayenne-server/src/test/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringWriterTest.java +++ b/cayenne-server/src/test/java/org/apache/cayenne/dbimport/DefaultReverseEngineeringWriterTest.java @@ -1,56 +1,42 @@ -/* - * 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 +/***************************************************************** + * 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 + * 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. - */ + * 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.dbimport; -import org.apache.cayenne.CayenneRuntimeException; import org.apache.cayenne.resource.Resource; import org.apache.cayenne.resource.URLResource; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.custommonkey.xmlunit.DetailedDiff; import org.custommonkey.xmlunit.Diff; -import org.custommonkey.xmlunit.Difference; import org.junit.Test; -import org.xml.sax.SAXException; -import sun.security.util.Resources; - -import javax.xml.bind.JAXBException; import java.io.*; import java.net.MalformedURLException; import java.net.URL; -import java.util.List; +import java.net.URLDecoder; import static org.junit.Assert.assertTrue; -/* - * @since 4.0 - */ - public class DefaultReverseEngineeringWriterTest { @Test public void testWriteReverseEngineering() throws Exception { ReverseEngineeringWriter engineering = new DefaultReverseEngineeringWriter(); ReverseEngineering reverseEngineering = new ReverseEngineering(); - Resource resource = getResource("reverseEngineering.xml"); - reverseEngineering.setConfigurationSource(resource); Catalog catalog1 = new Catalog("catalog1"); Catalog catalog2 = new Catalog("catalog2"); @@ -80,10 +66,13 @@ public class DefaultReverseEngineeringWriterTest { reverseEngineering.addSchema(new Schema("schema3")); - File file = new File(resource.getURL().getPath()); - PrintWriter printWriter = new PrintWriter(new FileWriter(file)); + URL url = getClass().getResource("reverseEngineering.xml"); + String decodedURL = URLDecoder.decode(url.getPath(), "UTF-8"); + Writer printWriter = new PrintWriter(decodedURL); - assertReverseEngineering(engineering.write(reverseEngineering, printWriter)); + reverseEngineering.setConfigurationSource(new URLResource(url)); + Resource reverseEngineeringResource = engineering.write(reverseEngineering, printWriter); + assertReverseEngineering(reverseEngineeringResource); } public void assertReverseEngineering(Resource resource) throws Exception { @@ -92,8 +81,8 @@ public class DefaultReverseEngineeringWriterTest { FileReader writedXML; FileReader expectedXML; - writedXML = new FileReader(url1.getPath()); - expectedXML = new FileReader(url2.getPath()); + writedXML = new FileReader(URLDecoder.decode(url1.getPath(), "UTF-8")); + expectedXML = new FileReader(URLDecoder.decode(url2.getPath(), "UTF-8")); Diff diff = new Diff(writedXML, expectedXML); assertTrue(diff.identical()); } http://git-wip-us.apache.org/repos/asf/cayenne/blob/b5bfbd5f/cayenne-server/src/test/resources/org/apache/cayenne/dbimport/reverseEngineering.xml ---------------------------------------------------------------------- diff --git a/cayenne-server/src/test/resources/org/apache/cayenne/dbimport/reverseEngineering.xml b/cayenne-server/src/test/resources/org/apache/cayenne/dbimport/reverseEngineering.xml index d653564..28a73d0 100644 --- a/cayenne-server/src/test/resources/org/apache/cayenne/dbimport/reverseEngineering.xml +++ b/cayenne-server/src/test/resources/org/apache/cayenne/dbimport/reverseEngineering.xml @@ -1,3 +1,22 @@ -<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> + <reverseEngineering> </reverseEngineering> \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cayenne/blob/b5bfbd5f/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 36fe7f1..ddc44ae 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 @@ -19,27 +19,24 @@ package org.apache.cayenne.tools; import java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; import org.apache.cayenne.access.loader.filters.OldFilterConfigBridge; 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.conn.DataSourceInfo; import org.apache.cayenne.dba.DbAdapter; -import org.apache.cayenne.dbimport.AntNestedElement; -import org.apache.cayenne.dbimport.Catalog; -import org.apache.cayenne.dbimport.ExcludeColumn; -import org.apache.cayenne.dbimport.ExcludeProcedure; -import org.apache.cayenne.dbimport.ExcludeTable; -import org.apache.cayenne.dbimport.FiltersConfigBuilder; -import org.apache.cayenne.dbimport.IncludeColumn; -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.dbimport.*; import org.apache.cayenne.di.DIBootstrap; import org.apache.cayenne.di.Injector; +import org.apache.cayenne.map.DataMap; import org.apache.cayenne.map.naming.DefaultNameGenerator; +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; @@ -57,6 +54,7 @@ public class DbImporterTask extends Task { private final DbImportConfiguration config; private final ReverseEngineering reverseEngineering = new ReverseEngineering(); + private boolean isReverseEngineeringDefined = false; private final OldFilterConfigBridge filterBuilder = new OldFilterConfigBridge(); @@ -69,7 +67,7 @@ public class DbImporterTask extends Task { @Override public void execute() { - + File dataMapFile = config.getDataMapFile(); config.setFiltersConfig(new FiltersConfigBuilder(reverseEngineering) .add(filterBuilder) .filtersConfig()); @@ -82,26 +80,78 @@ public class DbImporterTask extends Task { config.setSkipPrimaryKeyLoading(reverseEngineering.getSkipPrimaryKeyLoading()); config.setTableTypes(reverseEngineering.getTableTypes()); - Injector injector = DIBootstrap.createInjector(new ToolsModule(logger), new DbImportModule()); + if (isReverseEngineeringDefined) { + Injector injector = DIBootstrap.createInjector(new ToolsModule(logger), new DbImportModule()); - validateDbImportConfiguration(config, injector); + validateDbImportConfiguration(config, injector); - try { - injector.getInstance(DbImportAction.class).execute(config); - } catch (Exception ex) { - Throwable th = Util.unwindException(ex); + try { + injector.getInstance(DbImportAction.class).execute(config); + } catch (Exception ex) { + Throwable th = Util.unwindException(ex); - String message = "Error importing database schema"; + String message = "Error importing database schema"; - if (th.getLocalizedMessage() != null) { - message += ": " + th.getLocalizedMessage(); - } + if (th.getLocalizedMessage() != null) { + message += ": " + th.getLocalizedMessage(); + } - log(message, Project.MSG_ERR); - throw new BuildException(message, th); + log(message, Project.MSG_ERR); + throw new BuildException(message, th); + } + finally { + injector.shutdown(); + } } - finally { - injector.shutdown(); + else { + if (dataMapFile.exists()) { + try { + URL url = dataMapFile.toURI().toURL(); + URLResource resource = new URLResource(url); + + XMLDataMapLoader xmlDataMapLoader = new XMLDataMapLoader(); + DataMap dataMap = xmlDataMapLoader.load(resource); + if (dataMap.getReverseEngineering() != null) { + Resource reverseEngineeringResource = new URLResource(dataMapFile.toURL()).getRelativeResource(dataMap.getReverseEngineering().getName() + ".reverseEngineering.xml"); + + DefaultReverseEngineeringLoader reverseEngineeringLoader = new DefaultReverseEngineeringLoader(); + ReverseEngineering reverseEngineering = reverseEngineeringLoader.load(reverseEngineeringResource.getURL().openStream()); + reverseEngineering.setName(dataMap.getReverseEngineering().getName()); + reverseEngineering.setConfigurationSource(reverseEngineeringResource); + dataMap.setReverseEngineering(reverseEngineering); + + FiltersConfigBuilder filtersConfigBuilder = new FiltersConfigBuilder(dataMap.getReverseEngineering()); + config.getDbLoaderConfig().setFiltersConfig(filtersConfigBuilder.filtersConfig()); + Injector injector = DIBootstrap.createInjector(new ToolsModule(logger), new DbImportModule()); + + validateDbImportConfiguration(config, injector); + + try { + injector.getInstance(DbImportAction.class).execute(config); + } catch (Exception ex) { + Throwable th = Util.unwindException(ex); + + String message = "Error importing database schema"; + + if (th.getLocalizedMessage() != null) { + message += ": " + th.getLocalizedMessage(); + } + + log(message, Project.MSG_ERR); + throw new BuildException(message, th); + } + finally { + injector.shutdown(); + } + } + } catch (MalformedURLException e) { + log(e.getMessage(), Project.MSG_ERR); + throw new BuildException(e.getMessage(), e); + } catch (IOException e) { + log(e.getMessage(), Project.MSG_ERR); + throw new BuildException(e.getMessage(), e); + } + } } } @@ -163,6 +213,7 @@ public class DbImporterTask extends Task { */ @Deprecated public void setSchemaName(String schemaName) { + isReverseEngineeringDefined = true; this.setSchema(schemaName); } @@ -170,6 +221,7 @@ public class DbImporterTask extends Task { * @since 4.0 */ public void setSchema(String schema) { + isReverseEngineeringDefined = true; filterBuilder.schema(schema); } @@ -181,14 +233,17 @@ public class DbImporterTask extends Task { } public void setTablePattern(String tablePattern) { + isReverseEngineeringDefined = true; filterBuilder.includeTables(tablePattern); } public void setImportProcedures(boolean importProcedures) { + isReverseEngineeringDefined = true; filterBuilder.setProceduresFilters(importProcedures); } public void setProcedurePattern(String procedurePattern) { + isReverseEngineeringDefined = true; filterBuilder.includeProcedures(procedurePattern); } @@ -242,6 +297,7 @@ public class DbImporterTask extends Task { * @since 4.0 */ public void setIncludeTables(String includeTables) { + isReverseEngineeringDefined = true; filterBuilder.includeTables(includeTables); } @@ -249,6 +305,7 @@ public class DbImporterTask extends Task { * @since 4.0 */ public void setExcludeTables(String excludeTables) { + isReverseEngineeringDefined = true; filterBuilder.excludeTables(excludeTables); } @@ -264,26 +321,32 @@ public class DbImporterTask extends Task { } public void addConfiguredIncludeColumn(IncludeColumn includeColumn) { + isReverseEngineeringDefined = true; reverseEngineering.addIncludeColumn(includeColumn); } public void addConfiguredExcludeColumn(ExcludeColumn excludeColumn) { + isReverseEngineeringDefined = true; reverseEngineering.addExcludeColumn(excludeColumn); } public void addConfiguredIncludeTable(IncludeTable includeTable) { + isReverseEngineeringDefined = true; reverseEngineering.addIncludeTable(includeTable); } public void addConfiguredExcludeTable(ExcludeTable excludeTable) { + isReverseEngineeringDefined = true; reverseEngineering.addExcludeTable(excludeTable); } public void addConfiguredIncludeProcedure(IncludeProcedure includeProcedure) { + isReverseEngineeringDefined = true; reverseEngineering.addIncludeProcedure(includeProcedure); } public void addConfiguredExcludeProcedure(ExcludeProcedure excludeProcedure) { + isReverseEngineeringDefined = true; reverseEngineering.addExcludeProcedure(excludeProcedure); } @@ -292,10 +355,12 @@ public class DbImporterTask extends Task { } public void addConfiguredCatalog(Catalog catalog) { + isReverseEngineeringDefined = true; reverseEngineering.addCatalog(catalog); } public void addConfiguredTableType(AntNestedElement type) { + isReverseEngineeringDefined = true; reverseEngineering.addTableType(type.getName()); } http://git-wip-us.apache.org/repos/asf/cayenne/blob/b5bfbd5f/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 864c63f..f3dfdc7 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,22 +18,27 @@ ****************************************************************/ package org.apache.cayenne.tools; -import org.apache.cayenne.access.loader.filters.OldFilterConfigBridge; +import org.apache.cayenne.access.loader.filters.*; 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 java.io.File; +import java.io.IOException; +import java.net.MalformedURLException; +import java.net.URL; + +import org.apache.cayenne.dbimport.*; 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; import org.apache.cayenne.tools.dbimport.DbImportModule; -import org.apache.cayenne.dbimport.Catalog; -import org.apache.cayenne.dbimport.FiltersConfigBuilder; -import org.apache.cayenne.dbimport.ReverseEngineering; -import org.apache.cayenne.dbimport.Schema; import org.apache.cayenne.util.Util; import org.apache.commons.logging.Log; import org.apache.maven.plugin.AbstractMojo; @@ -51,7 +56,6 @@ import javax.sql.DataSource; * @goal cdbimport */ public class DbImporterMojo extends AbstractMojo { - /** * DataMap XML file to use as a base for DB importing. * @@ -153,6 +157,12 @@ public class DbImporterMojo extends AbstractMojo { */ private ReverseEngineering reverseEngineering = new ReverseEngineering(); + private boolean isReverseEngineeringDefined = false; + + public void setIsReverseEngineeringDefined(boolean isReverseEngineeringDefined) { + this.isReverseEngineeringDefined = isReverseEngineeringDefined; + } + /** * DB schema to use for DB importing. * @@ -163,6 +173,7 @@ public class DbImporterMojo extends AbstractMojo { private DbImportConfiguration config; private void setSchemaName(String schemaName) { + isReverseEngineeringDefined = true; getLog().warn("'schemaName' property is deprecated. Use 'schema' instead"); filterBuilder.schema(schemaName); @@ -177,6 +188,7 @@ public class DbImporterMojo extends AbstractMojo { private Schema schema; public void setSchema(Schema schema) { + isReverseEngineeringDefined = true; if (schema.isEmptyContainer()) { filterBuilder.schema(schema.getName()); } else { @@ -194,6 +206,7 @@ public class DbImporterMojo extends AbstractMojo { private String tablePattern; public void setTablePattern(String tablePattern) { + isReverseEngineeringDefined = true; filterBuilder.includeTables(tablePattern); } @@ -222,6 +235,7 @@ public class DbImporterMojo extends AbstractMojo { private String procedurePattern; public void setProcedurePattern(String procedurePattern) { + isReverseEngineeringDefined = true; filterBuilder.includeProcedures(procedurePattern); } @@ -248,23 +262,74 @@ public class DbImporterMojo extends AbstractMojo { DbImportConfiguration config = toParameters(); config.setLogger(logger); - Injector injector = DIBootstrap.createInjector(new ToolsModule(logger), new DbImportModule()); + File dataMapFile = config.getDataMapFile(); - validateDbImportConfiguration(config, injector); + if (isReverseEngineeringDefined) { + Injector injector = DIBootstrap.createInjector(new ToolsModule(logger), new DbImportModule()); - try { - injector.getInstance(DbImportAction.class).execute(config); - } catch (Exception ex) { - Throwable th = Util.unwindException(ex); + validateDbImportConfiguration(config, injector); - String message = "Error importing database schema"; + try { + injector.getInstance(DbImportAction.class).execute(config); + } catch (Exception ex) { + Throwable th = Util.unwindException(ex); - if (th.getLocalizedMessage() != null) { - message += ": " + th.getLocalizedMessage(); - } + String message = "Error importing database schema"; - getLog().error(message); - throw new MojoExecutionException(message, th); + if (th.getLocalizedMessage() != null) { + message += ": " + th.getLocalizedMessage(); + } + + getLog().error(message); + throw new MojoExecutionException(message, th); + } + } + else { + if (dataMapFile.exists()) { + try { + URL url = dataMapFile.toURI().toURL(); + URLResource resource = new URLResource(url); + + XMLDataMapLoader xmlDataMapLoader = new XMLDataMapLoader(); + DataMap dataMap = xmlDataMapLoader.load(resource); + if (dataMap.getReverseEngineering() != null) { + Resource reverseEngineeringResource = new URLResource(dataMapFile.toURI().toURL()).getRelativeResource(dataMap.getReverseEngineering().getName() + ".reverseEngineering.xml"); + + DefaultReverseEngineeringLoader reverseEngineeringLoader = new DefaultReverseEngineeringLoader(); + ReverseEngineering reverseEngineering = reverseEngineeringLoader.load(reverseEngineeringResource.getURL().openStream()); + reverseEngineering.setName(dataMap.getReverseEngineering().getName()); + reverseEngineering.setConfigurationSource(reverseEngineeringResource); + dataMap.setReverseEngineering(reverseEngineering); + + FiltersConfigBuilder filtersConfigBuilder = new FiltersConfigBuilder(dataMap.getReverseEngineering()); + config.getDbLoaderConfig().setFiltersConfig(filtersConfigBuilder.filtersConfig()); + Injector injector = DIBootstrap.createInjector(new ToolsModule(logger), new DbImportModule()); + + validateDbImportConfiguration(config, injector); + + try { + injector.getInstance(DbImportAction.class).execute(config); + } catch (Exception ex) { + Throwable th = Util.unwindException(ex); + + String message = "Error importing database schema"; + + if (th.getLocalizedMessage() != null) { + message += ": " + th.getLocalizedMessage(); + } + + getLog().error(message); + throw new MojoExecutionException(message, th); + } + } + } catch (MalformedURLException e) { + getLog().error(e); + throw new MojoExecutionException(e.getMessage(), e); + } catch (IOException e) { + getLog().error(e); + throw new MojoExecutionException(e.getMessage(), e); + } + } } } @@ -349,6 +414,7 @@ public class DbImporterMojo extends AbstractMojo { private String includeTables; public void setIncludeTables(String includeTables) { + isReverseEngineeringDefined = true; filterBuilder.includeTables(includeTables); } @@ -361,10 +427,12 @@ public class DbImporterMojo extends AbstractMojo { private String excludeTables; public void setExcludeTables(String excludeTables) { + isReverseEngineeringDefined = true; filterBuilder.excludeTables(excludeTables); } public void addSchema(Schema schema) { + isReverseEngineeringDefined = true; reverseEngineering.addSchema(schema); } @@ -377,6 +445,8 @@ public class DbImporterMojo extends AbstractMojo { private Catalog catalog[]; public void addCatalog(Catalog catalog) { + isReverseEngineeringDefined = true; + if (catalog != null) { if (catalog.isEmptyContainer()) { filterBuilder.catalog(catalog.getName()); @@ -391,6 +461,9 @@ public class DbImporterMojo extends AbstractMojo { } public void setReverseEngineering(ReverseEngineering reverseEngineering) { + isReverseEngineeringDefined = true; this.reverseEngineering = reverseEngineering; } } + + http://git-wip-us.apache.org/repos/asf/cayenne/blob/b5bfbd5f/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 7365a6b..7f60aa1 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 @@ -296,6 +296,7 @@ public class DbImporterMojoTest extends AbstractMojoTestCase { DbImportConfiguration parameters = cdbImport.toParameters(); prepareDatabase(name, parameters); + cdbImport.setIsReverseEngineeringDefined(true); try { cdbImport.execute(); verifyResult(mapFile, mapFileCopy);