You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by tf...@apache.org on 2007/01/24 21:23:58 UTC

svn commit: r499556 - in /db/torque: generator/trunk/src/conf/ generator/trunk/xdocs/ maven-plugin/trunk/ maven2-plugin/trunk/src/main/java/org/apache/torque/mojo/ maven2-plugin/trunk/src/test/java/org/apache/torque/mojo/ site/trunk/xdocs/ templates/tr...

Author: tfischer
Date: Wed Jan 24 12:23:57 2007
New Revision: 499556

URL: http://svn.apache.org/viewvc?view=rev&rev=499556
Log:
The base classes and the non-base-classes can now be generated into two different directories.
In the maven 2 plugin, the default behaviour is to generate the base classes into a subdirectory of target and the non-base classes in a subdirectory of src.
In maven 1 and ant, the default is to use the same directory for both the base and non-base classes.

Added:
    db/torque/templates/trunk/src/templates/om/ControlBase.vm
Modified:
    db/torque/generator/trunk/src/conf/build-torque.xml
    db/torque/generator/trunk/src/conf/default.properties
    db/torque/generator/trunk/xdocs/properties-reference.xml
    db/torque/maven-plugin/trunk/plugin.jelly
    db/torque/maven-plugin/trunk/plugin.properties
    db/torque/maven2-plugin/trunk/src/main/java/org/apache/torque/mojo/OMMojo.java
    db/torque/maven2-plugin/trunk/src/main/java/org/apache/torque/mojo/TexenTaskMojo.java
    db/torque/maven2-plugin/trunk/src/test/java/org/apache/torque/mojo/TorqueOMMojoTest.java
    db/torque/site/trunk/xdocs/changes.xml
    db/torque/templates/trunk/src/templates/om/Control.vm
    db/torque/test/trunk/test-project/maven.xml
    db/torque/test/trunk/test-project/project.properties

Modified: db/torque/generator/trunk/src/conf/build-torque.xml
URL: http://svn.apache.org/viewvc/db/torque/generator/trunk/src/conf/build-torque.xml?view=diff&rev=499556&r1=499555&r2=499556
==============================================================================
--- db/torque/generator/trunk/src/conf/build-torque.xml (original)
+++ db/torque/generator/trunk/src/conf/build-torque.xml Wed Jan 24 12:23:57 2007
@@ -551,6 +551,19 @@
         excludes="${torque.schema.om.excludes}"
       />
     </torque-data-model>
+    <torque-data-model
+      contextProperties="${torque.contextProperties}"
+      controlTemplate="${torque.template.om.base}"
+      outputDirectory="${torque.java.base.dir}"
+      outputFile="report.${torque.project}.om.base.generation"
+      targetDatabase="${torque.database}"
+      targetPackage="${torque.targetPackage}"
+      useClasspath="${torque.useClasspath}">
+      <fileset dir="${torque.schema.dir}"
+        includes="${torque.schema.om.includes}"
+        excludes="${torque.schema.om.excludes}"
+      />
+    </torque-data-model>
   </target>
 
   <target name="om-template" unless="torque.internal.useClasspath">
@@ -559,6 +572,19 @@
       controlTemplate="${torque.template.om}"
       outputDirectory="${torque.java.dir}"
       outputFile="report.${torque.project}.om.generation"
+      targetDatabase="${torque.database}"
+      targetPackage="${torque.targetPackage}"
+      templatePath="${torque.templatePath}">
+      <fileset dir="${torque.schema.dir}"
+        includes="${torque.schema.om.includes}"
+        excludes="${torque.schema.om.excludes}"
+      />
+    </torque-data-model>
+    <torque-data-model
+      contextProperties="${torque.contextProperties}"
+      controlTemplate="${torque.template.om.base}"
+      outputDirectory="${torque.java.base.dir}"
+      outputFile="report.${torque.project}.om.base.generation"
       targetDatabase="${torque.database}"
       targetPackage="${torque.targetPackage}"
       templatePath="${torque.templatePath}">

Modified: db/torque/generator/trunk/src/conf/default.properties
URL: http://svn.apache.org/viewvc/db/torque/generator/trunk/src/conf/default.properties?view=diff&rev=499556&r1=499555&r2=499556
==============================================================================
--- db/torque/generator/trunk/src/conf/default.properties (original)
+++ db/torque/generator/trunk/src/conf/default.properties Wed Jan 24 12:23:57 2007
@@ -58,6 +58,7 @@
 
 torque.doc.dir = ${torque.output.dir}/doc
 torque.java.dir = ${torque.output.dir}/java
+torque.java.base.dir = ${torque.java.dir}
 torque.javadoc.dir = ${torque.output.dir}/javadoc
 torque.ojb.dir = ${torque.output.dir}/ojb
 torque.sql.dir = ${torque.output.dir}/sql
@@ -143,6 +144,7 @@
 
 torque.template.sql = sql/base/Control.vm
 torque.template.om = om/Control.vm
+torque.template.om.base = om/ControlBase.vm
 torque.template.idTable = sql/id-table/Control.vm
 torque.template.dataDtd = data/Control.vm
 torque.template.dataDump = data/dump/Control.vm

