Repository: empire-db
Updated Branches:
  refs/heads/master 98059be83 -> 6bcd642fb


EMPIREDB-255
dependencies corrected and comments improved

Project: http://git-wip-us.apache.org/repos/asf/empire-db/repo
Commit: http://git-wip-us.apache.org/repos/asf/empire-db/commit/6bcd642f
Tree: http://git-wip-us.apache.org/repos/asf/empire-db/tree/6bcd642f
Diff: http://git-wip-us.apache.org/repos/asf/empire-db/diff/6bcd642f

Branch: refs/heads/master
Commit: 6bcd642fbe362b939fd67db109a4cb27ca331a93
Parents: 98059be
Author: Rainer Döbele <[email protected]>
Authored: Fri Jun 9 16:17:47 2017 +0200
Committer: Rainer Döbele <[email protected]>
Committed: Fri Jun 9 16:17:47 2017 +0200

----------------------------------------------------------------------
 .../apache/empire/db/codegen/CodeGenConfig.java |  6 +-
 .../apache/empire/db/codegen/CodeGenParser.java |  2 +-
 .../empire-db-example-codegen/.gitignore        |  3 +
 .../generate-config.xml                         | 85 ++++++++++++++++++++
 .../empire-db-example-codegen/generate.bat      | 37 +++++++++
 .../empire-db-example-codegen/pom.xml           | 71 +++++++++-------
 .../empire-db-example-codegen/readme.txt        | 13 +++
 .../examples/codegen/ValidatePluginRunTest.java | 54 +++++++------
 .../org/apache/empire/db/maven/CodeGenMojo.java | 57 +++++++++++--
 9 files changed, 263 insertions(+), 65 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/empire-db/blob/6bcd642f/empire-db-codegen/src/main/java/org/apache/empire/db/codegen/CodeGenConfig.java
----------------------------------------------------------------------
diff --git 
a/empire-db-codegen/src/main/java/org/apache/empire/db/codegen/CodeGenConfig.java
 
b/empire-db-codegen/src/main/java/org/apache/empire/db/codegen/CodeGenConfig.java
index 1b8a15b..8c92d95 100644
--- 
a/empire-db-codegen/src/main/java/org/apache/empire/db/codegen/CodeGenConfig.java
+++ 
b/empire-db-codegen/src/main/java/org/apache/empire/db/codegen/CodeGenConfig.java
@@ -18,6 +18,7 @@
  */
 package org.apache.empire.db.codegen;
 
+import org.apache.empire.commons.StringUtils;
 import org.apache.empire.exceptions.ItemNotFoundException;
 import org.apache.empire.exceptions.ObjectNotValidException;
 import org.apache.empire.xml.XMLConfiguration;
