rwaldhoff    2003/03/06 07:22:26

  Modified:    dbcp/src/java/org/apache/commons/dbcp
                        BasicDataSourceFactory.java
  Log:
  Expose a connectionProperties property.
  This closes bug 13930 <http://issues.apache.org/bugzilla/show_bug.cgi?id=13930>
  Thanks Peter.
  
  Revision  Changes    Path
  1.5       +34 -6     
jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/BasicDataSourceFactory.java
  
  Index: BasicDataSourceFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons/dbcp/src/java/org/apache/commons/dbcp/BasicDataSourceFactory.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- BasicDataSourceFactory.java       6 Mar 2003 14:58:42 -0000       1.4
  +++ BasicDataSourceFactory.java       6 Mar 2003 15:22:25 -0000       1.5
  @@ -61,12 +61,15 @@
   
   package org.apache.commons.dbcp;
   
  +import java.io.ByteArrayInputStream;
  +import java.util.Enumeration;
   import java.util.Hashtable;
  +import java.util.Properties;
  +
   import javax.naming.Context;
   import javax.naming.Name;
  -import javax.naming.NamingException;
  -import javax.naming.Reference;
   import javax.naming.RefAddr;
  +import javax.naming.Reference;
   import javax.naming.spi.ObjectFactory;
   
   
  @@ -230,9 +233,34 @@
                   (Boolean.valueOf(ra.getContent().toString()).booleanValue());
           }
   
  +        ra = ref.get("connectionProperties");
  +        if (ra != null) {
  +          Properties p = getProperties(ra.getContent().toString());
  +          Enumeration e = p.propertyNames();
  +          while (e.hasMoreElements()) {
  +            String propertyName = (String) e.nextElement();
  +            dataSource.addConnectionProperty(propertyName, 
p.getProperty(propertyName));
  +          }
  +        }
  +
           // Return the configured data source instance
           return (dataSource);
   
  +    }
  +
  +
  +    /**
  +     * <p>Parse properties from the string. Format of the string must be 
[propertyName=property;]*<p>
  +     * @param propText
  +     * @return Properties
  +     * @throws Exception
  +     */
  +    static private Properties getProperties(String propText) throws Exception {
  +      Properties p = new Properties();
  +      if (propText != null) {
  +        p.load(new ByteArrayInputStream(propText.replace(';', '\n').getBytes()));
  +      }
  +      return p;
       }
   
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to