Re: Custom configuration class ignored in 3.0 snapshot

From: Brian Nelson (briannelson2..ahoo.com)
Date: Fri May 02 2008 - 20:21:39 EDT

  • Next message: Brian Nelson: "Re: Custom configuration class ignored in 3.0 snapshot"

    Andrus,

    I'm not sure exactly how you want the code sample. If you need me to provide a self contained app
    I can do that. For now I'll just copy the code from my app so you can take a look at it. I have a
    static method that configures my custom DataSourceFactory. The call to DbUtils.openDb succeeds,
    but the getDataSourceFactory method in CompanyConfiguration is never called.

    public class DbUtils {
            private static DataContext globalContext;
            private static DataContext estimateContext;
            private static DataContext roomContext;
            private static DataContext assemblyContext;
            private static DataContext partsContext;

            public static void openDb(String pathToDb) throws Exception {
                    try {
                            CompanyDataSourceFactory.setDbPath(pathToDb);
                            Configuration.initializeSharedConfiguration(CompanyConfiguration.class);
                            Configuration config = Configuration.getSharedConfiguration();
                            DataDomain domain = config.getDomain();
                            
                            globalContext = DataContext.createDataContext(domain.getName());
                            estimateContext = DataContext.createDataContext(domain.getName());
                            roomContext = DataContext.createDataContext(domain.getName());
                            assemblyContext = DataContext.createDataContext(domain.getName());
                            partsContext = DataContext.createDataContext(domain.getName());
                    } catch (Exception e) {
                            throw new Exception("Unable to initialize database!", e);
                    }
            }
    }

    public class CompanyConfiguration extends DefaultConfiguration {
            
            private static CompanyDataSourceFactory factory = new CompanyDataSourceFactory();
            
    ..verride
            public DataSourceFactory getDataSourceFactory() {
                    return factory;
            }

    }

    public class CompanyDataSourceFactory implements DataSourceFactory {

            private static DataSource ds = null;
            private static String dbPath = "Companies/db";
            
            public static void setDbPath(String val) {
                    dbPath = val;
            }
            
    ..verride
            public DataSource getDataSource(String arg0) throws Exception {
                    if(dbPath.startsWith("server")) {
                            // server:host
                            ClientDataSource40 tmpDS = new ClientDataSource40();
                            String[] sArray = dbPath.split(":");
                            tmpDS.setServerName(sArray[1]);
                            tmpDS.setDatabaseName("db");
                            tmpDS.setUser("user");
                            tmpDS.setPassword("pass");
                            ds = tmpDS;
                    } else {
                            EmbeddedDataSource40 tmpDS = new EmbeddedDataSource40();
                            tmpDS.setDatabaseName(dbPath);
                            tmpDS.setUser("user");
                            tmpDS.setPassword("db");
                            ds = tmpDS;
                    }
                    
                    
            
                    return ds;
            }

    ..verride
            public void initializeWithParentConfiguration(Configuration arg0) {
            }

    }

    Hopefully that's enough. If not let me know what I should provide.

    Thanks for your help!

    Brian

    --- Andrus Adamchik <andru..bjectstyle.org> wrote:

    > Strange. That should still work the same. The only change to
    > Configuration since M3 was related to the DataSourceFactory handling
    > (CAY-785)... Do you have a code example that demonstrates the problem?
    >
    > Thanks,
    > Andrus
    >
    >
    > On May 1, 2008, at 10:29 PM, Brian Nelson wrote:
    > > I've been using a custom subclass of DefaultConfiguration to
    > > customize my database connection.
    > > This works great with 3.0M3. However, today I upgraded to the
    > > snapshot build and it seems to be
    > > ignoring the custom configuration class I pass into the
    > > Configuration.initializeSharedConfiguration method. Has the way
    > > custom configurations work
    > > changed?
    > >
    > > Thanks in advance!
    > >
    > > Brian
    > >
    > >
    >
    >



    This archive was generated by hypermail 2.0.0 : Fri May 02 2008 - 20:22:12 EDT