I am in agreement with Paul. Doing magic in your code is bad. If it is a bad datasource throw an exception. Let the programmer to tell you what exactly he want. Give him a constructor to create a registry with an in-mem database. Makes the programming model simple, easy to understand.
Thanks Sanjaya On Monday 03 December 2007, Paul Fremantle wrote: > I'm bothered about the "fallback" to an inmemory database. I don't think > that makes sense as something to do automatically. > > Surely its better for a user to explicitly try to start the JDBCReg and > if that fails catch the exception or null and then create an in-mem Reg? > > Paul > > Sanjiva Weerawarana wrote: > > +1 for 3 alternative constructors. Since the registry is unusable until > > init'ed, IMO constructors make more sense. > > > > Thanks, > > > > Sanjiva. > > > > Chathura C. Ekanayake wrote: > >> We want to allow users to configure registry database in different > >> ways (e.g. using a data source, using a connection URL, specify > >> whether to start in-memory database if other database is not available). > >> > >> So we provide few methods in the JDBCRegistry to configure them. We > >> only want the registry to initialize after those parameters are > >> configured. > >> And we don't know whether the user is specifying them or not at the > >> construction time. Therefore, user has to call init() after > >> configuring them. > >> > >> Alternative would be to have 3 constructors. > >> > >> 1) JDBCRegistry() - Use default datasource name if available. If not > >> available, use in-memory DB > >> > >> 2) JDBCRegistry(String datasourceName, boolean allowInMemoryDB) - Use > >> given data source. If not available, use in-memory DB depending on the > >> allowInMemoryDB parameter value > >> > >> 3) JDBCRegistry(String driverClass, String URL, String userName, > >> String password, boolean allowInMemoryDB) - Use given connection URL > >> to connect to the DB > >> > >> Thanks, > >> Chathura > >> > >> Paul Fremantle wrote: > >>> Chathura C. Ekanayake wrote: > >>>> JDBCRegistry registry = new JDBCRegistry(); > >>>> registry.init(); > >>> > >>> Love it! That's what I was looking for. > >>> > >>> Last question - why do we need init()? > >>> > >>> Paul > >>> > >>> _______________________________________________ > >>> Registry-dev mailing list > >>> [email protected] > >>> http://wso2.org/cgi-bin/mailman/listinfo/registry-dev > >> > >> _______________________________________________ > >> Registry-dev mailing list > >> [email protected] > >> http://wso2.org/cgi-bin/mailman/listinfo/registry-dev _______________________________________________ Registry-dev mailing list [email protected] http://wso2.org/cgi-bin/mailman/listinfo/registry-dev
