On Wednesday 05 December 2007, Chathura C. Ekanayake wrote: > Paul Fremantle wrote: > > Sanjaya has also persuaded me (on IM) that we should add another > > constructor > > > > new JDBCRegistry(DataSource dataSource) > > > > I'm not sure if there is an equivalent that uses a Connection as well. > > I think Sanjaya is proposing to have a DataSource implementation that > can wrap a Connection to handle this scenario. > So we need only one constructor to instantiate a registry with a > database connection (datasource or connection). > > Thanks, > Chathura >
NO. If we are going to have RegistryDatasource then it should implement the java.sql.Datasource which requires you to provide certain QoS. JDBCRegistry (PersistentRegistry) will only take a java.sql.Datasource which has the capability to give a very reliable connection to a datasource. /Sanjaya > > Paul > > > > Sanjiva Weerawarana wrote: > >> +1. > >> > >> Paul Fremantle wrote: > >>> I understand that we are using HSQLDB to provide the in-memory DB, > >>> its just a bit odd that the class is called JDBCRegistry. > >>> > >>> From a beginners perspective, wouldn't it make more sense to have > >>> another class called InMemoryRegistry. Of course under the covers it > >>> can use the JDBCRegistry with HSQLDB? > >>> > >>> I'm just trying to think of this from a beginning programmers > >>> perspective, and I'm not convinced everyone is going to > >>> automatically think of using a JDBCRegistry to do in-memory. > >>> > >>> So my preference would be: > >>> > >>> new InMemoryRegistry() > >>> new JDBCRegistry(String datasourceName) - Use the given data source. > >>> new JDBCRegistry(String driverClass, String URL, String userName, > >>> String password) - Use given connection URL to connect to the DB > >>> > >>> > >>> Paul > >>> > >>> Chathura C. Ekanayake wrote: > >>>> +1. So shall we remove "allowInMemoryDB" parameter from all > >>>> constructors and only start the in-memory database if the default > >>>> constructor is used. > >>>> > >>>> Then the constructors would look like: > >>>> > >>>> 1) JDBCRegistry() - Use in-memory DB. > >>>> > >>>> 2) JDBCRegistry(String datasourceName) - Use the given data source. > >>>> > >>>> 3) JDBCRegistry(String driverClass, String URL, String userName, > >>>> String password) - Use given connection URL to connect to the DB > >>>> > >>>> Thanks, > >>>> Chathura > >>>> > >>>> 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 > > _______________________________________________ > 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
