As much as I saw, the property options of DataSourceFactory were defined based on the Oracle JDBC driver. However, not all of the database engines have the same configuration properties. Therefore it should be possible to use additional properties in the DataSourceFactory. I would ask in that case to list those properties in a Constants class (that has a bit more specific name that simply Constants :)).
It is interesting that in the H2 implementation the creation of a DataSource fails if JDBC_ROLE_NAME or JDBC_DATASOURCE_NAME is defined, but it does not care if another unknown property is defined. See OSGiDataSourceFactory in the H2 jar. When I created the second version of the component<https://github.com/everit-org/osgi-jdbc-dsf>that can create DataSource or XADataSource, I added an optional String[] configuration option where property entries could be defined. I needed it as some JDBC drivers support such properties that are not listed as constant in the DataSourceFactory interface. Regards, Balazs On Mon, Apr 14, 2014 at 4:28 PM, Peter Kriens <[email protected]>wrote: > This is an interesting question I ran into recently as well. Before that > point, I always assumed we used properties so you could add additional > properties and ignore the ones you did not recognize. This has worked well > for OSGi so far. However, when working in this area I noticed some > implementers whine when they see properties they do not recognize, and I > could also understand that rationale. > > So I think you should ignore any properties you do not recognize since > this has been the OSGi way from the beginning. However, since the user is > fully aware of what he is configuring I think there is no real problem if > you take another approach. > > In short, as far as I know this question was never considered because it > seemed obvious to ignore unrecognized parameters :-) > > Kind regards, > > Peter Kriens > > > On 12 apr. 2014, at 00:20, Jürgen Rose <[email protected]> wrote: > > > Hi, > > > > I'm Jürgen, new on this list and I'm currently osgifying the postgresql > > jdbc driver (https://github.com/pgjdbc/pgjdbc/issues/71). > > > > I have some questions regarding the DataSourceFactory. There are a bunch > > of predefined property names defined like JDBC_DATABASE_NAME which is > > databaseName, JDBC_PORT_NUMBER is portNumber, and so on. > > > > As far as I understand these are basically the Properties which are > > defined as required/optional properties in the JDBC spec. > > > > What is the policy regarding additional properties, should they just be > > passed on as well? What about unsupported properties, should they just > > be ignored, or lead to an exception? > > > > Whan I look at the h2 code it is a bit of a mix: > > > http://grepcode.com/file_/repo1.maven.org/maven2/com.h2database/h2/1.3.174/org/h2/util/OsgiDataSourceFactory.java/?v=source > > > > The implementation of eclipselabs for postgres uses introspection to set > > the properties: > > > https://github.com/BryanHunt/dbaccess/blob/master/bundles/org.eclipselabs.dbaccess.postgresql/src/org/eclipselabs/dbaccess/postgresql/AbstractDataSourceFactory.java > > and also throws an error if a property doesn't exist. > > > > What is the canonical approach here? > > > > best regards > > Jürgen > > _______________________________________________ > > OSGi Developer Mail List > > [email protected] > > https://mail.osgi.org/mailman/listinfo/osgi-dev > > _______________________________________________ > OSGi Developer Mail List > [email protected] > https://mail.osgi.org/mailman/listinfo/osgi-dev >
_______________________________________________ OSGi Developer Mail List [email protected] https://mail.osgi.org/mailman/listinfo/osgi-dev