@@ -208,7 +209,7 @@ public class CodeGenConfig extends XMLConfiguration {
         * if TRUE record classes should have a getter and setter for each 
field.<br/>
         * Otherwise getters / setters are omitted.
         */
-       private boolean createRecordProperties;
+       private boolean createRecordProperties = false;
        
        /**
         * true if names of tables and views should not be camel-cased
@@ -379,7 +380,8 @@ public class CodeGenConfig extends XMLConfiguration {
        }
 
        public void setDbClassName(String dbClassName) {
-               this.dbClassName = dbClassName;
+           if (StringUtils.isNotEmpty(dbClassName))
+               this.dbClassName = dbClassName;
        }
 
        public String getTableBaseName() {

http://git-wip-us.apache.org/repos/asf/empire-db/blob/6bcd642f/empire-db-codegen/src/main/java/org/apache/empire/db/codegen/CodeGenParser.java
----------------------------------------------------------------------
diff --git 
a/empire-db-codegen/src/main/java/org/apache/empire/db/codegen/CodeGenParser.java
 
b/empire-db-codegen/src/main/java/org/apache/empire/db/codegen/CodeGenParser.java
index e34292c..0f8b749 100644
--- 
a/empire-db-codegen/src/main/java/org/apache/empire/db/codegen/CodeGenParser.java
+++ 
b/empire-db-codegen/src/main/java/org/apache/empire/db/codegen/CodeGenParser.java
@@ -28,7 +28,7 @@ import java.sql.Types;
 import java.util.ArrayList;
 import java.util.List;
 
-import org.apache.commons.lang.StringUtils;
+import org.apache.empire.commons.StringUtils;
 import org.apache.empire.data.DataType;
 import org.apache.empire.db.DBColumn;
 import org.apache.empire.db.DBCommandExpr;

http://git-wip-us.apache.org/repos/asf/empire-db/blob/6bcd642f/empire-db-examples/empire-db-example-codegen/.gitignore
----------------------------------------------------------------------
diff --git a/empire-db-examples/empire-db-example-codegen/.gitignore 
b/empire-db-examples/empire-db-example-codegen/.gitignore
new file mode 100644
index 0000000..ddd6d6d
--- /dev/null
+++ b/empire-db-examples/empire-db-example-codegen/.gitignore
@@ -0,0 +1,3 @@
+/.settings/
+/.classpath
+/.project

http://git-wip-us.apache.org/repos/asf/empire-db/blob/6bcd642f/empire-db-examples/empire-db-example-codegen/generate-config.xml
----------------------------------------------------------------------
diff --git a/empire-db-examples/empire-db-example-codegen/generate-config.xml 
b/empire-db-examples/empire-db-example-codegen/generate-config.xml
new file mode 100644
index 0000000..76fefcd
--- /dev/null
+++ b/empire-db-examples/empire-db-example-codegen/generate-config.xml
@@ -0,0 +1,85 @@
+<?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.
+-->
+<config>
+
+       <properties>
+               <!-- provider name must match the property-section containing 
the connection data -->
+               <jdbcClass>org.hsqldb.jdbcDriver</jdbcClass>
+               
<jdbcURL>jdbc:hsqldb:file:src/test/resources/hsqldb/sample;shutdown=true</jdbcURL>
+               <jdbcUser>sa</jdbcUser>
+               <jdbcPwd></jdbcPwd>
+
+               <!-- Schema options -->
+               <dbCatalog></dbCatalog>
+               <dbSchema></dbSchema>
+               <dbTablePattern></dbTablePattern>
+               <timestampColumn>CREATIONDATE</timestampColumn>
+               
+               <!-- generation options -->
+               <targetFolder>target/generated-sources/java</targetFolder>
+               <packageName>org.apache.empire.db.example</packageName>
+               <dbClassName>MyDatabase</dbClassName>
+               <nestTables>false</nestTables>
+               <nestViews>false</nestViews>
+               <createRecordProperties>true</createRecordProperties>
+               <preserverCharacterCase>false</preserverCharacterCase>
+               <preserveRelationNames>false</preserveRelationNames>
+               
+               <!-- generation options (optional) 
+               <tablePackageName></tablePackageName>
+               <viewPackageName></viewPackageName>
+               <recordPackageName></recordPackageName>
+               <tableBaseName>SampleTable</tableBaseName>
+               <viewBaseName>SampleView</viewBaseName>
+               <recordBaseName>SampleRecord</recordBaseName>
+               <tableNamePrefix></tableNamePrefix>
+               <tableClassPrefix>T_</tableClassPrefix>
+               <tableClassSuffix></tableClassSuffix>
+               <viewNamePrefix></viewNamePrefix>
+               <viewClassPrefix>V_</viewClassPrefix>
+               <viewClassSuffix></viewClassSuffix>
+               <columnNamePrefix></columnNamePrefix>
+               -->
+       </properties>
+       
+       <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/";>
+
+               <appender name="default" 
class="org.apache.log4j.ConsoleAppender">
+                       <!-- layout class="org.apache.log4j.TTCCLayout"/ -->
+                       <layout class="org.apache.log4j.PatternLayout">
+                               <!-- param name="ConversionPattern" 
value="NSB(%c) %-5p %m      at %l%n"/ -->
+                               <param name="ConversionPattern" value="%-5p 
[%d{yyyy/MM/dd HH:mm}]: %m          at %l %n"/>
+                       </layout>
+               </appender>
+       
+               <!-- log detail configuration -->
+               <logger name="org.apache.empire.commons" additivity="false">
+                       <level value="warn"/>
+                       <appender-ref ref="default"/>
+               </logger>
+       
+               <root>
+                       <priority value="info"/>
+                       <appender-ref ref="default"/>
+               </root>
+
+       </log4j:configuration>
+       
+</config>

http://git-wip-us.apache.org/repos/asf/empire-db/blob/6bcd642f/empire-db-examples/empire-db-example-codegen/generate.bat
----------------------------------------------------------------------
diff --git a/empire-db-examples/empire-db-example-codegen/generate.bat 
b/empire-db-examples/empire-db-example-codegen/generate.bat
new file mode 100644
index 0000000..008a03e
--- /dev/null
+++ b/empire-db-examples/empire-db-example-codegen/generate.bat
@@ -0,0 +1,37 @@
+@echo off
+IF [%1%] == [] GOTO INVALID_PARAMS
+IF [%2%] == [] GOTO INVALID_PARAMS
+rem base setting
+set repo=%2%
+set empire-db-version=2.4.7-SNAPSHOT
+set jdbc-jar-path=hsqldb\hsqldb\1.8.0.10\hsqldb-1.8.0.10.jar
+IF [%3%] == [] GOTO CLASSPATH
+set jdbc-jar-path=%3%
+rem Assemble classpath
+:CLASSPATH
+set 
classpath=%repo%\org\apache\empire-db\empire-db\%empire-db-version%\empire-db-%empire-db-version%.jar
+set 
classpath=%classpath%;%repo%\org\apache\empire-db\empire-db-codegen\%empire-db-version%\empire-db-codegen-%empire-db-version%.jar
+set classpath=%classpath%;%repo%\org\slf4j\slf4j-api\1.6.1\slf4j-api-1.6.1.jar
+set 
classpath=%classpath%;%repo%\org\slf4j\slf4j-log4j12\1.6.1\slf4j-log4j12-1.6.1.jar
+set classpath=%classpath%;%repo%\log4j\log4j\1.2.16\log4j-1.2.16.jar
+set 
classpath=%classpath%;%repo%\commons-beanutils\commons-beanutils\1.8.3\commons-beanutils-1.8.3.jar
+set 
classpath=%classpath%;%repo%\commons-logging\commons-logging\1.1.1\commons-logging-1.1.1.jar
+set 
classpath=%classpath%;%repo%\org\apache\velocity\velocity\1.7\velocity-1.7.jar
+set 
classpath=%classpath%;%repo%\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar
+set 
classpath=%classpath%;%repo%\commons-lang\commons-lang\2.4\commons-lang-2.4.jar
+rem The JDBC class libaray
+set classpath=%classpath%;%repo%\%jdbc-jar-path%
+echo Calling code generator
+echo Config-File: %1%
+echo JDBC-jar: %jdbc-jar-path%
+echo Empire-db-version: %empire-db-version%
+java -cp %classpath% org.apache.empire.db.codegen.CodeGenerator %1
+goto done
+:INVALID_PARAMS
+echo. 
+echo Please add your Config-File and the path to your Maven repository
+echo. 
+echo    generate XML_CONFIG_FILE MAVEN_REPO_PATH [PATH_TO_JDBC_JAR]
+echo.
+:DONE
+pause
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/empire-db/blob/6bcd642f/empire-db-examples/empire-db-example-codegen/pom.xml
----------------------------------------------------------------------
diff --git a/empire-db-examples/empire-db-example-codegen/pom.xml 
b/empire-db-examples/empire-db-example-codegen/pom.xml
index e257016..45247ff 100644
--- a/empire-db-examples/empire-db-example-codegen/pom.xml
+++ b/empire-db-examples/empire-db-example-codegen/pom.xml
@@ -16,40 +16,69 @@
        -->
 <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/maven-v4_0_0.xsd";>
        <modelVersion>4.0.0</modelVersion>
-       <groupId>org.apache.empire-db.examples</groupId>
-       <artifactId>empire-db-example-codegen</artifactId>
-       <version>1.0.0-SNAPSHOT</version>
+       <parent>
+               <groupId>org.apache.empire-db</groupId>
+               <artifactId>empire-db-examples</artifactId>
+               <version>2.4.7-SNAPSHOT</version>
+       </parent>
+    <artifactId>empire-db-example-codegen</artifactId>
        <name>Apache Empire-db Maven Codegen Example</name>
-       <description>Example showing the use of empire-db wrapped in a 
webservice</description>
+       <description>Example showing the use of the empire-db codegen maven 
plugin</description>
+    
+       <dependencies>
+        <dependency>
+                       <groupId>org.apache.empire-db</groupId>
+                       <artifactId>empire-db</artifactId>
+               </dependency>
+
+               <dependency>
+                   <groupId>hsqldb</groupId>
+                   <artifactId>hsqldb</artifactId>
+               </dependency> 
+               
+               <!-- test scope -->
+               <dependency>
+                       <groupId>junit</groupId>
+                       <artifactId>junit</artifactId>
+                       <version>4.8.2</version>
+                       <scope>test</scope>
+               </dependency>
+       </dependencies>
 
        <build>
                <plugins>
                        <plugin>
                                <groupId>org.apache.maven.plugins</groupId>
                                <artifactId>maven-compiler-plugin</artifactId>
-                               <version>2.5.1</version>
+                <version>3.1</version>
                                <configuration>
-                                       <source>1.5</source>
-                                       <target>1.5</target>
+                                       <source>1.6</source>
+                                       <target>1.6</target>
                                        <optimize>true</optimize>
                                        <debug>true</debug>
                                </configuration>
                        </plugin>
+            <!-- empire-db-maven-plugin -->
                        <plugin>
                                <groupId>org.apache.empire-db</groupId>
                                <artifactId>empire-db-maven-plugin</artifactId>
-                               <version>2.4.3-SNAPSHOT</version>
+                <version>${project.version}</version>
                                <configuration>
+                                       <!-- either specify a config file -->  
+                                       
<configFile>generate-config.xml</configFile>
+                                       <!-- or provide the parameters directly 
 
                                        
<jdbcClass>org.hsqldb.jdbcDriver</jdbcClass>
                                        
<jdbcURL>jdbc:hsqldb:file:${project.basedir}/src/test/resources/hsqldb/sample;shutdown=true</jdbcURL>
                                        <jdbcUser>sa</jdbcUser>
                                        <jdbcPwd></jdbcPwd>
                                        
<packageName>org.apache.empire.db.example</packageName>
+                                       <dbClassName>MyDatabase</dbClassName>
+                                       -->
                                </configuration>
                                <executions>
                                        <!-- 
                                        We enable the code generation on each 
build. The other option is 
-                                       to leave out this section and call mvn 
empiredb:codegen
+                                       to leave out this section and call mvn 
generate-sources
                                         -->
                                        <execution>
                                                <goals>
@@ -61,32 +90,12 @@
                                        <dependency>
                                                <groupId>hsqldb</groupId>
                                                <artifactId>hsqldb</artifactId>
-                                               <version>1.8.0.10</version>
+                        <version>1.8.0.10</version>
                                        </dependency> 
                                </dependencies>
                        </plugin>
+            
                </plugins>
        </build>
        
-       <dependencies>
-               <dependency>
-                       <groupId>org.apache.empire-db</groupId>
-                       <artifactId>empire-db</artifactId>
-                       <version>2.4.2</version>
-               </dependency>
-               <dependency>
-                   <groupId>hsqldb</groupId>
-                   <artifactId>hsqldb</artifactId>
-                   <version>1.8.0.10</version>
-               </dependency> 
-               
-               <!-- test scope -->
-               <dependency>
-                       <groupId>junit</groupId>
-                       <artifactId>junit</artifactId>
-                       <version>4.8.2</version>
-                       <scope>test</scope>
-               </dependency>
-       </dependencies>
-       
 </project>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/empire-db/blob/6bcd642f/empire-db-examples/empire-db-example-codegen/readme.txt
----------------------------------------------------------------------
diff --git a/empire-db-examples/empire-db-example-codegen/readme.txt 
b/empire-db-examples/empire-db-example-codegen/readme.txt
new file mode 100644
index 0000000..aedb5d8
--- /dev/null
+++ b/empire-db-examples/empire-db-example-codegen/readme.txt
@@ -0,0 +1,13 @@
+
+To Reverse-Engineer an existing database use either of the following two 
methods:
+
+1. Use the code generator Maven plugin: 
+
+> mvn clean generate-sources eclipse:clean eclipse:eclipse
+
+Please see comments in pom.xml for further details
+
+2. Run org.apache.empire.db.codegen.CodeGenerator from the command line: 
+
+> generate generate-config.xml C:\Maven\Repo
+       

http://git-wip-us.apache.org/repos/asf/empire-db/blob/6bcd642f/empire-db-examples/empire-db-example-codegen/src/test/java/org/apache/empire/db/examples/codegen/ValidatePluginRunTest.java
----------------------------------------------------------------------
diff --git 
a/empire-db-examples/empire-db-example-codegen/src/test/java/org/apache/empire/db/examples/codegen/ValidatePluginRunTest.java
 
b/empire-db-examples/empire-db-example-codegen/src/test/java/org/apache/empire/db/examples/codegen/ValidatePluginRunTest.java
index b088735..f3506e9 100644
--- 
a/empire-db-examples/empire-db-example-codegen/src/test/java/org/apache/empire/db/examples/codegen/ValidatePluginRunTest.java
+++ 
b/empire-db-examples/empire-db-example-codegen/src/test/java/org/apache/empire/db/examples/codegen/ValidatePluginRunTest.java
@@ -31,7 +31,7 @@ import java.sql.Statement;
 import org.apache.empire.db.DBCommand;
 import org.apache.empire.db.DBDatabaseDriver;
 import org.apache.empire.db.DBReader;
-import org.apache.empire.db.example.MyDB;
+import org.apache.empire.db.example.MyDatabase;
 import org.apache.empire.db.example.tables.Employees;
 import org.apache.empire.db.hsql.DBDatabaseDriverHSql;
 import org.junit.AfterClass;
@@ -75,32 +75,36 @@ public class ValidatePluginRunTest {
                assertNotNull("Could not load generated class.", cls);
        }
 
-       @Test
-       public void useGeneratedCode() throws Exception {
+    @Test
+    public void useGeneratedCode() throws Exception {
 
-               MyDB db = MyDB.get();
-               Employees EMP = db.EMPLOYEES;
+        System.out.println("Opening database...");
+        DBDatabaseDriver driver = new DBDatabaseDriverHSql();
+        MyDatabase db = MyDatabase.get();
+        db.open(driver, conn);
 
-               DBDatabaseDriver driver = new DBDatabaseDriverHSql();
-               db.open(driver, conn);
-               DBCommand cmd = db.createCommand();
-               cmd.select(EMP.EMPLOYEE_ID, EMP.FIRSTNAME);
+        System.out.println("Createing query command...");
+        Employees EMP = db.EMPLOYEES;
+        DBCommand cmd = db.createCommand();
+        cmd.select(EMP.EMPLOYEE_ID, EMP.FIRSTNAME);
 
-               int rowCount = 0;
-               DBReader reader = new DBReader();
-               try {
-                       System.err.println(cmd.getSelect());
-                       reader.open(cmd, conn);
-                       while (reader.moveNext()) {
-                               rowCount++;
-                               
System.out.println(reader.getString(EMP.EMPLOYEE_ID) + "\t" + 
reader.getString(EMP.FIRSTNAME));
-                       }
-               } finally {
-                       reader.close();
-               }
-               
-               assertEquals("We expect 3 rows", 3, rowCount);
-
-       }
+        int rowCount = 0;
+        DBReader reader = new DBReader();
+        try {
+            System.out.println("Executing query:");
+            System.err.println(cmd.getSelect());
+            reader.open(cmd, conn);
+            System.out.println("Reading results:");
+            while (reader.moveNext()) {
+                rowCount++;
+                System.out.println(reader.getString(EMP.EMPLOYEE_ID) + "\t" + 
reader.getString(EMP.FIRSTNAME));
+            }
+            System.out.println("Result contained "+String.valueOf(rowCount)+" 
records");
+        } finally {
+            reader.close();
+        }
+        
+        assertEquals("We expect 3 rows", 3, rowCount);
+    }
 
 }

http://git-wip-us.apache.org/repos/asf/empire-db/blob/6bcd642f/empire-db-maven-plugin/src/main/java/org/apache/empire/db/maven/CodeGenMojo.java
----------------------------------------------------------------------
diff --git 
a/empire-db-maven-plugin/src/main/java/org/apache/empire/db/maven/CodeGenMojo.java
 
b/empire-db-maven-plugin/src/main/java/org/apache/empire/db/maven/CodeGenMojo.java
index 20673f3..80e7512 100644
--- 
a/empire-db-maven-plugin/src/main/java/org/apache/empire/db/maven/CodeGenMojo.java
+++ 
b/empire-db-maven-plugin/src/main/java/org/apache/empire/db/maven/CodeGenMojo.java
@@ -24,14 +24,20 @@ import org.apache.empire.db.DBDatabase;
 import org.apache.empire.db.codegen.CodeGenConfig;
 import org.apache.empire.db.codegen.CodeGenParser;
 import org.apache.empire.db.codegen.CodeGenWriter;
+import org.apache.empire.exceptions.InvalidPropertyException;
 import org.apache.log4j.AppenderSkeleton;
 import org.apache.log4j.Level;
 import org.apache.log4j.Logger;
 import org.apache.log4j.spi.LoggingEvent;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;
-import org.apache.maven.plugins.annotations.*;
+import org.apache.maven.plugins.annotations.Component;
+import org.apache.maven.plugins.annotations.LifecyclePhase;
+import org.apache.maven.plugins.annotations.Mojo;
+import org.apache.maven.plugins.annotations.Parameter;
+import org.apache.maven.plugins.annotations.ResolutionScope;
 import org.apache.maven.project.MavenProject;
+import org.codehaus.plexus.util.StringUtils;
 
 /**
  * Empire-DB Code generation by reading an existing database schema
@@ -55,19 +61,19 @@ public class CodeGenMojo extends AbstractMojo {
        /**
         * Location of the generated sources.
         */
-    @Parameter(defaultValue = 
"${project.build.directory}/generated-sources/empiredb", property = 
"empiredb.generatedsources", required = true)
+    @Parameter(defaultValue = 
"${project.build.directory}/generated-sources/java", property = 
"empiredb.generatedsources", required = true)
        private File targetDirectory;
        
        /**
         * JDBC url
         */
-    @Parameter(property = "empiredb.jdbcURL", required = true)
+    @Parameter(property = "empiredb.jdbcURL")
        private String jdbcURL;
        
        /**
         * JDBC Driver class
         */
-    @Parameter(property = "empiredb.jdbcClass", required = true)
+    @Parameter(property = "empiredb.jdbcClass")
        private String jdbcClass;
        
        /**
@@ -94,8 +100,30 @@ public class CodeGenMojo extends AbstractMojo {
         */
     @Parameter(property = "empiredb.packageName")
        private String packageName;
+    
+    /**
+     * The name of the generated Database class
+     */
+    @Parameter(property = "empiredb.dbClassName")
+    private String dbClassName;
 
-       public void execute() throws MojoExecutionException 
+    @Parameter(property = "empiredb.nestTables")
+    private boolean nestTables = false;
+    
+    @Parameter(property = "empiredb.nestViews")
+    private boolean nestViews = false;
+    
+    @Parameter(property = "empiredb.createRecordProperties")
+    private boolean createRecordProperties = false;
+    
+    @Parameter(property = "empiredb.preserverCharacterCase")
+    private boolean preserverCharacterCase = false;
+    
+    @Parameter(property = "empiredb.preserveRelationNames")
+    private boolean preserveRelationNames = false; 
+
+       @Override
+    public void execute() throws MojoExecutionException 
        {
                
                setupLogging();
@@ -105,9 +133,16 @@ public class CodeGenMojo extends AbstractMojo {
                {
                        getLog().info("Loading configuration file: " + 
configFile);
                        config.init(configFile.getAbsolutePath());
+                       targetDirectory = new File(config.getTargetFolder());
                }
                else
                {
+                   if (StringUtils.isEmpty(jdbcURL) ||
+                       StringUtils.isEmpty(jdbcClass))
+                   {   // Missing
+                       throw new InvalidPropertyException("jdbcURL|jdbcClass", 
null);
+                   }
+                   
                        config.setJdbcURL(jdbcURL);
                        config.setJdbcClass(jdbcClass);
                        config.setJdbcUser(jdbcUser);
@@ -115,6 +150,12 @@ public class CodeGenMojo extends AbstractMojo {
                        
config.setTargetFolder(targetDirectory.getAbsolutePath());
                        config.setTemplateFolder(templateDirectory);
                        config.setPackageName(packageName);
+                       config.setDbClassName(dbClassName);
+                       config.setNestTables(nestTables);
+                       config.setNestViews(nestViews);
+                       
config.setCreateRecordProperties(createRecordProperties);
+                       
config.setPreserverCharacterCase(preserverCharacterCase);
+                       config.setPreserveRelationNames(preserveRelationNames);
                }
                
                //config.setExceptionsEnabled(true);
@@ -132,9 +173,13 @@ public class CodeGenMojo extends AbstractMojo {
                // we want the generate sources to be available in the project 
itself
                if (project != null && targetDirectory != null && 
targetDirectory.exists()) 
                {
+            getLog().info("Adding Compile Source Folder: " + targetDirectory);
                        
project.addCompileSourceRoot(targetDirectory.getAbsolutePath());
                }
-               
+               else if (targetDirectory!=null)
+               {
+            getLog().warn("Target Source Folder does not exist: " + 
targetDirectory);
+               }
        }
 
        private void setupLogging() 

Reply via email to