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
