Author: kmenard
Date: Wed Apr 15 22:04:57 2009
New Revision: 765394

URL: http://svn.apache.org/viewvc?rev=765394&view=rev
Log:
CAY-1029: maven2 plugin to reverse engineer database

Allow specifying the naming strategy to use for ObjEntity mapping.

Modified:
    
cayenne/main/trunk/framework/maven-cayenne-plugin/src/main/java/org/apache/cayenne/tools/DbImporterMojo.java

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=765394&r1=765393&r2=765394&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
 Wed Apr 15 22:04:57 2009
@@ -7,6 +7,7 @@
 import org.apache.cayenne.map.DbEntity;
 import org.apache.cayenne.map.ObjEntity;
 import org.apache.cayenne.map.MapLoader;
+import org.apache.cayenne.map.naming.NamingStrategy;
 import org.apache.cayenne.access.DbLoader;
 import org.apache.cayenne.access.DbLoaderDelegate;
 import org.apache.cayenne.dba.DbAdapter;
@@ -98,6 +99,16 @@
     private boolean meaningfulPk;
 
     /**
+     * Java class implementing org.apache.cayenne.map.naming.NamingStrategy.
+     * This is used to specify how ObjEntities will be mapped from the 
imported DB schema.
+     *
+     * The default is a basic naming strategy.
+     *
+     * @parameter expression="${cdbimport.namingStrategy}"
+     */
+    private String namingStrategy;
+
+    /**
      * Java class implementing org.apache.cayenne.dba.DbAdapter.
      * While this attribute is optional (a generic JdbcAdapter is used if not 
set),
      * it is highly recommended to specify correct target adapter.
@@ -152,10 +163,10 @@
 
         logger = new MavenLogger(this);
 
-        logger.info(String.format("connection settings - [driver: %s, url: %s, 
username: %s, password: %s]", driver, url, username, password));
+        logger.debug(String.format("connection settings - [driver: %s, url: 
%s, username: %s, password: %s]", driver, url, username, password));
 
-        logger.info(String.format("importer options - [map: %s, 
overwriteExisting: %s, schemaName: %s, tablePattern: %s, importProcedures: %s, 
procedurePattern: %s, meaningfulPk: %s]",
-                map, overwriteExisting, schemaName, tablePattern, 
importProcedures, procedurePattern, meaningfulPk));
+        logger.info(String.format("importer options - [map: %s, 
overwriteExisting: %s, schemaName: %s, tablePattern: %s, importProcedures: %s, 
procedurePattern: %s, meaningfulPk: %s, namingStrategy: %s]",
+                map, overwriteExisting, schemaName, tablePattern, 
importProcedures, procedurePattern, meaningfulPk, namingStrategy));
 
         try {
             final DbAdapter adapterInst = (adapter == null) ? new JdbcAdapter()
@@ -166,10 +177,15 @@
 
             // Load the data map and run the db importer.
             final DbLoader loader = new DbLoader(dataSource.getConnection(), 
adapterInst, new LoaderDelegate());
+            loader.setCreatingMeaningfulPK(meaningfulPk);
+
+            if (namingStrategy != null) {
+                final NamingStrategy namingStrategyInst = (NamingStrategy) 
Class.forName(namingStrategy).newInstance();
+                loader.setNamingStrategy(namingStrategyInst);
+            }
 
             mapFile = new File(map);
             final DataMap dataMap = mapFile.exists() ? loadDataMap() : new 
DataMap();
-            loader.setCreatingMeaningfulPK(meaningfulPk);
             loader.loadDataMapFromDB(schemaName, tablePattern, dataMap);
 
             for (ObjEntity addedObjEntity : addedObjEntities) {


Reply via email to