Author: dblevins
Date: Sat Oct 10 09:00:59 2009
New Revision: 823825

URL: http://svn.apache.org/viewvc?rev=823825&view=rev
Log:
Merging r823678 - http://svn.apache.org/viewvc?rev=823678&view=rev

svn merge -r 823677:823678 
https://svn.apache.org/repos/asf/openejb/trunk/openejb3 .

------------------------------------------------------------------------
r823678 | jlmonteiro | 2009-10-09 13:44:06 -0700 (Fri, 09 Oct 2009) | 3 lines

OPENEJB-1076 Allow end users to use ciphered passwords in datasource 
configuration (openejb.xml).
--> Avoid code duplication --> refactoring
--> Add a command line tool to use a PasswordCodec
------------------------------------------------------------------------

Added:
    
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/java/org/apache/openejb/config/Codec.java
      - copied unchanged from r823678, 
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/Codec.java
    
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/resources/META-INF/org.apache.openejb.cli/codec
      - copied unchanged from r823678, 
openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb.cli/codec
Modified:
    openejb/branches/openejb-3.1.2/   (props changed)
    
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicDataSource.java
    
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicDataSourceUtil.java
    
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicManagedDataSource.java
    
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/resources/org/apache/openejb/config/Messages.properties
    
openejb/branches/openejb-3.1.2/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java
   (props changed)
    
openejb/branches/openejb-3.1.2/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml
   (props changed)

Propchange: openejb/branches/openejb-3.1.2/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Oct 10 09:00:59 2009
@@ -1,2 +1,2 @@
 /openejb/branches/openejb-3.1.1:779593
-/openejb/trunk/openejb3:823293,823642,823667
+/openejb/trunk/openejb3:823293,823642,823667,823678

Modified: 
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicDataSource.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.2/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicDataSource.java?rev=823825&r1=823824&r2=823825&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicDataSource.java
 (original)
+++ 
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicDataSource.java
 Sat Oct 10 09:00:59 2009
@@ -97,7 +97,7 @@
         
         // check password codec if available
         if (null != passwordCodecClass) {
-            PasswordCodec codec = getPasswordCodec();
+            PasswordCodec codec = 
BasicDataSourceUtil.getPasswordCodec(passwordCodecClass);
             String plainPwd = codec.decode(password.toCharArray());
 
             // override previous password value
@@ -131,44 +131,4 @@
         }
     }
     
-    /**
-     * Create a {...@link PasswordCodec} instance from the
-     * {...@link #passwordCodecClass}.
-     * 
-     * @return the password codec from the {...@link #passwordCodecClass}
-     *         optionally set.
-     * @throws SQLException
-     *             if the driver can not be found.
-     */
-    private PasswordCodec getPasswordCodec() throws SQLException {
-        // Load the password codec class
-        Class pwdCodec = null;
-        try {
-            try {
-                pwdCodec = Class.forName(passwordCodecClass);
-
-            } catch (ClassNotFoundException cnfe) {
-                pwdCodec = 
Thread.currentThread().getContextClassLoader().loadClass(passwordCodecClass);
-            }
-        } catch (Throwable t) {
-            String message = "Cannot load password codec class '" + 
passwordCodecClass + "'";
-            logWriter.println(message);
-            t.printStackTrace(logWriter);
-            throw new SQLNestedException(message, t);
-        }
-
-        // Create an instance
-        PasswordCodec codec = null;
-        try {
-            codec = (PasswordCodec) pwdCodec.newInstance();
-
-        } catch (Throwable t) {
-            String message = "Cannot create password codec instance";
-            logWriter.println(message);
-            t.printStackTrace(logWriter);
-            throw new SQLNestedException(message, t);
-        }
-
-        return codec;
-    }
 }

Modified: 
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicDataSourceUtil.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.2/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicDataSourceUtil.java?rev=823825&r1=823824&r2=823825&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicDataSourceUtil.java
 (original)
+++ 
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicDataSourceUtil.java
 Sat Oct 10 09:00:59 2009
@@ -17,6 +17,7 @@
  */
 package org.apache.openejb.resource.jdbc;
 
+import org.apache.commons.dbcp.SQLNestedException;
 import org.apache.xbean.finder.ResourceFinder;
 
 import java.sql.SQLException;
@@ -81,4 +82,42 @@
 
         return jdbcUrl;
     }
+    
+    /**
+     * Create a {...@link PasswordCodec} instance from the
+     * {...@link #passwordCodecClass}.
+     * 
+     * @param passwordCodecClass the password codec to look for
+     * @return the password codec from the {...@link #passwordCodecClass}
+     *         optionally set.
+     * @throws SQLException
+     *             if the driver can not be found.
+     */
+    public static PasswordCodec getPasswordCodec(String passwordCodecClass) 
throws SQLException {
+        // Load the password codec class
+        Class pwdCodec = null;
+        try {
+            try {
+                pwdCodec = Class.forName(passwordCodecClass);
+
+            } catch (ClassNotFoundException cnfe) {
+                pwdCodec = 
Thread.currentThread().getContextClassLoader().loadClass(passwordCodecClass);
+            }
+        } catch (Throwable t) {
+            String message = "Cannot load password codec class '" + 
passwordCodecClass + "'";
+            throw new SQLNestedException(message, t);
+        }
+
+        // Create an instance
+        PasswordCodec codec = null;
+        try {
+            codec = (PasswordCodec) pwdCodec.newInstance();
+
+        } catch (Throwable t) {
+            String message = "Cannot create password codec instance";
+            throw new SQLNestedException(message, t);
+        }
+
+        return codec;
+    }
 }

