db-ddlutils-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From to...@apache.org
Subject svn commit: r329463 - in /db/ddlutils/trunk/src/java/org/apache/ddlutils: Platform.java PlatformFactory.java PlatformUtils.java util/JdbcSupport.java
Date Sat, 29 Oct 2005 18:16:08 GMT
Author: tomdz
Date: Sat Oct 29 11:15:55 2005
New Revision: 329463

URL: http://svn.apache.org/viewcvs?rev=329463&view=rev
Log:
Added ability to specify username & password when creating a platform instance for a given
data source (fixes DDLUTILS-34)

Modified:
    db/ddlutils/trunk/src/java/org/apache/ddlutils/Platform.java
    db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformFactory.java
    db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformUtils.java
    db/ddlutils/trunk/src/java/org/apache/ddlutils/util/JdbcSupport.java

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/Platform.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/Platform.java?rev=329463&r1=329462&r2=329463&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/Platform.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/Platform.java Sat Oct 29 11:15:55 2005
@@ -66,7 +66,7 @@
      * @return The model reader
      */
     public JdbcModelReader getModelReader();
-
+    
     /**
      * Returns the data source that this platform uses to access the database.
      * 
@@ -80,6 +80,34 @@
      * @param dataSource The data source
      */
     public void setDataSource(DataSource dataSource);
