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