Repository: cayenne
Updated Branches:
  refs/heads/master 2c06db649 -> 1ab1caa9f


CAY-1946 CDbimport improvements

    fixing DataMap initialization sequence to solve defaultPackage issue
    test for default package


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

Branch: refs/heads/master
Commit: 1ab1caa9fd999ccc1abbffb3b1d42bc3e61573a2
Parents: 2c06db6
Author: aadamchik <aadamc...@apache.org>
Authored: Mon Dec 1 17:26:59 2014 +0300
Committer: aadamchik <aadamc...@apache.org>
Committed: Mon Dec 1 17:26:59 2014 +0300

----------------------------------------------------------------------
 .../org/apache/cayenne/access/DbLoader.java     | 66 +++++++-------------
 .../access/loader/DbLoaderConfiguration.java    |  2 +-
 .../java/org/apache/cayenne/merge/DbMerger.java | 28 ++++-----
 .../cayenne/tools/dbimport/DbImportAction.java  | 27 ++++----
 .../tools/dbimport/DbImportActionTest.java      | 58 ++++++++++-------
 .../modeler/dialog/db/DbLoaderHelper.java       |  8 +--
 .../apache/cayenne/tools/DbImporterMojo.java    | 15 ++---
 .../tools/DbImporterMojoConfigurationTest.java  | 16 +++--
 .../cayenne/tools/DbImporterMojoTest.java       |  4 ++
 .../tools/config/pom-default-package.xml        | 36 +++++++++++
 .../tools/dbimport/testDefaultPackage-pom.xml   | 42 +++++++++++++
 .../dbimport/testDefaultPackage.map.xml-result  | 52 +++++++++++++++
 .../tools/dbimport/testDefaultPackage.sql       | 40 ++++++++++++
 13 files changed, 280 insertions(+), 114 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cayenne/blob/1ab1caa9/cayenne-server/src/main/java/org/apache/cayenne/access/DbLoader.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/DbLoader.java 
