User: oleg    
  Date: 00/11/23 05:20:18

  Modified:    src/main/org/jboss/minerva/datasource
                        JDBCPoolDataSource.java
  Log:
  Added String attribute "properties" needed for standalone use of Minerva with Castor.
  
  Revision  Changes    Path
  1.5       +31 -1     
jboss/src/main/org/jboss/minerva/datasource/JDBCPoolDataSource.java
  
  Index: JDBCPoolDataSource.java
  ===================================================================
  RCS file: 
/products/cvs/ejboss/jboss/src/main/org/jboss/minerva/datasource/JDBCPoolDataSource.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- JDBCPoolDataSource.java   2000/10/05 01:36:34     1.4
  +++ JDBCPoolDataSource.java   2000/11/23 13:20:17     1.5
  @@ -25,7 +25,7 @@
    * and JDBCConnectionFactory.
    * @see org.jboss.minerva.pools.ObjectPool
    * @see org.jboss.minerva.factories.JDBCConnectionFactory
  - * @version $Revision: 1.4 $
  + * @version $Revision: 1.5 $
    * @author Aaron Mulder ([EMAIL PROTECTED])
    */
   public class JDBCPoolDataSource implements DataSource, Referenceable, ObjectFactory 
{
  @@ -86,6 +86,7 @@
       public void setJDBCURL(String url) {factory.setConnectURL(url);}
       public String getJDBCURL() {return factory.getConnectURL();}
       public void setJDBCProperties(Properties props) 
{factory.setConnectProperties(props);}
  +    public void setProperties(String props) 
{setJDBCProperties(parseProperties(props));}
       public Properties getJDBCProperties() {return factory.getConnectProperties();}
       public void setJDBCUser(String user) {factory.setUser(user);}
       public String getJDBCUser() {return factory.getUser();}
  @@ -204,6 +205,35 @@
        */
       public void setLoginTimeout(int timeout) throws java.sql.SQLException {
           this.timeout = timeout;
  +    }
  +
  +    /**
  +     * This method is used for parsing JDBCProperties
  +     */
  +    private static Properties parseProperties(String string) {
  +        Properties props = new Properties();
  +        if(string == null || string.length() == 0) return props;
  +        int lastPos = -1;
  +        int pos = string.indexOf(";");
  +        while(pos > -1) {
  +            addProperty(props, string.substring(lastPos+1, pos));
  +            lastPos = pos;
  +            pos = string.indexOf(";", lastPos+1);
  +        }
  +        addProperty(props, string.substring(lastPos+1));
  +        return props;
  +    }
  +
  +    /**
  +     * This method is used for parsing JDBCProperties
  +     */
  +    private static void addProperty(Properties props, String property) {
  +        int pos = property.indexOf("=");
  +        if(pos < 0) {
  +            System.err.println("Unable to parse property '"+property+"' - please 
use 'name=value'");
  +            return;
  +        }
  +        props.setProperty(property.substring(0, pos), property.substring(pos+1));
       }
   
       // Referenceable implementation ----------------------------------
  
  
  

Reply via email to