Author: fhanik
Date: Sat Oct 20 07:57:18 2007
New Revision: 586738

URL: http://svn.apache.org/viewvc?rev=586738&view=rev
Log:
Added NIO connector to server.xml parser warnings

Modified:
    tomcat/tc6.0.x/trunk/STATUS
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Connector.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/util/IDynamicProperty.java
    tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/Embedded.java
    tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java
    tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java
    tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
    tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml

Modified: tomcat/tc6.0.x/trunk/STATUS
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/STATUS?rev=586738&r1=586737&r2=586738&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/STATUS (original)
+++ tomcat/tc6.0.x/trunk/STATUS Sat Oct 20 07:57:18 2007
@@ -25,13 +25,6 @@
 PATCHES PROPOSED TO BACKPORT:
   [ New proposals should be added at the end of the list ]
 
-* Make server.xml parsing warnings more generic, add support for the NIO 
connector
-* Connector is no longer an exception case. Any new component can still use 
setProperty and return a boolean 
-* to accept or reject the property
-  http://people.apache.org/~fhanik/patches/digester-attribute-warnings.patch
-  +1: fhanik, yoavs,funkman
-  -1: 
-  
 * IcedTea support. Upcoming Linux distributions will package a (working) open 
source JRE,
   available in /usr. As a result, it could now be possible to use a 
"/usr/bin/java" binary
   if one is present and expect results. [tested on Fedora 8 test 3]

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Connector.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Connector.java?rev=586738&r1=586737&r2=586738&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Connector.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/connector/Connector.java Sat 
Oct 20 07:57:18 2007
@@ -313,29 +313,14 @@
     /**
      * Set a configured property.
      */
