db-ojb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Michael Hart <mich...@baselinesols.com>
Subject Re: cvs commit: db-ojb/src/test/org/apache/ojb/broker HsqldbShutdown.java AllTests.java
Date Mon, 07 Feb 2005 02:14:38 GMT
Hey Guys,

I see that this step to shutdown the HSQLDB has been added so that 
versions 1.7.2+ can be supported, which is great. I also note that there 
was a brief discussion last month about it as well (that I missed - 
thread titled "[OJB1.1] test suite and hsql").

There's one slight hiccup with this method - although it's arguable 
whether it's a problem or not. If the HSQLDB is *not* running in 
"In-Process" mode (ie in a Server mode or similar), then it will be 
shutdown, possibly (probably) against the user's will. The default for 
the OJB JUnit tests is to create an HSQLDB using the "In-Process" mode, 
so it won't be a problem in this case - but if someone wants to test on 
an HSQLDB server, then it will shut the server down upon completion.

I haven't got any really nice solution to this - I've queried the HSQL 
team about a way to use an SQL statement to conditionally shut the 
server down if it's in "In-Process" mode, but this seems to be 
impossible (at this stage anyway - see 
http://sourceforge.net/mailarchive/message.php?msg_id=9280558 for more 
details).

However, I did outline a possible solution in an e-mail to this list on 
17/8/2004 with the subject "Howto: OJB 1.0.0 + Torque 3.1 + HSQLDB 
1.7.2" - basically by adding a few targets to the build-torque.xml file 
that check if the db being created is HSQLDB in "In-Process" mode and 
add shutdown statements if so. This means that people can then use this 
file to create their own HSQLDB databases as well, outside of the JUnit 
tests. It's a fairly ugly patch IMO, but it's arguably "more correct" 
than just patching the unit test files and shutting down regardless of 
the DB mode.

HTH,

Michael

brj@apache.org wrote:
> brj         2005/02/02 12:10:26
> 
>   Modified:    src/test/org/apache/ojb/broker AllTests.java
>   Added:       src/test/org/apache/ojb/broker HsqldbShutdown.java
>   Log:
>   shutdown hsql after broker.AllTests
>   
>   Revision  Changes    Path
>   1.60      +1 -1      db-ojb/src/test/org/apache/ojb/broker/AllTests.java
>   
>   Index: AllTests.java
>   ===================================================================
>   RCS file: /home/cvs/db-ojb/src/test/org/apache/ojb/broker/AllTests.java,v
>   retrieving revision 1.59
>   retrieving revision 1.60
>   diff -u -r1.59 -r1.60
>   --- AllTests.java	2 Feb 2005 20:03:15 -0000	1.59
>   +++ AllTests.java	2 Feb 2005 20:10:26 -0000	1.60
>   @@ -128,7 +128,7 @@
>            suite.addTestSuite(NoPkReferenceTest.class);
>            
>            // BRJ: ensure shutdown of hsqldb
>   -        // suite.addTestSuite(HsqldbShutdown.class);        
>   +        suite.addTestSuite(HsqldbShutdown.class);        
>            return suite;
>        }
>    }
>   
>   
>   
>   1.1                  db-ojb/src/test/org/apache/ojb/broker/HsqldbShutdown.java
>   
>   Index: HsqldbShutdown.java
>   ===================================================================
>   package org.apache.ojb.broker;
>   
>   /* Copyright 2003-2004 The Apache Software Foundation
>    *
>    * Licensed under the Apache License, Version 2.0 (the "License");
>    * you may not use this file except in compliance with the License.
>    * You may obtain a copy of the License at
>    *
>    *     http://www.apache.org/licenses/LICENSE-2.0
>    *
>    * Unless required by applicable law or agreed to in writing, software
>    * distributed under the License is distributed on an "AS IS" BASIS,
>    * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
>    * See the License for the specific language governing permissions and
>    * limitations under the License.
>    */
>   
>   import java.sql.Connection;
>   import java.sql.SQLException;
>   import java.sql.Statement;
>   
>   import org.apache.ojb.broker.platforms.Platform;
>   import org.apache.ojb.broker.platforms.PlatformHsqldbImpl;
>   import org.apache.ojb.junit.PBTestCase;
>   
>   /**
>    * Performs a shutdown of hsqldb.
>    *
>    * @author <a href="mailto:jbraeuchi@gmx.ch">Jakob Braeuchi</a>
>    * @version $Id: HsqldbShutdown.java,v 1.1 2005/02/02 20:10:26 brj Exp $
>    */
>   public class HsqldbShutdown extends PBTestCase
>   {
>       public void testHsqldbShutdown()
>       {
>           Platform platform = broker.serviceConnectionManager().getSupportedPlatform();
>   
>           if(platform instanceof PlatformHsqldbImpl)
>           {
>               Connection con = null;
>               Statement stmt = null;
>               
>               try
>               {
>                   con = broker.serviceConnectionManager().getConnection();
>                   stmt = con.createStatement();
>                   stmt.execute("shutdown");
>               }
>               catch (Exception e)
>               {
>                   e.printStackTrace();
>               }
>               finally
>               {
>                   try
>                   {
>                       stmt.close();
>                       con.close();
>                   }
>                   catch (SQLException e1)
>                   {
>                       e1.printStackTrace();
>                   }
>               }
>           }
>   
>       }
>   }
>   
>   
>   
> 
> ---------------------------------------------------------------------
> 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