Class BasicDataSourceFactory

java.lang.Object
org.datanucleus.store.rdbms.datasource.dbcp2.BasicDataSourceFactory
All Implemented Interfaces:
ObjectFactory

public class BasicDataSourceFactory extends Object implements ObjectFactory

JNDI object factory that creates an instance of BasicDataSource that has been configured based on the RefAddr values of the specified Reference, which must match the names and data types of the BasicDataSource bean properties with the following exceptions:

  • connectionInitSqls must be passed to this factory as a single String using semi-colon to delimit the statements whereas BasicDataSource requires a collection of Strings.
Since:
2.0
  • Field Details

  • Constructor Details

    • BasicDataSourceFactory

      public BasicDataSourceFactory()
  • Method Details

    • getObjectInstance

      public Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?,?> environment) throws Exception

      Create and return a new BasicDataSource instance. If no instance can be created, return null instead.

      Specified by:
      getObjectInstance in interface ObjectFactory
      Parameters:
      obj - The possibly null object containing location or reference information that can be used in creating an object
      name - The name of this object relative to nameCtx
      nameCtx - The context relative to which the name parameter is specified, or null if name is relative to the default initial context
      environment - The possibly null environment that is used in creating this object
      Throws:
      Exception - if an exception occurs creating the instance
    • validatePropertyNames

      private void validatePropertyNames(Reference ref, Name name, List<String> warnings, List<String> infoMessages)
      Collects warnings and info messages. Warnings are generated when an obsolete property is set. Unknown properties generate info messages.
      Parameters:
      ref - Reference to check properties of
      name - Name provided to getObject
      warnings - container for warning messages
      infoMessages - container for info messages
    • createDataSource

      public static BasicDataSource createDataSource(Properties properties) throws Exception
      Creates and configures a BasicDataSource instance based on the given properties.
      Parameters:
      properties - The data source configuration properties.
      Returns:
      A new a BasicDataSource instance based on the given properties.
      Throws:
      Exception - Thrown when an error occurs creating the data source.
    • getProperties

      private static Properties getProperties(String propText) throws Exception

      Parse properties from the string. Format of the string must be [propertyName=property;]*

      Parameters:
      propText -
      Returns:
      Properties
      Throws:
      Exception
    • parseList

      private static Collection<String> parseList(String value, char delimiter)
      Parse list of property values from a delimited string
      Parameters:
      value - delimited list of values
      delimiter - character used to separate values in the list
      Returns:
      String Collection of values