-    public void setProperty(String name, String value) {
+    public boolean setProperty(String name, String value) {
         String repl = name;
         if (replacements.get(name) != null) {
             repl = (String) replacements.get(name);
         }
-        if (!IntrospectionUtils.setProperty(protocolHandler, repl, value)) {
-            log.warn("Property " + name + " not found on the protocol 
handler.");
-        }
-    }
-
-
-    /**
-     * Set a configured property.
-     */
-    public void setPropertyInternal(String name, String value) {
-        String repl = name;
-        if (replacements.get(name) != null) {
-            repl = (String) replacements.get(name);
-        }
-        IntrospectionUtils.setProperty(protocolHandler, repl, value);
+        return IntrospectionUtils.setProperty(protocolHandler, repl, value);
     }
 
-
     /**
      * Return a configured property.
      */
@@ -402,7 +387,7 @@
     public void setAllowTrace(boolean allowTrace) {
 
         this.allowTrace = allowTrace;
-        setPropertyInternal("allowTrace", String.valueOf(allowTrace));
+        setProperty("allowTrace", String.valueOf(allowTrace));
 
     }
 
@@ -480,7 +465,7 @@
     public void setEmptySessionPath(boolean emptySessionPath) {
 
         this.emptySessionPath = emptySessionPath;
-        setPropertyInternal("emptySessionPath", 
String.valueOf(emptySessionPath));
+        setProperty("emptySessionPath", String.valueOf(emptySessionPath));
 
     }
 
@@ -503,7 +488,7 @@
     public void setEnableLookups(boolean enableLookups) {
 
         this.enableLookups = enableLookups;
-        setPropertyInternal("enableLookups", String.valueOf(enableLookups));
+        setProperty("enableLookups", String.valueOf(enableLookups));
 
     }
 
@@ -573,7 +558,7 @@
     public void setMaxSavePostSize(int maxSavePostSize) {
 
         this.maxSavePostSize = maxSavePostSize;
-        setPropertyInternal("maxSavePostSize", 
String.valueOf(maxSavePostSize));
+        setProperty("maxSavePostSize", String.valueOf(maxSavePostSize));
     }
 
 
@@ -595,7 +580,7 @@
     public void setPort(int port) {
 
         this.port = port;
-        setPropertyInternal("port", String.valueOf(port));
+        setProperty("port", String.valueOf(port));
 
     }
 
@@ -759,7 +744,7 @@
 
         if(proxyName != null && proxyName.length() > 0) {
             this.proxyName = proxyName;
-            setPropertyInternal("proxyName", proxyName);
+            setProperty("proxyName", proxyName);
         } else {
             this.proxyName = null;
             removeProperty("proxyName");
@@ -786,7 +771,7 @@
     public void setProxyPort(int proxyPort) {
 
         this.proxyPort = proxyPort;
-        setPropertyInternal("proxyPort", String.valueOf(proxyPort));
+        setProperty("proxyPort", String.valueOf(proxyPort));
 
     }
 
@@ -811,7 +796,7 @@
     public void setRedirectPort(int redirectPort) {
 
         this.redirectPort = redirectPort;
-        setPropertyInternal("redirectPort", String.valueOf(redirectPort));
+        setProperty("redirectPort", String.valueOf(redirectPort));
 
     }
 
@@ -860,7 +845,7 @@
     public void setSecure(boolean secure) {
 
         this.secure = secure;
-        setPropertyInternal("secure", Boolean.toString(secure));
+        setProperty("secure", Boolean.toString(secure));
     }
 
      /**
@@ -881,7 +866,7 @@
      public void setURIEncoding(String URIEncoding) {
 
          this.URIEncoding = URIEncoding;
-         setPropertyInternal("uRIEncoding", URIEncoding);
+         setProperty("uRIEncoding", URIEncoding);
 
      }
 
@@ -904,7 +889,7 @@
      public void setUseBodyEncodingForURI(boolean useBodyEncodingForURI) {
 
          this.useBodyEncodingForURI = useBodyEncodingForURI;
-         setPropertyInternal
+         setProperty
              ("useBodyEncodingForURI", String.valueOf(useBodyEncodingForURI));
 
      }
@@ -932,7 +917,7 @@
      */
     public void setXpoweredBy(boolean xpoweredBy) {
         this.xpoweredBy = xpoweredBy;
-        setPropertyInternal("xpoweredBy", String.valueOf(xpoweredBy));
+        setProperty("xpoweredBy", String.valueOf(xpoweredBy));
     }
 
     /**
@@ -943,7 +928,7 @@
      */
     public void setUseIPVHosts(boolean useIPVHosts) {
         this.useIPVHosts = useIPVHosts;
-        setPropertyInternal("useIPVHosts", String.valueOf(useIPVHosts));
+        setProperty("useIPVHosts", String.valueOf(useIPVHosts));
     }
 
     /**

Modified: 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java?rev=586738&r1=586737&r2=586738&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java 
Sat Oct 20 07:57:18 2007
@@ -406,8 +406,8 @@
      * @param name
      * @param value
      */
-    public void setProperty(String name, String value) {
-        setProperty(name, (Object) value);
+    public boolean setProperty(String name, String value) {
+        return setProperty(name, (Object) value);
     }
 
     /**
@@ -416,29 +416,9 @@
      * @param name
      * @param value
      */
-    public void setProperty(String name, Object value) {
-        if (log.isTraceEnabled())
-            log.trace(sm.getString("SimpleTcpCluster.setProperty", name, 
value,properties.get(name)));
+    public boolean setProperty(String name, Object value) {
         properties.put(name, value);
-        //using a dynamic way of setting properties is nice, but a security 
risk
-        //if exposed through JMX. This way you can sit and try to guess 
property names,
-        //we will only allow explicit property names
-        log.warn("Dynamic setProperty("+name+",value) has been disabled, 
please use explicit properties for the element you are trying to identify");
-        if(started) {
-            // FIXME Hmm, is that correct when some DeltaManagers are direct 
configured inside Context?
-            // Why we not support it for other elements, like sender, receiver 
or membership?
-            // Must we restart element after change?
-//            if (name.startsWith("manager")) {
-//                String key = name.substring("manager".length() + 1);
-//                String pvalue = value.toString();
-//                for (Iterator iter = managers.values().iterator(); 
iter.hasNext();) {
-//                    Manager manager = (Manager) iter.next();
-//                    if(manager instanceof DeltaManager && ((ClusterManager) 
manager).isDefaultMode()) {
-//                        IntrospectionUtils.setProperty(manager, key, pvalue 
);
-//                    }
-//                }
-//            } 
-        }
+        return false;
     }
 
     /**

Modified: 
tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/util/IDynamicProperty.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/util/IDynamicProperty.java?rev=586738&r1=586737&r2=586738&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/util/IDynamicProperty.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/ha/util/IDynamicProperty.java 
Sat Oct 20 07:57:18 2007
@@ -32,7 +32,7 @@
      * @param name
      * @param value
      */
-    public void setProperty(String name, Object value) ;
+    public boolean setProperty(String name, Object value) ;
 
     /**
      * get current config

Modified: tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/Embedded.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/Embedded.java?rev=586738&r1=586737&r2=586738&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/Embedded.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/catalina/startup/Embedded.java Sat Oct 
20 07:57:18 2007
@@ -427,7 +427,7 @@
                 connector = new Connector();
                 connector.setScheme("https");
                 connector.setSecure(true);
-                connector.setPropertyInternal("SSLEnabled","true");
+                connector.setProperty("SSLEnabled","true");
                 // FIXME !!!! SET SSL PROPERTIES
             } else {
                 connector = new Connector(protocol);

Modified: 
tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java?rev=586738&r1=586737&r2=586738&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/coyote/http11/Http11NioProtocol.java 
Sat Oct 20 07:57:18 2007
@@ -94,13 +94,13 @@
     /**
      * Set a property.
      */
-    public void setProperty(String name, String value) {
+    public boolean setProperty(String name, String value) {
+        setAttribute(name, value);
         if ( name!=null && (name.startsWith("socket.") 
||name.startsWith("selectorPool.")) ){
-            ep.setProperty(name, value);
+            return ep.setProperty(name, value);
         } else {
-            ep.setProperty(name,value); //make sure we at least try to set all 
properties
+            return ep.setProperty(name,value); //make sure we at least try to 
set all properties
         }
-        setAttribute(name, value);
     }
 
     /**

Modified: 
tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java?rev=586738&r1=586737&r2=586738&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/IntrospectionUtils.java 
Sat Oct 20 07:57:18 2007
@@ -266,7 +266,8 @@
 
         try {
             Method methods[] = findMethods(o.getClass());
-            Method setPropertyMethod = null;
+            Method setPropertyMethodVoid = null;
+            Method setPropertyMethodBool = null;
 
             // First, the ideal case - a setFoo( String ) method
             for (int i = 0; i < methods.length; i++) {
@@ -334,17 +335,37 @@
 
                 // save "setProperty" for later
                 if ("setProperty".equals(methods[i].getName())) {
-                    setPropertyMethod = methods[i];
+                    if (methods[i].getReturnType()==Boolean.TYPE){
+                        setPropertyMethodBool = methods[i];
+                    }else {
+                        setPropertyMethodVoid = methods[i];    
+                    }
+                    
                 }
             }
 
             // Ok, no setXXX found, try a setProperty("name", "value")
-            if (setPropertyMethod != null) {
+            if (setPropertyMethodBool != null || setPropertyMethodVoid != 
null) {
                 Object params[] = new Object[2];
                 params[0] = name;
                 params[1] = value;
-                setPropertyMethod.invoke(o, params);
-                return true;
+                if (setPropertyMethodBool != null) {
+                    try {
+                        return (Boolean) setPropertyMethodBool.invoke(o, 
params);
+                    }catch (IllegalArgumentException biae) {
+                        //the boolean method had the wrong
+                        //parameter types. lets try the other
+                        if (setPropertyMethodVoid!=null) {
+                            setPropertyMethodVoid.invoke(o, params);
+                            return true;
+                        }else {
+                            throw biae;
+                        }
+                    }
+                } else {
+                    setPropertyMethodVoid.invoke(o, params);
+                    return true;
+                }
             }
 
         } catch (IllegalArgumentException ex2) {

Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=586738&r1=586737&r2=586738&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java 
(original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Sat 
Oct 20 07:57:18 2007
@@ -510,19 +510,20 @@
     /**
      * Generic properties, introspected
      */
-    public void setProperty(String name, String value) {
+    public boolean setProperty(String name, String value) {
         final String selectorPoolName = "selectorPool.";
         final String socketName = "socket.";
         try {
             if (name.startsWith(selectorPoolName)) {
-                IntrospectionUtils.setProperty(selectorPool, 
name.substring(selectorPoolName.length()), value);
+                return IntrospectionUtils.setProperty(selectorPool, 
name.substring(selectorPoolName.length()), value);
             } else if (name.startsWith(socketName)) {
-                IntrospectionUtils.setProperty(socketProperties, 
name.substring(socketName.length()), value);
+                return IntrospectionUtils.setProperty(socketProperties, 
name.substring(socketName.length()), value);
             } else {
-                IntrospectionUtils.setProperty(this,name,value);
+                return IntrospectionUtils.setProperty(this,name,value);
             }
         }catch ( Exception x ) {
             log.error("Unable to set attribute \""+name+"\" to 
\""+value+"\"",x);
+            return false;
         }
     }
 

Modified: tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml?rev=586738&r1=586737&r2=586738&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc6.0.x/trunk/webapps/docs/changelog.xml Sat Oct 20 07:57:18 2007
@@ -45,6 +45,7 @@
   </subsection>
   <subsection name="Catalina">
     <changelog>
+      <update>Add NIO connector to server.xml parsing warning, remove 
Connector as exception case</update>
       <fix><bug>43653</bug>Fix SSL buffer mixup when response is unable to 
write more than socket buffer can handle</fix>
       <fix><bug>43643</bug>If connector doesn't support external executor, 
display warning</fix>
       <fix><bug>43641</bug>Property bind multicast address for cluster 
membership</fix>



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to