You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2006/03/30 17:08:32 UTC

svn commit: r390155 - /tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java

Author: remm
Date: Thu Mar 30 07:08:31 2006
New Revision: 390155

URL: http://svn.apache.org/viewcvs?rev=390155&view=rev
Log:
- Clean up a bit.
- For some reason, trying to recycle a static digester doesn't improve performance.

Modified:
    tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java

Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java
URL: http://svn.apache.org/viewcvs/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java?rev=390155&r1=390154&r2=390155&view=diff
==============================================================================
--- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java (original)
+++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java Thu Mar 30 07:08:31 2006
@@ -37,192 +37,199 @@
     String type;
     Object source;
     List mbeans=new ArrayList();
-
-    public void setRegistry(Registry reg) {
-        this.registry=reg;
-    }
-
-    public void setLocation( String loc ) {
-        this.location=loc;
-    }
-
-    /** Used if a single component is loaded
-     *
-     * @param type
-     */
-    public void setType( String type ) {
-       this.type=type;
-    }
-
-    public void setSource( Object source ) {
-        this.source=source;
-    }
-
-    public List loadDescriptors( Registry registry, String location,
-                                 String type, Object source)
-            throws Exception
-    {
-        setRegistry(registry);
-        setLocation(location);
-        setType(type);
-        setSource(source);
-        execute();
-        return mbeans;
-    }
-
-    public void execute() throws Exception {
-        if( registry==null ) registry=Registry.getRegistry();
-
-        InputStream stream=(InputStream)source;
-
-        long t1=System.currentTimeMillis();
+    
+    protected static Digester createDigester(Registry registry) {
 
         Digester digester = new Digester();
         digester.setNamespaceAware(false);
         digester.setValidating(false);
-        URL url = registry.getClass().getResource
-                ("/org/apache/commons/modeler/mbeans-descriptors.dtd");
+        URL url = Registry.getRegistry(null, null).getClass().getResource
+            ("/org/apache/tomcat/util/modeler/mbeans-descriptors.dtd");
         digester.register
-                ("-//Apache Software Foundation//DTD Model MBeans Configuration File",
-                        url.toString());
-
-        // Push our registry object onto the stack
-        digester.push(mbeans);
-
+            ("-//Apache Software Foundation//DTD Model MBeans Configuration File",
+                url.toString());
+        
         // Configure the parsing rules
         digester.addObjectCreate
-                ("mbeans-descriptors/mbean",
-                        "org.apache.tomcat.util.modeler.ManagedBean");
+            ("mbeans-descriptors/mbean",
+            "org.apache.tomcat.util.modeler.ManagedBean");
         digester.addSetProperties
-                ("mbeans-descriptors/mbean");
+            ("mbeans-descriptors/mbean");
         digester.addSetNext
-                ("mbeans-descriptors/mbean",
-                        "add",
-                        "java.lang.Object");
-
+            ("mbeans-descriptors/mbean",
+                "add",
+            "java.lang.Object");
+        
         digester.addObjectCreate
-                ("mbeans-descriptors/mbean/attribute",
-                        "org.apache.tomcat.util.modeler.AttributeInfo");
+            ("mbeans-descriptors/mbean/attribute",
+            "org.apache.tomcat.util.modeler.AttributeInfo");
         digester.addSetProperties
-                ("mbeans-descriptors/mbean/attribute");
+            ("mbeans-descriptors/mbean/attribute");
         digester.addSetNext
-                ("mbeans-descriptors/mbean/attribute",
-                        "addAttribute",
-                        "org.apache.tomcat.util.modeler.AttributeInfo");
-
+            ("mbeans-descriptors/mbean/attribute",
+                "addAttribute",
+            "org.apache.tomcat.util.modeler.AttributeInfo");
+        
         digester.addObjectCreate
             ("mbeans-descriptors/mbean/attribute/descriptor/field",
-             "org.apache.tomcat.util.modeler.FieldInfo");
+            "org.apache.tomcat.util.modeler.FieldInfo");
         digester.addSetProperties
             ("mbeans-descriptors/mbean/attribute/descriptor/field");
         digester.addSetNext
             ("mbeans-descriptors/mbean/attribute/descriptor/field",
-             "addField",
-             "org.apache.tomcat.util.modeler.FieldInfo");
-
-        digester.addObjectCreate
-                ("mbeans-descriptors/mbean/constructor",
-                        "org.apache.tomcat.util.modeler.ConstructorInfo");
-        digester.addSetProperties
-                ("mbeans-descriptors/mbean/constructor");
-        digester.addSetNext
-                ("mbeans-descriptors/mbean/constructor",
-                        "addConstructor",
-                        "org.apache.tomcat.util.modeler.ConstructorInfo");
-
+                "addField",
+            "org.apache.tomcat.util.modeler.FieldInfo");
+        
+        digester.addObjectCreate
+            ("mbeans-descriptors/mbean/constructor",
+            "org.apache.tomcat.util.modeler.ConstructorInfo");
+        digester.addSetProperties
+            ("mbeans-descriptors/mbean/constructor");
+        digester.addSetNext
+            ("mbeans-descriptors/mbean/constructor",
+                "addConstructor",
+            "org.apache.tomcat.util.modeler.ConstructorInfo");
+        
         digester.addObjectCreate
             ("mbeans-descriptors/mbean/constructor/descriptor/field",
-             "org.apache.tomcat.util.modeler.FieldInfo");
+            "org.apache.tomcat.util.modeler.FieldInfo");
         digester.addSetProperties
             ("mbeans-descriptors/mbean/constructor/descriptor/field");
         digester.addSetNext
             ("mbeans-descriptors/mbean/constructor/descriptor/field",
-             "addField",
-             "org.apache.tomcat.util.modeler.FieldInfo");
-
-        digester.addObjectCreate
-                ("mbeans-descriptors/mbean/constructor/parameter",
-                        "org.apache.tomcat.util.modeler.ParameterInfo");
-        digester.addSetProperties
-                ("mbeans-descriptors/mbean/constructor/parameter");
-        digester.addSetNext
-                ("mbeans-descriptors/mbean/constructor/parameter",
-                        "addParameter",
-                        "org.apache.tomcat.util.modeler.ParameterInfo");
-
+                "addField",
+            "org.apache.tomcat.util.modeler.FieldInfo");
+        
+        digester.addObjectCreate
+            ("mbeans-descriptors/mbean/constructor/parameter",
+            "org.apache.tomcat.util.modeler.ParameterInfo");
+        digester.addSetProperties
+            ("mbeans-descriptors/mbean/constructor/parameter");
+        digester.addSetNext
+            ("mbeans-descriptors/mbean/constructor/parameter",
+                "addParameter",
+            "org.apache.tomcat.util.modeler.ParameterInfo");
+        
         digester.addObjectCreate
             ("mbeans-descriptors/mbean/descriptor/field",
-             "org.apache.tomcat.util.modeler.FieldInfo");
+            "org.apache.tomcat.util.modeler.FieldInfo");
         digester.addSetProperties
             ("mbeans-descriptors/mbean/descriptor/field");
         digester.addSetNext
             ("mbeans-descriptors/mbean/descriptor/field",
-             "addField",
-             "org.apache.tomcat.util.modeler.FieldInfo");
-
-        digester.addObjectCreate
-                ("mbeans-descriptors/mbean/notification",
-                        "org.apache.tomcat.util.modeler.NotificationInfo");
-        digester.addSetProperties
-                ("mbeans-descriptors/mbean/notification");
-        digester.addSetNext
-                ("mbeans-descriptors/mbean/notification",
-                        "addNotification",
-                        "org.apache.tomcat.util.modeler.NotificationInfo");
-
+                "addField",
+            "org.apache.tomcat.util.modeler.FieldInfo");
+        
+        digester.addObjectCreate
+            ("mbeans-descriptors/mbean/notification",
+            "org.apache.tomcat.util.modeler.NotificationInfo");
+        digester.addSetProperties
+            ("mbeans-descriptors/mbean/notification");
+        digester.addSetNext
+            ("mbeans-descriptors/mbean/notification",
+                "addNotification",
+            "org.apache.tomcat.util.modeler.NotificationInfo");
+        
         digester.addObjectCreate
             ("mbeans-descriptors/mbean/notification/descriptor/field",
-             "org.apache.tomcat.util.modeler.FieldInfo");
+            "org.apache.tomcat.util.modeler.FieldInfo");
         digester.addSetProperties
             ("mbeans-descriptors/mbean/notification/descriptor/field");
         digester.addSetNext
             ("mbeans-descriptors/mbean/notification/descriptor/field",
-             "addField",
-             "org.apache.tomcat.util.modeler.FieldInfo");
-
+                "addField",
+            "org.apache.tomcat.util.modeler.FieldInfo");
+        
         digester.addCallMethod