Modified: db/torque/generator/trunk/xdocs/properties-reference.xml
URL: http://svn.apache.org/viewvc/db/torque/generator/trunk/xdocs/properties-reference.xml?view=diff&rev=499556&r1=499555&r2=499556
==============================================================================
--- db/torque/generator/trunk/xdocs/properties-reference.xml (original)
+++ db/torque/generator/trunk/xdocs/properties-reference.xml Wed Jan 24 12:23:57 2007
@@ -182,7 +182,12 @@
     <tr>
       <td><code>torque.java.dir</code></td>
       <td><code>${maven.src.dir}/java</code></td>
-      <td>The directory to place all of the generated Java code in.</td>
+      <td>The directory to place the generated non-base Java code in.</td>
+    </tr>
+    <tr>
+      <td><code>torque.java.base.dir</code></td>
+      <td><code>${torque.java.dir}/java</code></td>
+      <td>The directory to place the generated base Java code in.</td>
     </tr>
     <tr>
       <td><code>torque.sql.dir</code></td>

Modified: db/torque/maven-plugin/trunk/plugin.jelly
URL: http://svn.apache.org/viewvc/db/torque/maven-plugin/trunk/plugin.jelly?view=diff&rev=499556&r1=499555&r2=499556
==============================================================================
--- db/torque/maven-plugin/trunk/plugin.jelly (original)
+++ db/torque/maven-plugin/trunk/plugin.jelly Wed Jan 24 12:23:57 2007
@@ -280,6 +280,7 @@
 
     <j:choose>
       <j:when test="${torque.useClasspath}">
+        <echo>Generating Non-Base Classes</echo>
         <torque-data-model
           contextProperties="${torque.contextProperties}"
           controlTemplate="${torque.template.om}"
@@ -293,13 +294,42 @@
             excludes="${torque.schema.om.excludes}"
           />
         </torque-data-model>
+        <echo>Generating Base Classes</echo>
+        <torque-data-model
+          contextProperties="${torque.contextProperties}"
+          controlTemplate="${torque.template.om.base}"
+          outputDirectory="${torque.java.base.dir}"
+          outputFile="report.${torque.project}.om.base.generation"
+          targetDatabase="${torque.database}"
+          targetPackage="${torque.targetPackage}"
+          useClasspath="${torque.useClasspath}">
+          <fileset dir="${torque.schema.dir}"
+            includes="${torque.schema.om.includes}"
+            excludes="${torque.schema.om.excludes}"
+          />
+        </torque-data-model>
       </j:when>
       <j:otherwise>
+        <echo>Generating Non-Base Classes</echo>
         <torque-data-model
           contextProperties="${torque.contextProperties}"
           controlTemplate="${torque.template.om}"
           outputDirectory="${torque.java.dir}"
           outputFile="report.${torque.project}.om.generation"
+          targetDatabase="${torque.database}"
+          targetPackage="${torque.targetPackage}"
+          templatePath="${torque.templatePath}">
+          <fileset dir="${torque.schema.dir}"
+            includes="${torque.schema.om.includes}"
+            excludes="${torque.schema.om.excludes}"
+          />
+        </torque-data-model>
+        <echo>Generating Base Classes</echo>
+        <torque-data-model
+          contextProperties="${torque.contextProperties}"
+          controlTemplate="${torque.template.om.base}"
+          outputDirectory="${torque.java.base.dir}"
+          outputFile="report.${torque.project}.om.base.generation"
           targetDatabase="${torque.database}"
           targetPackage="${torque.targetPackage}"
           templatePath="${torque.templatePath}">

Modified: db/torque/maven-plugin/trunk/plugin.properties
URL: http://svn.apache.org/viewvc/db/torque/maven-plugin/trunk/plugin.properties?view=diff&rev=499556&r1=499555&r2=499556
==============================================================================
--- db/torque/maven-plugin/trunk/plugin.properties (original)
+++ db/torque/maven-plugin/trunk/plugin.properties Wed Jan 24 12:23:57 2007
@@ -62,6 +62,7 @@
 
 torque.doc.dir = ${torque.output.dir}/doc/schema
 torque.java.dir = ${maven.src.dir}/java
+torque.java.base.dir = ${torque.java.dir}
 torque.ojb.dir = ${maven.src.dir}/ojb
 torque.sql.dir = ${torque.output.dir}/sql
 torque.omzip.dir = ${torque.output.dir}
@@ -174,6 +175,7 @@
 
 SQLControlTemplate = sql/base/Control.vm
 OMControlTemplate = om/Control.vm
+OMControlBaseTemplate = om/ControlBase.vm
 idTableControlTemplate = sql/id-table/Control.vm
 DataDTDControlTemplate = data/Control.vm
 DataDumpControlTemplate = data/dump/Control.vm
@@ -182,6 +184,7 @@
 
 torque.template.sql = ${SQLControlTemplate}
 torque.template.om = ${OMControlTemplate}
+torque.template.om.base = ${OMControlBaseTemplate}
 torque.template.idTable = ${idTableControlTemplate}
 torque.template.dataDtd = ${DataDTDControlTemplate}
 torque.template.dataDump = ${DataDumpControlTemplate}

