Scarab commit: svn commit: r10436 - trunk: . build src/conf/conf src/java/org/tigris/scarab/util/build src/nsis src/schema src/sql src/sql/db2 src/sql/db2400 src/sql/hypersonic src/sql/hypersonic/upgrade src/sql/mssql src/sql/mysql src/sql/oracle src/sql/postgresql src/sql/upgrade www/repository/hsqldb/jars xdocs

[email protected]
Newsgroups gmane.comp.java.scarab.cvs
Message-ID <[email protected]>
Author: ronvoe122
Date: 2007-04-10 13:30:45-0700
New Revision: 10436

Added:
   trunk/build/build-torque.xml
      - copied unchanged from r10433, /trunk/src/conf/conf/build-torque.xml
   trunk/src/conf/conf/create-db.bat
   trunk/src/nsis/
   trunk/src/nsis/before-install.nsh
   trunk/src/nsis/startmenu-shortcuts.nsh
   trunk/src/sql/hypersonic/standard-init.sql
      - copied, changed from r10435, /trunk/src/sql/hypersonic/standard-hypersonic-init.sql
   trunk/src/sql/mysql/create-db.sql
      - copied unchanged from r10433, /trunk/src/sql/mysql/create-mysql-db.sql
   trunk/src/sql/oracle/standard-init.sql
      - copied unchanged from r10433, /trunk/src/sql/oracle/standard-oracle-init.sql
   trunk/src/sql/postgresql/create-db.sql
      - copied unchanged from r10433, /trunk/src/sql/postgresql/create-postgresql-db.sql
   trunk/src/sql/prepare-dummy-tables.sql
      - copied unchanged from r10433, /trunk/src/sql/oracle/prepare-oracle-dummy-tables.sql
   trunk/src/sql/upgrade/
   trunk/src/sql/upgrade/upgrade-0.22-resize_id_prefix.sql
   trunk/www/repository/hsqldb/jars/hsqldb-1.8.0.7.jar   (contents, props changed)
Removed:
   trunk/build/nsis_project_template.jelly
   trunk/build/nsis_setup_template.jelly
   trunk/src/conf/conf/build-torque.xml
   trunk/src/java/org/tigris/scarab/util/build/AntSchemaFix.java
   trunk/src/sql/db2/
   trunk/src/sql/db2400/
   trunk/src/sql/hypersonic/create-hypersonic-db.sql
   trunk/src/sql/hypersonic/hsqldb-1.7.1.jar
   trunk/src/sql/hypersonic/prepare-hypersonic-dummy-tables.sql
   trunk/src/sql/hypersonic/runServer.bat
   trunk/src/sql/hypersonic/runServer.sh
   trunk/src/sql/hypersonic/scarab.properties
   trunk/src/sql/hypersonic/scarab.script
   trunk/src/sql/hypersonic/standard-hypersonic-init.sql
   trunk/src/sql/hypersonic/upgrade/
   trunk/src/sql/mssql/
   trunk/src/sql/mysql/create-mysql-db.sql
   trunk/src/sql/mysql/prepare-mysql-dummy-tables.sql
   trunk/src/sql/mysql/standard-mysql-init.sql
   trunk/src/sql/oracle/prepare-oracle-dummy-tables.sql
   trunk/src/sql/oracle/standard-oracle-init.sql
   trunk/src/sql/postgresql/create-postgresql-db.sql
   trunk/src/sql/postgresql/prepare-postgresql-dummy-tables.sql
   trunk/src/sql/postgresql/standard-postgresql-init.sql
   trunk/www/repository/hsqldb/jars/hsqldb-1.7.2.2.jar
Modified:
   trunk/build/build.xml
   trunk/maven.xml
   trunk/project.properties
   trunk/project.xml
   trunk/src/conf/conf/build.xml
   trunk/src/schema/scarab-schema.xml
   trunk/xdocs/scarab_properties.xml

Log:
[SCB1675] Windows Installer for a standalone Scarab:
   - includes a ready to use embedded hsqldb containing sample data
   - checks for java_home
   - creates start-menu-entries for 
      - client 
      - server startup/shutdown
      - database creation using the settings in custom.properties
             
Implementation details:
   - removed all dependencies from torque generator in runtime build
     - moved sql generation from runtime build to regular build
     - made length of module_code in scarab-schema.xml static
     - added a target to build sql for all supported databases at once
   - upgraded hsqldb to v1.8
     - removed obsolete AntSchemaFix.java
   - cleaned up runtime build
     - removed database types from file names
     - created a directory for common upgrade scripts
     - cleaned directory structure for sql scripts
        - target/sql/all containing the original sql for all supported rdbms
        - target/sql/current containing the prepared sql
          for the currently configured rdbms instance
     - create and execute one single script to populate target database
     - scripts which are not required for each rdbms are now optional (eg. standard-init.sql)
   - restructured the maven nsis goal
      - new name scarab:windows-installer
      - reused the default nsis templates (removed the customized version)
      - added a nsis directory to src directory for nsis customizations
      - maven looks for the nsis exe in the default windows program directory 
        (should also work with french and german windows installations)


Modified: trunk/build/build.xml
Url: http://scarab.tigris.org/source/browse/scarab/trunk/build/build.xml?view=diff&rev=10436&p1=trunk/build/build.xml&p2=trunk/build/build.xml&r1=10435&r2=10436
==============================================================================
--- trunk/build/build.xml	(original)
+++ trunk/build/build.xml	2007-04-10 13:30:45-0700
@@ -52,9 +52,6 @@
     <property name="src.templates.dir" value="${src.webinf.dir}/templates"/>    
     <property name="src.test.dir" value="${src.dir}/test"/>
     
-    <property name="torque.dir.scarab" value="${build.dir}/torque"/>
-    <property name="torque.java.dir" value="${build.src.scarab}/torque"/>
-    
     <property name="torquedoc.destdir" value="${build.dir}/torquedoc"/>
     <property name="scarab.war.file.dir" value="${build.dir}"/>
     <property name="scarab.war.file.name" value="scarab.war"/>
@@ -83,52 +80,30 @@
     </path>
 
     <!-- ================================================================== -->
-    <!-- Scarab Welcome header                                              -->
+    <!-- Ensures, that the Build directory exists                           -->
     <!-- ================================================================== -->
