Achim,
That's very interesting. I'd be interested in seeing examples of what your'e
talking about, if you can point me in the right direction.
v/r,
Mike Van
----- Original Message -----
From: "Achim Nierbeck [via Karaf]"
<[email protected]>
To: "Mike Van" <[email protected]>
Sent: Friday, November 19, 2010 4:15:59 PM
Subject: Re: Accessing database connections using SpringDM in Karaf
Hi,
if you don't want spring to start the application context, move your
spring files to another directory.
You might also take a look at the spring-dm documentation about what you
can do to influence the starting behavior.
BTW. do you know that you can let do spring take care of DataSources?
You can even
configure a datasource as a osgi-service and spring-dm or blueprint can
take care of injecting this datasource service.
greetings, achim
> https://github.com/ANierbeck/jmx-webconsole
> Ok, This is a doozy.
>
> I'm using Karaf 2.0.0, with SpringDM.
>
> My OSGi application has a database-access bundle which contains two
> applicationContext.xml files in the META-INF/spring directory. One of these
> xml files creates a bean called myAppDataSourceController, which provides
> access to our database via the associated pojo. All this deploys properly
> and I'm able to verify the database connection.
>
> To test whether it works, I've created a simple Spring testHarness
> consisting of one class (DAOTest.java) which attempts to use my
> database-access bundle to connect to the database and write a column in a
> table. It als has a testApplicationContext.xml file which creates a bean,
> and references the method that begins the test in DAOTest.java. This is
> failing.
>
> In my old non-osgi implementation, I had a DataSourceControllerFactory class
> whose static final inner-class (named Holder) looks as such:
>
> // non-important bits removed
> private static final class Holder {
>
> private static final DataSourceController INSTANCE;
>
> static {
> final String[] contexts = {
> "META-INF/spring/ControllerAppContext.xml",
> "META-INF/spring/DataSourceAppContext.xml" };
>
> final ApplicationContext ctx = new
> ClassPathXmlApplicationContext(contexts);
> INSTANCE = {DataSourceController}
> ctx.getBean("myAppDataSourceController");
>
> }
>
> }
>
> I use this class to enforce the singleton pattern we are using. The
> enclosing class has one major method:
> public static final DataSourceController getInstance() {
> try {
> return Holder.INSTANCE;
> } catch statement stuff...
>
> }
>
> When another part of the application tried to access the database, it would
> call DataSourceControllerFactory.getInstance(), to get a copy of the
> DataSourceController which would provide database access.
>
> Is there a similar way to access a database from within Karaf? Obviously,
> this way isn't going to work as SpringDM evaluates the context.xml files,
> and creates a connection before the above methods are called. In fact,
> calling the above methods results in an attempt to read the context files
> again, but from the module attempting to get a handle to the database
> connection.
>
> Anyhow, before this gets too long, I'm just looking for OSGi friendly
> suggestions to access our database. Can anyone help me out?
>
> Mike Van
View message @
http://karaf.922171.n3.nabble.com/Accessing-database-connections-using-SpringDM-in-Karaf-tp1932916p1932992.html
To start a new topic under Karaf - User, email
[email protected]
To unsubscribe from Karaf - User, click here .
--
View this message in context:
http://karaf.922171.n3.nabble.com/Accessing-database-connections-using-SpringDM-in-Karaf-tp1932916p1933143.html
Sent from the Karaf - User mailing list archive at Nabble.com.