-                ("mbeans-descriptors/mbean/notification/notification-type",
-                        "addNotifType", 0);
-
-        digester.addObjectCreate
-                ("mbeans-descriptors/mbean/operation",
-                        "org.apache.tomcat.util.modeler.OperationInfo");
-        digester.addSetProperties
-                ("mbeans-descriptors/mbean/operation");
-        digester.addSetNext
-                ("mbeans-descriptors/mbean/operation",
-                        "addOperation",
-                        "org.apache.tomcat.util.modeler.OperationInfo");
-
+            ("mbeans-descriptors/mbean/notification/notification-type",
+                "addNotifType", 0);
+        
+        digester.addObjectCreate
+            ("mbeans-descriptors/mbean/operation",
+            "org.apache.tomcat.util.modeler.OperationInfo");
+        digester.addSetProperties
+            ("mbeans-descriptors/mbean/operation");
+        digester.addSetNext
+            ("mbeans-descriptors/mbean/operation",
+                "addOperation",
+            "org.apache.tomcat.util.modeler.OperationInfo");
+        
         digester.addObjectCreate
             ("mbeans-descriptors/mbean/operation/descriptor/field",
-             "org.apache.tomcat.util.modeler.FieldInfo");
+            "org.apache.tomcat.util.modeler.FieldInfo");
         digester.addSetProperties
             ("mbeans-descriptors/mbean/operation/descriptor/field");
         digester.addSetNext
             ("mbeans-descriptors/mbean/operation/descriptor/field",
-             "addField",
-             "org.apache.tomcat.util.modeler.FieldInfo");
+                "addField",
+            "org.apache.tomcat.util.modeler.FieldInfo");
+        
+        digester.addObjectCreate
+            ("mbeans-descriptors/mbean/operation/parameter",
+            "org.apache.tomcat.util.modeler.ParameterInfo");
+        digester.addSetProperties
+            ("mbeans-descriptors/mbean/operation/parameter");
+        digester.addSetNext
+            ("mbeans-descriptors/mbean/operation/parameter",
+                "addParameter",
+            "org.apache.tomcat.util.modeler.ParameterInfo");
+        
+        return digester;
+        
+    }
+    
+    public void setRegistry(Registry reg) {
+        this.registry=reg;
+    }
 
