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();
        
        @Override
        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;
        }
        
        @Override
        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;
        }

        @Override
        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 <[EMAIL PROTECTED]> 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
> >
> >
> 
> 

Reply via email to