I want to create a core.jar that I can put all my model and DAO object that
I can use dbunit to test during my build. I have been combing through the
net all day trying examples that say they work but have no luck getting this
to function.

*I have a test persistance.xml in /src/test/resources/*
*<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence";
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
             xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
             http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd";
             version="1.0">

    <persistence-unit name="hibernate-hsqldb">
        <provider>org.hibernate.ejb.HibernatePersistence</provider>
        <jar-file>${project.build.directory}/classes</jar-file>
        <properties>
            <property name="hibernate.dialect" value="
org.hibernate.dialect.HSQLDialect"/>
            <property name="hibernate.connection.driver_class" value="
org.hsqldb.jdbcDriver"/>
            <property name="hibernate.connection.url"
value="jdbc:hsqldb:."/>
            <property name="hibernate.connection.username" value="sa"/>
            <property name="hibernate.connection.password" value=""/>
            <property name="hibernate.hbm2ddl.auto" value="create-drop"/>

            <property name="hibernate.show_sql" value="true"/>
            <property name="hibernate.format_sql" value="true"/>
            <property name="use_sql_comments" value="true"/>

        </properties>
    </persistence-unit>

</persistence>
*

*Then I also have my dbunit and hibernate3-maven plugins:*

            *<plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>hibernate3-maven-plugin</artifactId>
                <version>2.0-alpha-2</version>
                <configuration>
                    <components>
                        <component>
                            <name>hbm2ddl</name>

<implementation>annotationconfiguration</implementation>
                        </component>
                    </components>
                    <componentProperties>
                        <drop>true</drop>
                        <jdk5>true</jdk5>
                        <ejb3>true</ejb3>

<propertyfile>target/test-classes/jdbc.properties</propertyfile>

                        <outputfilename>schema.sql</outputfilename>
                        <outputDirectory>
                            <hbm2java>target/test-classes</hbm2java>
                            <hbm2ddl>target/test-classes</hbm2ddl>
                        </outputDirectory>
                        <skip>${maven.test.skip}</skip>
                    </componentProperties>
                </configuration>
                <executions>
                    <execution>
                        <phase>process-test-resources</phase>
                        <goals>
                            <goal>hbm2ddl</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>${jdbc.groupId}</groupId>
                        <artifactId>${jdbc.artifactId}</artifactId>
                        <version>${jdbc.version}</version>
                    </dependency>
                </dependencies>
            </plugin>


            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>dbunit-maven-plugin</artifactId>
                <version>1.0-beta-1</version>
                <configuration>
                    <dataTypeFactoryName>${dbunit.dataTypeFactoryName
}</dataTypeFactoryName>
                    <driver>${jdbc.driverClassName}</driver>
                    <username>${jdbc.username}</username>
                    <password>${jdbc.password}</password>
                    <url>${jdbc.url}</url>
                    <src>${basedir}/src/test/resources/sample-data.xml</src>
                    <type>${dbunit.operation.type}</type>
                    <schema>${dbunit.schema}</schema>
                    <skip>${maven.test.skip}</skip>
                    <verbose>2</verbose>
                </configuration>
                <executions>
                    <execution>
                        <phase>test-compile</phase>
                        <goals>
                            <goal>operation</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>${jdbc.groupId}</groupId>
                        <artifactId>${jdbc.artifactId}</artifactId>
                        <version>${jdbc.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
*

*when I run "mvn hibernate3:hbm2ddl -P hsqldb -e -X", I get the following
trace:*

*[DEBUG]     org.hibernate:jtidy:jar:r8-20060801:runtime (selected for
runtime)
[DEBUG]   hsqldb:hsqldb:jar:1.8.0.7:compile (selected for compile)
[DEBUG]   log4j:log4j:jar:1.2.14:runtime (selected for runtime)
[DEBUG] Configuring mojo '
org.codehaus.mojo:hibernate3-maven-plugin:2.0-alpha-2:hbm2ddl' -->
[DEBUG]   (f) componentProperties = {drop=true, ejb3=true, jdk5=true,
outputDirectory=null, outputfilename=schema.sql, propertyfile=target/test-c
lasses/jdbc.properties, skip=null}
[DEBUG]   (s) name = hbm2ddl
[DEBUG]   (s) implementation = annotationconfiguration
[DEBUG]   (f) components = [
[EMAIL PROTECTED]
[DEBUG]   (f) project = MavenProject:
com.baselogic:yoursos-core:1.0-SNAPSHOT @
C:\opt\temp\appfuse\yoursos\core\pom.xml
[DEBUG] -- end configuration --
[INFO] [hibernate3:hbm2ddl]
[DEBUG] basedir: C:\opt\temp\appfuse\yoursos\core
[INFO] Configuration XML file loaded:
C:\opt\temp\appfuse\yoursos\core\src\main\resources\hibernate.cfg.xml
[DEBUG] basedir: C:\opt\temp\appfuse\yoursos\core
[INFO] Configuration XML file loaded:
C:\opt\temp\appfuse\yoursos\core\src\main\resources\hibernate.cfg.xml
[INFO] Configuration Properties file loaded:
C:\opt\temp\appfuse\yoursos\core\target\test-classes\jdbc.properties
[yoursos] ERROR [main] SchemaExport.execute(202) | schema export
unsuccessful
java.sql.SQLException: File input/output error: java.io.IOException: The
filename, directory name, or volume label syntax is incorrect
        at org.hsqldb.jdbc.Util.sqlException(Unknown Source)
        at org.hsqldb.jdbc.jdbcConnection.<init>(Unknown Source)
        at org.hsqldb.jdbcDriver.getConnection(Unknown Source)
        at org.hsqldb.jdbcDriver.connect(Unknown Source)
        at java.sql.DriverManager.getConnection(DriverManager.java:525)
        at java.sql.DriverManager.getConnection(DriverManager.java:140)
        at
org.hibernate.connection.DriverManagerConnectionProvider.getConnection(
DriverManagerConnectionProvider.java:110)
        at
org.hibernate.tool.hbm2ddl.ManagedProviderConnectionHelper.prepare(
ManagedProviderConnectionHelper.java:28)
        at org.hibernate.tool.hbm2ddl.SchemaExport.execute(SchemaExport.java
:180)
        at org.hibernate.tool.hbm2ddl.SchemaExport.create(SchemaExport.java
:133)
        at
org.codehaus.mojo.hibernate3.exporter.Hbm2DDLExporterMojo.doExecute(
Hbm2DDLExporterMojo.java:112)
        at org.codehaus.mojo.hibernate3.HibernateExporterMojo.execute(
HibernateExporterMojo.java:140)
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(
DefaultPluginManager.java:447)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(
DefaultLifecycleExecutor.java:539)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(
DefaultLifecycleExecutor.java:493)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(
DefaultLifecycleExecutor.java:463)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures
(DefaultLifecycleExecutor.java:311)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(
DefaultLifecycleExecutor.java:278)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(
DefaultLifecycleExecutor.java:143)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java
:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java
:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
[WARNING] 1 errors occurred while performing <hbm2ddl>.
[ERROR] Error #1: java.sql.SQLException: File input/output error:
java.io.IOException: The filename, directory name, or volume label syntax is
in
correct
[INFO]
------------------------------------------------------------------------
*

When I run "mvn clean install -e -X -P hsqldb" with a "sample-data.xml" I
get this:

*[DEBUG]     org.hibernate:jtidy:jar:r8-20060801:compile (selected for
compile)
[DEBUG]   org.hibernate:hibernate-validator:jar:3.0.0.ga:provided (selected
for provided)
[DEBUG]     org.hibernate:hibernate:jar:3.2.4.sp1:provided (removed - nearer
found: 3.2.5.ga)
[DEBUG]   c3p0:c3p0:jar:0.9.1:compile (selected for compile)
[DEBUG]
org.codehaus.mojo:dbunit-maven-plugin:maven-plugin:1.0-beta-1:runtime(selected
for runtime)
[DEBUG] Adding managed dependencies for unknown:maven-settings
[DEBUG]   org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-8
[DEBUG]   org.codehaus.plexus:plexus-utils:jar:1.0.4
[DEBUG]   org.apache.maven.wagon:wagon-provider-api:jar:1.0-alpha-5
[DEBUG]   org.apache.maven.wagon:wagon-ssh:jar:1.0-alpha-5
[DEBUG]   org.apache.maven.wagon:wagon-file:jar:1.0-alpha-5
[DEBUG]   org.apache.maven.wagon:wagon-http-lightweight:jar:1.0-alpha-5
[DEBUG]   org.apache.maven:maven-settings:jar:2.0:runtime (selected for
runtime)
[DEBUG]     org.apache.maven:maven-model:jar:2.0:runtime (selected for
runtime)
[DEBUG]       org.codehaus.plexus:plexus-utils:jar:1.0.4:runtime (selected
for runtime)
[DEBUG]     org.codehaus.plexus:plexus-utils:jar:1.0.4:runtime (selected for
runtime)
[DEBUG]
org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-8:runtime(selected
for runtime)
[DEBUG]       junit:junit:jar:3.8.1:runtime (selected for runtime)
[DEBUG]       classworlds:classworlds:jar:1.1-alpha-2:runtime (selected for
runtime)
[DEBUG]   ant:ant:jar:1.6.5:runtime (selected for runtime)
[DEBUG]   org.codehaus.plexus:plexus-utils:jar:1.0.4:runtime (removed -
nearer found: 1.1)
[DEBUG]   org.codehaus.plexus:plexus-utils:jar:1.1:runtime (selected for
runtime)
[DEBUG]   org.dbunit:dbunit:jar:2.2:runtime (selected for runtime)
[DEBUG]     junit:junit:jar:3.8.1:runtime (removed - nearer found: 3.8.2)
[DEBUG]     junit:junit:jar:3.8.2:runtime (selected for runtime)
[DEBUG]     junit-addons:junit-addons:jar:1.4:runtime (selected for runtime)
[DEBUG]       junit:junit:jar:3.8.1:runtime (removed - nearer found: 3.8.2)
[DEBUG]       xerces:xercesImpl:jar:2.6.2:runtime (selected for runtime)
[DEBUG]       xerces:xmlParserAPIs:jar:2.6.2:runtime (selected for runtime)
[DEBUG]     poi:poi:jar:2.5.1-final-20040804:runtime (selected for runtime)
[DEBUG]     commons-collections:commons-collections:jar:3.1:runtime(selected
for runtime)
[DEBUG]     commons-lang:commons-lang:jar:2.1:runtime (selected for runtime)
[DEBUG]     commons-logging:commons-logging:jar:1.0.4:runtime (selected for
runtime)
[DEBUG]   org.apache.maven:maven-plugin-api:jar:2.0:runtime (selected for
runtime)
[DEBUG]   hsqldb:hsqldb:jar:1.8.0.7:compile (selected for compile)
[DEBUG] Configuring mojo '
org.codehaus.mojo:dbunit-maven-plugin:1.0-beta-1:operation' -->
[DEBUG]   (f) dataTypeFactoryName =
org.dbunit.ext.hsqldb.HsqldbDataTypeFactory
[DEBUG]   (f) datatypeWarning = false
[DEBUG]   (f) driver = org.hsqldb.jdbcDriver
[DEBUG]   (f) format = xml
[DEBUG]   (f) settings = [EMAIL PROTECTED]
[DEBUG]   (f) skip = false
[DEBUG]   (f) src =
C:\opt\temp\appfuse\yoursos\core\src\test\resources\sample-data.xml
[DEBUG]   (f) supportBatchStatement = false
[DEBUG]   (f) transaction = false
[DEBUG]   (f) type = CLEAN_INSERT
[DEBUG]   (f) url =
jdbc:hsqldb:file:C:\opt\temp\appfuse\yoursos\core/target/yoursos;shutdown=true
[DEBUG]   (f) useQualifiedTableNames = false
[DEBUG]   (f) username = sa
[DEBUG] -- end configuration --
[INFO] [dbunit:operation {execution: default}]
[INFO]
------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO]
------------------------------------------------------------------------
[INFO] Error executing database operation: CLEAN_INSERT

Embedded error: user_role
[INFO]
------------------------------------------------------------------------
[DEBUG] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Error executing
database operation: CLEAN_INSERT
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(
DefaultLifecycleExecutor.java:564)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle
(DefaultLifecycleExecutor.java:480)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(
DefaultLifecycleExecutor.java:459)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures
(DefaultLifecycleExecutor.java:311)
        at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(
DefaultLifecycleExecutor.java:278)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(
DefaultLifecycleExecutor.java:143)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:333)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:126)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:282)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java
:315)
        at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
        at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java
:430)
        at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoExecutionException: Error executing
database operation: CLEAN_INSERT
        at org.codehaus.mojo.dbunit.OperationMojo.execute(OperationMojo.java
:110)
        at org.apache.maven.plugin.DefaultPluginManager.executeMojo(
DefaultPluginManager.java:447)
        at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(
DefaultLifecycleExecutor.java:539)
        ... 16 more
Caused by: org.dbunit.dataset.NoSuchTableException: user_role
        at org.dbunit.database.DatabaseDataSet.getTableMetaData(
DatabaseDataSet.java:192)
        at org.dbunit.operation.DeleteAllOperation.execute(
DeleteAllOperation.java:98)
        at org.dbunit.operation.CompositeOperation.execute(
CompositeOperation.java:67)
        at org.dbunit.ant.Operation.execute(Operation.java:183)
        at org.codehaus.mojo.dbunit.OperationMojo.execute(OperationMojo.java
:101)
        ... 18 more
[INFO]
------------------------------------------------------------------------
*

*My data is as a follows:*

*<?xml version="1.0" encoding="UTF-8"?>
<dataset>
    <table name="app_user">
        <column>id</column>
        <column>username</column>
        <column>password</column>
        <column>first_name</column>
        <column>last_name</column>
        <column>address</column>
        <column>city</column>
        <column>country</column>
        <column>email</column>
        <column>phone_number</column>
        <column>postal_code</column>
        <column>province</column>
        <column>website</column>
        <column>password_hint</column>
        <column>version</column>
        <column>account_enabled</column>
        <column>account_expired</column>
        <column>account_locked</column>
        <column>credentials_expired</column>
        <row>
            <value description="id">-1</value>
            <value description="username">user</value>
            <value description="password">***</value>
            <value description="first_name">Mick</value>
            <value description="last_name">Knutson</value>
            <value description="address"></value>
            <value description="city">San Francisco</value>
            <value description="country">US</value>
            <value description="email">[EMAIL PROTECTED]</value>
            <value description="phone_number"></value>
            <value description="postal_code">94101</value>
            <value description="province">CA</value>
            <value description="website">http://www.baselogic.com</value>
            <value description="password_hint"><![CDATA[who needs a
hints.]]></value>
            <value description="version">1</value>
            <value description="account_enabled">1</value>
            <value description="account_expired">0</value>
            <value description="account_locked">0</value>
            <value description="credentials_expired">0</value>
        </row>
    </table>
    <table name="role">
        <column>id</column>
        <column>name</column>
        <column>description</column>
        <row>
            <value description="id">-1</value>
            <value description="name">ROLE_ADMIN</value>
            <value description="description"><![CDATA[Administrator role
(can edit Users)]]></value>
        </row>
        <row>
            <value description="id">-2</value>
            <value description="name">ROLE_USER</value>
            <value description="description"><![CDATA[Default role for all
Users]]></value>
        </row>
    </table>
    <table name="user_role">
        <column>user_id</column>
        <column>role_id</column>
        <row>
            <value description="user_id">-1</value>
            <value description="role_id">-2</value>
        </row>
        <row>
            <value description="user_id">-2</value>
            <value description="role_id">-1</value>
        </row>
    </table>
</dataset>
*


So where can I get a working hsql, dbunit example that I can integrate into
my Maven build?

-- 
Thanks,
Mick Knutson

http://www.baselogic.com
http://www.blincmagazine.com
http://www.linkedin.com/in/mickknutson
http://www.djmick.com
http://www.myspace.com/mickknutson
http://www.myspace.com/BLiNCMagazine
http://tahoe.baselogic.com
---

Reply via email to