-    <target name="scarab-welcome">
-      <tstamp/>
-      <echo>
-  _________ B U I L D   S Y S T E M ___.    
- /   _____/ ____ _____ ____________ \_ |__  
- \_____  \_/ ___\\__  \\_  __ \__  \ | __ \ 
- /        \  \___ / __ \|  | \// __ \| \_\ \
-/_______  /\___  >____  /__|  (____  /___  /
-        \/     \/     \/           \/    \/ 
-
-        [${version}-${DSTAMP}${TSTAMP}]
-
-        Running with following options:
-
-        Scarab:
-        administrator = ${scarab.user.username}
-        
-        Scarab Database:
-        type          = ${scarab.database.type}
-        instance name = ${scarab.database.name}
-        runtime user  = ${scarab.database.username}
-        admin user    = ${scarab.database.admin.username}
-		   
-        Database Connection:
-        host          = ${scarab.database.host}
-        port          = ${scarab.database.port}
-        url           = ${scarab.database.url}
-        jdbc driver   = ${scarab.database.jdbc.driver}
+    <target name="create-build-dir" >
 
-      </echo>
+        <echo message="Build Dir: ${build.dir}"/>
+        <mkdir dir="${build.dir}"/>
     </target>
-
+   
 
     <!-- ================================================================== -->
-    <!-- Ensures, that the Build directory exists                           -->
+    <!-- Prepares the deploy directory                                     -->
     <!-- ================================================================== -->
-    <target name="create-build-dir" depends="scarab-welcome">
 
-        <echo message="Build Dir: ${build.dir}"/>
-        <mkdir dir="${build.dir}"/>
-    </target>
+    <target name="create-deployment-directory">
 
+    <echo>
++-------------------------------------------------------------
+|
+| Bootstrap build for Scarab using configuration:
+|
+| Build directory ${build.project}
++-------------------------------------------------------------
+        </echo>
 
-   <target name="create-webapp-lib" depends="create-build-dir">
         <!-- =============================== -->
         <!-- copy the core libraries (.jars) -->
         <!-- =============================== -->
@@ -144,32 +119,10 @@
             <fileset dir="${repository.dir}">
                 <exclude name="**/servlet*.jar"/>
                 <exclude name="**/xalan*.jar"/>
-                <exclude name="**/${scarab.database.jdbc.driver.jar.mysql}"/>
-                <exclude name="**/${scarab.database.jdbc.driver.jar.postgres}"/>
-                <exclude name="**/${scarab.database.jdbc.driver.jar.hypersonic}"/>
-                <exclude name="**/${scarab.database.jdbc.driver.jar.mssql}"/>
-                <exclude name="**/${scarab.database.jdbc.driver.jar.oracle}"/>
-                <exclude name="**/${scarab.database.jdbc.driver.jar.db2}"/>
                 <include name="**/**.jar"/>
             </fileset>
         </copy>
-    </target>
-   
 
-    <!-- ================================================================== -->
-    <!-- Prepares the build directory                                       -->
-    <!-- ================================================================== -->
-
-    <target name="prepare-build" depends="create-webapp-lib">
-
-    <echo>
-+-------------------------------------------------------------
-|
-| Bootstrap build for Scarab using configuration:
-|
-| Build directory ${build.project}
-+-------------------------------------------------------------
-        </echo>
 
         <!-- ====================================== -->
         <!-- Conditionally copy extension libraries -->
@@ -177,16 +130,6 @@
         <available property="extensions.lib.exist" 
                    file="${extensions.lib.dir}"/>
         <antcall target="copy-lib-extensions"/>
-
-    </target>
-
-
-    <!-- ================================================================== -->
-    <!-- Prepares the deploy directory                                     -->
-    <!-- ================================================================== -->
-
-    <target name="create-deployment-directory">
-
         <echo>
 +-------------------------------------------------------------
 |
@@ -232,28 +175,8 @@
         <!-- ==================================== -->        
         <echo> copy the database source files      </echo>      
         <!-- ==================================== -->        
-        <copy todir="${build.project}/database/src" filtering="no">
-             <fileset dir="${src.dir}">
-                 <include name="sql/**"/>
-                 <include name="schema/**"/>
-             </fileset>
-             <fileset dir="${src.dir}/conf">
-                 <include name="torque.static.props"/>
-             </fileset>
-        </copy>
-    	
-        <!-- ==================================== -->        
-        <echo> copy the database drivers ...     </echo>      
-        <!-- ==================================== -->        
-        <copy todir="${build.project}/database/src/drivers" filtering="no">
-             <fileset dir="${repository.dir}">
-                <include name="**/${scarab.database.jdbc.driver.jar.mysql}"/>
-                <include name="**/${scarab.database.jdbc.driver.jar.postgres}"/>
-                <include name="**/${scarab.database.jdbc.driver.jar.hypersonic}"/>
-                <include name="**/${scarab.database.jdbc.driver.jar.mssql}"/>
-                <include name="**/${scarab.database.jdbc.driver.jar.oracle}"/>
-                <include name="**/${scarab.database.jdbc.driver.jar.db2}"/>
-             </fileset>
+        <copy todir="${build.project}/sql/all">
+            <fileset dir="${src.dir}/sql"/>
         </copy>
 
         <!-- ======================================== -->
@@ -347,89 +270,90 @@
             </filterset>
         </copy>
     </target>
-
-    <!-- ================================================================== -->
-    <!-- Copy all of the xml schema files into the torque directory         -->
-    <!-- ================================================================== -->
-    <target name="torque-copy-scarab-schema">
-        <!-- copy the schema's to the torque directory -->
-        <copy file="${src.schema.dir}/${project}-schema.xml" 
-              todir="${torque.dir.scarab}/schema"
-              filtering="true" overwrite="true">
-          <filterset>
-            <filter token="SCARAB_MODULE_CODE_LENGTH" value="${scarab.module.code.length}"/>
-          </filterset>
-        </copy>
-        <copy file="${src.schema.dir}/id-table-schema.xml" 
-              todir="${torque.dir.scarab}/schema"
-              filtering="true" overwrite="true"/>
-
-        <!-- we don't want to generate the OM objects for Turbine 
-             tables because they already exists in the fulcrum.jar -->
-        <delete file="${torque.dir.scarab}/schema/turbine-schema.xml"/>
-
-    </target>
         
     <!-- ================================================================== -->
     <!-- Generate OM/Peer classes from Torque                               -->
     <!-- Main target: generate-om                                      -->
     <!-- ================================================================== -->
-    <target name="om-peer-generated-check" depends="create-build-dir">
-        <echo message="checking: ${src.java.dir.scarab}/report.scarab.om.generation"/>
-        <uptodate property="gen.uptodate"
+    <target name="check-om-uptodate" depends="create-build-dir">
+        <uptodate property="om.uptodate"
                   targetfile="${src.java.dir.scarab}/report.scarab.om.generation">
             <srcfiles dir="${src.schema.dir}"
                       includes="${scarab.torque.schemas}"/>
         </uptodate>
     </target>
 
-    <target name="om-peer-java-generator" depends="om-peer-generated-check,create-webapp-lib" 
-            unless="gen.uptodate">
-    
-        <antcall target="torque-copy-scarab-schema" />
+    <target name="generate-om" depends="check-om-uptodate" 
+            unless="om.uptodate">
 
-        <copy file="${src.conf.dir}/conf/build-torque.xml" 
-              tofile="build-torque.xml"
-              filtering="true" overwrite="true"/>
-
-        <echo>Now call the Torque Generator</echo>
         <ant antfile="build-torque.xml" target="om" inheritAll="false">
             <property name="lib.dir"                  value="${repository.dir}"/>
-            <property name="torque.schema.dir"        value="${torque.dir.scarab}/schema"/>
+            <property name="torque.schema.dir"        value="${src.schema.dir}"/>
             <property name="torque.java.dir"          value="${src.java.dir.scarab}"/>
             <property name="torque.contextProperties" value="${src.conf.dir}/torque.static.props"/>
-            <property name="torque.database"          value="${scarab.database.type}"/>
-            <property name="torque.database.driver"   value="${scarab.database.jdbc.driver}"/>
-            <property name="torque.database.url"      value="${scarab.database.url}"/>
-            <property name="torque.database.user"     value="${scarab.database.admin.username}"/>
-            <property name="torque.database.password" value="${scarab.database.admin.password}"/>
+            <property name="torque.database"          value="default"/>
         </ant>
 
     </target>
 
-    <target name="generate-om" depends="om-peer-java-generator"
-            unless="gen.uptodate">
-    </target>
-    <!-- ================================================================== -->
-
     <!-- ================================================================== -->
-    <!-- Load database-drivers                                              -->
+    <!-- Generate SQL from Torque for a specified database type. Set the    -->
+    <!-- generatesql.database.type property when calling this target to     -->
+    <!-- specify the required database type.                                -->
     <!-- ================================================================== -->
-    <target name="load-drivers" >
-
-        <ant antfile="build.xml"
-             target="load-drivers"
-                 inheritAll="false"
-                 dir="${runtime.config.dir}">
+    <target name="sql-specific-db" depends="check-sql-uptodate"
+            unless="sql.uptodate">
+        
+        <ant antfile="build-torque.xml" target="sql" inheritAll="false">
+            <property name="lib.dir"                  value="${repository.dir}"/>
+            <property name="torque.schema.dir"        value="${src.schema.dir}"/>
+            <property name="torque.sql.dir"           value="${build.project}/sql/all/${generatesql.database.type}"/>
+            <property name="torque.contextProperties" value="${src.conf.dir}/torque.static.props"/>
+            <property name="torque.database"          value="${generatesql.database.type}"/>
         </ant>
+                    
+    </target>
 
+    <target name="check-sql-uptodate">
+        <echo message="check sql for ${generatesql.database.type}" />
+        <uptodate property="sql.uptodate"
+                  targetfile="${build.project}/sql/all/${generatesql.database.type}/report.scarab.sql.generation">
+            <srcfiles dir="${src.schema.dir}"
+                      includes="${scarab.torque.schemas}"/>
+        </uptodate>
     </target>
 
+    <target name="generate-sql" depends="create-build-dir">
+        <antcall target="sql-specific-db">
+            <param name="generatesql.database.type" value="${scarab.database.type}"/>
+        </antcall>
+    </target>
+
+    <target name="generate-all-sql" depends="create-build-dir">
+        <antcall target="sql-specific-db">
+            <param name="generatesql.database.type" value="db2"/>
+        </antcall>
+        <antcall target="sql-specific-db">
+            <param name="generatesql.database.type" value="hypersonic"/>
+        </antcall>
+        <antcall target="sql-specific-db">
+            <param name="generatesql.database.type" value="mysql"/>
+        </antcall>
+        <antcall target="sql-specific-db">
+            <param name="generatesql.database.type" value="mssql"/>
+        </antcall>
+        <antcall target="sql-specific-db">
+            <param name="generatesql.database.type" value="oracle"/>
+        </antcall>
+        <antcall target="sql-specific-db">
+            <param name="generatesql.database.type" value="postgresql"/>
+        </antcall>
+    </target>
 
     <!-- ================================================================== -->
     <!-- Create database                                                    -->
     <!-- ================================================================== -->
-    <target name="create-db" >
+    <target name="create-db" depends="compile,generate-sql,create-custom-property-file">
     
         <ant antfile="build.xml"
              target="create-db" 
@@ -462,28 +386,16 @@
              dir="${runtime.config.dir}">
         </ant>        
     </target>
-
-    <target name="create-anonymous" description="create anonymous user">
-        <ant antfile="build.xml"
-             target="create-anonymous"
-             inheritAll="false"
-             dir="${runtime.config.dir}">
-        </ant>
-    </target>
-
 	
     <!-- ================================================================== -->
     <!-- Deploys the webapp into target/scarab                              -->
     <!-- ================================================================== -->
-    <target name="deploy" depends="compile,create-custom-property-file,load-drivers">
-      <echo> Deploy the Scarab intance</echo>
-    </target>
-
+    <target name="deploy" depends="compile,generate-sql,create-custom-property-file" />
 
     <!-- ================================================================== -->
     <!-- Compiles the source directory                                      -->
     <!-- ================================================================== -->
-    <target name="compile" depends="generate-om, prepare-build, create-deployment-directory">
+    <target name="compile" depends="generate-om,create-deployment-directory">
         <mkdir dir="${build.dest.scarab}"/>
         <javac srcdir="${src.java.dir.scarab}"
                destdir="${build.dest.scarab}"

Removed: trunk/build/nsis_project_template.jelly
Url: http://scarab.tigris.org/source/browse/scarab/trunk/build/nsis_project_template.jelly?view=auto&rev=10435

Removed: trunk/build/nsis_setup_template.jelly
Url: http://scarab.tigris.org/source/browse/scarab/trunk/build/nsis_setup_template.jelly?view=auto&rev=10435

Modified: trunk/maven.xml
Url: http://scarab.tigris.org/source/browse/scarab/trunk/maven.xml?view=diff&rev=10436&p1=trunk/maven.xml&p2=trunk/maven.xml&r1=10435&r2=10436
==============================================================================
--- trunk/maven.xml	(original)
+++ trunk/maven.xml	2007-04-10 13:30:45-0700
@@ -17,81 +17,64 @@
     <maven:property name="root.dir" defaultValue="${basedir}"/>
     <maven:property name="applicationRoot" defaultValue="${root.dir}/target/scarab"/>
     <maven:property name="maven.changes.issue.template" defaultValue="%URL%/issues?id=%ISSUE%"/>
-    <maven:property name="maven.nsis.setup.template" defaultValue="build/nsis_setup_template.jelly"/>
-    <maven:property name="maven.nsis.project.template" defaultValue="build/nsis_project_template.jelly"/>
-    <maven:property name="runtime.config.dir" defaultValue="${applicationRoot}/WEB-INF/conf"/>
+    <ant:property environment="env"/>
+    <maven:property name="maven.nsis.exe" defaultValue="${env.ProgramFiles}/NSIS/makensis.exe"/>
 
     <maven:property name="debian.package.name" defaultValue="scarab-${scarab.context}-${version}" />
    <maven:property name="debian.package.dir" defaultValue="${root.dir}/target/${debian.package.name}" />
    <maven:property name="debian.tomcat.version" defaultValue="tomcat4" />
 
-    <!-- ==================================================== -->
-    <!-- D A T A B A S E   C R E A T I O N                    -->
-    <!-- ==================================================== -->
-    <!-- The database creation will eventually be performed   -->
-    <!-- during Webaplication setup. Scarab will call         -->
-    <!-- an ant task (create-db) during runtime. That ant     -->
-    <!-- task is supposed to generate the database as needed. -->
-    <!-- This goal calls exactly the same ant task as Scarab  -->
-    <!-- will eventually do.                                  -->
-    <!--                                                      -->
-    <!-- Note: We should consider this goal as temporary.     -->
-    <!--       As soon as the Scarab setup Wizzard comes to   -->
-    <!--       life, this goal probably becomes obsolete.     -->
-    <!-- ==================================================== -->
     <goal name="scarab:create-db">
         <ant:ant antfile="build.xml"
              target="create-db" 
         	 inheritAll="false"
-        	 dir="${runtime.config.dir}">
+        	 dir="${root.dir}/build">
         </ant:ant>
     </goal>
 
+    <goal name="scarab:migrate-from-0.21">
+        <ant:ant antfile="build.xml"
+             target="migrate-from-0.21"
+                 inheritAll="false"
+                 dir="${root.dir}">
+        </ant:ant>
+    </goal>
 
     <goal name="scarab:migrate-from-b20">
         <ant:ant antfile="build.xml"
              target="migrate-from-b20"
                  inheritAll="false"
-                 dir="${runtime.config.dir}">
-            <property name="torque.database.driver"   value="${scarab.database.jdbc.driver}"/>
-            <property name="torque.database.url"      value="${scarab.database.url}"/>
-            <property name="torque.database.user"     value="${scarab.database.username}"/>
-            <property name="torque.database.password" value="${scarab.database.password}"/>
+                 dir="${root.dir}">
         </ant:ant>
     </goal>
     
-    <goal name="scarab:database">
-<ant:echo>
-+-------------------------------------------------+
-| The goal scarab:database has been replaced      |
-| by the non-interactive goal "scarab:create-db". |
-+-------------------------------------------------+
-</ant:echo>
-    </goal>
+    <goal name="scarab:windows-installer" 
+          description="Create a windows installer"
+          prereqs="scarab:base-distribution,nsis"/>
+ 
+    <goal name="scarab:base-distribution" description="Create an out of the box ready distribution">
+        
+        <ant:condition property="database.is.default.hypersonic">
+           <ant:equals arg1="${scarab.database.type}" arg2="hypersonic"/>
+        </ant:condition> 
+        
+        <ant:fail unless="database.is.default.hypersonic" message="Database type must be hypersonic and all database settings must have the default values"/>
 
-    
-    <goal name="scarab:load-sample-data">
+        <maven:property name="maven.test.skip" defaultValue="true"/>
 
-        <echo>
-            driver="${torque.database.driver}"
-            url="${torque.database.buildUrl}"
-            userid="${torque.database.user}"
-            password="${torque.database.password}"
-            transaction src="${torque.sql.dir}/scarab-sample-data.sql
-        </echo>/>
-
-        <sql
-            driver="${torque.database.driver}"
-            url="${torque.database.buildUrl}"
-            userid="${torque.database.user}"
-            password="${torque.database.password}">
-            <classpath refid="maven.dependency.classpath"/>
-            <transaction src="${torque.sql.dir}/scarab-sample-data.sql"/>
-        </sql>
-    </goal>    
-    
-    <goal name="scarab:sample" prereqs="war:webapp" 
-        description="Create an out of the box ready distribution">
+        <attainGoal name="war:webapp"/>
+
+        <ant:ant antfile="build.xml"
+             target="generate-all-sql" 
+        	 inheritAll="false"
+        	 dir="${root.dir}/build">
+        </ant:ant>
+
+        <ant:ant antfile="build.xml"
+             target="create-db" 
+        	 inheritAll="false"
+        	 dir="${root.dir}/build">
+        </ant:ant>
 
         <ant:mkdir dir="target/dist"/>
 
@@ -109,18 +92,8 @@
             </ant:fileset>
         </ant:copy>
 
-        <ant:copy todir="target/dist/hypersonic">
-            <ant:fileset dir="src/sql/hypersonic" includes="**/*.*"/>
-        </ant:copy>
-
-        <ant:copy todir="${warWebappBuildDir}/WEB-INF/classes">
-            <ant:fileset dir="${maven.src.dir}/conf/classes" includes="**/*.*"/>
-        </ant:copy>
-        <!-- Bring over the correct scarab.xml file with the right context settings -->
         <ant:copy file="tomcat/webapps/scarab.allinone.xml.off" 
             tofile="target/dist/tomcat/webapps/scarab.xml"/>
-
-        <attainGoal name="nsis"/>
     </goal>
     
     <goal name="scarab:deploy_docs_head" prereqs="site" 
@@ -399,18 +372,6 @@
         <ant:filterset id="scarab.test.filter">
             <ant:filter token="SCARAB_MODULE_CODE_LENGTH" 
                 value="${scarab.module.code.length}" />
-            <ant:filter token="SCARAB_DATABASE_TYPE" 
-                value="${scarab.database.type}" />
-            <ant:filter token="SCARAB_DATABASE_USERNAME" 
-                value="${scarab.database.username}" />
-            <ant:filter token="SCARAB_DATABASE_PASSWORD" 
-                value="${scarab.database.password}" />
-            <ant:filter token="SCARAB_DATABASE_URL" 
-                value="${scarab.database.url}" />
-            <ant:filter token="SCARAB_DATABASE_DRIVER" 
-                value="${scarab.database.driver}" />
-            <ant:filter token="SCARAB_DATABASE_VALIDATION_QUERY" 
-                value="${scarab.database.validation.query}" />
         </ant:filterset>
         <ant:copy todir="${maven.build.dir}/test-config">
             <ant:fileset dir="${maven.src.dir}/conf/conf" includes="**/*.*"/>
@@ -440,19 +401,10 @@
             <ant:filterset refid="scarab.filter"/>
         </ant:copy>
 
-        <ant:copy todir="${warWebappBuildDir}/database/src/sql">
+        <ant:copy todir="${warWebappBuildDir}/sql/all">
             <ant:fileset dir="${maven.src.dir}/sql" includes="**/*.*"/>
             <ant:filterset refid="scarab.filter"/>
-        </ant:copy>
-        <ant:copy todir="${warWebappBuildDir}/database/src/schema">
-            <ant:fileset dir="${maven.src.dir}/schema" includes="**/*.*"/>
-            <ant:filterset refid="scarab.filter"/>
-        </ant:copy>
-        <ant:copy todir="${warWebappBuildDir}/database/src">
-            <ant:fileset dir="${maven.src.dir}/conf" includes="torque.static.props"/>
-            <ant:filterset refid="scarab.filter"/>
-        </ant:copy>
-        
+        </ant:copy>        
     </preGoal>
     
     <postGoal name="changes:report">

Modified: trunk/project.properties
Url: http://scarab.tigris.org/source/browse/scarab/trunk/project.properties?view=diff&rev=10436&p1=trunk/project.properties&p2=trunk/project.properties&r1=10435&r2=10436
==============================================================================
--- trunk/project.properties	(original)
+++ trunk/project.properties	2007-04-10 13:30:45-0700
@@ -1475,8 +1475,8 @@
 hsqldb.dbname=${scarab.database.name}
 scarab.jdbc.handler.hypersonic=hsqldb
 scarab.database.port.hypersonic=3306
-scarab.database.admin.url.hypersonic=jdbc:hsqldb:file:${applicationRoot}/${hsqldb.database}/${hsqldb.dbname}
-scarab.database.url.hypersonic=jdbc:hsqldb:file:${applicationRoot}/${hsqldb.database}/${hsqldb.dbname}
+scarab.database.admin.url.hypersonic=jdbc:hsqldb:file:${applicationRoot}/embedded_hsqldb/${hsqldb.dbname};shutdown=true
+scarab.database.url.hypersonic=jdbc:hsqldb:file:${applicationRoot}/embedded_hsqldb/${hsqldb.dbname};shutdown=true
 scarab.database.url.extension.hypersonic=
 scarab.database.pool.validationQuery.hypersonic=SELECT ATTRIBUTE_ID FROM SCARAB_ATTRIBUTE WHERE ATTRIBUTE_ID='0'
 scarab.database.jdbc.driver.hypersonic=org.hsqldb.jdbcDriver

Modified: trunk/project.xml
Url: http://scarab.tigris.org/source/browse/scarab/trunk/project.xml?view=diff&rev=10436&p1=trunk/project.xml&p2=trunk/project.xml&r1=10435&r2=10436
==============================================================================
--- trunk/project.xml	(original)
+++ trunk/project.xml	2007-04-10 13:30:45-0700
@@ -742,7 +742,7 @@
     <dependency>
       <groupId>hsqldb</groupId>
       <artifactId>hsqldb</artifactId>
-      <version>1.7.2.2</version>
+      <version>1.8.0.7</version>
       <type>jar</type>
       <properties>
         <war.bundle>true</war.bundle>

Removed: trunk/src/conf/conf/build-torque.xml
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/conf/conf/build-torque.xml?view=auto&rev=10435

Modified: trunk/src/conf/conf/build.xml
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/conf/conf/build.xml?view=diff&rev=10436&p1=trunk/src/conf/conf/build.xml&p2=trunk/src/conf/conf/build.xml&r1=10435&r2=10436
==============================================================================
--- trunk/src/conf/conf/build.xml	(original)
+++ trunk/src/conf/conf/build.xml	2007-04-10 13:30:45-0700
@@ -2,478 +2,198 @@
 
 <!-- ===================================================================== -->
 <!--                                                                       -->
-<!-- Build file for Scarab                                                 -->
+<!-- Build file for Scarab database creation                               -->
 <!-- =====================                                                 -->
 <!--                                                                       -->
 <!-- Quickstep docu:                                                       -->
-<!-- ant deploy        generate om, compile, create a functional webapp in -->
-<!--                   scarab/target/scarab                                -->
+<!-- ant create-db     create an empty scarab database                     -->
 <!--                                                                       -->
-<!-- subordinate tasks (usefull for developers only)                       -->
-<!-- ant compile       generate om and compile. Place results into         -->
-<!--                   scarab/target/scarab/WEB-INF/classes                -->
-<!-- ant generate-om   generate the object model (om), merge results into  -->
-<!--                   scarab/src/java/org/tigris/scarab/om/...            -->
-<!-- ===================================================================== -->
-
-<!-- ===================================================================== -->
-<!-- [HD] experimental version                                             -->
-<!--      If you use this build script, be prepared for errors             -->
 <!-- ===================================================================== -->
 
 <project name="Scarab" default="create-db">
 
     <property name="applicationRoot" value="${basedir}/../.."/>
-    <property name="antbase.dir" value="."/>
-	 <property name="workdir" value="${applicationRoot}/WEB-INF/conf"/>
-    
-    <property name="webapp.dir"               value=".."/>
-    <property name="webapp.lib.dir"           value="../lib"/>
-    <property name="webapp.conf.dir"          value="../conf"/>
-    <property name="database.src.dir"         value="../../database/src"/>
-    <property name="database.src.sql.dir"     value="${database.src.dir}/sql"/>
-    <property name="database.src.schema.dir"  value="${database.src.dir}/schema"/>
+    <property name="sql.all.dir" value="${applicationRoot}/sql/all"/>
+    <property name="sql.current.dir" value="${applicationRoot}/sql/current"/>
+    <property name="sql.current.upgrade.dir" value="${sql.current.dir}/upgrade"/>
 
     <property file="custom.properties" />
     <property file="defaultCustom.properties" />
 
+    <property name="skip.seed.data" value="false"/>
+    <property name="skip.jira.templates.data" value="false"/>
 
-    <property name="database.instance.dir"         value="../../database/instance"/>
-    <property name="database.instance.sql.dir"     value="${database.instance.dir}/sql"/>
-    <property name="database.instance.schema.dir"  value="${database.instance.dir}/schema"/>
-    <property name="database.instance.upgrade.dir" value="${database.instance.sql.dir}/${scarab.database.type}/upgrade"/>
-	    
     <path id="classpath">
-        <fileset dir="${workdir}/..">
+        <fileset dir="../lib">
             <include name="**/*.jar"/>
         </fileset>
-    	<filelist dir="${workdir}/.." files="classes"/>
     </path>
 
-
-
-    <!-- ================================================================== -->
-    <!-- Scarab Welcome header                                              -->
-    <!-- ================================================================== -->
     <target name="scarab-welcome">
-      <tstamp/>
       <echo>
-  _________R U N T I M E  B U I L D ___.    
- /   _____/ ____ _____ ____________ \_ |__  
- \_____  \_/ ___\\__  \\_  __ \__  \ | __ \ 
- /        \  \___ / __ \|  | \// __ \| \_\ \
-/_______  /\___  >____  /__|  (____  /___  /
-        \/     \/     \/           \/    \/ 
-
-        [${version}-${DSTAMP}${TSTAMP}]
-
-        Running with following options:
-
-        Scarab:
-        administrator = ${scarab.user.username}
-        
-        Scarab Database:
-        type          = ${scarab.database.type}
-        instance name = ${scarab.database.name}
-        runtime user  = ${scarab.database.username}
-        admin user    = ${scarab.database.admin.username}
-		   
-        Database Connection:
-        host          = ${scarab.database.host}
-        port          = ${scarab.database.port}
-        url           = ${scarab.database.url}
-        jdbc driver   = ${scarab.database.jdbc.driver}
-		  		  
+        Creating or upgrading Scarab Database:
+        type                  = ${scarab.database.type}
+        instance name         = ${scarab.database.name}
+        admin user            = ${scarab.database.admin.username}
+        jdbc url              = ${scarab.database.url}
+        jdbc driver           = ${scarab.database.jdbc.driver}
+        skip jira templates   = ${skip.jira.templates.data}
+        skip sample data      = ${skip.seed.data}
       </echo>
     </target>
 
+    <target name="prepare-database-script" depends="clean">
 
-    <!-- ================================================================== -->
-    <!-- Copy all of the xml schema files into the torque directory         -->
-    <!-- ================================================================== -->
-    <target name="torque-copy-scarab-schema">
-
-        <!-- =========================================== -->
-        <!-- copy the schemas to the instance directory -->
-        <!-- =========================================== -->
-        <copy file="${database.src.schema.dir}/${project}-schema.xml" 
-              todir="${database.instance.schema.dir}"
-              filtering="true" overwrite="true">
-          <filterset>
-            <filter token="SCARAB_MODULE_CODE_LENGTH" value="${scarab.module.code.length}"/>
-          </filterset>
-        </copy>
-        
-        <copy file="${database.src.schema.dir}/id-table-schema.xml" 
-              todir="${database.instance.schema.dir}"
-              filtering="true" overwrite="true"/>
-
-        <copy file="${database.src.schema.dir}/turbine-schema.xml" 
-              todir="${database.instance.schema.dir}"
-              filtering="true" overwrite="true"/>
-
-    </target>
-
-    <!-- ================================================================== -->
-    <!-- Check to see if SQL related stuff is up to date                    -->
-    <!-- ================================================================== -->
-    <target name="schema-check">
-        <echo message="checking: ${database.instance.sql.dir}/${scarab.database.type}/${project}.sql"/>
-        <uptodate property="schema.uptodate"
-                  targetfile="${database.instance.sql.dir}/${scarab.database.type}/${project}.sql">
-            <srcfiles dir="${database.src.schema.dir}" includes="turbine-schema.xml"/>
-            <srcfiles dir="${database.src.schema.dir}" includes="id-table-schema.xml"/>
-            <srcfiles dir="${database.src.schema.dir}" includes="${project}-schema.xml"/>
-            <srcfiles dir="${user.home}"   includes="scarab.build.properties"/>
-            <srcfiles dir="${user.home}"   includes="build.properties"/>
-            <srcfiles dir="${antbase.dir}" includes="custom.properties" />
-            <srcfiles dir="${antbase.dir}" includes="defaultCustom.properties" />
-        </uptodate>
-    </target>
-
-
-    
-    <!-- ================================================================== -->
-    <!-- Generate SQL from Torque for a specified database type. Set the    -->
-    <!-- generatesql.database.type property when calling this target to     -->
-    <!-- specify the required database type.                                -->
-    <!-- ================================================================== -->
-    <target name="sql-specific-db">
-
-        <antcall target="torque-copy-scarab-schema" />
-
-        <filter token="DB_NAME"           value="${scarab.database.name}"/>
-        <filter token="DATABASE_TYPE"     value="${generatesql.database.type}"/>
-        <filter token="DATABASE_DRIVER"   value="${scarab.database.jdbc.driver}"/>
-        <filter token="DATABASE_URL"      value="${scarab.database.url}"/>
-        <filter token="DATABASE_HOST"     value="${scarab.database.host}"/>
-        <filter token="DATABASE_PORT"     value="${scarab.database.port}"/>
-        <filter token="DATABASE_USERNAME" value="${scarab.database.username}"/>
-        <filter token="DATABASE_PASSWORD" value="${scarab.database.password}"/> 
-        
-        <!-- ============================================= -->
-        <!-- generate .sql files into the target directory -->
-        <!-- ============================================= -->
-        <ant antfile="build-torque.xml" target="sql" inheritAll="false">
-            <property name="lib.dir"                  value="../lib"/>
-            <property name="torque.schema.dir"        value="../../database/instance/schema"/>
-            <property name="torque.sql.dir"           value="../../database/instance/sql"/>
-            <property name="torque.contextProperties" value="${database.src.dir}/torque.static.props"/>
-            <property name="torque.database"          value="${scarab.database.type}"/>
-            <property name="torque.database.driver"   value="${scarab.database.jdbc.driver}"/>
-            <property name="torque.database.url"      value="${scarab.database.url}"/>
-            <property name="torque.database.user"     value="${scarab.database.admin.username}"/>
-            <property name="torque.database.password" value="${scarab.database.admin.password}"/>
-        </ant>
-
-    	<echo>perform Schema fixes ...</echo>
-	
-        <taskdef
-            name="schemaFix" 
-            classname="org.tigris.scarab.util.build.AntSchemaFix">
-        	<classpath refid="classpath"/>
-        </taskdef>
-
-    	<schemaFix
-                source = "${database.instance.sql.dir}/${project}-schema.sql"
-                dbtype = "${scarab.database.type}" 
-        />
-    	
-        <!-- ==================================================== -->
-        <!-- Move generated schema-sql files to final destination -->
-        <!-- ==================================================== -->
-        <mkdir dir="${database.instance.sql.dir}/${generatesql.database.type}/"/>
-
-        <move file="${database.instance.sql.dir}/${project}-schema.sql"
-            tofile="${database.instance.sql.dir}/${generatesql.database.type}/${project}.sql"/>
-        <move file="${database.instance.sql.dir}/turbine-schema.sql"
-            tofile="${database.instance.sql.dir}/${generatesql.database.type}/turbine.sql"/>
-        <move file="${database.instance.sql.dir}/id-table-schema.sql"
-            tofile="${database.instance.sql.dir}/${generatesql.database.type}/id-table.sql"/>
-            
-    </target>
-    
-    
-    <!-- ================================================================== -->
-    <!-- Generate SQL from Torque for the database type set in the build    -->
-    <!-- property "scarab.database.type".                                   -->
-    <!-- ================================================================== -->
-    <target name="sql-current-db">
-        <!-- Generate the Torque files for the specified database type -->
-        <antcall target="sql-specific-db">
-            <param name="generatesql.database.type"
-                   value="${scarab.database.type}"/>
-        </antcall>
-    </target>
-
-
-    <!-- ================================================================== -->
-    <!-- Generate SQL db-initialization scripts from Torque                 -->
-    <!-- Main target: generate-dbscripts                                    -->
-    <!-- ================================================================== -->
-    <target name="om-peer-sql-generator" unless="gen.uptodate">
-
-        <!-- Create the Torque-generated files for the specified database type -->
-        <antcall target="sql-specific-db">
-            <param name="generatesql.database.type"
-                   value="${scarab.database.type}"/>
-        </antcall>
-    
-    </target>
-
-    <target name="generate-dbscripts" depends="om-peer-sql-generator"
-            unless="gen.uptodate">
-    </target>
-    <!-- ================================================================== -->
-
-
-
-    <!-- ================================================================== -->
-    <!-- Check for databases that could require alternate or more complex   -->
-    <!-- methods for schema creation                                        -->
-    <!-- ================================================================== -->
-    <target name="db-type-check">
-        <condition property="auto.create.db">
-        <not>
-            <or>
-                <equals arg1="${scarab.database.type}" arg2="oracle"/>
-                <equals arg1="${scarab.database.type}" arg2="db2"/>
-                <equals arg1="${scarab.database.type}" arg2="mssql"/>
-                <!--equals arg1="${scarab.database.type}" arg2="postgresql"/ -->
-            </or>
-        </not>
-        </condition>
-    </target>
-
-    <!-- ================================================================== -->
-    <!-- Test to make sure the database connection works                    -->
-    <!-- ================================================================== -->
-    <target name="test-db-connection" depends="sql-current-db">
-        <echo message="Connecting to ${scarab.database.type} at ${scarab.database.url}"/>
-        <sql
-            driver="${scarab.database.jdbc.driver}"
-            url="${scarab.database.url}"
-            userid="${scarab.database.admin.username}"
-            password="${scarab.database.admin.password}">
-            <classpath refid="classpath"/>
-        CREATE TABLE scarab_test (
-          scarab_test integer
-        );
-        drop table scarab_test;
-        </sql>
-    </target>
-
-    <!-- ================================================================== -->
-    <!-- Create database schemaif not bypassed in "db-type-check"           -->
-    <!-- ================================================================== -->
-    <target name="create-db-schema" depends="scarab-welcome,db-type-check, sql-current-db" 
-            if="auto.create.db">
-        
         <filterset id="copy-filter">
-          <!-- Generate the Torque files for the specified database type -->
           <filter token="DB_NAME"            value="${scarab.database.name}"/>
-          <filter token="DATABASE_TYPE"      value="${generatesql.database.type}"/>
-          <filter token="DATABASE_DRIVER"    value="${scarab.database.jdbc.driver}"/>
-          <filter token="DATABASE_URL"       value="${scarab.database.url}"/>
           <filter token="DATABASE_HOST"      value="${scarab.database.host}"/>
-          <filter token="DATABASE_PORT"      value="${scarab.database.port}"/>
           <filter token="DATABASE_USERNAME"  value="${scarab.database.username}"/>
-          <filter token="DATABASE_PASSWORD"  value="${scarab.database.password}"/> 
+          <filter token="DATABASE_PASSWORD"  value="${scarab.database.password}"/>
           <filter token="ADMIN_USERNAME"     value="${scarab.user.username}"/>
           <filter token="ANONYMOUS_USERNAME" value="${scarab.anonymous.username}"/>
           <filter token="ANONYMOUS_ROLENAME" value="${scarab.anonymous.rolename}"/>
           <filter token="SCARAB.HTTP.DOMAIN" value="${scarab.http.domain}"/>
           <filter token="SCARAB.INSTANCE.ID" value="${scarab.instance.id}"/>
         </filterset>
-    	
-        <!-- the SQL data population scripts directory -->
-        <echo>Copy ${database.instance.sql.dir}</echo>
-        <echo>Copy ${database.instance.sql.dir}</echo>
-        <echo>For database -${scarab.database.type}-</echo>
-        <copy todir="${database.instance.sql.dir}" filtering="yes">
+
+        <copy todir="${sql.current.dir}" filtering="yes">
             <filterset refid="copy-filter"/>
-            <fileset dir="${database.src.sql.dir}">
-                <include name="${scarab.database.type}/*.sql"/>
-                <include name="${scarab.database.type}/*.sh"/>
-                <include name="${scarab.database.type}/*.lst"/>
-                <include name="${scarab.database.type}/upgrade/*.sql"/>
-                <include name="${scarab.database.type}/dbsettings.props"/>
-                <include name="${scarab.database.type}/*.sql"/>
+            <fileset dir="${sql.all.dir}/${scarab.database.type}">
+                <include name="*.sql"/>
+            </fileset>
+            <fileset dir="${sql.all.dir}">
                 <include name="*.sql"/>
-                <include name="*.sh"/>
-                <include name="*.lst"/>
+                <include name="upgrade/*.sql"/>
             </fileset>
         </copy>
 
-    </target>
+        <touch file="${sql.current.dir}/prepare-dummy-tables.sql"/>
+        <touch file="${sql.current.dir}/standard-init.sql"/>
 
-    <!-- ================================================================== -->
-    <!-- Create database if not bypassed in "db-type-check"                 -->
-    <!-- ================================================================== -->
-    <target name="create-empty-db" depends="scarab-welcome,db-type-check, sql-current-db" 
-            if="auto.create.db">
-
-        <echo>
-            Create empty database:
-            driver   : [${scarab.database.jdbc.driver}]
-            url      : [${scarab.database.admin.url}]
-            userid   : [${scarab.database.admin.username}]
-            password : [${scarab.database.admin.password}]
-        </echo>
-    	
-		<!-- onerror="continue" is needed for postgresql for instance -->
-    	<sql
+        <condition property="optional.scarab-jira-templates-data.sql" value="scarab-jira-templates-data.sql">
+           <not><istrue value="${skip.jira.templates.data}"/></not>
+        </condition>
+        <property name="optional.scarab-jira-templates-data.sql" value=""/>
+
+        <condition property="optional.scarab-sample-data.sql" value="scarab-sample-data.sql">
+           <not><istrue value="${skip.seed.data}"/></not>
+        </condition>
+        <property name="optional.scarab-sample-data.sql" value=""/>
+
+        <concat destfile="${sql.current.dir}/populate-database.sql">
+           <filelist dir="${sql.current.dir}"
+                     files="standard-init.sql
+                            turbine-schema.sql
+                            scarab-schema.sql
+                            id-table-schema.sql
+                            turbine-id-table-init.sql
+                            scarab-id-table-init.sql
+                            scarab-security.sql
+                            scarab-required-data.sql
+                            scarab-default-data.sql
+                            scarab-anonymous.sql
+                            ${optional.scarab-jira-templates-data.sql}
+                            ${optional.scarab-sample-data.sql}
+                            "/>
+        </concat>
+    </target>
+
+    <target name="check-create-db-script" depends="prepare-database-script">
+       <available file="${sql.current.dir}/create-db.sql" property="create.database.script.exists"/>
+    </target>
+
+    <target name="create-database" depends="check-create-db-script"
+            if="create.database.script.exists">
+       <sql
             driver="${scarab.database.jdbc.driver}"
             url="${scarab.database.admin.url}"
             userid="${scarab.database.admin.username}"
             password="${scarab.database.admin.password}"
-    		onerror="continue"
-            autocommit="true" src="${database.instance.sql.dir}/${scarab.database.type}/create-${scarab.database.type}-db.sql">               
-
+            autocommit="true"
+            src="${sql.current.dir}/create-db.sql"
+            onerror="continue">
             <classpath refid="classpath"/>
-                
-        </sql>
-
+       </sql>
     </target>
 
-    <!-- ================================================================== -->
-    <!-- Load default data                                                  -->
-    <!-- ================================================================== -->
-    <target name="load-drivers" depends="">
-        <!-- ============================================================== -->        
-        <echo> copy the database drivers for ${scarab.database.type} ...     </echo>
-        <echo> sourcedir       : ${database.src.dir}/drivers    </echo>
-        <echo> targetdir       : ${webapp.lib.dir}              </echo>
-    	<echo> driver template : **/${scarab.database.jdbc.driver.jar}   </echo>
-        <!-- ============================================================== -->        
-        <copy todir="${webapp.lib.dir}" filtering="no" flatten="true">
-             <fileset dir="${database.src.dir}/drivers">
-                <include name="**/${scarab.database.jdbc.driver.jar}"/>
-             </fileset>
-        </copy>
+    <target name="check-prepare-dummy-tables">
+       <condition property="prepare-dummy-tables.required">
+         <or>
+            <equals arg1="${scarab.database.type}" arg2="oracle" />
+            <equals arg1="${scarab.database.type}" arg2="postgresql" />
+         </or>
+       </condition>
     </target>
-	
-    <!-- ================================================================== -->
-    <!-- Load default data                                                  -->
-    <!-- ================================================================== -->
-    <target name="load-default-data" depends="load-drivers, create-db-schema,create-empty-db">
-
-        <!-- Oracle does not have any type of conditional execution    -->
-        <!-- of "drop table".  So when running the table creation,     -->
-        <!-- it fails when dropping a table.  Rather than setting the  -->
-        <!-- onerror of the actual creation class to "continue", this  -->
-        <!-- pre-creates dummy tables (ignoring any errors if the      -->
-        <!-- tables already exist) so that they can be dropped.        -->
-        <!--
-        <sql
-            rdbms="oracle"
-            onerror="continue"
-            driver="${scarab.database.jdbc.driver}"
-            url="${scarab.database.url}"
-            userid="${scarab.database.username}"
-            password="${scarab.database.password}">
-            <classpath refid="classpath"/>
-            <transaction 
-                src="${database.instance.sql.dir}/${scarab.database.type}/prepare-oracle-dummy-tables.sql"/>
-        </sql>
--->
-
-        <echo>
-            Calling initialization scripts:
-        	dbtype   : [${scarab.database.type}]
-        	url      : [${scarab.database.url}]
-            driver   : [${scarab.database.jdbc.driver}]
-            userid   : [${scarab.database.admin.username}]
-            password : [${scarab.database.admin.password}]
-        </echo>
 
+    <target name="prepare-dummy-tables" depends="check-prepare-dummy-tables"
+            if="prepare-dummy-tables.required">
     	<sql
             driver="${scarab.database.jdbc.driver}"
             url="${scarab.database.url}"
             userid="${scarab.database.admin.username}"
-            password="${scarab.database.admin.password}">
+            password="${scarab.database.admin.password}"
+            src="${sql.current.dir}/prepare-dummy-tables.sql"
+            autocommit="true"
+            onerror="continue">
             <classpath refid="classpath"/>
-            <transaction src="${database.instance.sql.dir}/${scarab.database.type}/prepare-${scarab.database.type}-dummy-tables.sql"/>
-            <transaction src="${database.instance.sql.dir}/${scarab.database.type}/standard-${scarab.database.type}-init.sql"/>
-            <transaction src="${database.instance.sql.dir}/${scarab.database.type}/turbine.sql"/>
-            <transaction src="${database.instance.sql.dir}/${scarab.database.type}/${project}.sql"/>
-            <transaction src="${database.instance.sql.dir}/${scarab.database.type}/id-table.sql"/>
-            <transaction src="${database.instance.sql.dir}/turbine-id-table-init.sql"/>
-            <transaction src="${database.instance.sql.dir}/${project}-id-table-init.sql"/>
-            <transaction src="${database.instance.sql.dir}/${project}-security.sql"/>
-            <transaction src="${database.instance.sql.dir}/${project}-required-data.sql"/>
-            <transaction src="${database.instance.sql.dir}/${project}-default-data.sql"/>
         </sql>
     </target>
 
-    <!-- ================================================================== -->
-    <!-- Load anonymous user                                                -->
-    <!-- ================================================================== -->
-    <target name="create-anonymous">
-        <sql
+    <target name="populate-database" depends="prepare-database-script,prepare-dummy-tables">
+    	<sql
             driver="${scarab.database.jdbc.driver}"
             url="${scarab.database.url}"
             userid="${scarab.database.admin.username}"
-            password="${scarab.database.admin.password}">
+            password="${scarab.database.admin.password}"
+            src="${sql.current.dir}/populate-database.sql"
+            autocommit="true">
             <classpath refid="classpath"/>
-            <transaction src="${database.instance.sql.dir}/${project}-anonymous.sql"/>
         </sql>
     </target>
-    
-    <!-- ================================================================== -->
-    <!-- Load jira templates data                                           -->
-    <!-- ================================================================== -->
-    <target name="load-jira-templates-data" unless="skip.jira.templates.data">
-        <sql
-            driver="${scarab.database.jdbc.driver}"
-            url="${scarab.database.url}"
-            userid="${scarab.database.admin.username}"
-            password="${scarab.database.admin.password}">
-            <classpath refid="classpath"/>
-            <transaction src="${database.instance.sql.dir}/${project}-jira-templates-data.sql"/>
-        </sql>
+
+    <target name="clean">
+        <delete dir="${sql.current.dir}" quiet="true"/>
     </target>
 
-    <!-- ================================================================== -->
-    <!-- Load seed data unless bypassed by setting "skip.seed.data"         -->
-    <!-- to any value in "build.properties"                                 -->
-    <!-- ================================================================== -->
-    <target name="load-seed-data" depends="load-default-data,load-jira-templates-data"
-            unless="skip.seed.data">
-        <!-- ============================================================== -->
-        <!-- Alternate initial data file may be specified                   -->
-        <!-- in "build.properties" by setting "seed.data.sql"               -->
-        <!-- to an alternate file.                                          -->
-        <!-- ============================================================== -->
-        <property name="seed.data.sql"
-            value="${database.instance.sql.dir}/${project}-sample-data.sql"/>
+    <target name="create-db" depends="scarab-welcome,create-database,populate-database"/>
+
+    <target name="confirm-create-db">
+        <input
+        validargs="y,n"
+        addproperty="do.create-db">
+        This creates a new database using the above settings.
+
+        ATTENTION:
+           This may take some minutes.
+           All data is going to be deleted
+           from an already existing database!
+
+        Continue?
+        </input>
+        <condition property="do.abort">
+          <equals arg1="n" arg2="${do.create-db}"/>
+        </condition>
+        <fail if="do.abort">Build aborted by user.</fail>
+    </target>
+
+    <target name="create-db-interactive" depends="scarab-welcome,confirm-create-db,create-db">
+       <input message="Creation finished. Press Return key to exit..." />
+    </target>
+
+
+	<target name="migrate-from-0.21" depends="clean-migrate,prepare-database-script" description="Migrate a Scarab-0.21 to Scarab-0.22">
         <sql
             driver="${scarab.database.jdbc.driver}"
             url="${scarab.database.url}"
             userid="${scarab.database.admin.username}"
-            password="${scarab.database.admin.password}">
+            password="${scarab.database.admin.password}"
+	        onerror="continue">
             <classpath refid="classpath"/>
-            <transaction src="${database.instance.sql.dir}/${scarab.database.type}/standard-${scarab.database.type}-init.sql"/>
-            <transaction src="${seed.data.sql}"/>
+	        <transaction src="${sql.current.upgrade.dir}/${scarab.database.type}upgrade-0.22-resize_id_prefix.sql"/>
         </sql>
     </target>
 
-    <!-- ================================================================== -->
-    <!-- remove database file created by previous generation calls          -->
-    <!-- ================================================================== -->
-    <target name="clean">
-        <delete dir="${database.instance.dir}" quiet="true"/>
-    </target>
-
-    <!-- ================================================================== -->
-    <!-- Create DB from Torque                                              -->
-    <!-- ================================================================== -->
-    <target name="create-db" depends="clean,load-seed-data,create-anonymous"/>
-
-    <!-- ================================================================== -->
-    <!-- migration targets                                                  -->
-    <!-- ================================================================== -->
-	<target name="migrate-from-b20" depends="clean-migrate,create-db-schema" description="Migrate a Scarab-b20 to Scarab-b21">
+	<target name="migrate-from-b20" depends="clean-migrate,prepare-database-script,migrate-from-0.21" description="Migrate a Scarab-b20 to Scarab-0.21">
         <sql
             driver="${scarab.database.jdbc.driver}"
             url="${scarab.database.url}"
@@ -481,9 +201,9 @@
             password="${scarab.database.admin.password}"
 	        onerror="continue">
             <classpath refid="classpath"/>
-	        <transaction src="${database.instance.upgrade.dir}/${scarab.database.type}-upgrade-1.0b20-1.0b21-1.sql"/>
-	        <transaction src="${database.instance.upgrade.dir}/${scarab.database.type}-upgrade-1.0b20-1.0b21-2.sql"/>
-	        <transaction src="${database.instance.upgrade.dir}/${scarab.database.type}-upgrade-1.0b20-1.0b21-3.sql"/>
+	        <transaction src="${sql.current.upgrade.dir}/${scarab.database.type}-upgrade-1.0b20-1.0b21-1.sql"/>
+	        <transaction src="${sql.current.upgrade.dir}/${scarab.database.type}-upgrade-1.0b20-1.0b21-2.sql"/>
+	        <transaction src="${sql.current.upgrade.dir}/${scarab.database.type}-upgrade-1.0b20-1.0b21-3.sql"/>
         </sql>
     </target>
 
@@ -498,29 +218,29 @@
             password="${scarab.database.admin.password}"
 	        onerror="continue">
             <classpath refid="classpath"/>
-	        <transaction src="${database.instance.upgrade.dir}/${scarab.database.type}-upgrade-1.0a20-1.0b20-1.sql"/>
-        </sql>    
+	        <transaction src="${sql.current.upgrade.dir}/${scarab.database.type}-upgrade-1.0a20-1.0b20-1.sql"/>
+        </sql>
     </target>
 
-    <target name="migrate-workflow" depends="create-db-schema" description="Make changes to an existing b19 system, keeping the data, to allow migration to cheapworklow">
+    <target name="migrate-workflow" depends="prepare-database-script" description="Make changes to an existing b19 system, keeping the data, to allow migration to cheapworklow">
         <sql
             driver="${scarab.database.jdbc.driver}"
             url="${scarab.database.url}"
             userid="${scarab.database.admin.username}"
             password="${scarab.database.admin.password}"
-	        onerror="continue">
+	         onerror="continue">
             <classpath refid="classpath"/>
-	        <transaction src="${database.instance.upgrade.dir}/${scarab.database.type}-upgrade-1.0b19-1.0b20-1.sql"/>
-	        <transaction src="${database.instance.upgrade.dir}/${scarab.database.type}-upgrade-1.0b19-1.0b20-2.sql"/>
-	        <transaction src="${database.instance.upgrade.dir}/${scarab.database.type}-upgrade-1.0b19-1.0b20-3.sql"/>
+	        <transaction src="${sql.current.upgrade.dir}/${scarab.database.type}-upgrade-1.0b19-1.0b20-1.sql"/>
+	        <transaction src="${sql.current.upgrade.dir}/${scarab.database.type}-upgrade-1.0b19-1.0b20-2.sql"/>
+	        <transaction src="${sql.current.upgrade.dir}/${scarab.database.type}-upgrade-1.0b19-1.0b20-3.sql"/>
         </sql>
     </target>
 
 	<target name="clean-migrate">
-        <delete file="${database.instance.sql.dir}/upgrade/${scarab.database.type}-upgrade-1.0b19-1.0a20-1.sql"/>
+        <delete file="${sql.current.dir}/upgrade/${scarab.database.type}-upgrade-1.0b19-1.0a20-1.sql"/>
     </target>
 
-    <target name="migrate-issue" depends="create-db-schema" description="Switch ID_TABLE based id generation from scarab.http.domain to scarab.instance.id">
+    <target name="migrate-issue" depends="prepare-database-script" description="Switch ID_TABLE based id generation from scarab.http.domain to scarab.current.id">
         <sql
             driver="${scarab.database.jdbc.driver}"
             url="${scarab.database.url}"
@@ -528,8 +248,8 @@
             password="${scarab.database.admin.password}"
 	        onerror="continue">
             <classpath refid="classpath"/>
-	        <transaction src="${database.instance.upgrade.dir}/${scarab.database.type}-upgrade-1.0b19-1.0a20-1.sql"/>
+	        <transaction src="${sql.current.upgrade.dir}/${scarab.database.type}-upgrade-1.0b19-1.0a20-1.sql"/>
         </sql>
     </target>
-	
+
 </project>

Added: trunk/src/conf/conf/create-db.bat
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/conf/conf/create-db.bat?view=auto&rev=10436
==============================================================================
--- (empty file)
+++ trunk/src/conf/conf/create-db.bat	2007-04-10 13:30:45-0700
@@ -0,0 +1 @@
+%JAVA_HOME%\bin\java.exe -jar ..\lib\ant-launcher-1.6.2.jar create-db-interactive


Removed: trunk/src/java/org/tigris/scarab/util/build/AntSchemaFix.java
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/java/org/tigris/scarab/util/build/AntSchemaFix.java?view=auto&rev=10435

Added: trunk/src/nsis/before-install.nsh
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/nsis/before-install.nsh?view=auto&rev=10436
==============================================================================
--- (empty file)
+++ trunk/src/nsis/before-install.nsh	2007-04-10 13:30:45-0700
@@ -0,0 +1 @@
+Call AssertJavaHome


Added: trunk/src/nsis/startmenu-shortcuts.nsh
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/nsis/startmenu-shortcuts.nsh?view=auto&rev=10436
==============================================================================
--- (empty file)
+++ trunk/src/nsis/startmenu-shortcuts.nsh	2007-04-10 13:30:45-0700
@@ -0,0 +1,11 @@
+SetOutPath $INSTDIR\scarab\WEB-INF\conf

+CreateShortCut "${PROJECT_STARTMENU_FOLDER}\Create Database.lnk" "$INSTDIR\scarab\WEB-INF\conf\create-db.bat" "" "$INSTDIR\scarab\WEB-INF\conf\create-db.bat" 0

+

+SetOutPath $INSTDIR\tomcat\bin

+CreateShortCut "${PROJECT_STARTMENU_FOLDER}\Start Server.lnk" "$INSTDIR\tomcat\bin\startup.bat" "" "$INSTDIR\tomcat\bin\startup.bat" 0

+CreateShortCut "${PROJECT_STARTMENU_FOLDER}\Stop Server.lnk" "$INSTDIR\tomcat\bin\shutdown.bat" "" "$INSTDIR\tomcat\bin\shutdown.bat" 0

+CreateShortCut "${PROJECT_STARTMENU_FOLDER}\Scarab.lnk" "http://localhost:8080/scarab"

+

+SetOutPath $INSTDIR

+CreateShortCut "${PROJECT_STARTMENU_FOLDER}\Uninstall.lnk" "$INSTDIR\Uninst.exe" "" "$INSTDIR\Uninst.exe" 0

+


Modified: trunk/src/schema/scarab-schema.xml
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/schema/scarab-schema.xml?view=diff&rev=10436&p1=trunk/src/schema/scarab-schema.xml&p2=trunk/src/schema/scarab-schema.xml&r1=10435&r2=10436
==============================================================================
--- trunk/src/schema/scarab-schema.xml	(original)
+++ trunk/src/schema/scarab-schema.xml	2007-04-10 13:30:45-0700
@@ -604,7 +604,7 @@
     <!--
         Part of Id related to module.
     -->
-    <column name="ID_PREFIX" required="true" type="VARCHAR" size="@SCARAB_MODULE_CODE_LENGTH@"/>
+    <column name="ID_PREFIX" required="true" type="VARCHAR" size="30"/>
     <!--
         Part of Id which is an integer.
     -->
@@ -999,7 +999,7 @@
         Abbreviation whose primary use to identify related issues.
     -->
     <column name="MODULE_CODE" javaName="Code" required="true" 
-            type="VARCHAR" size="@SCARAB_MODULE_CODE_LENGTH@"/>
+            type="VARCHAR" size="30"/>
     <!--
         Description.
     -->

Removed: trunk/src/sql/hypersonic/create-hypersonic-db.sql
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/hypersonic/create-hypersonic-db.sql?view=auto&rev=10435

Removed: trunk/src/sql/hypersonic/hsqldb-1.7.1.jar
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/hypersonic/hsqldb-1.7.1.jar?view=auto&rev=10435

Removed: trunk/src/sql/hypersonic/prepare-hypersonic-dummy-tables.sql
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/hypersonic/prepare-hypersonic-dummy-tables.sql?view=auto&rev=10435

Removed: trunk/src/sql/hypersonic/runServer.bat
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/hypersonic/runServer.bat?view=auto&rev=10435

Removed: trunk/src/sql/hypersonic/runServer.sh
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/hypersonic/runServer.sh?view=auto&rev=10435

Removed: trunk/src/sql/hypersonic/scarab.properties
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/hypersonic/scarab.properties?view=auto&rev=10435

Removed: trunk/src/sql/hypersonic/scarab.script
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/hypersonic/scarab.script?view=auto&rev=10435

Removed: trunk/src/sql/hypersonic/standard-hypersonic-init.sql
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/hypersonic/standard-hypersonic-init.sql?view=auto&rev=10435

Copied: trunk/src/sql/hypersonic/standard-init.sql (from r10435, /trunk/src/sql/hypersonic/standard-hypersonic-init.sql)
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/hypersonic/standard-init.sql?view=diff&rev=10436&p1=/trunk/src/sql/hypersonic/standard-hypersonic-init.sql&p2=trunk/src/sql/hypersonic/standard-init.sql&r1=10435&r2=10436
==============================================================================
--- /trunk/src/sql/hypersonic/standard-hypersonic-init.sql	(original)
+++ trunk/src/sql/hypersonic/standard-init.sql	2007-04-10 13:30:45-0700
@@ -0,0 +1 @@
+set write_delay 20 millis;
\ No newline at end of file

Removed: trunk/src/sql/mysql/create-mysql-db.sql
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/mysql/create-mysql-db.sql?view=auto&rev=10435

Removed: trunk/src/sql/mysql/prepare-mysql-dummy-tables.sql
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/mysql/prepare-mysql-dummy-tables.sql?view=auto&rev=10435

Removed: trunk/src/sql/mysql/standard-mysql-init.sql
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/mysql/standard-mysql-init.sql?view=auto&rev=10435

Removed: trunk/src/sql/oracle/prepare-oracle-dummy-tables.sql
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/oracle/prepare-oracle-dummy-tables.sql?view=auto&rev=10435

Removed: trunk/src/sql/oracle/standard-oracle-init.sql
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/oracle/standard-oracle-init.sql?view=auto&rev=10435

Removed: trunk/src/sql/postgresql/create-postgresql-db.sql
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/postgresql/create-postgresql-db.sql?view=auto&rev=10435

Removed: trunk/src/sql/postgresql/prepare-postgresql-dummy-tables.sql
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/postgresql/prepare-postgresql-dummy-tables.sql?view=auto&rev=10435

Removed: trunk/src/sql/postgresql/standard-postgresql-init.sql
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/postgresql/standard-postgresql-init.sql?view=auto&rev=10435

Added: trunk/src/sql/upgrade/upgrade-0.22-resize_id_prefix.sql
Url: http://scarab.tigris.org/source/browse/scarab/trunk/src/sql/upgrade/upgrade-0.22-resize_id_prefix.sql?view=auto&rev=10436
==============================================================================
--- (empty file)
+++ trunk/src/sql/upgrade/upgrade-0.22-resize_id_prefix.sql	2007-04-10 13:30:45-0700
@@ -0,0 +1,2 @@
+ALTER TABLE SCARAB_ISSUE MODIFY ID_PREFIX VARCHAR(30);

+ALTER TABLE SCARAB_MODULE MODIFY MODULE_CODE VARCHAR(30);


Removed: trunk/www/repository/hsqldb/jars/hsqldb-1.7.2.2.jar
Url: http://scarab.tigris.org/source/browse/scarab/trunk/www/repository/hsqldb/jars/hsqldb-1.7.2.2.jar?view=auto&rev=10435

Added: trunk/www/repository/hsqldb/jars/hsqldb-1.8.0.7.jar
Url: http://scarab.tigris.org/source/browse/scarab/trunk/www/repository/hsqldb/jars/hsqldb-1.8.0.7.jar?view=auto&rev=10436
==============================================================================
Binary file. No diff available.

Modified: trunk/xdocs/scarab_properties.xml
Url: http://scarab.tigris.org/source/browse/scarab/trunk/xdocs/scarab_properties.xml?view=diff&rev=10436&p1=trunk/xdocs/scarab_properties.xml&p2=trunk/xdocs/scarab_properties.xml&r1=10435&r2=10436
==============================================================================
--- trunk/xdocs/scarab_properties.xml	(original)
+++ trunk/xdocs/scarab_properties.xml	2007-04-10 13:30:45-0700
@@ -1980,7 +1980,7 @@
       </property>
       <property>
         <name>scarab.database.admin.url.hypersonic</name>
-        <default>jdbc:hsqldb:file:${applicationRoot}/${hsqldb.database}/${hsqldb.dbname}</default>
+        <default>jdbc:hsqldb:file:${applicationRoot}/embedded_hsqldb/${hsqldb.dbname};shutdown=true</default>
         <comment/>
         <type>Runtime</type>
          <customization modification="optional">basic</customization>
@@ -1988,7 +1988,7 @@
       </property>
       <property>
         <name>scarab.database.url.hypersonic</name>
-        <default>jdbc:hsqldb:file:${applicationRoot}/${hsqldb.database}/${hsqldb.dbname}</default>
+        <default>jdbc:hsqldb:file:${applicationRoot}/embedded_hsqldb/${hsqldb.dbname};shutdown=true</default>
         <comment/>
         <type>Runtime</type>
          <customization modification="optional">basic</customization>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.