Modified: 
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicManagedDataSource.java
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.2/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicManagedDataSource.java?rev=823825&r1=823824&r2=823825&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicManagedDataSource.java
 (original)
+++ 
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/BasicManagedDataSource.java
 Sat Oct 10 09:00:59 2009
@@ -23,7 +23,6 @@
 
 import javax.sql.DataSource;
 
-import org.apache.commons.dbcp.SQLNestedException;
 import org.apache.openejb.loader.SystemInstance;
 
 public class BasicManagedDataSource extends 
org.apache.commons.dbcp.managed.BasicManagedDataSource {
@@ -96,7 +95,7 @@
         
         // check password codec if available
         if (null != passwordCodecClass) {
-            PasswordCodec codec = getPasswordCodec();
+            PasswordCodec codec = 
BasicDataSourceUtil.getPasswordCodec(passwordCodecClass);
             String plainPwd = codec.decode(password.toCharArray());
 
             // override previous password value
@@ -134,45 +133,4 @@
     protected void wrapTransactionManager() {
     }
     
-    /**
-     * Create a {...@link PasswordCodec} instance from the
-     * {...@link #passwordCodecClass}.
-     * 
-     * @return the password codec from the {...@link #passwordCodecClass}
-     *         optionally set.
-     * @throws SQLException
-     *             if the driver can not be found.
-     */
-    private PasswordCodec getPasswordCodec() throws SQLException {
-        // Load the password codec class
-        Class pwdCodec = null;
-        try {
-            try {
-                pwdCodec = Class.forName(passwordCodecClass);
-
-            } catch (ClassNotFoundException cnfe) {
-                pwdCodec = 
Thread.currentThread().getContextClassLoader().loadClass(passwordCodecClass);
-            }
-        } catch (Throwable t) {
-            String message = "Cannot load password codec class '" + 
passwordCodecClass + "'";
-            logWriter.println(message);
-            t.printStackTrace(logWriter);
-            throw new SQLNestedException(message, t);
-        }
-
-        // Create an instance
-        PasswordCodec codec = null;
-        try {
-            codec = (PasswordCodec) pwdCodec.newInstance();
-
-        } catch (Throwable t) {
-            String message = "Cannot create password codec instance";
-            logWriter.println(message);
-            t.printStackTrace(logWriter);
-            throw new SQLNestedException(message, t);
-        }
-
-        return codec;
-    }
-
 }

Modified: 
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/resources/org/apache/openejb/config/Messages.properties
URL: 
http://svn.apache.org/viewvc/openejb/branches/openejb-3.1.2/container/openejb-core/src/main/resources/org/apache/openejb/config/Messages.properties?rev=823825&r1=823824&r2=823825&view=diff
==============================================================================
--- 
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/resources/org/apache/openejb/config/Messages.properties
 (original)
+++ 
openejb/branches/openejb-3.1.2/container/openejb-core/src/main/resources/org/apache/openejb/config/Messages.properties
 Sat Oct 10 09:00:59 2009
@@ -17,6 +17,22 @@
 #
 # $Rev$ $Date$
 #
+# codec
+# formatter.printHelp("codec [options] <value>", 
"\n"+i18n("cmd.codec.description"), options, "\n");
+cmd.codec.description = Uses a password codec implementation to encode/decode 
a value.
+
+#options.addOption(option("h", "help", "cmd.codec.opt.help"));
+cmd.codec.opt.help = Lists these options and exits.
+
+#options.addOption(option("i", "codec", "cmd.codec.opt.impl"));
+cmd.codec.opt.impl = Specifies the password codec implementation to use.
+
+#options.addOption(option("d", "decode", "cmd.codec.opt.decode"));
+cmd.codec.opt.decode = Switches command line tool to decode.
+
+#options.addOption(option("e", "encode", "cmd.codec.opt.encode"));
+cmd.codec.opt.encode = Switches command line tool to encode (default).
+
 # Undeploy
 #formatter.printHelp("undeploy [options] <moduleId> [<moduleId>...]", "\n"+ 
Undeploy.i18n("cmd.deploy.description"), options, "\n");
 cmd.undeploy.description= Connects to the server and Undeploys the module(s)

Propchange: 
openejb/branches/openejb-3.1.2/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Oct 10 09:00:59 2009
@@ -1,2 +1,2 @@
 
/openejb/branches/openejb-3.1.1/container/openejb-core/src/test/java/org/apache/openejb/config/UberInterfaceTest.java:779593
-/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:823293,823642,823667
+/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/config/BusinessInterfacesTest.java:823293,823642,823667,823678

Propchange: 
openejb/branches/openejb-3.1.2/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Sat Oct 10 09:00:59 2009
@@ -1,2 +1,2 @@
 
/openejb/branches/openejb-3.1.1/examples/alternate-descriptors/src/main/resources/META-INF/ejb-jar.xml:779593
-/openejb/trunk/openejb3/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:823293,823642,823667
+/openejb/trunk/openejb3/examples/alternate-descriptors/src/main/resources/META-INF/test.ejb-jar.xml:823293,823642,823667,823678


Reply via email to