On 7/12/2012 11:15 PM, Suat Gonul wrote:
Hi Libor,

Yes, I am aware of the option for getting a system property in an OSGi bundle. Well, in the system, there may be other bundles (which I'm not aware of/responsible) consuming Derby and they may have their own configurations for logging. Even I may have two different components using different schemas. For instance,

  * "jdbc:derby:schema1"
  * "jdbc:derby:schema2"

are two schemas which are completely disjoint and used by different components. That's way I wanted to have different logging configurations for different components/bundles.

I think the solution lies in a system-wide, common logging class which is aware of the source class calling the logging method. So, it can direct the log to corresponding OutputStreams.
I am not familiar with OSGI, but it seems to be a specific case of the problem that system properties are problematic in multiple classloader contexts especially when those contexts might be totally logically disconnected. The worst is derby.system.home if we could find a way to diferentiate that then other properties could be get picked up from derby.properties in various location, but even that requires some coordination between applications. I think actually currently there may be problems with derby.log getting clobbered in multiple classLoader contexts even when left in the standard location.

It would be ideal to be able to bundle embedded Derby in an application and especially in a component with total isolation and no need for coordination with the embedding application, especially when that embedding application also may use derby.

So is there a good mechanism for classLoader scope setttings like this that might be good to add to derby? I have thought about this but don't really know of a good solution. The best thing I have been able to come up with is to maybe have a DataSource property to set either the name of a resource file to pickup the properties or an alternate derby.system.home where a derby.properties could be picked up. I don't like this because it seems like the wrong scope and if Derby is already booted these settings obviously have no meaning.

There is actually  a Jira issue for this problem filed in 2006!
https://issues.apache.org/jira/browse/DERBY-1228

I think if we could think of a good solution, someone would likely pick it up.

Kathey






Reply via email to