db-ojb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jakob Braeuchi <jbraeu...@gmx.ch>
Subject Re: Howto: OJB 1.0.0 + Torque 3.1 + HSQLDB 1.7.2
Date Fri, 12 Nov 2004 19:07:18 GMT
hi,

thanks for your very detailed description. i'm currently trying to replace the 
old torque with torque 3.1 (for ojb 1.1) and with the help of your post it runs 
quite fine.

but i do have some questions:

how can i get rid of these debug infos ?

[torque-data-sql] [DEBUG] XmlToAppData - endElement(, , column) called
[torque-data-sql] [DEBUG] XmlToAppData - endElement(, , column) called
[torque-data-sql] [DEBUG] XmlToAppData - endElement(, , column) called
[torque-data-sql] [DEBUG] XmlToAppData - endElement(, , column) called
[torque-data-sql] [DEBUG] XmlToAppData - endElement(, , column) called
[torque-data-sql] [DEBUG] XmlToAppData - endElement(, , reference) called
[torque-data-sql] [DEBUG] XmlToAppData - endElement(, , foreign-key) called
[torque-data-sql] [DEBUG] XmlToAppData - endElement(, , table) called

is it possible to use commons-collections 3.1 with torque 3.1 ?

tia
jakob

Michael Hart schrieb:

