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 2012/11/09 16:30:41 UTC

svn commit: r1407494 - in /cayenne/main/trunk: docs/doc/src/main/resources/ framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/ framework/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/

Author: aadamchik
Date: Fri Nov  9 15:30:40 2012
New Revision: 1407494

URL: http://svn.apache.org/viewvc?rev=1407494&view=rev
Log:
CAY-1762 cdbimport improvements: Support for "defaultPackage" parameter, as the new DataMaps ends up placing entities in the root package

Modified:
    cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
    cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbLoaderTest.java
    cayenne/main/trunk/framework/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java

Modified: cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt?rev=1407494&r1=1407493&r2=1407494&view=diff
==============================================================================
--- cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt (original)
+++ cayenne/main/trunk/docs/doc/src/main/resources/RELEASE-NOTES.txt Fri Nov  9 15:30:40 2012
@@ -26,6 +26,7 @@ CAY-1754 Modeler suggested URL for SQLSe
 CAY-1759 cdbimport improvements: add 'catalog', rename 'schemaName' to 'schema'
 CAY-1760 cdbimport improvements: Default adapter (if none specified) must be AutoAdapter, not JdbcAdapter 
 CAY-1761 cdbimport improvements: DbLoader must reverse engineer PK auto-increment state. 
+CAY-1762 cdbimport improvements: Support for "defaultPackage" parameter, as the new DataMaps ends up placing entities in the root package 
 
 Bug Fixes:
 

Modified: cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbLoaderTest.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbLoaderTest.java?rev=1407494&r1=1407493&r2=1407494&view=diff
==============================================================================
--- cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbLoaderTest.java (original)
+++ cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/test/java/org/apache/cayenne/access/DbLoaderTest.java Fri Nov  9 15:30:40 2012
@@ -144,6 +144,8 @@ public class DbLoaderTest extends Server
         boolean supportsFK = accessStackAdapter.supportsFKConstraints();
 
         DataMap map = new DataMap();
+        map.setDefaultPackage("foo.x");
+        
         String tableLabel = adapter.tableTypeForTable();
 
         // *** TESTING THIS ***
@@ -195,20 +197,7 @@ public class DbLoaderTest extends Server
         loader.setCreatingMeaningfulPK(false);
         loader.loadObjEntities(map);
 
-        ObjEntity ae = map.getObjEntity("Artist");
-        assertNotNull(ae);
-        assertEquals("Artist", ae.getName());
-        // assert primary key is not an attribute
-        assertNull(ae.getAttribute("artistId"));
-        if (supportsLobs) {
-            assertLobObjEntities(map);
-        }
-
-        if (supportsFK) {
-            Collection<?> rels1 = ae.getRelationships();
-            assertNotNull(rels1);
-            assertTrue(rels1.size() > 0);
-        }
+        assertObjEntities(map);
 
         // now when the map is loaded, test
         // various things
@@ -258,6 +247,31 @@ public class DbLoaderTest extends Server
         }
     }
 
+    private void assertObjEntities(DataMap map) {
+
+        boolean supportsLobs = accessStackAdapter.supportsLobs();
+        boolean supportsFK = accessStackAdapter.supportsFKConstraints();
+
+        ObjEntity ae = map.getObjEntity("Artist");
+        assertNotNull(ae);
+        assertEquals("Artist", ae.getName());
+        
+        // assert primary key is not an attribute
+        assertNull(ae.getAttribute("artistId"));
+        
+        if (supportsLobs) {
+            assertLobObjEntities(map);
+        }
+
+        if (supportsFK) {
+            Collection<?> rels1 = ae.getRelationships();
+            assertNotNull(rels1);
+            assertTrue(rels1.size() > 0);
+        }
+        
+        assertEquals("foo.x.Artist", ae.getClassName());
+    }
+
     private void assertLobDbEntities(DataMap map) {
         DbEntity blobEnt = getDbEntity(map, "BLOB_TEST");
         assertNotNull(blobEnt);

Modified: cayenne/main/trunk/framework/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java
URL: http://svn.apache.org/viewvc/cayenne/main/trunk/framework/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java?rev=1407494&r1=1407493&r2=1407494&view=diff
==============================================================================
--- cayenne/main/trunk/framework/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java (original)
+++ cayenne/main/trunk/framework/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java Fri Nov  9 15:30:40 2012
@@ -67,6 +67,16 @@ public class DbImporterMojo extends Abst
     private File map;
 
     /**
+     * A default package for ObjEntity Java classes. If not specified, and the
+     * existing DataMap already has the default package, the existing package
+     * will be used.
+     * 
+     * @parameter expression="${cdbimport.defaultPackage}"
+     * @since 3.2
+     */
+    private String defaultPackage;
+
+    /**
      * Indicates whether existing DB and object entities should be overwritten.
      * This is an all-or-nothing setting. If you need finer granularity, please
      * use the Cayenne Modeler.
@@ -248,6 +258,13 @@ public class DbImporterMojo extends Abst
         }
 
         DataMap dataMap = map.exists() ? loadDataMap() : new DataMap();
+
+        // do not override default package of existsing DataMap unless it is
+        // explicitly requested by the plugin caller
+        if (defaultPackage != null && defaultPackage.length() > 0) {
+            dataMap.setDefaultPackage(defaultPackage);
+        }
+
         String[] types = loader.getDefaultTableTypes();
         loader.load(dataMap, catalog, schema, tablePattern, types);