Re: DBCPDataSourceFactory Issue

From: Michael Gentry (mgentr..asslight.net)
Date: Mon Dec 07 2009 - 11:33:39 EST

  • Next message: Juergen Saar: "Re: Temporary ID hasn't been replaced on commit"

    Well, I think we'll be targeting 3.0 before 3.1 ... :-)

    The big reason I was looking at moving the data source outside the
    model is because we tend to have to write some command-line tools that
    hit the same data as our web applications. If the data source is in a
    common location, that will allow us to reuse the model easily.

    Thanks,

    mrg

    On Mon, Dec 7, 2009 at 11:23 AM, Andrus Adamchik <andru..bjectstyle.org> wrote:
    > FYI, here is a 3.1 rewritten version of the factory:
    >
    > https://svn.apache.org/repos/asf/cayenne/main/trunk/framework/cayenne-jdk1.5-unpublished/src/main/java/org/apache/cayenne/configuration/DBCPDataSourceFactory.java
    >
    > It is much cleaner and works off of injectable ResourceService that can be
    > defined by the user.
    >
    >
    >>
    >> Then my cayenne.xml could say:
    >>
    >>  datasource="/path/to/dbcp.properties"
    >
    > Will probably rename this attribute to "location" in 3.1, as currently the
    > name "datasource" makes no sense, and it initializes the "location" property
    > in the Java descriptor class.
    >
    > Andrus
    >
    >
    > On Dec 7, 2009, at 11:18 AM, Michael Gentry wrote:
    >
    >> FWIW (if it might help others), I cheated and did this:
    >>
    >>
    >> package org.apache.cayenne.conf;
    >>
    >> public class Config
    >> {
    >>  public static void configureCayenne()
    >>  {
    >>      DefaultConfiguration conf = new DefaultConfiguration();
    >>      conf.locator.setSkipAbsolutePath(false);
    >>      Configuration.initializeSharedConfiguration(conf);
    >>  }
    >> }
    >>
    >>
    >> Then my cayenne.xml could say:
    >>
    >>  datasource="/path/to/dbcp.properties"
    >>
    >>
    >> This seems hackish, but works.  I had to create my config class in
    >> Cayenne's package space because the locator variable is protected and
    >> I didn't see a way to get it to set the path properties otherwise.
    >>
    >> mrg
    >>
    >>
    >> On Fri, Dec 4, 2009 at 5:01 PM, Andrus Adamchik <andru..bjectstyle.org>
    >> wrote:
    >>>
    >>> I guess the easiest way is to write your own factory using
    >>> Cayenne-provided
    >>> one as a template.
    >>>
    >>> BTW, Cayenne implementation of DBCPDataSourceFactory is over-engineered.
    >>> It
    >>> overlooks a simple way to configure DBCP via
    >>> org.apache.commons.dbcp.BasicDataSource. So the factory internally
    >>> shouldn't
    >>> look as scary as it does now, and hopefully we'll take advantage of that
    >>> during 3.1 DI refactoring.
    >>>
    >>> Andrus
    >>>
    >>> On Dec 4, 2009, at 9:51 PM, Michael Gentry wrote:
    >>>
    >>>> I'm trying to use DBCPDataSourceFactory and load my data source
    >>>> information from a location external to the project.  I keep getting
    >>>> errors that it can't find the file.  Has anyone does this
    >>>> successfully?
    >>>>
    >>>> Thanks!
    >>>>
    >>>> mrg
    >>>>
    >>>
    >>>
    >>
    >
    >



    This archive was generated by hypermail 2.0.0 : Mon Dec 07 2009 - 11:34:25 EST