views:

81

answers:

1

I have a Java app that has an embedded Derby database (no hibernate though). The app is using the following properties:

datasource.driverClassName = org.apache.derby.jdbc.EmbeddedDriver
datasource.url = jdbc:derby:C:/derby/mydb;
datasource.username = 1234
datasource.password = 1234

Everything is working fine and great. Now I need to package everything and give it to a client to install on their GlassFish server now I don't want the client to install Derby and I don't want them to know that the application is using a database.

The questions are: where should Derby be in the JAR? and What should the "datasource.url" be?

Thanks in advance.

+1  A: 

You can locate the database data files inside your web-app. For example in "WEB-INF/data/" (and the Derby driver file in "WEB-INF/lib/" of course).

So, you can embbed the database pre-configured (with a "relative-path" JDBC url) in the WAR file you give to your client. He won't have to install manually a Derby DB.

Note : you'll have to be careful when you'll provide an update of the application (to not erase the DB).

Benoit Courtine
Any clues as to what the "datasource.url" would look like in that case? It can't be "jdbc:derby:C:\program files/GlassFish/domains/domain1/myapp\data/"Thanks
del.ave
I suggest you a RELATIVE path in the url. So, you are not dependant from the Glassfish install dir. For example "jdbc:derby:WEB-INF/data/"
Benoit Courtine