Modified: db/torque/maven2-plugin/trunk/src/main/java/org/apache/torque/mojo/OMMojo.java
URL: http://svn.apache.org/viewvc/db/torque/maven2-plugin/trunk/src/main/java/org/apache/torque/mojo/OMMojo.java?view=diff&rev=499556&r1=499555&r2=499556
==============================================================================
--- db/torque/maven2-plugin/trunk/src/main/java/org/apache/torque/mojo/OMMojo.java (original)
+++ db/torque/maven2-plugin/trunk/src/main/java/org/apache/torque/mojo/OMMojo.java Wed Jan 24 12:23:57 2007
@@ -24,6 +24,7 @@
 import org.apache.commons.configuration.PropertiesConfiguration;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.tools.ant.BuildException;
+import org.apache.torque.task.TorqueDataModelTask;
 
 /**
  * Generates the sources for the persistence classes from the schema.xml files.
@@ -41,19 +42,20 @@
     // into setting the correct default values for
     // outputDir, reportFile and contextPropertiesPath
     /**
-     * The directory in which the sources for the persistence classes will be
-     * generated.
+     * The directory in which the sources for the non-base persistence classes
+     * will be generated.
      *
      * @parameter property="outputDir"
-     *            expression="${project.build.directory}/generated-sources/torque"
+     *            expression="${project.build.sourceDirectory}/../generated-java"
      */
     private String dummy;
 
     /**
-     * The location where the report file will be generated.
+     * The location where the report file for the non-base persistence classes 
+     * will be generated.
      *
      * @parameter property="reportFile"
-     *            expression="../../torque/report.${project.artifact.artifactId}.om.generation"
+     *            expression="../../../target/torque/report.${project.artifact.artifactId}.om.generation"
      */
     private String dummy2;
 
@@ -67,6 +69,22 @@
     private String dummy3;
 
     /**
+     * The directory where the sources for the base persistence classes
+     * will be generated. 
+     *
+     * @parameter expression="${project.build.directory}/generated-sources/torque"
+     */
+    private String baseOutputDir;
+
+    /**
+     * The location where the report file for the base persistence classes
+     * will be generated.
+     *
+     * @parameter expression="../../torque/report.${project.artifact.artifactId}.om.base.generation"
+     */
+    private String baseReportFile;
+
+    /**
      * The context property for the target package.
      */
     public static final String TARGET_PACKAGE_CONTEXT_PROPERTY
@@ -409,6 +427,11 @@
     private boolean enableJava5Features;
 
     /**
+     * The control template which should be used by the Texen task. 
+     */
+    private String controlTemplate;
+
+    /**
      * Creates a new TorqueOMMojo object.
      */
     public OMMojo()
