Class UCPBackedDataSourceExtension
- All Implemented Interfaces:
- Extension
AbstractDataSourceExtension that arranges for named DataSource injection points
 to be satisfied by the Oracle Universal Connection
 Pool.
 As with all portable extensions, to begin to make use of the features enabled by this class, ensure its containing artifact (normally a jar file) is on the runtime classpath of your CDI-enabled application.
In accordance with the CDI specification, instances of this class are not necessarily safe for concurrent use by multiple threads.
To support injection of a Universal Connection Pool-backed PoolDataSource
 named test, first ensure that enough MicroProfile Config configuration is present to create a valid PoolDataSource. For example, the following sample system properties are sufficient for a PoolDataSource
 named test to be created:
# (Note that "oracle.ucp.jdbc.PoolDataSource" below could be "javax.sql.DataSource" instead if you prefer
# that your configuration not refer directly to Oracle-specific classnames in its keys.)
oracle.ucp.jdbc.PoolDataSource.test.connectionFactoryClassName=oracle.jdbc.pool.OracleDataSource
oracle.ucp.jdbc.PoolDataSource.test.URL=jdbc:oracle:thin://@localhost:1521/XE
oracle.ucp.jdbc.PoolDataSource.test.user=scott
oracle.ucp.jdbc.PoolDataSource.test.password=tiger
With configuration such as the above, you can now inject the implicit PoolDataSource it defines:
// Inject a PoolDataSource qualified with the name test into a private javax.sql.DataSource-typed field named ds:
@jakarta.inject.Inject
@jakarta.inject.Named("test")
private javax.sql.DataSource ds;
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionprotected final voidaddBean(BeanConfigurator<DataSource> beanConfigurator, Named dataSourceName, Properties dataSourceProperties) Called internally to permit subclasses to add aT-typed bean, qualified with at least the suppliedNamed, using the suppliedBeanConfigurator.protected final StringgetDataSourceName(Matcher dataSourcePropertyPatternMatcher) Given aMatcherthat has been produced by theAbstractDataSourceExtension.getDataSourcePropertyPatternMatcher(String)method, returns the relevant data source name.protected final StringgetDataSourcePropertyName(Matcher dataSourcePropertyPatternMatcher) Given aMatcherthat has been produced by theAbstractDataSourceExtension.getDataSourcePropertyPatternMatcher(String)method, returns the relevant data source property name.protected final MatchergetDataSourcePropertyPatternMatcher(String configPropertyName) Returns aMatcherfor a property name.Methods inherited from class io.helidon.integrations.datasource.cdi.AbstractDataSourceExtensiongetConfig, getDataSourceNames, getPropertyNames, initializeMasterProperties, matcher, name, propertyName, putDataSourcePropertiesMethods inherited from class io.helidon.integrations.cdi.configurable.AbstractConfigurableExtensionconfigPropertyNames, configPropertyValue, initializeNamedProperties, names, put
- 
Constructor Details- 
UCPBackedDataSourceExtensionDeprecated.For use by CDI only.Creates a newUCPBackedDataSourceExtension.
 
- 
- 
Method Details- 
getDataSourcePropertyPatternMatcherDescription copied from class:AbstractDataSourceExtensionReturns aMatcherfor a property name.Implementations of this method must not return null.Implementations of this method must not invoke the AbstractDataSourceExtension.matcher(String)method or an infinite loop may result.Given a Stringlikejavax.sql.DataSource.dataSourceName.dataSourcePropertyName, any implementation of this method should return a non-nullMatcherthat is capable of being supplied to theAbstractDataSourceExtension.getDataSourceName(Matcher)andAbstractDataSourceExtension.getDataSourcePropertyName(Matcher)methods.- Specified by:
- getDataSourcePropertyPatternMatcherin class- AbstractDataSourceExtension
- Parameters:
- configPropertyName- the name of a configuration property that logically contains a data source name and a data source property name; must not be- null
- Returns:
- a non-nullMatcher
- See Also:
 
- 
getDataSourceNameDescription copied from class:AbstractDataSourceExtensionGiven aMatcherthat has been produced by theAbstractDataSourceExtension.getDataSourcePropertyPatternMatcher(String)method, returns the relevant data source name.Implementations of this method may return null.Implementations of this method must not invoke the AbstractDataSourceExtension.name(Matcher)method or an infinite loop may result.- Specified by:
- getDataSourceNamein class- AbstractDataSourceExtension
- Parameters:
- dataSourcePropertyPatternMatcher- a- Matcherproduced by the- AbstractDataSourceExtension.getDataSourcePropertyPatternMatcher(String)method; must not be- null
- Returns:
- a data source name, or null
- See Also:
 
- 
getDataSourcePropertyNameDescription copied from class:AbstractDataSourceExtensionGiven aMatcherthat has been produced by theAbstractDataSourceExtension.getDataSourcePropertyPatternMatcher(String)method, returns the relevant data source property name.Implementations of this method may return null.Implementations of this method must not invoke the AbstractDataSourceExtension.propertyName(Matcher)method or an infinite loop may result.- Specified by:
- getDataSourcePropertyNamein class- AbstractDataSourceExtension
- Parameters:
- dataSourcePropertyPatternMatcher- a- Matcherproduced by the- AbstractDataSourceExtension.getDataSourcePropertyPatternMatcher(String)method; must not be- null
- Returns:
- a data source property name, or null
- See Also:
 
- 
addBeanprotected final void addBean(BeanConfigurator<DataSource> beanConfigurator, Named dataSourceName, Properties dataSourceProperties) Description copied from class:AbstractConfigurableExtensionCalled internally to permit subclasses to add aT-typed bean, qualified with at least the suppliedNamed, using the suppliedBeanConfigurator.Implementations of this method will be called from an observer method that is observing the AfterBeanDiscoverycontainer lifecycle event.- Specified by:
- addBeanin class- AbstractConfigurableExtension<DataSource>
- Parameters:
- beanConfigurator- the- BeanConfiguratorto use to actually add a new bean; must not be- null
- dataSourceName- a- Namedinstance qualifying the- T-typed bean to be added; may be- null
- dataSourceProperties- a- Propertiesinstance containing properties relevant to the object; must not be- null
- See Also:
 
 
-