+
+    /**
+     * Returns the username that this platform shall use to access the database.
+     * 
+     * @return The username
+     */
+    public String getUsername();
+
+    /**
+     * Sets the username that this platform shall use to access the database.
+     * 
+     * @param username The username
+     */
+    public void setUsername(String username);
+
+    /**
+     * Returns the password that this platform shall use to access the database.
+     * 
+     * @return The password
+     */
+    public String getPassword();
+
+    /**
+     * Sets the password that this platform shall use to access the database.
+     * 
+     * @param password The password
+     */
+    public void setPassword(String password);
 
     /**
      * Returns a (new) JDBC connection from the data source.

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformFactory.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformFactory.java?rev=329463&r1=329462&r2=329463&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformFactory.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformFactory.java Sat Oct 29 11:15:55
2005
@@ -90,7 +90,8 @@
     /**
      * Creates a new platform for the specified database. This is a shortcut method that
uses
      * {@link PlatformUtils#determineDatabaseType(String, String)} to determine the parameter
-     * for {@link #createNewPlatformInstance(String)}.
+     * for {@link #createNewPlatformInstance(String)}. Note that no database connection is
+     * established when using this method.
      * 
      * @param jdbcDriver        The jdbc driver
      * @param jdbcConnectionUrl The connection url
@@ -115,6 +116,27 @@
         Platform platform = createNewPlatformInstance(new PlatformUtils().determineDatabaseType(dataSource));
 
         platform.setDataSource(dataSource);
+        return platform;
+    }
+
+    /**
+     * Creates a new platform for the specified database. This is a shortcut method that
uses
+     * {@link PlatformUtils#determineDatabaseType(DataSource)} to determine the parameter
+     * for {@link #createNewPlatformInstance(String)}. Note that this method sets the data
source
+     * at the returned platform instance (method {@link Platform#setDataSource(DataSource)}).
+     * 
+     * @param dataSource The data source for the database
+     * @param username   The user name to use for connecting to the database
+     * @param password   The password to use for connecting to the database
+     * @return The platform or <code>null</code> if the database is not supported
+     */
+    public static synchronized Platform createNewPlatformInstance(DataSource dataSource,
String username, String password) throws DdlUtilsException
+    {
+        Platform platform = createNewPlatformInstance(new PlatformUtils().determineDatabaseType(dataSource,
username, password));
+
+        platform.setDataSource(dataSource);
+        platform.setUsername(username);
+        platform.setPassword(password);
         return platform;
     }
 

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformUtils.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformUtils.java?rev=329463&r1=329462&r2=329463&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformUtils.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/PlatformUtils.java Sat Oct 29 11:15:55
2005
@@ -218,11 +218,32 @@
      */
     public String determineDatabaseType(DataSource dataSource) throws DynaSqlException
     {
+        return determineDatabaseType(dataSource, null, null);
+    }
+
+    /**
+     * Tries to determine the database type for the given data source. Note that this will
establish
+     * a connection to the database.
+     * 
+     * @param dataSource The data source
+     * @param username   The user name to use for connecting to the database
+     * @param password   The password to use for connecting to the database
+     * @return The database type or <code>null</code> if the database type couldn't
be determined
+     */
+    public String determineDatabaseType(DataSource dataSource, String username, String password)
throws DynaSqlException
+    {
         Connection connection = null;
 
         try
         {
-            connection = dataSource.getConnection();
+            if (username != null)
+            {
+                connection = dataSource.getConnection(username, password);
+            }
+            else
+            {
+                connection = dataSource.getConnection();
+            }
             
             DatabaseMetaData metaData = connection.getMetaData();
 

Modified: db/ddlutils/trunk/src/java/org/apache/ddlutils/util/JdbcSupport.java
URL: http://svn.apache.org/viewcvs/db/ddlutils/trunk/src/java/org/apache/ddlutils/util/JdbcSupport.java?rev=329463&r1=329462&r2=329463&view=diff
==============================================================================
--- db/ddlutils/trunk/src/java/org/apache/ddlutils/util/JdbcSupport.java (original)
+++ db/ddlutils/trunk/src/java/org/apache/ddlutils/util/JdbcSupport.java Sat Oct 29 11:15:55
2005
@@ -42,48 +42,75 @@
     private final Log _log = LogFactory.getLog(JdbcSupport.class);
     /** The data source. */
     private DataSource _dataSource;
+    /** The username for accessing the database. */
+    private String _username;
+    /** The password for accessing the database. */
+    private String _password;
     /** The names of the currently borrowed connections (for debugging). */
     private HashSet _openConnectionNames = new HashSet();
 
+    // Properties
+    //-------------------------------------------------------------------------         
      
+    
     /**
-     * Creates a new instance without a data source.
+     * Returns the data source used for communicating with the database.
+     * 
+     * @return The data source
      */
-    public JdbcSupport()
+    public DataSource getDataSource()
     {
+        return _dataSource;
     }
 
     /**
-     * Creates a new instance that uses the given data source for talking to
-     * the database.
+     * Sets the DataSource used for communicating with the database.
      * 
      * @param dataSource The data source
      */
-    public JdbcSupport(DataSource dataSource)
+    public void setDataSource(DataSource dataSource)
     {
         _dataSource = dataSource;
     }
 
-    // Properties
-    //-------------------------------------------------------------------------         
      
-    
+
     /**
-     * Returns the data source used for communicating with the database.
+     * Returns the username used to access the database.
      * 
-     * @return The data source
+     * @return The username
      */
-    public DataSource getDataSource()
+    public String getUsername()
     {
-        return _dataSource;
+        return _username;
     }
 
     /**
-     * Sets the DataSource used for communicating with the database.
+     * Sets the username to be used to access the database.
      * 
-     * @param dataSource The data source
+     * @param username The username
      */
-    public void setDataSource(DataSource dataSource)
+    public void setUsername(String username)
     {
-        _dataSource = dataSource;
+        _username = username;
+    }
+
+    /**
+     * Returns the password used to access the database.
+     * 
+     * @return The password
+     */
+    public String getPassword()
+    {
+        return _password;
+    }
+
+    /**
+     * Sets the password to be used to access the database.
+     * 
+     * @param password The password
+     */
+    public void setPassword(String password)
+    {
+        _password = password;
     }
 
     // Implementation methods    
@@ -98,8 +125,16 @@
     {
         try
         {
-            Connection connection = getDataSource().getConnection();
+            Connection connection = null;
 
+            if (_username == null)
+            {
+                connection = getDataSource().getConnection();
+            }
+            else
+            {
+                connection = getDataSource().getConnection(_username, _password);
+            }
             if (_log.isDebugEnabled())
             {
                 String connName = connection.toString();



Mime
View raw message