-        digester.addObjectCreate
-                ("mbeans-descriptors/mbean/operation/parameter",
-                        "org.apache.tomcat.util.modeler.ParameterInfo");
-        digester.addSetProperties
-                ("mbeans-descriptors/mbean/operation/parameter");
-        digester.addSetNext
-                ("mbeans-descriptors/mbean/operation/parameter",
-                        "addParameter",
-                        "org.apache.tomcat.util.modeler.ParameterInfo");
+    public void setLocation( String loc ) {
+        this.location=loc;
+    }
 
+    /** Used if a single component is loaded
+     *
+     * @param type
+     */
+    public void setType( String type ) {
+       this.type=type;
+    }
+
+    public void setSource( Object source ) {
+        this.source=source;
+    }
+
+    public List loadDescriptors( Registry registry, String location,
+                                 String type, Object source)
+            throws Exception
+    {
+        setRegistry(registry);
+        setLocation(location);
+        setType(type);
+        setSource(source);
+        execute();
+        return mbeans;
+    }
+
+    public void execute() throws Exception {
+        if (registry == null) {
+            registry = Registry.getRegistry(null, null);
+        }
+
+        InputStream stream = (InputStream) source;
+
+        Digester digester = createDigester(registry);
+        // Push our registry object onto the stack
+        digester.push(mbeans);
+        
         // Process the input file to configure our registry
         try {
             digester.parse(stream);
         } catch (Exception e) {
             log.error("Error digesting Registry data", e);
             throw e;
+        } finally {
+            digester.reset();
         }
-        long t2=System.currentTimeMillis();
-//        if( t2-t1 > 500 )
-        log.info("Loaded registry information (digester) " + ( t2 - t1 ) + " ms");
+            
     }
 }



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