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