You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by do...@apache.org on 2017/06/09 14:17:55 UTC

empire-db git commit: EMPIREDB-255 dependencies corrected and comments improved

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 <do...@apache.org>
Authored: Fri Jun 9 16:17:47 2017 +0200
Committer: Rainer Döbele <do...@apache.org>
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()