You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by co...@apache.org on 2002/12/26 19:13:26 UTC

cvs commit: jakarta-commons/modeler/src/java/org/apache/commons/modeler/modules MbeansDescriptorsDigesterSource.java

costin      2002/12/26 10:13:25

  Added:       modeler/src/java/org/apache/commons/modeler/modules
                        MbeansDescriptorsDigesterSource.java
  Log:
  Refactored the digester reading of mbeans-descriptors.
  
  Same code, but in a pluggable module.
  
  Revision  Changes    Path
  1.1                  jakarta-commons/modeler/src/java/org/apache/commons/modeler/modules/MbeansDescriptorsDigesterSource.java
  
  Index: MbeansDescriptorsDigesterSource.java
  ===================================================================
  package org.apache.commons.modeler.modules;
  
  import org.apache.commons.digester.Digester;
  import org.apache.commons.modeler.Registry;
  import org.apache.commons.logging.Log;
  import org.apache.commons.logging.LogFactory;
  
  import java.io.InputStream;
  import java.net.URL;
  
  public class MbeansDescriptorsDigesterSource extends Registry.DescriptorSource
  {
      private static Log log =
              LogFactory.getLog(MbeansDescriptorsDigesterSource.class);
  
      public void loadDescriptors( Registry registry, String location,
                                   String type, InputStream stream)
              throws Exception
      {
          long t1=System.currentTimeMillis();
  
          Digester digester = new Digester();
          digester.setNamespaceAware(false);
          digester.setValidating(false);
          URL url = registry.getClass().getResource
                  ("/org/apache/commons/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(registry);
  
          // Configure the parsing rules
          digester.addObjectCreate
                  ("mbeans-descriptors/mbean",
                          "org.apache.commons.modeler.ManagedBean");
          digester.addSetProperties
                  ("mbeans-descriptors/mbean");
          digester.addSetNext
                  ("mbeans-descriptors/mbean",
                          "addManagedBean",
                          "org.apache.commons.modeler.ManagedBean");
  
          digester.addObjectCreate
                  ("mbeans-descriptors/mbean/attribute",
                          "org.apache.commons.modeler.AttributeInfo");
          digester.addSetProperties
                  ("mbeans-descriptors/mbean/attribute");
          digester.addSetNext
                  ("mbeans-descriptors/mbean/attribute",
                          "addAttribute",
                          "org.apache.commons.modeler.AttributeInfo");
  
          digester.addObjectCreate
                  ("mbeans-descriptors/mbean/constructor",
                          "org.apache.commons.modeler.ConstructorInfo");
          digester.addSetProperties
                  ("mbeans-descriptors/mbean/constructor");
          digester.addSetNext
                  ("mbeans-descriptors/mbean/constructor",
                          "addConstructor",
                          "org.apache.commons.modeler.ConstructorInfo");
  
          digester.addObjectCreate
                  ("mbeans-descriptors/mbean/constructor/parameter",
                          "org.apache.commons.modeler.ParameterInfo");
          digester.addSetProperties
                  ("mbeans-descriptors/mbean/constructor/parameter");
          digester.addSetNext
                  ("mbeans-descriptors/mbean/constructor/parameter",
                          "addParameter",
                          "org.apache.commons.modeler.ParameterInfo");
  
          digester.addObjectCreate
                  ("mbeans-descriptors/mbean/notification",
                          "org.apache.commons.modeler.NotificationInfo");
          digester.addSetProperties
                  ("mbeans-descriptors/mbean/notification");
          digester.addSetNext
                  ("mbeans-descriptors/mbean/notification",
                          "addNotification",
                          "org.apache.commons.modeler.NotificationInfo");
          digester.addCallMethod
                  ("mbeans-descriptors/mbean/notification/notification-type",
                          "addNotifType", 0);
  
          digester.addObjectCreate
                  ("mbeans-descriptors/mbean/operation",
                          "org.apache.commons.modeler.OperationInfo");
          digester.addSetProperties
                  ("mbeans-descriptors/mbean/operation");
          digester.addSetNext
                  ("mbeans-descriptors/mbean/operation",
                          "addOperation",
                          "org.apache.commons.modeler.OperationInfo");
  
          digester.addObjectCreate
                  ("mbeans-descriptors/mbean/operation/parameter",
                          "org.apache.commons.modeler.ParameterInfo");
          digester.addSetProperties
                  ("mbeans-descriptors/mbean/operation/parameter");
          digester.addSetNext
                  ("mbeans-descriptors/mbean/operation/parameter",
                          "addParameter",
                          "org.apache.commons.modeler.ParameterInfo");
  
          // Process the input file to configure our registry
          try {
              digester.parse(stream);
          } catch (Exception e) {
              log.error("Error digesting Registry data", e);
              throw e;
          }
          long t2=System.currentTimeMillis();
  //        if( t2-t1 > 500 )
          log.info("Loaded registry information (digester) " + ( t2 - t1 ) + " ms");
      }
  }
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>