[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-538) Add the ability to regenerate the datasource

gregorypierce (JIRA) jira-events at jboss.com
Wed Nov 29 17:33:55 EST 2006


Add the ability to regenerate the datasource
--------------------------------------------

                 Key: JBSEAM-538
                 URL: http://jira.jboss.com/jira/browse/JBSEAM-538
             Project: JBoss Seam
          Issue Type: Feature Request
          Components: Tools
    Affects Versions: 1.1.0.CR1
            Reporter: gregorypierce


Allows you to swap datasources from the current datasource to a new datasource. Why? Because many times I will develop using HSQL and then later want to move to another datasource.  Note: You will also have to add overwrite="true" to the various copy tasks or else they won't overwrite the existing datasource files.

  <target name="new-datasource">
    	<!-- define the datasource -->
    	<condition property="database.type.default" value="${database.type}">
    		<isset property="database.type"/>
    	</condition>
    	<property name="database.type.default" value="hsql"/>
        <input addproperty="database.type.new" 
                   message="What kind of database are you using? [${database.type.default}] " 
        	     validargs="hsql,mysql,oracle,postgres,mssql,db2,sybase,enterprisedb"
              defaultvalue="${database.type.default}"/>
    	
    	<!-- if the database type did not change, default to the previous values -->
    	
    	<condition property="hibernate.dialect.default" value="${hibernate.dialect}">
    		<equals arg1="${database.type}" arg2="${database.type.new}"/>
    	</condition>
    	<condition property="hibernate.connection.url.default" value="${hibernate.connection.url}">
    		<equals arg1="${database.type}" arg2="${database.type.new}"/>
    	</condition>
    	<condition property="hibernate.connection.driver_class.default" value="${hibernate.connection.driver_class}">
    		<equals arg1="${database.type}" arg2="${database.type.new}"/>
    	</condition>
    	
    	<!-- otherwise default to the defaults for the database type -->
    	
    	<condition property="hibernate.dialect.default" value="org.hibernate.dialect.HSQLDialect">
    		<equals arg1="${database.type.new}" arg2="hsql"/>
    	</condition>
        <condition property="hibernate.dialect.default" value="org.hibernate.dialect.MySQLDialect">
        	<equals arg1="${database.type.new}" arg2="mysql"/>
        </condition>
        <condition property="hibernate.dialect.default" value="org.hibernate.dialect.OracleDialect">
        	<equals arg1="${database.type.new}" arg2="oracle"/>
        </condition>
        <condition property="hibernate.dialect.default" value="org.hibernate.dialect.PostgreSQLDialect">
        	<equals arg1="${database.type.new}" arg2="postgres"/>
        </condition>
        <condition property="hibernate.dialect.default" value="org.hibernate.dialect.PostgreSQLDialect">
        	<equals arg1="${database.type.new}" arg2="enterprisedb"/>
        </condition>        
        <condition property="hibernate.dialect.default" value="org.hibernate.dialect.SQLServerDialect">
        	<equals arg1="${database.type.new}" arg2="mssql"/>
        </condition>
        <condition property="hibernate.dialect.default" value="org.hibernate.dialect.DB2Dialect">
        	<equals arg1="${database.type.new}" arg2="db2"/>
        </condition>
        <condition property="hibernate.dialect.default" value="org.hibernate.dialect.SybaseDialect">
        	<equals arg1="${database.type.new}" arg2="sybase"/>
        </condition>
    	
    	<condition property="hibernate.connection.driver_class.default" value="org.hsqldb.jdbcDriver">
    		<equals arg1="${database.type.new}" arg2="hsql"/>
    	</condition>
        <condition property="hibernate.connection.driver_class.default" value="com.mysql.jdbc.Driver">
        	<equals arg1="${database.type.new}" arg2="mysql"/>
        </condition>
        <condition property="hibernate.connection.driver_class.default" value="oracle.jdbc.driver.OracleDriver">
        	<equals arg1="${database.type.new}" arg2="oracle"/>
        </condition>
        <condition property="hibernate.connection.driver_class.default" value="org.postgresql.Driver">
        	<equals arg1="${database.type.new}" arg2="postgres"/>
        </condition>
        <condition property="hibernate.connection.driver_class.default" value="com.edb.Driver">
        	<equals arg1="${database.type.new}" arg2="enterprisedb"/>
        </condition>
        <condition property="hibernate.connection.driver_class.default" value="com.microsoft.sqlserver.jdbc.SQLServerDriver">
        	<equals arg1="${database.type.new}" arg2="mssql"/>
        </condition>
        <condition property="hibernate.connection.driver_class.default" value="COM.ibm.db2.jdbc.app.DB2Driver">
        	<equals arg1="${database.type.new}" arg2="db2"/>
        </condition>
        <condition property="hibernate.connection.driver_class.default" value="com.sybase.jdbc2.jdbc.SybDriver">
        	<equals arg1="${database.type.new}" arg2="sybase"/>
        </condition>

    	<condition property="hibernate.connection.url.default" value="jdbc:hsqldb:.">
    		<equals arg1="${database.type.new}" arg2="hsql"/>
    	</condition>
        <condition property="hibernate.connection.url.default" value="jdbc:mysql:///test">
        	<equals arg1="${database.type.new}" arg2="mysql"/>
        </condition>
        <condition property="hibernate.connection.url.default" value="jdbc:oracle:thin:@localhost:1521:test">
        	<equals arg1="${database.type.new}" arg2="oracle"/>
        </condition>
        <condition property="hibernate.connection.url.default" value="jdbc:postgresql:template1">
        	<equals arg1="${database.type.new}" arg2="postgres"/>
        </condition>
        <condition property="hibernate.connection.url.default" value="jdbc:edb://localhost:5444/edb">
        	<equals arg1="${database.type.new}" arg2="enterprisedb"/>
        </condition>        
        <condition property="hibernate.connection.url.default" value="jdbc:sqlserver://localhost">
        	<equals arg1="${database.type.new}" arg2="mssql"/>
        </condition>
        <condition property="hibernate.connection.url.default" value="jdbc:db2:test">
        	<equals arg1="${database.type.new}" arg2="db2"/>
        </condition>
        <condition property="hibernate.connection.url.default" value="jdbc:sybase:Tds:localhost:5000/test">
        	<equals arg1="${database.type.new}" arg2="sybase"/>
        </condition>
		
    	<!-- finally, default them to HSQL -->
    	
        <property name="hibernate.dialect.default" value="org.hibernate.dialect.HSQLDialect"/>
        <property name="hibernate.connection.driver_class.default" value="org.hsqldb.jdbcDriver"/>
        <property name="hibernate.connection.url.default" value="jdbc:hsqldb:."/>
        
    	<input addproperty="hibernate.dialect.new" 
                   message="Enter the Hibernate dialect for your database [${hibernate.dialect.default}]" 
              defaultvalue="${hibernate.dialect.default}"/>
        
        <property name="driver.jar" value="hsqldb.jar"/>
        <input addproperty="driver.jar.new"
               message="Enter the filesystem path to the JDBC driver jar [${driver.jar}]" 
               defaultvalue="${seamgen.home}/lib/${driver.jar}"/>
                
        <input addproperty="hibernate.connection.driver_class.new" 
                   message="Enter JDBC driver class for your database [${hibernate.connection.driver_class.default}]" 
              defaultvalue="${hibernate.connection.driver_class.default}"/>
        
        <input addproperty="hibernate.connection.url.new" 
                   message="Enter the JDBC URL for your database [${hibernate.connection.url.default}]" 
              defaultvalue="${hibernate.connection.url.default}"/>
        
        <property name="hibernate.connection.username" value="sa"/>
        <input addproperty="hibernate.connection.username.new" 
                   message="Enter database username [${hibernate.connection.username}]" 
              defaultvalue="${hibernate.connection.username}"/>
                
        <property name="hibernate.connection.password" value=""/>
        <input addproperty="hibernate.connection.password.new" 
                   message="Enter database password [${hibernate.connection.password}]" 
              defaultvalue="${hibernate.connection.password}"/>
                
        <property name="database.exists" value="n"/>
        <input addproperty="database.exists.new" 
                   message="Are you working with tables that already exist in the database? [${database.exists}] "
        	     validargs="y,n,"
              defaultvalue="${database.exists}"/>
                        
        <propertyfile file="${user.dir}/project.properties">
        	<entry key="basepackage.name" value="${basepackage.name}" />
            <entry key="project.name" value="${project.name}"/>
            <entry key="project.home" value="${project.home}" />
            
            <!-- package names -->
            <entry key="action.package" value="${action.package}"/>
            <entry key="model.package" value="${model.package}"/>
            <entry key="test.package" value="${test.package}"/>

			<!-- project database information -->
            <entry key="database.type" value="${database.type.new}"/>
        	<entry key="database.exists" value="${database.exists.new}"/>
            <entry key="hibernate.dialect" value="${hibernate.dialect.new}"/>
            <entry key="hibernate.connection.driver_class" value="${hibernate.connection.driver_class.new}"/>
            <entry key="hibernate.connection.url" value="${hibernate.connection.url.new}"/>
            <entry key="hibernate.connection.username" value="${hibernate.connection.username.new}"/>
            <entry key="hibernate.connection.password" value="${hibernate.connection.password.new}"/>
            <entry key="driver.jar" value="${driver.jar.new}"/>
            
            <entry key="eclipse.wtp" value="${eclipse.wtp.new}"/>
       
            
        </propertyfile>
        
        <property file="${user.dir}/project.properties" />
      	<property file="${seam.home}/seam.properties" />
    	<property file="${user.dir}/${project.name}/project.properties" />


    
    	<condition property="wtp">
    		<equals arg1="${eclipse.wtp}" arg2="y"/>
    	</condition>
    	    	
    	<antcall target="file-copy" />

		<echo message="Your project has been created." />
    	<echo message="Add the project from inside Eclipse (or type 'seam explode') and go to http://localhost:8080/${project.name}"/>
    </target>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the seam-issues mailing list