From: remm Date: Thu, 30 Mar 2006 15:08:31 +0000 (+0000) Subject: - Clean up a bit. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=08e0df73eae8f28bcd96ee6f76d4916f2a161cec;p=tomcat7.0 - Clean up a bit. - For some reason, trying to recycle a static digester doesn't improve performance. git-svn-id: https://svn.apache.org/repos/asf/tomcat/tc6.0.x/trunk@390155 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java b/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java index 901926a78..a27ff8462 100644 --- a/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java +++ b/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java @@ -37,192 +37,199 @@ public class MbeansDescriptorsDigesterSource extends ModelerSource 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"); - + "addField", + "org.apache.tomcat.util.modeler.FieldInfo"); + digester.addObjectCreate - ("mbeans-descriptors/mbean/constructor", - "org.apache.tomcat.util.modeler.ConstructorInfo"); + ("mbeans-descriptors/mbean/constructor", + "org.apache.tomcat.util.modeler.ConstructorInfo"); digester.addSetProperties - ("mbeans-descriptors/mbean/constructor"); + ("mbeans-descriptors/mbean/constructor"); digester.addSetNext - ("mbeans-descriptors/mbean/constructor", - "addConstructor", - "org.apache.tomcat.util.modeler.ConstructorInfo"); - + ("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"); - + "addField", + "org.apache.tomcat.util.modeler.FieldInfo"); + digester.addObjectCreate - ("mbeans-descriptors/mbean/constructor/parameter", - "org.apache.tomcat.util.modeler.ParameterInfo"); + ("mbeans-descriptors/mbean/constructor/parameter", + "org.apache.tomcat.util.modeler.ParameterInfo"); digester.addSetProperties - ("mbeans-descriptors/mbean/constructor/parameter"); + ("mbeans-descriptors/mbean/constructor/parameter"); digester.addSetNext - ("mbeans-descriptors/mbean/constructor/parameter", - "addParameter", - "org.apache.tomcat.util.modeler.ParameterInfo"); - + ("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"); - + "addField", + "org.apache.tomcat.util.modeler.FieldInfo"); + digester.addObjectCreate - ("mbeans-descriptors/mbean/notification", - "org.apache.tomcat.util.modeler.NotificationInfo"); + ("mbeans-descriptors/mbean/notification", + "org.apache.tomcat.util.modeler.NotificationInfo"); digester.addSetProperties - ("mbeans-descriptors/mbean/notification"); + ("mbeans-descriptors/mbean/notification"); digester.addSetNext - ("mbeans-descriptors/mbean/notification", - "addNotification", - "org.apache.tomcat.util.modeler.NotificationInfo"); - + ("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); - + ("mbeans-descriptors/mbean/notification/notification-type", + "addNotifType", 0); + digester.addObjectCreate - ("mbeans-descriptors/mbean/operation", - "org.apache.tomcat.util.modeler.OperationInfo"); + ("mbeans-descriptors/mbean/operation", + "org.apache.tomcat.util.modeler.OperationInfo"); digester.addSetProperties - ("mbeans-descriptors/mbean/operation"); + ("mbeans-descriptors/mbean/operation"); digester.addSetNext - ("mbeans-descriptors/mbean/operation", - "addOperation", - "org.apache.tomcat.util.modeler.OperationInfo"); - + ("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"); + ("mbeans-descriptors/mbean/operation/parameter", + "org.apache.tomcat.util.modeler.ParameterInfo"); digester.addSetProperties - ("mbeans-descriptors/mbean/operation/parameter"); + ("mbeans-descriptors/mbean/operation/parameter"); digester.addSetNext - ("mbeans-descriptors/mbean/operation/parameter", - "addParameter", - "org.apache.tomcat.util.modeler.ParameterInfo"); + ("mbeans-descriptors/mbean/operation/parameter", + "addParameter", + "org.apache.tomcat.util.modeler.ParameterInfo"); + + return digester; + + } + + 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(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"); + } }