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

Reply via email to