> G'day,
> 
> I posted this message on the OJB user group - but just in case some 
> developers don't frequent there, I figured I'd post it here as well.
> 
> Could these small changes be considered for the next release of OJB?
> 
> --- snip ---
> 
> Torque 3.1 seems to work out of the box with OJB 1.0.0, but not with the
> OJB JUnit tests because Torque 3.1 doesn't like the schema files used
> for these tests. I've created some new schema files that seem to work OK
> (linked to below).
> 
> HSQLDB 1.7.2 has problems with Torque because databases created using
> HSQLDB's "In-Process" mode (as the standard DB is in the OJB JUnit
> tests) must now be explicitly closed with a "SHUTDOWN" command for other
> processes to use them. I've contacted the HSQLDB guys about a way to do
> this using SQL, so that it could be included in Torque's template files,
> but for now I've settled on patching the build-torque.xml file to do
> this during the build process, if necessary.
> 
> HSQLDB 1.7.2 also has problems with one of OJB's testcases that uses
> hardcoded SQL commands, specifically
> org.apache.ojb.broker.sequence.NativeIdentifierTest as the syntax used
> in this file is not allowed.
> 
> So, here are the steps to get Torque 3.1 working with OJB 1.0.0:
> 
> - Download OJB 1.0.0 from:
> http://db.apache.org/builds/ojb/1.0.0/db-ojb-1.0.0-src.zip
> and unpack the db-ojb-1.0.0 dir.
> 
> - Download torque-gen-3.1 from:
> http://db.apache.org/builds/torque/release/3.1/torque-gen-3.1.zip
> and unpack the torque-gen-3.1 dir.
> 
> - Remove old db-ojb-1.0.0/lib/torque-3.0.2.jar
> 
> - Copy torque-gen-3.1.jar and village-2.0-dev-20030825.jar from
> torque-gen-3.1/lib/ to db-ojb-1.0.0/lib/
> 
> - Replace db-ojb-1.0.0/build-torque.xml with 
> torque-gen-3.1/build-torque.xml
> 
> - Copy over
> http://www.alphalink.com.au/~mwhart/ojb/ojbtest-data.dtd and
> http://www.alphalink.com.au/~mwhart/ojb/ojbtest-data.xml
> to db-ojb-1.0.0/src/schema/
> 
> - Grab copies of j2ee.jar and jdo.jar if you don't already have them and
> copy them to db-ojb-1.0.0/lib/
> 
> - Make sure junit.jar is in $ANT_HOME/lib/ and then run "ant junit" from
> the db-ojb-1.0.0 dir
> (ignore the SQL error when trying to create the DB - you can get rid of
> this by removing the "ECHO Not implemented" on the first line of
> sql/db-init/hypersonic/createdb.vm in torque-gen-3.1.jar - and also
> ignore the log4j ERROR messages - you can get rid of these by removing
> the ", org.apache.torque.engine" at the end of line 15 of
> log4j.properties in torque-gen-3.1.jar)
> 
> With any luck, all tests will pass!
> 
> Now, to get HSQLDB 1.7.2 working with OJB 1.0.0 (assuming previous steps
> have been done):
> 
> - Download HSQLDB 1.7.2 from
> http://prdownloads.sourceforge.net/hsqldb/hsqldb_1_7_2_3.zip?download
> and unpack the hsqldb dir.
> 
> - Replace db-ojb-1.0.0/lib/hsqldb.jar with new hsqldb/lib/hsqldb.jar
> 
> - Replace
> db-ojb-1.0.0/src/test/org/apache/ojb/broker/sequence/NativeIdentifierTest.java 
> 
> 
> with http://www.alphalink.com.au/~mwhart/ojb/NativeIdentifierTest.java
> (diff below)
> 
> - If you want to support the new sequences in HSQLDB 1.7.2, replace
> db-ojb-1.0.0/src/java/org/apache/ojb/broker/platforms/PlatformHsqldbImpl.java 
> 
> 
> with http://www.alphalink.com.au/~mwhart/ojb/PlatformHsqldbImpl.java
> (diff below)
> 
> - Replace db-ojb-1.0.0/build-torque.xml with
> http://www.alphalink.com.au/~mwhart/ojb/build-torque.xml (diff below)
> 
> - Run "ant junit" from the db-ojb-1.0.0 dir
> 
> Hopefully, all tests will pass again!
> 
> There are probably quite a few more changes introduced in HSQLDB 1.7.2
> that could be updated in OJB, but sequences was all I was interested in
> and they seem to work fine so far.
> 
> Cheers,
> 
> Michael
> 
> P.S.
> 
> Here are the diffs for those interested (sorry if it wraps):
> 
> diff for NativeIdentifierTest.java:
> 
> 48c48
> <             " REF_ID int(11),NAME VARCHAR(250))";
> ---
> 
>>             " REF_ID INT, NAME VARCHAR(250))";
> 
> 58c58
> <             " NAME VARCHAR(250), FK_ID BIGINT, REF_ID int(11),
> SINGLE_REF_FK BIGINT)";
> ---
> 
>>             " NAME VARCHAR(250), FK_ID BIGINT, REF_ID INT, 
>> SINGLE_REF_FK BIGINT)";
> 
> 
> 
> diff for PlatformHsqldbImpl.java:
> 
> 67a68,81
> 
>>     public String createSequenceQuery(String sequenceName)
>>     {
>>         return "CREATE SEQUENCE " + sequenceName;
>>     }
>>
>>     public String nextSequenceQuery(String sequenceName)
>>     {
>>         return "CALL NEXT VALUE FOR " + sequenceName;
>>     }
>>
>>     public String dropSequenceQuery(String sequenceName)
>>     {
>>         return "DROP SEQUENCE " + sequenceName;
>>     }
> 
> 
> 
> 
> diff for build-torque.xml (based on the file found in torque-gen-3.1,
> not OJB):
> 
> 249a250,318
> 
>>   <!-- S H U T D O W N   C H E C K 
> 
>    -->
> 
>>   <!-- 
> 
> ================================================================ -->
> 
>>   <!-- Hack to check if we need to shutdown the DB after we're done 
> 
>    -->
> 
>>   <!-- using it. At the moment, the only DB which this must be done 
> 
> for -->
> 
>>   <!-- is HSQLDB when running in the "In-Process" mode. 
> 
>    -->
> 
>>   <!-- As this mode can be specified without a keyword, we just check 
> 
>   -->
> 
>>   <!-- that the JDBC URL (specified in the dbUrlToCheck property) is 
> 
>    -->
> 
>>   <!-- an HSQLDB URL, but not one of the other modes. 
> 
>    -->
> 
>>   <!-- 
> 
> ================================================================ -->
> 
>>
>>   <target name="shutdown-check">
>>     <condition property="torque.internal.shutdownAfterSql">
>>       <and>
>>         <contains string="${dbUrlToCheck}" substring="jdbc:hsqldb" />
>>         <not>
>>           <or>
>>             <contains string="${dbUrlToCheck}"
>>                       substring="jdbc:hsqldb:hsql://" />
>>             <contains string="${dbUrlToCheck}"
>>                       substring="jdbc:hsqldb:hsqls://" />
>>             <contains string="${dbUrlToCheck}"
>>                       substring="jdbc:hsqldb:http://" />
>>             <contains string="${dbUrlToCheck}"
>>                       substring="jdbc:hsqldb:https://" />
>>           </or>
>>         </not>
>>       </and>
>>     </condition>
>>   </target>
>>
>>   <!-- 
> 
> ================================================================ -->
> 
>>   <!-- A P P E N D   S H U T D O W N   S Q L 
> 
>    -->
> 
>>   <!-- 
> 
> ================================================================ -->
> 
>>   <!-- Appends a SHUTDOWN statement to the file specified in the 
> 
>    -->
> 
>>   <!-- shutdownAppendFile property after first checking that it's 
> 
>    -->
> 
>>   <!-- necessary using the shutdown-check task. 
> 
>    -->
> 
>>   <!-- 
> 
> ================================================================ -->
> 
>>
>>   <target name="append-shutdown-sql"
>>           depends="shutdown-check"
>>           if="torque.internal.shutdownAfterSql">
>>
>>     <echo file="${shutdownAppendFile}" append="true">;
>> SHUTDOWN;
>>     </echo>
>>
>>   </target>
>>
>>   <!-- 
> 
> ================================================================ -->
> 
>>   <!-- A D D   S H U T D O W N   S Q L   F I L E 
> 
>    -->
> 
>>   <!-- 
> 
> ================================================================ -->
> 
>>   <!-- Adds a shutdown.sql file to the sql dir with a SHUTDOWN 
> 
>    -->
> 
>>   <!-- statement in it and also adds this file to sqldb.map after 
> 
> first -->
> 
>>   <!-- checking that it's necessary using the shutdown-check task. 
> 
>    -->
> 
>>   <!-- 
> 
> ================================================================ -->
> 
>>
>>   <target name="add-shutdown-sql-file"
>>           depends="shutdown-check"
>>           if="torque.internal.shutdownAfterSql">
>>
>>     <echo file="${torque.sql.dir}/shutdown.sql"
>>           message="SHUTDOWN;" />
>>
>>     <echo file="${torque.sql.dir}/sqldb.map" append="true"
>>             message="shutdown.sql=${torque.project}" />
>>
>>   </target>
>>
>>   <!-- 
> 
> ================================================================ -->
> 280a350,357
> 
>>     <!-- Append the SHUTDOWN statement if need be -->
>>     <antcall target="append-shutdown-sql">
>>       <param name="dbUrlToCheck"
>>              value="${torque.database.createUrl}" />
>>       <param name="shutdownAppendFile"
>>              value="${torque.sql.dir}/create-db.sql" />
>>     </antcall>
>>
> 294a372
> 
>>
> 304a383,388
> 
>>     <!-- Add the shutdown.sql file if need be -->
>>     <antcall target="add-shutdown-sql-file">
>>       <param name="dbUrlToCheck"
>>              value="${torque.database.buildUrl}" />
>>     </antcall>
>>
> 315a400
> 
>>
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-user-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-user-help@db.apache.org
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
> For additional commands, e-mail: ojb-dev-help@db.apache.org
> 
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org


Mime
View raw message