b/cayenne-server/src/main/java/org/apache/cayenne/access/DbLoader.java
index 8e37da1..d759213 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/access/DbLoader.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/access/DbLoader.java
@@ -703,19 +703,15 @@ public class DbLoader {
      *             method that supports catalogs.
      */
     @Deprecated
-    public DataMap loadDataMapFromDB(String schemaPattern, String 
tablePattern, DataMap dataMap) throws SQLException {
+       public DataMap loadDataMapFromDB(String schemaPattern, String 
tablePattern, DataMap dataMap) throws SQLException {
 
-        String[] types = getDefaultTableTypes();
-        if (types.length == 0) {
-            throw new SQLException("No supported table types found.");
-        }
+               DbLoaderConfiguration configuration = new 
DbLoaderConfiguration();
+               configuration.setFiltersConfig(new FiltersConfig(new 
EntityFilters(new DbPath(null, schemaPattern),
+                               include(tablePattern), TRUE, NULL)));
 
-        DbLoaderConfiguration configuration = new DbLoaderConfiguration();
-        configuration.setFiltersConfig(new FiltersConfig(new EntityFilters(
-                new DbPath(null, schemaPattern), include(tablePattern), TRUE, 
NULL)));
-        load(dataMap, configuration, types);
-        return dataMap;
-    }
+               load(dataMap, configuration);
+               return dataMap;
+       }
 
     /**
      * Performs database reverse engineering and generates DataMap object that
@@ -734,8 +730,9 @@ public class DbLoader {
         DbLoaderConfiguration config = new DbLoaderConfiguration();
         config.setFiltersConfig(new FiltersConfig(new EntityFilters(
                 new DbPath(null, schemaPattern), 
transformPatternToFilter(tablePattern), TRUE, NULL)));
-
-        load(dataMap, config, tableTypes);
+        config.setTableTypes(tableTypes);
+        
+        load(dataMap, config);
         return dataMap;
     }
 
@@ -750,42 +747,27 @@ public class DbLoader {
     }
 
     /**
-     * Performs database reverse engineering to match the specified catalog,
-     * schema, table name and table type patterns and fills the specified
+     * Performs database reverse engineering based on the specified config 
+     * and fills the specified
      * DataMap object with DB and object mapping info.
-     * 
+     *
      * @since 4.0
      */
-    public void load(DataMap dataMap, DbLoaderConfiguration config, String... 
tableTypes) throws SQLException {
-
-        List<DbEntity> entities = loadDbEntities(dataMap, config, 
getTables(config, tableTypes));
-
-        if (entities != null) {
-            loadDbRelationships(dataMap, config, entities);
-            loadObjEntities(dataMap, config, entities);
+       public void load(DataMap dataMap, DbLoaderConfiguration config) throws 
SQLException {
 
-            flattenManyToManyRelationships(dataMap);
-            fireObjEntitiesAddedEvents(dataMap);
-        }
-    }
-
-    /**
-     * Performs database reverse engineering to match the specified catalog,
-     * schema, table name and table type patterns and fills the specified
-     * DataMap object with DB and object mapping info.
-     *
-     * @since 3.2
-     */
-    public DataMap load(DbLoaderConfiguration config) throws SQLException {
+               String[] tableTypes = config.getTableTypes() == null ? 
this.getDefaultTableTypes() : config.getTableTypes();
+               List<DbEntity> entities = loadDbEntities(dataMap, config, 
getTables(config, tableTypes));
 
-        DataMap dataMap = new DataMap();
-        String[] tableTypes = config.getTableTypes() == null ? 
this.getDefaultTableTypes() : config.getTableTypes();
+               if (entities != null) {
+                       loadDbRelationships(dataMap, config, entities);
+                       loadObjEntities(dataMap, config, entities);
 
-        load(dataMap, config, tableTypes);
-        loadProcedures(dataMap, config);
+                       flattenManyToManyRelationships(dataMap);
+                       fireObjEntitiesAddedEvents(dataMap);
+               }
 
-        return dataMap;
-    }
+               loadProcedures(dataMap, config);
+       }
 
     /**
      * Loads database stored procedures into the DataMap.

http://git-wip-us.apache.org/repos/asf/cayenne/blob/1ab1caa9/cayenne-server/src/main/java/org/apache/cayenne/access/loader/DbLoaderConfiguration.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/access/loader/DbLoaderConfiguration.java
 
b/cayenne-server/src/main/java/org/apache/cayenne/access/loader/DbLoaderConfiguration.java
index 461c687..6c6a628 100644
--- 
a/cayenne-server/src/main/java/org/apache/cayenne/access/loader/DbLoaderConfiguration.java
+++ 
b/cayenne-server/src/main/java/org/apache/cayenne/access/loader/DbLoaderConfiguration.java
@@ -24,7 +24,7 @@ import org.apache.cayenne.access.loader.filters.FilterFactory;
 import org.apache.cayenne.access.loader.filters.FiltersConfig;
 
 /**
- * @since 3.2.
+ * @since 4.0
  */
 public class DbLoaderConfiguration {
 

http://git-wip-us.apache.org/repos/asf/cayenne/blob/1ab1caa9/cayenne-server/src/main/java/org/apache/cayenne/merge/DbMerger.java
----------------------------------------------------------------------
diff --git 
a/cayenne-server/src/main/java/org/apache/cayenne/merge/DbMerger.java 
b/cayenne-server/src/main/java/org/apache/cayenne/merge/DbMerger.java
index 31cb65c..f036511 100644
--- a/cayenne-server/src/main/java/org/apache/cayenne/merge/DbMerger.java
+++ b/cayenne-server/src/main/java/org/apache/cayenne/merge/DbMerger.java
@@ -18,12 +18,24 @@
  */
 package org.apache.cayenne.merge;
 
+import java.sql.Connection;
+import java.sql.SQLException;
+import java.sql.Types;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Set;
+
+import javax.sql.DataSource;
+
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.access.DataNode;
 import org.apache.cayenne.access.DbLoader;
 import org.apache.cayenne.access.loader.DbLoaderConfiguration;
 import org.apache.cayenne.access.loader.DefaultDbLoaderDelegate;
-import org.apache.cayenne.access.loader.NameFilter;
 import org.apache.cayenne.dba.DbAdapter;
 import org.apache.cayenne.map.Attribute;
 import org.apache.cayenne.map.DataMap;
@@ -33,18 +45,6 @@ import org.apache.cayenne.map.DbJoin;
 import org.apache.cayenne.map.DbRelationship;
 import org.apache.cayenne.map.DetectedDbEntity;
 
-import javax.sql.DataSource;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.sql.Types;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-
 /**
  * Traverse a {@link DataNode} and a {@link DataMap} and create a group of
  * {@link MergerToken}s to alter the {@link DataNode} data store to match the
@@ -153,7 +153,7 @@ public class DbMerger {
     private DataMap loadDataMapFromDb(DbLoader dbLoader, DbLoaderConfiguration 
config) {
         DataMap detectedDataMap = new DataMap();
         try {
-            dbLoader.load(detectedDataMap, config, (String[]) null);
+            dbLoader.load(detectedDataMap, config);
         } catch (SQLException e) {
             // TODO log
         }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/1ab1caa9/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DbImportAction.java
----------------------------------------------------------------------
diff --git 
a/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DbImportAction.java
 
b/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DbImportAction.java
index bb94fcd..8499b20 100644
--- 
a/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DbImportAction.java
+++ 
b/cayenne-tools/src/main/java/org/apache/cayenne/tools/dbimport/DbImportAction.java
@@ -81,7 +81,7 @@ public class DbImportAction {
 
     public void execute(DbImportConfiguration config) throws Exception {
 
-        if (logger.isInfoEnabled()) {
+        if (logger.isDebugEnabled()) {
             logger.debug("DB connection: " + config.getDataSourceInfo());
         }
 
@@ -184,19 +184,18 @@ public class DbImportAction {
         projectSaver.save(project);
     }
 
-    private DataMap load(DbImportConfiguration config, DbAdapter adapter, 
Connection connection) throws Exception {
-        DataMap dataMap = config.createDataMap();
-
-        try {
-            DbLoader loader = config.createLoader(adapter, connection, 
config.createLoaderDelegate());
+       private DataMap load(DbImportConfiguration config, DbAdapter adapter, 
Connection connection) throws Exception {
+               DataMap dataMap = config.createDataMap();
 
-            dataMap = loader.load(config.getDbLoaderConfig());
-        } finally {
-            if (connection != null) {
-                connection.close();
-            }
-        }
+               try {
+                       DbLoader loader = config.createLoader(adapter, 
connection, config.createLoaderDelegate());
+                       loader.load(dataMap, config.getDbLoaderConfig());
+               } finally {
+                       if (connection != null) {
+                               connection.close();
+                       }
+               }
 
-        return dataMap;
-    }
+               return dataMap;
+       }
 }

http://git-wip-us.apache.org/repos/asf/cayenne/blob/1ab1caa9/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DbImportActionTest.java
----------------------------------------------------------------------
diff --git 
a/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DbImportActionTest.java
 
b/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DbImportActionTest.java
index 72d1df4..a2fb0f1 100644
--- 
a/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DbImportActionTest.java
+++ 
b/cayenne-tools/src/test/java/org/apache/cayenne/tools/dbimport/DbImportActionTest.java
@@ -18,10 +18,36 @@
  */
 package org.apache.cayenne.tools.dbimport;
 
+import static org.apache.cayenne.merge.builders.ObjectMother.dbAttr;
+import static org.apache.cayenne.merge.builders.ObjectMother.dbEntity;
+import static org.apache.cayenne.merge.builders.ObjectMother.objAttr;
+import static org.apache.cayenne.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;
+
+import java.io.File;
+import java.net.URL;
+import java.sql.Connection;
+import java.sql.SQLException;
+
+import javax.sql.DataSource;
+
 import org.apache.cayenne.CayenneRuntimeException;
 import org.apache.cayenne.access.DbLoader;
-import org.apache.cayenne.access.loader.DbLoaderConfiguration;
 import org.apache.cayenne.access.DbLoaderDelegate;
+import org.apache.cayenne.access.loader.DbLoaderConfiguration;
 import org.apache.cayenne.configuration.DataNodeDescriptor;
 import org.apache.cayenne.configuration.server.DataSourceFactory;
 import org.apache.cayenne.configuration.server.DbAdapterFactory;
@@ -43,16 +69,6 @@ import org.apache.commons.logging.Log;
 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 static org.apache.cayenne.merge.builders.ObjectMother.*;
-import static org.junit.Assert.*;
-import static org.mockito.Mockito.*;
-
 public class DbImportActionTest {
 
     public static final File FILE_STUB = new File("") {
@@ -72,8 +88,8 @@ public class DbImportActionTest {
 
         DbLoader dbLoader = new DbLoader(null, null, null) {
             @Override
-            public DataMap load(DbLoaderConfiguration config) throws 
SQLException {
-                return new DataMapBuilder(new 
DataMap()).withDbEntities(2).build();
+            public void load(DataMap dataMap, DbLoaderConfiguration config) 
throws SQLException {
+                 new DataMapBuilder(dataMap).withDbEntities(2).build();
             }
 
             @Override
@@ -113,8 +129,7 @@ public class DbImportActionTest {
     public void testImportWithFieldChanged() throws Exception {
         DbLoader dbLoader = new DbLoader(null, null, null) {
             @Override
-            public DataMap load(DbLoaderConfiguration config) throws 
SQLException {
-                DataMap dataMap = new DataMap("dataMap");
+            public void load(DataMap dataMap, DbLoaderConfiguration config) 
throws SQLException {
                 new DataMapBuilder(dataMap).with(
                         dbEntity("ARTGROUP").attributes(
                                 dbAttr("GROUP_ID").typeInt().primaryKey(),
@@ -125,8 +140,6 @@ public class DbImportActionTest {
                         objEntity("org.apache.cayenne.testdo.testmap", 
"ArtGroup", "ARTGROUP").attributes(
                                 
objAttr("name").type(String.class).dbPath("NAME")
                 ));
-
-                return dataMap;
             }
 
             @Override
@@ -185,13 +198,11 @@ public class DbImportActionTest {
     public void testImportWithoutChanges() throws Exception {
         DbLoader dbLoader = new DbLoader(null, null, null) {
             @Override
-            public DataMap load(DbLoaderConfiguration config) throws 
SQLException {
-                DataMap dataMap = new DataMap("dataMap");
+            public void load(DataMap dataMap, DbLoaderConfiguration config) 
throws SQLException {
                 new DataMapBuilder(dataMap).with(
                         dbEntity("ARTGROUP").attributes(
                                 dbAttr("NAME").typeVarchar(100).mandatory()
                         ));
-                return dataMap;
             }
 
             @Override
@@ -248,7 +259,12 @@ public class DbImportActionTest {
 
         DbImportAction action = buildDbImportAction(projectSaver, mapLoader);
 
-        action.execute(params);
+               try {
+                       action.execute(params);
+                       fail();
+               } catch (SQLException e) {
+                       // expected
+               }
 
         verify(projectSaver, never()).save(any(Project.class));
         verify(mapLoader, never()).loadDataMap(any(InputSource.class));

http://git-wip-us.apache.org/repos/asf/cayenne/blob/1ab1caa9/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 4776507..64fc8c6 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
@@ -408,15 +408,11 @@ public class DbLoaderHelper {
             loadStatusNote = "Importing tables...";
             try {
                 loader.setCreatingMeaningfulPK(meaningfulPk);
-                String[] types = loader.getDefaultTableTypes();
-                if (types.length == 0) {
-                    throw new SQLException("No supported table types found.");
-                }
-
+               
                 DbLoaderConfiguration configuration = new 
DbLoaderConfiguration();
                 configuration.setFiltersConfig(new FiltersConfigBuilder(new 
ReverseEngineering())
                         .add(filterBuilder.build()).filtersConfig());
-                loader.load(dataMap, configuration, types);
+                loader.load(dataMap, configuration);
 
                 /**
                  * Update default rules for relationships

http://git-wip-us.apache.org/repos/asf/cayenne/blob/1ab1caa9/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 5354f9d..4fcf401 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
@@ -19,26 +19,19 @@
 package org.apache.cayenne.tools;
 
 import java.io.File;
-import java.util.ArrayList;
-import java.util.List;
 
 import org.apache.cayenne.access.loader.filters.EntityFilters;
 import org.apache.cayenne.access.loader.filters.FilterFactory;
-import org.apache.cayenne.tools.dbimport.config.Catalog;
-import org.apache.cayenne.tools.dbimport.config.ExcludeColumn;
-import org.apache.cayenne.tools.dbimport.config.ExcludeProcedure;
-import org.apache.cayenne.tools.dbimport.config.FiltersConfigBuilder;
-import org.apache.cayenne.tools.dbimport.config.IncludeColumn;
-import org.apache.cayenne.tools.dbimport.config.IncludeProcedure;
-import org.apache.cayenne.tools.dbimport.config.IncludeTable;
-import org.apache.cayenne.tools.dbimport.config.ReverseEngineering;
-import org.apache.cayenne.tools.dbimport.config.Schema;
 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.tools.dbimport.config.Catalog;
+import org.apache.cayenne.tools.dbimport.config.FiltersConfigBuilder;
+import org.apache.cayenne.tools.dbimport.config.ReverseEngineering;
+import org.apache.cayenne.tools.dbimport.config.Schema;
 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/1ab1caa9/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoConfigurationTest.java
----------------------------------------------------------------------
diff --git 
a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoConfigurationTest.java
 
b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoConfigurationTest.java
index 49fd23a..939f185 100644
--- 
a/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoConfigurationTest.java
+++ 
b/plugins/maven-cayenne-plugin/src/test/java/org/apache/cayenne/tools/DbImporterMojoConfigurationTest.java
@@ -18,16 +18,16 @@
  ****************************************************************/
 package org.apache.cayenne.tools;
 
-import static 
org.apache.cayenne.tools.dbimport.config.DefaultReverseEngineeringLoaderTest.*;
-import static org.junit.Assert.assertEquals;
+import static 
org.apache.cayenne.tools.dbimport.config.DefaultReverseEngineeringLoaderTest.assertCatalog;
+import static 
org.apache.cayenne.tools.dbimport.config.DefaultReverseEngineeringLoaderTest.assertCatalogAndSchema;
+import static 
org.apache.cayenne.tools.dbimport.config.DefaultReverseEngineeringLoaderTest.assertFlat;
+import static 
org.apache.cayenne.tools.dbimport.config.DefaultReverseEngineeringLoaderTest.assertSchemaContent;
 
+import org.apache.cayenne.tools.dbimport.DbImportConfiguration;
 import org.apache.cayenne.tools.dbimport.config.Schema;
 import org.apache.maven.plugin.testing.AbstractMojoTestCase;
 import org.junit.Test;
 
-/**
- * @since 3.2.
- */
 public class DbImporterMojoConfigurationTest extends AbstractMojoTestCase {
 
     @Test
@@ -47,6 +47,12 @@ public class DbImporterMojoConfigurationTest extends 
AbstractMojoTestCase {
     public void testLoadCatalogAndSchema() throws Exception {
         
assertCatalogAndSchema(getCdbImport("pom-catalog-and-schema.xml").getReverseEngineering());
     }
+    
+       @Test
+       public void testDefaultPackage() throws Exception {
+               DbImportConfiguration config = 
getCdbImport("pom-default-package.xml").toParameters();
+               assertEquals("com.example.test", config.getDefaultPackage());
+       }
 
     @Test
     public void testLoadFlat() throws Exception {

http://git-wip-us.apache.org/repos/asf/cayenne/blob/1ab1caa9/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 9a36e60..3b7e7e2 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
@@ -107,6 +107,10 @@ public class DbImporterMojoTest extends 
AbstractMojoTestCase {
        public void testViewsExclude() throws Exception {
                test("testViewsExclude");
        }
+       
+       public void testDefaultPackage() throws Exception {
+               test("testDefaultPackage");
+       }
 
        private void test(String name) throws Exception {
                DbImporterMojo cdbImport = getCdbImport("dbimport/" + name + 
"-pom.xml");

http://git-wip-us.apache.org/repos/asf/cayenne/blob/1ab1caa9/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-default-package.xml
----------------------------------------------------------------------
diff --git 
a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-default-package.xml
 
b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-default-package.xml
new file mode 100644
index 0000000..81acfb3
--- /dev/null
+++ 
b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/config/pom-default-package.xml
@@ -0,0 +1,36 @@
+<?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.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+       http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+
+    <build>
+        <plugins>
+            <plugin>
+                <artifactId>maven-cayenne-plugin</artifactId>
+                <configuration>
+                    
<map>target/test/org/apache/cayenne/tools/dbimporter-map1.map.xml</map>
+                    <defaultPackage>com.example.test</defaultPackage>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/1ab1caa9/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage-pom.xml
----------------------------------------------------------------------
diff --git 
a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage-pom.xml
 
b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage-pom.xml
new file mode 100644
index 0000000..10d85e6
--- /dev/null
+++ 
b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage-pom.xml
@@ -0,0 +1,42 @@
+<?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.
+  -->
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
+       http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+
+       <name>DbImporterMojo Test1</name>       
+
+       <build>
+               <plugins>
+                       <plugin>
+                               <artifactId>maven-cayenne-plugin</artifactId>
+                               <configuration>
+                                       
<map>target/test-classes/org/apache/cayenne/tools/dbimport/testDefaultPackage.map.xml</map>
+                    <defaultPackage>com.example.test</defaultPackage>
+                    <driver>org.apache.derby.jdbc.EmbeddedDriver</driver>
+                    <url>jdbc:derby:memory:DbImporterMojoTest;create=true</url>
+
+                    <schema>SCHEMA_01</schema>
+                               </configuration>
+                       </plugin>
+               </plugins>
+       </build>
+
+</project>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/1ab1caa9/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.map.xml-result
----------------------------------------------------------------------
diff --git 
a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.map.xml-result
 
b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.map.xml-result
new file mode 100644
index 0000000..3624e3c
--- /dev/null
+++ 
b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.map.xml-result
@@ -0,0 +1,52 @@
+<?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.
+-->
+<data-map xmlns="http://cayenne.apache.org/schema/7/modelMap";
+          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+          xsi:schemaLocation="http://cayenne.apache.org/schema/7/modelMap 
http://cayenne.apache.org/schema/7/modelMap.xsd";
+          project-version="7">
+    <property name="defaultPackage" value="com.example.test"/>
+    <property name="defaultSchema" value="SCHEMA_01"/>
+    <db-entity name="CHILD" schema="SCHEMA_01">
+        <db-attribute name="COL3" type="DECIMAL" length="10" scale="2"/>
+        <db-attribute name="COL4" type="VARCHAR" length="25"/>
+        <db-attribute name="COL5" type="DATE" length="10"/>
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true" length="10"/>
+        <db-attribute name="PARENT_ID" type="CHAR" length="25"/>
+    </db-entity>
+    <db-entity name="PARENT" schema="SCHEMA_01">
+        <db-attribute name="COL2" type="CHAR" length="25"/>
+        <db-attribute name="COL3" type="DECIMAL" length="10" scale="2"/>
+        <db-attribute name="COL4" type="VARCHAR" length="25"/>
+        <db-attribute name="COL5" type="DATE" length="10"/>
+        <db-attribute name="ID" type="INTEGER" isPrimaryKey="true" 
isMandatory="true" length="10"/>
+    </db-entity>
+    <obj-entity name="Child" className="com.example.test.Child" 
dbEntityName="CHILD">
+        <obj-attribute name="col3" type="java.math.BigDecimal" 
db-attribute-path="COL3"/>
+        <obj-attribute name="col4" type="java.lang.String" 
db-attribute-path="COL4"/>
+        <obj-attribute name="col5" type="java.util.Date" 
db-attribute-path="COL5"/>
+        <obj-attribute name="parentId" type="java.lang.String" 
db-attribute-path="PARENT_ID"/>
+    </obj-entity>
+    <obj-entity name="Parent" className="com.example.test.Parent" 
dbEntityName="PARENT">
+        <obj-attribute name="col2" type="java.lang.String" 
db-attribute-path="COL2"/>
+        <obj-attribute name="col3" type="java.math.BigDecimal" 
db-attribute-path="COL3"/>
+        <obj-attribute name="col4" type="java.lang.String" 
db-attribute-path="COL4"/>
+        <obj-attribute name="col5" type="java.util.Date" 
db-attribute-path="COL5"/>
+    </obj-entity>
+</data-map>

http://git-wip-us.apache.org/repos/asf/cayenne/blob/1ab1caa9/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.sql
----------------------------------------------------------------------
diff --git 
a/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.sql
 
b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.sql
new file mode 100644
index 0000000..279065c
--- /dev/null
+++ 
b/plugins/maven-cayenne-plugin/src/test/resources/org/apache/cayenne/tools/dbimport/testDefaultPackage.sql
@@ -0,0 +1,40 @@
+--  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.
+
+CREATE SCHEMA schema_01;
+SET SCHEMA schema_01;
+
+CREATE TABLE schema_01.Parent (
+  id INTEGER NOT NULL,
+  COL2 CHAR(25),
+  COL3 DECIMAL(10,2),
+  COL4 VARCHAR(25),
+  COL5 DATE,
+
+  PRIMARY KEY (id),
+  UNIQUE (COL3)
+);
+
+CREATE TABLE schema_01.Child (
+  id INTEGER NOT NULL,
+  Parent_id CHAR(25),
+  COL3 DECIMAL(10,2),
+  COL4 VARCHAR(25),
+  COL5 DATE,
+
+  PRIMARY KEY (id)
+);

Reply via email to