Change the the default database to hsqldb in the end of the pom:

<!-- Database settings -->
<dbunit.dataTypeFactoryName>org.dbunit.ext.hsqldb.HsqldbDataTypeFactory</dbunit.dataTypeFactoryName>
<dbunit.operation.type>CLEAN_INSERT</dbunit.operation.type>
<hibernate.dialect>org.hibernate.dialect.HSQLDialect</hibernate.dialect>
<project.tmpdir>tmp</project.tmpdir>
<jdbc.groupId>hsqldb</jdbc.groupId>
<jdbc.artifactId>hsqldb</jdbc.artifactId>
<jdbc.version>1.8.0.7</jdbc.version>
<jdbc.driverClassName>org.hsqldb.jdbcDriver</jdbc.driverClassName>
<jdbc.url><![CDATA[jdbc:hsqldb:tmp/comped;shutdown=true]]></jdbc.url>
<jdbc.username>sa</jdbc.username>
<jdbc.password></jdbc.password>

Add a profile for production use, such as:

<!-- ================= Production Settings Profile ================= -->
<!-- Use "-P prod" when you want to run production mode              -->
<!-- =============================================================== -->
        <profile><id>prod</id>
            <build>
                <plugins>
                    <plugin>
                       <artifactId>maven-surefire-plugin</artifactId>
                            <configuration>
                                        <skip>true</skip>
                                        </configuration>
                                </plugin>        
                                <plugin>
                                <groupId>org.codehaus.mojo</groupId>
                                <artifactId>dbunit-maven-plugin</artifactId>
                                <version>1.0-beta-1</version>
                                <configuration>
                                        <skip>true</skip>
                                </configuration>
                                </plugin>               
                                <plugin>
                                <groupId>org.codehaus.mojo</groupId>
                                <artifactId>hibernate3-maven-plugin</artifactId>
                                <version>2.1</version>
                                <configuration>
                                        <components>
                                        <component>
                                        <name>hbm2ddl</name>
                                
<implementation>annotationconfiguration</implementation>
                                        </component>
                                </components>
                                <componentProperties>
                                        <drop>false</drop>
                                        <jdk5>true</jdk5>
                                
<propertyfile>target/classes/jdbc.properties</propertyfile>
                                        <skip>true</skip>
                                </componentProperties>
                                </configuration>
                                </plugin>
                </plugins>
            </build>
                        <properties>
                        <jdbc.groupId>mysql</jdbc.groupId>
                        <jdbc.artifactId>mysql-connector-java</jdbc.artifactId>
                        <jdbc.version>5.0.5</jdbc.version>
                
<hibernate.dialect>org.hibernate.dialect.MySQL5InnoDBDialect</hibernate.dialect>
                        
                        
<jdbc.driverClassName>com.mysql.jdbc.Driver</jdbc.driverClassName>
                
<jdbc.url><![CDATA[jdbc:mysql://localhost/db_prod?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf-8]]></jdbc.url>
                        <jdbc.username>someone</jdbc.username>
                        <jdbc.password>something</jdbc.password>
                        </properties>
        </profile>


This profile skips hibernate3, dbunit repopulation and the test plugins.

Hope, that helps.

Martin




Tarjei Huse wrote:
> 
> Hi, I'm using Appfuse with hibernate and I want to run my unit/integration
> tests in HSQLDB (or a different in-memory database) but use mysql for my
> production environment as well as my staging environment. 
> 
> Basically:
> Run the test phase using HSQLDB, but switch to using mysql for mvn
> jetty:run-war or mvn war -> but then with different username/password
> configurations.
> 
> I would guess this is a quite common pattern, so how should it be done?
> 
> I've found some pointers, but I am not completely satisfied with them:
> [1] shows how to configure Appfuse to use HSQLDB, but I cannot find where
> the xml fragments should go. Also [2] discusses how to do this using
> different profiles.
> 
> 1. http://thread.gmane.org/gmane.comp.java.appfuse.user/20476
> 2. http://thread.gmane.org/gmane.comp.java.appfuse.user/28929/focus=29007
> 
> It seems to me that the best way would be if different profiles could be
> activated for different phases (test, jetty:run-war) but that seems to me
> not to be possible.
> 
> So, what is the best way to do this?
> 
> Kind regards,
> Tarjei
> 
> 
> 
> 

-- 
View this message in context: 
http://www.nabble.com/Separate-database-settings-for-testing%2C-staging-and-production-tp19586169s2369p19608115.html
Sent from the AppFuse - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to