@@ -417,7 +440,7 @@
 
     /**
      * Generates the OM classes for a Torque project and adds them to
-     * the comile sources of the project.
+     * the compile sources of the project.
      *
      * @throws MojoExecutionException If an error occurs during generation.
      *
@@ -426,17 +449,50 @@
      */
     public void execute() throws MojoExecutionException
     {
+        // generate non-base classes
+        controlTemplate = "om/Control.vm";
         super.execute();
-
+        String outputDir = super.getOutputDir();
+        String reportFile = super.getReportFile();
         try
         {
-            File outputDirectory = new File(super.getOutputDir());
-            getLog().info ("torque java sources generated into: "
+            File outputDirectory = new File(outputDir);
+            getLog().info ("torque non-base java sources generated into: "
                     + outputDirectory.getAbsolutePath());
 
             if (getProject() != null)
             {
-                getProject().addCompileSourceRoot(outputDirectory.getPath());
+                getProject().addCompileSourceRoot(
+                        outputDirectory.getPath());
+            }
+        }
+        catch (BuildException e)
+        {
+            getLog().error(e.getMessage());
+            throw new MojoExecutionException(e.getMessage(), e);
+        }
+
+        // generate base classes
+        // reset texen task (for an unknown reason, the old texen task will
+        // append the already generated output to the already generated files
+        super.setGeneratorTask(new TorqueDataModelTask());
+        controlTemplate = "om/ControlBase.vm";
+        super.setOutputDir(baseOutputDir);
+        super.setReportFile(baseReportFile);
+        super.execute();
+        super.setOutputDir(outputDir);
+        super.setReportFile(reportFile);
+        
+        try
+        {
+            File baseOutputDirectory = new File(baseOutputDir);
+            getLog().info ("torque base java sources generated into: "
+                    + baseOutputDirectory.getAbsolutePath());
+
+            if (getProject() != null)
+            {
+                getProject().addCompileSourceRoot(
+                        baseOutputDirectory.getPath());
             }
         }
         catch (BuildException e)
@@ -449,11 +505,11 @@
     /**
      * Returns the path to the control template.
      *
-     * @return "om/Control.vm"
+     * @return the path to the current control template.
      */
     protected String getControlTemplate()
     {
-        return "om/Control.vm";
+        return controlTemplate;
     }
 
     /**
@@ -1050,5 +1106,53 @@
     public void setUseManagers(boolean useManagers)
     {
         this.useManagers = useManagers;
+    }
+
+    /**
+     * Returns where the sources for the persistence base classes
+     * will be generated.
+     *
+     * @return where the sources for the persistence base classes
+     *          will be generated.
+     */
+    public String getBaseOutputDir()
+    {
+        return baseOutputDir;
+    }
+
+    /**
+     * Sets where the sources for the persistence base classes
+     * will be generated.
+     *
+     * @param baseOutputDir where the sources for the persistence base classes
+     *         will be generated.
+     */
+    public void setBaseOutputDir(String baseOutputDir)
+    {
+        this.baseOutputDir = baseOutputDir;
+    }
+
+    /**
+     * Returns the location where the report file for the base persistence
+     * classes will be generated.
+     *
+     * @return the location where the report file for the base persistence
+     *          classes will be generated.
+     */
+    public String getBaseReportFile()
+    {
+        return baseReportFile;
+    }
+
+    /**
+     * Sets the location where the report file for the base persistence
+     * classes will be generated.
+     *
+     * @param baseReportFile the location where the report file for the
+     *         base persistence classes will be generated.
+     */
+    public void setBaseReportFile(String baseReportFile)
+    {
+        this.baseReportFile = baseReportFile;
     }
 }

Modified: db/torque/maven2-plugin/trunk/src/main/java/org/apache/torque/mojo/TexenTaskMojo.java
URL: http://svn.apache.org/viewvc/db/torque/maven2-plugin/trunk/src/main/java/org/apache/torque/mojo/TexenTaskMojo.java?view=diff&rev=499556&r1=499555&r2=499556
==============================================================================
--- db/torque/maven2-plugin/trunk/src/main/java/org/apache/torque/mojo/TexenTaskMojo.java (original)
+++ db/torque/maven2-plugin/trunk/src/main/java/org/apache/torque/mojo/TexenTaskMojo.java Wed Jan 24 12:23:57 2007
@@ -106,6 +106,15 @@
      */
     public TexenTaskMojo(TexenTask generatorTask)
     {
+        setGeneratorTask(generatorTask);
+    }
+    
+    /**
+     * Sets the Texen task.
+     * @param generatorTask the Texen task to be used in this Mojo.
+     */
+    protected void setGeneratorTask(TexenTask generatorTask)
+    {
         if (generatorTask == null)
         {
             throw new IllegalArgumentException("generatorTask is null");

Modified: db/torque/maven2-plugin/trunk/src/test/java/org/apache/torque/mojo/TorqueOMMojoTest.java
URL: http://svn.apache.org/viewvc/db/torque/maven2-plugin/trunk/src/test/java/org/apache/torque/mojo/TorqueOMMojoTest.java?view=diff&rev=499556&r1=499555&r2=499556
==============================================================================
--- db/torque/maven2-plugin/trunk/src/test/java/org/apache/torque/mojo/TorqueOMMojoTest.java (original)
+++ db/torque/maven2-plugin/trunk/src/test/java/org/apache/torque/mojo/TorqueOMMojoTest.java Wed Jan 24 12:23:57 2007
@@ -75,13 +75,17 @@
         instance.setProject(mavenProject);
 
         instance.setOutputDir(
-                mavenProject.getBuild().getDirectory()
-                    + "/generated-sources/torque");
+                mavenProject.getBuild().getSourceDirectory());
 
         instance.setContextPropertiesPath(
                 mavenProject.getBuild().getDirectory()
                     + "/torque/context.om.properties");
 
+        instance.setBaseOutputDir(
+                mavenProject.getBuild().getDirectory()
+                    + "/generated-sources/torque");
+
+
         instance.setSchemaDir(
                 mavenProject.getBasedir() + "/src/main/torque/schema");
 
@@ -97,10 +101,15 @@
 
         instance.setSchemaExcludes("id-table-schema.xml");
 
-        instance.setReportFile("../../torque/torque."
+        instance.setReportFile("../../../target/torque/torque."
                 + mavenProject.getArtifact().getArtifactId()
                 + "."
                 + "om.generation");
+
+        instance.setBaseReportFile("../../torque/torque."
+                + mavenProject.getArtifact().getArtifactId()
+                + "."
+                + "om.base.generation");
 
         instance.execute();
 

Modified: db/torque/site/trunk/xdocs/changes.xml
URL: http://svn.apache.org/viewvc/db/torque/site/trunk/xdocs/changes.xml?view=diff&rev=499556&r1=499555&r2=499556
==============================================================================
--- db/torque/site/trunk/xdocs/changes.xml (original)
+++ db/torque/site/trunk/xdocs/changes.xml Wed Jan 24 12:23:57 2007
@@ -32,6 +32,12 @@
   <body>
 
   <release version="3.3" date="in SVN">
+    <action type="add" dev="tfischer">
+      The maven 2 plugin generates the non-base classes into a different
+      directory than the base classes. This behaviour can also be configured for
+      maven 1 and ant by setting the property torque.java.base.dir to another
+      directory than torque.java.dir.
+    </action>
     <action type="fix" dev="tfischer" due-to="Jeffrey D. Brekke">
       Fixed the lifecycle integration and dependency resolution of the om goal
       in the maven 2 plugin.

Modified: db/torque/templates/trunk/src/templates/om/Control.vm
URL: http://svn.apache.org/viewvc/db/torque/templates/trunk/src/templates/om/Control.vm?view=diff&rev=499556&r1=499555&r2=499556
==============================================================================
--- db/torque/templates/trunk/src/templates/om/Control.vm (original)
+++ db/torque/templates/trunk/src/templates/om/Control.vm Wed Jan 24 12:23:57 2007
@@ -80,24 +80,15 @@
 
     Peers generated in package $packagePeer
     Objects generated in package $packageObject
-    Maps generated in package $packageMap
     Managers generated in package $packageManager
     Beans generated in package $packageBean
 
-    BasePeers generated in package $packageBasePeer
-    BaseObjects generated in package $packageBaseObject
-    BaseManagers generated in package $packageBaseManager
-    BaseBeans generated in package $packageBaseBean
-
     #set ( $path = $strings.getPackageAsPath($packagePeer) )
     $files.mkdir("$outputDirectory/$path")
 
     #set ( $path = $strings.getPackageAsPath($packageObject) )
     $files.mkdir("$outputDirectory/$path")
 
-    #set ( $path = $strings.getPackageAsPath($packageMap) )
-    $files.mkdir("$outputDirectory/$path")
-
     #if ($useManagers)
       #set ( $path = $strings.getPackageAsPath($packageManager) )
       $files.mkdir("$outputDirectory/$path")
@@ -108,34 +99,6 @@
       $files.mkdir("$outputDirectory/$path")
     #end
 
-    #set ( $path = $strings.getPackageAsPath($packageBasePeer) )
-    $files.mkdir("$outputDirectory/$path")
-
-    #set ( $path = $strings.getPackageAsPath($packageBaseObject) )
-    $files.mkdir("$outputDirectory/$path")
-
-    #if ($useManagers)
-      #set ( $path = $strings.getPackageAsPath($packageBaseManager) )
-      $files.mkdir("$outputDirectory/$path")
-    #end
-
-    #if ($generateBeans)
-      #set ( $path = $strings.getPackageAsPath($packageBaseBean) )
-      $files.mkdir("$outputDirectory/$path")
-    #end
-
-	#if ( !$mapDBNames.contains( $database.Name ) )
-## Adding new database entry for $database.Name	
-	  #set ( $retVal = $mapDBNames.add( $database.Name ) )
-	  #set ( $retVal = $mapDatabases.add( $database ) )
-	  #set ( $builderArray = [] ) 
-	  #set ( $retVal = $mapDBMapBuilders.add( $builderArray ) )
-	#else
-## Using existing database entry for $database.Name
-	  #set ( $dbIndex = $mapDBinfo.indexOf( $database.Name ) )
-	  #set ( $builderArray = $mapDBMapBuilders.get( $dbIndex ) )
-	#end
-	
 	#foreach ($tbl in $database.Tables)
 	  #if ( !$tbl.isAlias() && !$tbl.isForReferenceOnly() )
 ## Adding new table Peer = "${packagePeer}.${tbl.JavaName}Peer"
@@ -150,26 +113,12 @@
         $!tbl.setCorrectGetters($!correctGetters)
         #set ( $firstcap=$tbl.JavaName )
 
-        #set ( $fname = "$basePrefix${firstcap}Peer.java" )
-        #set ( $path = "${strings.getPackageAsPath($packageBasePeer)}$fname" )
-        $generator.parse("om/Peer.vm",$path,"table",$tbl)
-
-        #if (!$tbl.isAlias())
-          #set ( $fname = "${firstcap}MapBuilder.java" )
-          #set ( $path = "${strings.getPackageAsPath($packageMap)}$fname" )
-          $generator.parse("om/MapBuilder.vm",$path,"table",$tbl)
-        #end
-
         #if ($useManagers && $tbl.PrimaryKey.size() > 0)
           #set ($interfaceName = $table.JavaName)
           #if ($table.Interface)
             #set ($interfaceName = $table.Interface)
           #end
 
-          #set ( $fname = "${basePrefix}${interfaceName}Manager.java" )
-          #set ( $path = "${strings.getPackageAsPath($packageBaseManager)}$fname" )
-          $generator.parse("om/BaseManager.vm",$path,"table",$tbl)
-
           #set ( $fname = "${interfaceName}Manager.java" )
           #set ( $path = "${strings.getPackageAsPath($packageManager)}$fname" )
           #if (!$files.file($basePath,$path).exists())
@@ -177,16 +126,6 @@
           #end
         #end
 
-        #if ($useManagers)
-          #set ( $fname = "${basePrefix}${firstcap}.java" )
-          #set ( $path = "${strings.getPackageAsPath($packageBaseObject)}$fname" )
-          $generator.parse("om/ObjectWithManager.vm",$path,"table",$tbl)
-        #else
-          #set ( $fname = "${basePrefix}${firstcap}.java" )
-          #set ( $path = "${strings.getPackageAsPath($packageBaseObject)}$fname" )
-          $generator.parse("om/Object.vm",$path,"table",$tbl)
-        #end
-
         #set ( $fname = "${firstcap}.java" )
         #set ( $path = "${strings.getPackageAsPath($packageObject)}$fname" )
         #if (!$files.file($basePath,$path).exists())
@@ -199,22 +138,6 @@
           $generator.parse("om/ExtensionPeer.vm",$path,"table",$tbl)
         #end
 
-#*
-        #if ($tbl.Interface)
-          #set ( $fname = "${tbl.Interface}.java" )
-          #set ( $path = "${strings.getPackageAsPath($packageObject)}$fname" )
-          #if (!$files.file($basePath,$path).exists())
-            $generator.parse("om/Interface.vm",$path,"table",$tbl)
-          #end
-        #end
-*#
-
-        #if ($generateBeans)
-          #set ( $fname = "${basePrefix}${firstcap}${beanSuffix}.java" )
-          #set ( $path = "${strings.getPackageAsPath($packageBaseBean)}$fname" )
-          $generator.parse("om/bean/Bean.vm",$path,"table",$tbl)
-        #end
-
         #if ($generateBeans)
           #set ( $fname = "${firstcap}${beanSuffix}.java" )
           #set ( $path = "${strings.getPackageAsPath($packageBean)}$fname" )
@@ -245,38 +168,4 @@
         #end
       #end
     #end
-#end
-
-#foreach ( $dbName in $mapDBNames )
-	#set ( $dbIndex = $mapDBNames.indexOf( $dbName ) )
-	#set ( $peerNames = $mapDBMapBuilders.get( $dbIndex ) )
-	#set ( $database = $mapDatabases.get( $dbIndex ) )
-
-    #if ($database.Package)
-      #set ($package = $database.Package)
-    #else
-      #set ($package = $targetPackage)
-    #end
-
-    #if ($subpackageMap)
-      #set ($packageMap = "${package}.${subpackageMap}")
-    #else
-      #set ($packageMap = "${package}")
-    #end
-
-    #set ( $fname = "${database.JavaName}MapInit.java" )
-    #set ( $path = "${strings.getPackageAsPath($packageMap)}$fname" )
-    $generator.parse("om/DatabaseMapInit.vm", $path, "database", $database)
-
-## Hard coded linkage package that must match one used by runtime DatabaseMap.initialize()
-	#set ( $packageLinkage = "org.apache.torque.linkage" );
-	#set ( $path = $strings.getPackageAsPath($packageLinkage) )
-    $files.mkdir("$outputDirectory/$path")
-	
-    #set ( $fname = "${database.StandardJavaName}MapInit.java" )
-    #set ( $path = "$strings.getPackageAsPath($packageLinkage)$fname" )
-    #if (!$files.file($basePath,$path).exists())
-      $generator.parse("om/DatabaseMapInitLinkageObject.vm", $path, "database", $database)
-    #end
-
 #end

Added: db/torque/templates/trunk/src/templates/om/ControlBase.vm
URL: http://svn.apache.org/viewvc/db/torque/templates/trunk/src/templates/om/ControlBase.vm?view=auto&rev=499556
==============================================================================
--- db/torque/templates/trunk/src/templates/om/ControlBase.vm (added)
+++ db/torque/templates/trunk/src/templates/om/ControlBase.vm Wed Jan 24 12:23:57 2007
@@ -0,0 +1,211 @@
+## 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.
+#set ($basePath = $generator.OutputPath)
+
+targetdatabase = $targetDatabase
+
+correctGetters = $!correctGetters
+
+#set ( $mapDBNames = [] )       ## Collect unique DB names across all external-schemas
+#set ( $mapDatabases = [] )     ## Collect the first database object across all external-schemas
+#set ( $mapDBMapBuilders = [] ) ## Collect all table map builders across all external-schemas
+
+#foreach ($database in $dataModels)
+
+    #if ($database.Package)
+      #set ($package = $database.Package)
+    #else
+      #set ($package = $targetPackage)
+    #end
+
+    #if ($subpackagePeer)
+      #set ($packagePeer = "${package}.${subpackagePeer}")
+    #else
+      #set ($packagePeer = "${package}")
+    #end
+
+    #if ($subpackageObject)
+      #set ($packageObject = "${package}.${subpackageObject}")
+    #else
+      #set ($packageObject = "${package}")
+    #end
+
+    #if ($subpackageMap)
+      #set ($packageMap = "${package}.${subpackageMap}")
+    #else
+      #set ($packageMap = "${package}")
+    #end
+
+    #if ($subpackageManager)
+      #set ($packageManager = "${package}.${subpackageManager}")
+    #else
+      #set ($packageManager = "${package}")
+    #end
+
+    #if ($subpackageBean)
+      #set ($packageBean = "${package}.${subpackageBean}")
+    #else
+      #set ($packageBean = "${package}")
+    #end
+
+    #if ($subpackageBase)
+      #set ($packageBasePeer = "${package}.${subpackageBase}")
+      #set ($packageBaseObject = "${package}.${subpackageBase}")
+      #set ($packageBaseManager = "${package}.${subpackageBase}")
+    #else
+      #set ($packageBasePeer = "${package}")
+      #set ($packageBaseObject = "${package}")
+      #set ($packageBaseManager = "${package}")
+    #end
+
+    #if ($subpackageBaseBean)
+      #set ($packageBaseBean = "${package}.${subpackageBaseBean}")
+    #else
+      #set ($packageBaseBean = "${package}")
+    #end
+
+    BasePeers generated in package $packageBasePeer
+    BaseObjects generated in package $packageBaseObject
+    BaseManagers generated in package $packageBaseManager
+    BaseBeans generated in package $packageBaseBean
+    Maps generated in package $packageMap
+
+    #set ( $path = $strings.getPackageAsPath($packageBasePeer) )
+    $files.mkdir("$outputDirectory/$path")
+
+    #set ( $path = $strings.getPackageAsPath($packageBaseObject) )
+    $files.mkdir("$outputDirectory/$path")
+
+    #set ( $path = $strings.getPackageAsPath($packageMap) )
+    $files.mkdir("$outputDirectory/$path")
+
+    #if ($useManagers)
+      #set ( $path = $strings.getPackageAsPath($packageBaseManager) )
+      $files.mkdir("$outputDirectory/$path")
+    #end
+
+    #if ($generateBeans)
+      #set ( $path = $strings.getPackageAsPath($packageBaseBean) )
+      $files.mkdir("$outputDirectory/$path")
+    #end
+
+	#if ( !$mapDBNames.contains( $database.Name ) )
+## Adding new database entry for $database.Name	
+	  #set ( $retVal = $mapDBNames.add( $database.Name ) )
+	  #set ( $retVal = $mapDatabases.add( $database ) )
+	  #set ( $builderArray = [] ) 
+	  #set ( $retVal = $mapDBMapBuilders.add( $builderArray ) )
+	#else
+## Using existing database entry for $database.Name
+	  #set ( $dbIndex = $mapDBinfo.indexOf( $database.Name ) )
+	  #set ( $builderArray = $mapDBMapBuilders.get( $dbIndex ) )
+	#end
+	
+	#foreach ($tbl in $database.Tables)
+	  #if ( !$tbl.isAlias() && !$tbl.isForReferenceOnly() )
+## Adding new table Peer = "${packagePeer}.${tbl.JavaName}Peer"
+	    #set ($retVar = $builderArray.add("${packagePeer}.${tbl.JavaName}Peer") )
+	  #end
+	#end
+
+    #foreach ($tbl in $database.Tables)
+      #if (!$tbl.isForReferenceOnly())
+        $tbl.Name
+
+        $!tbl.setCorrectGetters($!correctGetters)
+        #set ( $firstcap=$tbl.JavaName )
+
+        #set ( $fname = "$basePrefix${firstcap}Peer.java" )
+        #set ( $path = "${strings.getPackageAsPath($packageBasePeer)}$fname" )
+        $generator.parse("om/Peer.vm",$path,"table",$tbl)
+
+        #if (!$tbl.isAlias())
+          #set ( $fname = "${firstcap}MapBuilder.java" )
+          #set ( $path = "${strings.getPackageAsPath($packageMap)}$fname" )
+          $generator.parse("om/MapBuilder.vm",$path,"table",$tbl)
+        #end
+
+        #if ($useManagers && $tbl.PrimaryKey.size() > 0)
+          #set ($interfaceName = $table.JavaName)
+          #if ($table.Interface)
+            #set ($interfaceName = $table.Interface)
+          #end
+
+          #set ( $fname = "${basePrefix}${interfaceName}Manager.java" )
+          #set ( $path = "${strings.getPackageAsPath($packageBaseManager)}$fname" )
+          $generator.parse("om/BaseManager.vm",$path,"table",$tbl)
+
+          #set ( $fname = "${interfaceName}Manager.java" )
+          #set ( $path = "${strings.getPackageAsPath($packageManager)}$fname" )
+          #if (!$files.file($basePath,$path).exists())
+            $generator.parse("om/ExtensionManager.vm",$path,"table",$tbl)
+          #end
+        #end
+
+        #if ($useManagers)
+          #set ( $fname = "${basePrefix}${firstcap}.java" )
+          #set ( $path = "${strings.getPackageAsPath($packageBaseObject)}$fname" )
+          $generator.parse("om/ObjectWithManager.vm",$path,"table",$tbl)
+        #else
+          #set ( $fname = "${basePrefix}${firstcap}.java" )
+          #set ( $path = "${strings.getPackageAsPath($packageBaseObject)}$fname" )
+          $generator.parse("om/Object.vm",$path,"table",$tbl)
+        #end
+
+        #if ($generateBeans)
+          #set ( $fname = "${basePrefix}${firstcap}${beanSuffix}.java" )
+          #set ( $path = "${strings.getPackageAsPath($packageBaseBean)}$fname" )
+          $generator.parse("om/bean/Bean.vm",$path,"table",$tbl)
+        #end
+
+      #end
+    #end
+#end
+
+#foreach ( $dbName in $mapDBNames )
+	#set ( $dbIndex = $mapDBNames.indexOf( $dbName ) )
+	#set ( $peerNames = $mapDBMapBuilders.get( $dbIndex ) )
+	#set ( $database = $mapDatabases.get( $dbIndex ) )
+
+    #if ($database.Package)
+      #set ($package = $database.Package)
+    #else
+      #set ($package = $targetPackage)
+    #end
+
+    #if ($subpackageMap)
+      #set ($packageMap = "${package}.${subpackageMap}")
+    #else
+      #set ($packageMap = "${package}")
+    #end
+
+    #set ( $fname = "${database.JavaName}MapInit.java" )
+    #set ( $path = "${strings.getPackageAsPath($packageMap)}$fname" )
+    $generator.parse("om/DatabaseMapInit.vm", $path, "database", $database)
+
+## Hard coded linkage package that must match one used by runtime DatabaseMap.initialize()
+	#set ( $packageLinkage = "org.apache.torque.linkage" );
+	#set ( $path = $strings.getPackageAsPath($packageLinkage) )
+    $files.mkdir("$outputDirectory/$path")
+	
+    #set ( $fname = "${database.StandardJavaName}MapInit.java" )
+    #set ( $path = "$strings.getPackageAsPath($packageLinkage)$fname" )
+    #if (!$files.file($basePath,$path).exists())
+      $generator.parse("om/DatabaseMapInitLinkageObject.vm", $path, "database", $database)
+    #end
+
+#end

Modified: db/torque/test/trunk/test-project/maven.xml
URL: http://svn.apache.org/viewvc/db/torque/test/trunk/test-project/maven.xml?view=diff&rev=499556&r1=499555&r2=499556
==============================================================================
--- db/torque/test/trunk/test-project/maven.xml (original)
+++ db/torque/test/trunk/test-project/maven.xml Wed Jan 24 12:23:57 2007
@@ -71,6 +71,8 @@
     <attainGoal name="torque:om"/>
 
     <mkdir dir="${torque.test.compile.dir}" />
+
+    <echo>Compiling sources in ${torque.test.src.dir}</echo>
     <javac
       debug="${torque.compile.debug}"
       deprecation="${torque.compile.deprecation}"
@@ -80,18 +82,39 @@
       <classpath refid="maven.dependency.classpath"/>
     </javac>
 
-    <javac
-      debug="${torque.compile.debug}"
-      deprecation="${torque.compile.deprecation}"
-      destdir="${torque.test.compile.dir}"
-      optimize="${torque.compile.optimize}"
-      srcdir="${torque.java.dir}">
-      <classpath>
-        <pathelement location="${torque.test.compile.dir}"/>
-        <path refid="maven.dependency.classpath"/>
-      </classpath>
-    </javac>
+    <j:set var="javaDir" value="${torque.java.dir}"/>
+    <j:set var="javaBaseDir" value="${torque.java.base.dir}"/>
+    <j:if test="${javaDir != javaBaseDir}">
+      <echo>Compiling sources in ${torque.java.base.dir} and ${torque.java.dir}</echo>
+      <javac
+        debug="${torque.compile.debug}"
+        deprecation="${torque.compile.deprecation}"
+        destdir="${torque.test.compile.dir}"
+        optimize="${torque.compile.optimize}">
+        <classpath>
+          <pathelement location="${torque.test.compile.dir}"/>
+          <path refid="maven.dependency.classpath"/>
+        </classpath>
+      	<src path="${torque.java.base.dir}" />
+      	<src path="${torque.java.dir}" />      	
+      </javac>
+    </j:if>
+    <j:if test="${javaDir == javaBaseDir}">
+    <echo>Compiling sources in ${torque.java.dir}</echo>
+      <javac
+        debug="${torque.compile.debug}"
+        deprecation="${torque.compile.deprecation}"
+        destdir="${torque.test.compile.dir}"
+        optimize="${torque.compile.optimize}"
+        srcdir="${torque.java.dir}">
+        <classpath>
+          <pathelement location="${torque.test.compile.dir}"/>
+          <path refid="maven.dependency.classpath"/>
+        </classpath>
+      </javac>
+    </j:if>
 
+    <echo>Compiling sources in ${torque.test.junit.src.dir}</echo>
     <javac
       debug="${torque.compile.debug}"
       deprecation="${torque.compile.deprecation}"

Modified: db/torque/test/trunk/test-project/project.properties
URL: http://svn.apache.org/viewvc/db/torque/test/trunk/test-project/project.properties?view=diff&rev=499556&r1=499555&r2=499556
==============================================================================
--- db/torque/test/trunk/test-project/project.properties (original)
+++ db/torque/test/trunk/test-project/project.properties Wed Jan 24 12:23:57 2007
@@ -39,6 +39,8 @@
 # The java classes are generated in the target to remove them vith a simple 
 # "maven clean"
 torque.java.dir=target/java
+# for testing to generate the base classes in another directory
+#torque.java.base.dir=target/java-base
 
 # The generator should read the schema files from the target directory
 # where some tokens have been replaced by the torque-test:prepare task 



---------------------------------------------------------------------
To unsubscribe, e-mail: torque-dev-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org