db-derby-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "David W. Van Couvering" <David.Vancouver...@Sun.COM>
Subject Re: Question about using URLClassLoader and Derby
Date Fri, 11 Nov 2005 23:21:06 GMT
Here's an answer from Binod, one of our app server engineers...

Kathey Marsden wrote:
> My goal is:
> I want to use a specific version of Derby which I ship with my app and I
> don't  want to interfere with any other derby versions loaded  in the
> same JVM or have them interfere with me.   I am creating a new
> datasource in a separate URLClassLoader and using that for creating all
> my connections.  Are there other things I need to do to meet my goal?  
> I have a feeling it all must be more complex than it looks to me right now.
> 
> Thanks
> 
> Kathey
>    
> Below is some code showing what I have done in playing with this  so far.
> 
> Method to load derby in separate loader and create datasource:
>       
>       private static DataSource newDataSource(ClassLoader loader, String
> databaseName) throws Exception
>     {
>         DataSource ds = (DataSource)
> loader.loadClass("org.apache.derby.jdbc.EmbeddedDataSource").newInstance();
>         // setDatabaseName with reflection
>         Class[] argType = {String.class};
>         String[] args = new String[] {databaseName};
>         Method sh = ds.getClass().getMethod("setDatabaseName", argType);
>         sh.invoke(ds, args);
>         return ds;
>        
>     }
> 
>     // Calling program ....
>     .....
>         URL[] urls =
>                   new URL[]{new URL(derbyJarURLString)};
>             System.out.println(urls[0].getFile());
>             ClassLoader loader1 =new URLClassLoader(urls);
>             DataSource ds = newDataSource(loader1,"mydb;create=true");
>             ds.getConnection();
>    ...
> 
> 
> 

Mime
View raw message