You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by kf...@apache.org on 2013/02/19 06:52:16 UTC

svn commit: r1447596 - in /tomcat/trunk/java/org/apache/catalina/storeconfig: InterceptorSF.java server-registry.xml

Author: kfujino
Date: Tue Feb 19 05:52:16 2013
New Revision: 1447596

URL: http://svn.apache.org/r1447596
Log:
Improvements of InterceptorSF.
- Add support for static membership.
- Interceptor except StaticMembershipInterceptor has no child elements.

Modified:
    tomcat/trunk/java/org/apache/catalina/storeconfig/InterceptorSF.java
    tomcat/trunk/java/org/apache/catalina/storeconfig/server-registry.xml

Modified: tomcat/trunk/java/org/apache/catalina/storeconfig/InterceptorSF.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/storeconfig/InterceptorSF.java?rev=1447596&r1=1447595&r2=1447596&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/storeconfig/InterceptorSF.java (original)
+++ tomcat/trunk/java/org/apache/catalina/storeconfig/InterceptorSF.java Tue Feb 19 05:52:16 2013
@@ -20,12 +20,44 @@ package org.apache.catalina.storeconfig;
 import java.io.PrintWriter;
 
 import org.apache.catalina.tribes.ChannelInterceptor;
+import org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor;
+import org.apache.juli.logging.Log;
+import org.apache.juli.logging.LogFactory;
 
 /**
  * Generate Interceptor Element
  */
 public class InterceptorSF extends StoreFactoryBase {
 
+    private static Log log = LogFactory.getLog(InterceptorSF.class);
+
+    @Override
+    public void store(PrintWriter aWriter, int indent, Object aElement)
+            throws Exception {
+        if (aElement instanceof StaticMembershipInterceptor) {
+            StoreDescription elementDesc = getRegistry().findDescription(
+                    aElement.getClass());
+
+            if (elementDesc != null) {
+                if (log.isDebugEnabled())
+                    log.debug(sm.getString("factory.storeTag",
+                            elementDesc.getTag(), aElement));
+                getStoreAppender().printIndent(aWriter, indent + 2);
+                getStoreAppender().printOpenTag(aWriter, indent + 2, aElement,
+                            elementDesc);
+                storeChildren(aWriter, indent + 2, aElement, elementDesc);
+                getStoreAppender().printIndent(aWriter, indent + 2);
+                getStoreAppender().printCloseTag(aWriter, elementDesc);
+            } else {
+                if (log.isWarnEnabled())
+                    log.warn(sm.getString("factory.storeNoDescriptor",
+                            aElement.getClass()));
+            }
+        } else {
+            super.store(aWriter, indent, aElement);
+        }
+    }
+
     /**
      * Store the specified Interceptor child.
      *
@@ -42,7 +74,7 @@ public class InterceptorSF extends Store
     @Override
     public void storeChildren(PrintWriter aWriter, int indent, Object aInterceptor,
             StoreDescription parentDesc) throws Exception {
-        if (aInterceptor instanceof ChannelInterceptor) {
+        if (aInterceptor instanceof StaticMembershipInterceptor) {
             ChannelInterceptor interceptor = (ChannelInterceptor) aInterceptor;
             // Store nested <Member> elements
             storeElementArray(aWriter, indent + 2, interceptor.getMembers());

Modified: tomcat/trunk/java/org/apache/catalina/storeconfig/server-registry.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/storeconfig/server-registry.xml?rev=1447596&r1=1447595&r2=1447596&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/storeconfig/server-registry.xml (original)
+++ tomcat/trunk/java/org/apache/catalina/storeconfig/server-registry.xml Tue Feb 19 05:52:16 2013
@@ -396,7 +396,7 @@
         tag="Interceptor"
         standard="false"
         default="false"
-        children="true"
+        children="false"
         tagClass="org.apache.catalina.tribes.ChannelInterceptor"
         storeFactoryClass="org.apache.catalina.storeconfig.InterceptorSF">
      </Description>



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