Author: remm
Date: Thu Jun 18 12:57:13 2015
New Revision: 1686209

URL: http://svn.apache.org/r1686209
Log:
Make sslImplementationName a special attribute (like protocol) so that it is 
set before any other and can be used to validate.

Modified:
    tomcat/trunk/java/org/apache/catalina/startup/ConnectorCreateRule.java
    tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties

Modified: tomcat/trunk/java/org/apache/catalina/startup/ConnectorCreateRule.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/ConnectorCreateRule.java?rev=1686209&r1=1686208&r2=1686209&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/ConnectorCreateRule.java 
(original)
+++ tomcat/trunk/java/org/apache/catalina/startup/ConnectorCreateRule.java Thu 
Jun 18 12:57:13 2015
@@ -28,6 +28,7 @@ import org.apache.juli.logging.Log;
 import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.IntrospectionUtils;
 import org.apache.tomcat.util.digester.Rule;
+import org.apache.tomcat.util.res.StringManager;
 import org.xml.sax.Attributes;
 
 
@@ -38,6 +39,7 @@ import org.xml.sax.Attributes;
 public class ConnectorCreateRule extends Rule {
 
     private static final Log log = 
LogFactory.getLog(ConnectorCreateRule.class);
+    protected static final StringManager sm = 
StringManager.getManager(ConnectorCreateRule.class);
     // --------------------------------------------------------- Public Methods
 
 
@@ -60,20 +62,33 @@ public class ConnectorCreateRule extends
             ex = svc.getExecutor(attributes.getValue("executor"));
         }
         Connector con = new Connector(attributes.getValue("protocol"));
-        if ( ex != null )  _setExecutor(con,ex);
-
+        if (ex != null) {
+            setExecutor(con, ex);
+        }
+        String sslImplementationName = 
attributes.getValue("sslImplementationName");
+        if (sslImplementationName != null) {
+            setSSLImplementationName(con, sslImplementationName);
+        }
         digester.push(con);
     }
 
-    public void _setExecutor(Connector con, Executor ex) throws Exception {
+    private static void setExecutor(Connector con, Executor ex) throws 
Exception {
         Method m = 
IntrospectionUtils.findMethod(con.getProtocolHandler().getClass(),"setExecutor",new
 Class[] {java.util.concurrent.Executor.class});
         if (m!=null) {
             m.invoke(con.getProtocolHandler(), new Object[] {ex});
         }else {
-            log.warn("Connector ["+con+"] does not support external executors. 
Method setExecutor(java.util.concurrent.Executor) not found.");
+            log.warn(sm.getString("connector.noSetExecutor", con));
         }
     }
 
+    private static void setSSLImplementationName(Connector con, String 
sslImplementationName) throws Exception {
+        Method m = 
IntrospectionUtils.findMethod(con.getProtocolHandler().getClass(),"setSslImplementationName",new
 Class[] {String.class});
+        if (m != null) {
+            m.invoke(con.getProtocolHandler(), new Object[] 
{sslImplementationName});
+        } else {
+            log.warn(sm.getString("connector.noSetSSLImplementationName", 
con));
+        }
+    }
 
     /**
      * Process the end of this element.

Modified: tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties?rev=1686209&r1=1686208&r2=1686209&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties 
(original)
+++ tomcat/trunk/java/org/apache/catalina/startup/LocalStrings.properties Thu 
Jun 18 12:57:13 2015
@@ -137,3 +137,7 @@ versionLoggerListener.arg
 versionLoggerListener.env                      =Environment variable:  {0} = 
{1}
 versionLoggerListener.prop                     =System property:       {0} = 
{1}
 webAnnotationSet.invalidInjection=Invalid method resource injection annotation.
+
+connector.noSetExecutor=Connector [{0}] does not support external executors. 
Method setExecutor(java.util.concurrent.Executor) not found.
+connector.noSetSSLImplementationName=Connector [{0}] does not support changing 
the SSL implementation. Method setSslImplementationName(String) not found.
+ 
\ No newline at end of file



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to