You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-dev@portals.apache.org by at...@apache.org on 2007/03/30 15:23:20 UTC

svn commit: r524075 - in /portals/jetspeed-2/branches/J2-M2-REDUX: jetspeed-portal-resources/pom.xml maven/jetspeed-maven-plugins/src/main/java/org/apache/jetspeed/maven/plugins/DDLGeneratorMojo.java

Author: ate
Date: Fri Mar 30 06:23:19 2007
New Revision: 524075

URL: http://svn.apache.org/viewvc?view=rev&rev=524075
Log:
Split generated ddl into drop-schema.sql and create-schema.sql scripts

Modified:
    portals/jetspeed-2/branches/J2-M2-REDUX/jetspeed-portal-resources/pom.xml
    portals/jetspeed-2/branches/J2-M2-REDUX/maven/jetspeed-maven-plugins/src/main/java/org/apache/jetspeed/maven/plugins/DDLGeneratorMojo.java

Modified: portals/jetspeed-2/branches/J2-M2-REDUX/jetspeed-portal-resources/pom.xml
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/branches/J2-M2-REDUX/jetspeed-portal-resources/pom.xml?view=diff&rev=524075&r1=524074&r2=524075
==============================================================================
--- portals/jetspeed-2/branches/J2-M2-REDUX/jetspeed-portal-resources/pom.xml (original)
+++ portals/jetspeed-2/branches/J2-M2-REDUX/jetspeed-portal-resources/pom.xml Fri Mar 30 06:23:19 2007
@@ -49,7 +49,6 @@
             <configuration>
               <outputTarget>${project.build.directory}/classes/ddl</outputTarget>
               <useDelimitedSqlIdentifiers>true</useDelimitedSqlIdentifiers>
-              <doDrops>true</doDrops>
               <sortForeignKeys>false</sortForeignKeys>
               <validateXml>false</validateXml>
               <useInternalDtd>true</useInternalDtd>

Modified: portals/jetspeed-2/branches/J2-M2-REDUX/maven/jetspeed-maven-plugins/src/main/java/org/apache/jetspeed/maven/plugins/DDLGeneratorMojo.java
URL: http://svn.apache.org/viewvc/portals/jetspeed-2/branches/J2-M2-REDUX/maven/jetspeed-maven-plugins/src/main/java/org/apache/jetspeed/maven/plugins/DDLGeneratorMojo.java?view=diff&rev=524075&r1=524074&r2=524075
==============================================================================
--- portals/jetspeed-2/branches/J2-M2-REDUX/maven/jetspeed-maven-plugins/src/main/java/org/apache/jetspeed/maven/plugins/DDLGeneratorMojo.java (original)
+++ portals/jetspeed-2/branches/J2-M2-REDUX/maven/jetspeed-maven-plugins/src/main/java/org/apache/jetspeed/maven/plugins/DDLGeneratorMojo.java Fri Mar 30 06:23:19 2007
@@ -19,6 +19,7 @@
 import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.io.StringWriter;
 
 import org.apache.ddlutils.Platform;
 import org.apache.ddlutils.PlatformFactory;
@@ -83,13 +84,6 @@
      */
     private boolean useInternalDtd;
     
-    /**
-     * Specifies whether SQL for dropping tables, external constraints, etc. is created if necessary.
-     * 
-     * @parameter default-value="true"
-     */
-    private boolean doDrops;
-    
     /** The Maven project.
      * @parameter expression="${project}"
      * @required
@@ -137,20 +131,6 @@
                     {
                         outputDir.mkdirs();
                     }
-                    File outputFile = new File(outputDir,databases[i].toLowerCase()+"-schema.sql");
-                    if (outputFile.exists() && (!outputFile.isFile() || !outputFile.canWrite())) 
-                    {
-                        throw new MojoExecutionException("Cannot write to output file "+outputFile.getAbsolutePath());
-                    }
-                    FileWriter writer = null;
-                    try
-                    {
-                        writer = new FileWriter(outputFile);
-                    }
-                    catch (IOException ioe)
-                    {
-                        throw new MojoExecutionException("Cannot open output file "+outputFile.getAbsolutePath(), ioe);
-                    }
                     if (platform.getPlatformInfo().isSqlCommentsSupported())
                     {
                         // we're generating SQL comments if possible
@@ -158,24 +138,56 @@
                     }
                     boolean isCaseSensitive = platform.isDelimitedIdentifierModeOn();
                     CreationParameters params = getFilteredParameters(model, platform.getName(), isCaseSensitive);
-                    platform.getSqlBuilder().setWriter(writer);
-                    try
-                    {
-                        platform.getSqlBuilder().createTables(model, params, doDrops);
-                    }
-                    catch (IOException ioe)
-                    {
-                        throw new MojoExecutionException("Failed to generate ddl script "+outputFile.getAbsolutePath(), ioe);
-                    }
                     try
                     {
-                        writer.close();
+                        StringWriter stringWriter = new StringWriter();
+                        platform.getSqlBuilder().setWriter(stringWriter);
+                        platform.getSqlBuilder().createTables(model, params, false);
+                        String createSchema = stringWriter.toString();
+                        writeOutput(new File(outputDir,"create-schema.sql"),createSchema);
+                        stringWriter.getBuffer().setLength(0);
+                        platform.getSqlBuilder().createTables(model, params, true);
+                        stringWriter.getBuffer().setLength(stringWriter.getBuffer().length()-createSchema.length());
+                        writeOutput(new File(outputDir,"drop-schema.sql"), stringWriter.toString());
                     }
                     catch (IOException ioe)
                     {
-                        throw new MojoExecutionException("Failed to close output file "+outputFile.getAbsolutePath(), ioe);
+                        throw new MojoExecutionException("Failed to generate ddl for "+databases[i], ioe);
                     }
-                    getLog().info("Written "+databases[i]+" schema sql to " + outputFile.getAbsolutePath());
+                    getLog().info("Written "+databases[i]+" schema sql to " + outputDir.getAbsolutePath());
+                }
+            }
+        }
+    }
+    
+    protected void writeOutput(File outputFile, String content) throws MojoExecutionException
+    {
+        if (outputFile.exists() && (!outputFile.isFile() || !outputFile.canWrite())) 
+        {
+            throw new MojoExecutionException("Cannot write to output file "+outputFile.getAbsolutePath());
+        }
+        FileWriter outputWriter = null;
+        try
+        {
+            outputWriter = new FileWriter(outputFile);
+            outputWriter.append(content);
+            outputWriter.close();
+            outputWriter = null;
+        }
+        catch (IOException ioe)
+        {
+            throw new MojoExecutionException("Cannot open output file "+outputFile.getAbsolutePath(), ioe);
+        }
+        finally
+        {
+            if ( outputWriter != null )
+            {
+                try
+                {
+                    outputWriter.close();
+                }
+                catch (IOException ioe)
+                {
                 }
             }
         }



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