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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]