Hi Sukanya,

The simplest way to resolve such conflicts is to avoid place cayenne.xml in the root of the jar (place it in a package subdirectory instead). And then instantiate a separate Configuration for each cayenne.xml instead of using a shared one:

http://cayenne.apache.org/doc/customizing-configuration.html


DefaultConfiguration c1 = new DefaultConfiguration();                   
c1.addClassPath("my/package/conf1");
c1.initialize();

DefaultConfiguration c2 = new DefaultConfiguration();                   
c2.addClassPath("my/package/conf2");
c2.initialize();

Andrus



On Nov 7, 2007, at 10:47 PM, Sukanya Ratanotoyanon wrote:

Hello,

I'm having a problem getting a correct DataDomain when I'm using a library
containing cayenne objects. Basically, I'm working on a project using
Cayenne. I need the database URL, usename and password to be configurable.
Therefore, I have this method to set up them up like this:

Configuration config = Configuration.getSharedConfiguration();

            DataDomain domain = config.getDomain();
            DataNode cNode = domain.getNode(LINK_DB_NODE);
            ....
            ....

I received a library that also uses Cayenne to map the database, and tried to integrate this library into my project. However, after integration, when I call Configuration.getSharedConfiguration(), it loads the configuration from the cayenne.xml in the library instead of the one I'm using for the project. So when I tried to get my DataNode, it cannot be founded. This results in NullPointerException when I use my DataNode object. Is there a way to work around this, or do I miss something? I just start using Cayenne
not very long ago and  would appreciate any helps.

Thank you very much,
Sukanya

Reply via email to