Author: markt
Date: Wed May 16 11:11:56 2018
New Revision: 1831701

URL: http://svn.apache.org/viewvc?rev=1831701&view=rev
Log:
Clean-up
Mostly auto-format from Eclipse
A few additional line length fixes made manually

Modified:
    tomcat/trunk/java/org/apache/tomcat/util/modeler/Registry.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/modeler/Registry.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/modeler/Registry.java?rev=1831701&r1=1831700&r2=1831701&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/modeler/Registry.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/modeler/Registry.java Wed May 16 
11:11:56 2018
@@ -14,11 +14,8 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-
-
 package org.apache.tomcat.util.modeler;
 
-
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.InputStream;
@@ -49,15 +46,15 @@ import org.apache.tomcat.util.modeler.mo
    - double check the interfaces
    - start removing the use of the experimental methods in tomcat, then remove
      the methods ( before 1.1 final )
-   - is the security enough to prevent Registry being used to avoid the 
permission
-    checks in the mbean server ?
+   - is the security enough to prevent Registry being used to avoid the
+     permission checks in the mbean server ?
 */
 
 /**
  * Registry for modeler MBeans.
  *
- * This is the main entry point into modeler. It provides methods to create
- * and manipulate model mbeans and simplify their use.
+ * This is the main entry point into modeler. It provides methods to create and
+ * manipulate model mbeans and simplify their use.
  *
  * This class is itself an mbean.
  *
@@ -67,7 +64,8 @@ import org.apache.tomcat.util.modeler.mo
  * @author Craig R. McClanahan
  * @author Costin Manolache
  */
-public class Registry implements RegistryMBean, MBeanRegistration  {
+public class Registry implements RegistryMBean, MBeanRegistration {
+
     /**
      * The Log instance to which we will write our log messages.
      */
@@ -75,13 +73,14 @@ public class Registry implements Registr
 
     // Support for the factory methods
 
-    /** Will be used to isolate different apps and enhance security.
+    /**
+     * Will be used to isolate different apps and enhance security.
      */
-    private static final HashMap<Object,Registry> perLoaderRegistries = null;
+    private static final HashMap<Object, Registry> perLoaderRegistries = null;
 
     /**
-     * The registry instance created by our factory method the first time
-     * it is called.
+     * The registry instance created by our factory method the first time it is
+     * called.
      */
     private static Registry registry = null;
 
@@ -95,68 +94,66 @@ public class Registry implements Registr
     private final Object serverLock = new Object();
 
     /**
-     * The set of ManagedBean instances for the beans this registry
-     * knows about, keyed by name.
+     * The set of ManagedBean instances for the beans this registry knows 
about,
+     * keyed by name.
      */
-    private Map<String,ManagedBean> descriptors = new HashMap<>();
+    private Map<String, ManagedBean> descriptors = new HashMap<>();
 
-    /** List of managed beans, keyed by class name
+    /**
+     * List of managed beans, keyed by class name
      */
-    private Map<String,ManagedBean> descriptorsByClass = new HashMap<>();
+    private Map<String, ManagedBean> descriptorsByClass = new HashMap<>();
 
     // map to avoid duplicated searching or loading descriptors
-    private Map<String,URL> searchedPaths = new HashMap<>();
+    private Map<String, URL> searchedPaths = new HashMap<>();
 
     private Object guard;
 
     // Id - small ints to use array access. No reset on stop()
     // Used for notifications
-    private final Hashtable<String,Hashtable<String,Integer>> idDomains =
-        new Hashtable<>();
-    private final Hashtable<String,int[]> ids = new Hashtable<>();
+    private final Hashtable<String, Hashtable<String, Integer>> idDomains = 
new Hashtable<>();
+    private final Hashtable<String, int[]> ids = new Hashtable<>();
 
 
     // ----------------------------------------------------------- Constructors
 
-    /**
-     */
-     public Registry() {
+    public Registry() {
         super();
     }
 
-    // -------------------- Static methods  --------------------
+
+    // -------------------- Static methods --------------------
     // Factories
 
     /**
      * Factory method to create (if necessary) and return our
      * <code>Registry</code> instance.
      *
-     * The current version uses a static - future versions could use
-     * the thread class loader.
+     * The current version uses a static - future versions could use the thread
+     * class loader.
      *
      * @param key Support for application isolation. If null, the context class
-     * loader will be used ( if setUseContextClassLoader is called ) or the
-     * default registry is returned.
+     *            loader will be used ( if setUseContextClassLoader is called )
+     *            or the default registry is returned.
      * @param guard Prevent access to the registry by untrusted components
      * @return the registry
      * @since 1.1
      */
     public static synchronized Registry getRegistry(Object key, Object guard) {
         Registry localRegistry;
-        if( perLoaderRegistries!=null ) {
-            if( key==null )
-                key=Thread.currentThread().getContextClassLoader();
-            if( key != null ) {
+        if (perLoaderRegistries != null) {
+            if (key == null)
+                key = Thread.currentThread().getContextClassLoader();
+            if (key != null) {
                 localRegistry = perLoaderRegistries.get(key);
-                if( localRegistry == null ) {
-                    localRegistry=new Registry();
-//                    localRegistry.key=key;
-                    localRegistry.guard=guard;
-                    perLoaderRegistries.put( key, localRegistry );
+                if (localRegistry == null) {
+                    localRegistry = new Registry();
+                    // localRegistry.key=key;
+                    localRegistry.guard = guard;
+                    perLoaderRegistries.put(key, localRegistry);
                     return localRegistry;
                 }
-                if( localRegistry.guard != null &&
-                        localRegistry.guard != guard ) {
+                if (localRegistry.guard != null && localRegistry.guard != 
guard) {
                     return null; // XXX Should I throw a permission ex ?
                 }
                 return localRegistry;
@@ -167,17 +164,18 @@ public class Registry implements Registr
         if (registry == null) {
             registry = new Registry();
         }
-        if( registry.guard != null &&
-                registry.guard != guard ) {
+        if (registry.guard != null && registry.guard != guard) {
             return null;
         }
         return registry;
     }
 
-    // -------------------- Generic methods  --------------------
 
-    /** Lifecycle method - clean up the registry metadata.
-     *  Called from resetMetadata().
+    // -------------------- Generic methods --------------------
+
+    /**
+     * Lifecycle method - clean up the registry metadata. Called from
+     * resetMetadata().
      *
      * @since 1.1
      */
@@ -185,9 +183,10 @@ public class Registry implements Registr
     public void stop() {
         descriptorsByClass = new HashMap<>();
         descriptors = new HashMap<>();
-        searchedPaths=new HashMap<>();
+        searchedPaths = new HashMap<>();
     }
 
+
     /**
      * Register a bean by creating a modeler mbean and adding it to the
      * MBeanServer.
@@ -196,8 +195,9 @@ public class Registry implements Registr
      * "mbeans-descriptors.ser" or "mbeans-descriptors.xml" in the same package
      * or parent.
      *
-     * If the bean is an instance of DynamicMBean. it's metadata will be 
converted
-     * to a model mbean and we'll wrap it - so modeler services will be 
supported
+     * If the bean is an instance of DynamicMBean. it's metadata will be
+     * converted to a model mbean and we'll wrap it - so modeler services will
+     * be supported
      *
      * If the metadata is still not found, introspection will be used to 
extract
      * it automatically.
@@ -205,40 +205,39 @@ public class Registry implements Registr
      * If an mbean is already registered under this name, it'll be first
      * unregistered.
      *
-     * If the component implements MBeanRegistration, the methods will be 
called.
-     * If the method has a method "setRegistry" that takes a RegistryMBean as
-     * parameter, it'll be called with the current registry.
+     * If the component implements MBeanRegistration, the methods will be
+     * called. If the method has a method "setRegistry" that takes a
+     * RegistryMBean as parameter, it'll be called with the current registry.
      *
      *
      * @param bean Object to be registered
      * @param oname Name used for registration
      * @param type The type of the mbean, as declared in mbeans-descriptors. If
-     * null, the name of the class will be used. This can be used as a hint or
-     * by subclasses.
+     *            null, the name of the class will be used. This can be used as
+     *            a hint or by subclasses.
      * @throws Exception if a registration error occurred
      * @since 1.1
      */
     @Override
-    public void registerComponent(Object bean, String oname, String type)
-           throws Exception
-    {
+    public void registerComponent(Object bean, String oname, String type) 
throws Exception {
         registerComponent(bean, new ObjectName(oname), type);
     }
 
+
     /**
-     * Unregister a component. We'll first check if it is registered,
-     * and mask all errors. This is mostly a helper.
+     * Unregister a component. We'll first check if it is registered, and mask
+     * all errors. This is mostly a helper.
      *
      * @param oname Name used for unregistration
      *
      * @since 1.1
      */
     @Override
-    public void unregisterComponent( String oname ) {
+    public void unregisterComponent(String oname) {
         try {
             unregisterComponent(new ObjectName(oname));
         } catch (MalformedObjectNameException e) {
-            log.info("Error creating object name " + e );
+            log.info("Error creating object name " + e);
         }
     }
 
@@ -248,40 +247,42 @@ public class Registry implements Registr
      * lifecycle operations.
      *
      * @param mbeans list of ObjectName on which we'll invoke the operations
-     * @param operation  Name of the operation ( init, start, stop, etc)
-     * @param failFirst  If false, exceptions will be ignored
+     * @param operation Name of the operation ( init, start, stop, etc)
+     * @param failFirst If false, exceptions will be ignored
      * @throws Exception Error invoking operation
      * @since 1.1
      */
     @Override
-    public void invoke(List<ObjectName> mbeans, String operation,
-            boolean failFirst ) throws Exception {
-        if( mbeans==null ) {
+    public void invoke(List<ObjectName> mbeans, String operation, boolean 
failFirst)
+            throws Exception {
+
+        if (mbeans == null) {
             return;
         }
         for (ObjectName current : mbeans) {
             try {
-                if(current == null) {
+                if (current == null) {
                     continue;
                 }
-                if(getMethodInfo(current, operation) == null) {
+                if (getMethodInfo(current, operation) == null) {
                     continue;
                 }
-                getMBeanServer().invoke(current, operation,
-                        new Object[] {}, new String[] {});
+                getMBeanServer().invoke(current, operation, new Object[] {}, 
new String[] {});
 
-            } catch( Exception t ) {
-                if( failFirst ) throw t;
+            } catch (Exception t) {
+                if (failFirst)
+                    throw t;
                 log.info("Error initializing " + current + " " + t.toString());
             }
         }
     }
 
+
     // -------------------- ID registry --------------------
 
     /**
-     * Return an int ID for faster access. Will be used for notifications
-     * and for other operations we want to optimize.
+     * Return an int ID for faster access. Will be used for notifications and
+     * for other operations we want to optimize.
      *
      * @param domain Namespace
      * @param name Type of the notification
@@ -289,40 +290,41 @@ public class Registry implements Registr
      * @since 1.1
      */
     @Override
-    public synchronized int getId( String domain, String name) {
-        if( domain==null) {
-            domain="";
+    public synchronized int getId(String domain, String name) {
+        if (domain == null) {
+            domain = "";
         }
-        Hashtable<String,Integer> domainTable = idDomains.get(domain);
-        if( domainTable == null ) {
+        Hashtable<String, Integer> domainTable = idDomains.get(domain);
+        if (domainTable == null) {
             domainTable = new Hashtable<>();
-            idDomains.put( domain, domainTable);
+            idDomains.put(domain, domainTable);
         }
-        if( name==null ) {
-            name="";
+        if (name == null) {
+            name = "";
         }
         Integer i = domainTable.get(name);
 
-        if( i!= null ) {
+        if (i != null) {
             return i.intValue();
         }
 
         int id[] = ids.get(domain);
-        if( id == null ) {
-            id=new int[1];
-            ids.put( domain, id);
+        if (id == null) {
+            id = new int[1];
+            ids.put(domain, id);
         }
-        int code=id[0]++;
-        domainTable.put( name, Integer.valueOf( code ));
+        int code = id[0]++;
+        domainTable.put(name, Integer.valueOf(code));
         return code;
     }
 
-    // -------------------- Metadata   --------------------
+
+    // -------------------- Metadata --------------------
     // methods from 1.0
 
     /**
-     * Add a new bean metadata to the set of beans known to this registry.
-     * This is used by internal components.
+     * Add a new bean metadata to the set of beans known to this registry. This
+     * is used by internal components.
      *
      * @param bean The managed bean to be added
      * @since 1.0
@@ -330,30 +332,31 @@ public class Registry implements Registr
     public void addManagedBean(ManagedBean bean) {
         // XXX Use group + name
         descriptors.put(bean.getName(), bean);
-        if( bean.getType() != null ) {
-            descriptorsByClass.put( bean.getType(), bean );
+        if (bean.getType() != null) {
+            descriptorsByClass.put(bean.getType(), bean);
         }
     }
 
 
     /**
-     * Find and return the managed bean definition for the specified
-     * bean name, if any; otherwise return <code>null</code>.
+     * Find and return the managed bean definition for the specified bean name,
+     * if any; otherwise return <code>null</code>.
      *
      * @param name Name of the managed bean to be returned. Since 1.1, both
-     *   short names or the full name of the class can be used.
+     *            short names or the full name of the class can be used.
      * @return the managed bean
      * @since 1.0
      */
     public ManagedBean findManagedBean(String name) {
         // XXX Group ?? Use Group + Type
         ManagedBean mb = descriptors.get(name);
-        if( mb==null )
+        if (mb == null)
             mb = descriptorsByClass.get(name);
         return mb;
     }
 
-    // -------------------- Helpers  --------------------
+
+    // -------------------- Helpers --------------------
 
     /**
      * Get the type of an attribute of the object, from the metadata.
@@ -363,27 +366,27 @@ public class Registry implements Registr
      * @return null if metadata about the attribute is not found
      * @since 1.1
      */
-    public String getType( ObjectName oname, String attName )
-    {
-        String type=null;
-        MBeanInfo info=null;
+    public String getType(ObjectName oname, String attName) {
+        String type = null;
+        MBeanInfo info = null;
         try {
             info = getMBeanServer().getMBeanInfo(oname);
         } catch (Exception e) {
-            log.info( "Can't find metadata for object" + oname );
+            log.info("Can't find metadata for object" + oname);
             return null;
         }
 
-        MBeanAttributeInfo attInfo[]=info.getAttributes();
-        for( int i=0; i<attInfo.length; i++ ) {
-            if( attName.equals(attInfo[i].getName())) {
-                type=attInfo[i].getType();
+        MBeanAttributeInfo attInfo[] = info.getAttributes();
+        for (int i = 0; i < attInfo.length; i++) {
+            if (attName.equals(attInfo[i].getName())) {
+                type = attInfo[i].getType();
                 return type;
             }
         }
         return null;
     }
 
+
     /**
      * Find the operation info for a method
      *
@@ -391,31 +394,31 @@ public class Registry implements Registr
      * @param opName The operation name
      * @return the operation info for the specified operation
      */
-    public MBeanOperationInfo getMethodInfo( ObjectName oname, String opName )
-    {
-        MBeanInfo info=null;
+    public MBeanOperationInfo getMethodInfo(ObjectName oname, String opName) {
+        MBeanInfo info = null;
         try {
             info = getMBeanServer().getMBeanInfo(oname);
         } catch (Exception e) {
-            log.info( "Can't find metadata " + oname );
+            log.info("Can't find metadata " + oname);
             return null;
         }
-        MBeanOperationInfo attInfo[]=info.getOperations();
-        for( int i=0; i<attInfo.length; i++ ) {
-            if( opName.equals(attInfo[i].getName())) {
+        MBeanOperationInfo attInfo[] = info.getOperations();
+        for (int i = 0; i < attInfo.length; i++) {
+            if (opName.equals(attInfo[i].getName())) {
                 return attInfo[i];
             }
         }
         return null;
     }
 
+
     /**
-     * Unregister a component. This is just a helper that
-     * avoids exceptions by checking if the mbean is already registered
+     * Unregister a component. This is just a helper that avoids exceptions by
+     * checking if the mbean is already registered
      *
      * @param oname The bean name
      */
-    public void unregisterComponent( ObjectName oname ) {
+    public void unregisterComponent(ObjectName oname) {
         try {
             if (oname != null && getMBeanServer().isRegistered(oname)) {
                 getMBeanServer().unregisterMBean(oname);
@@ -425,9 +428,11 @@ public class Registry implements Registr
         }
     }
 
+
     /**
      * Factory method to create (if necessary) and return our
      * <code>MBeanServer</code> instance.
+     *
      * @return the MBean server
      */
     public MBeanServer getMBeanServer() {
@@ -452,53 +457,56 @@ public class Registry implements Registr
         return server;
     }
 
+
     /**
      * Find or load metadata.
+     *
      * @param bean The bean
      * @param beanClass The bean class
      * @param type The registry type
      * @return the managed bean
      * @throws Exception An error occurred
      */
-    public ManagedBean findManagedBean(Object bean, Class<?> beanClass,
-            String type) throws Exception {
-        if( bean!=null && beanClass==null ) {
-            beanClass=bean.getClass();
+    public ManagedBean findManagedBean(Object bean, Class<?> beanClass, String 
type)
+            throws Exception {
+
+        if (bean != null && beanClass == null) {
+            beanClass = bean.getClass();
         }
 
-        if( type==null ) {
-            type=beanClass.getName();
+        if (type == null) {
+            type = beanClass.getName();
         }
 
         // first look for existing descriptor
         ManagedBean managed = findManagedBean(type);
 
         // Search for a descriptor in the same package
-        if( managed==null ) {
+        if (managed == null) {
             // check package and parent packages
-            if( log.isDebugEnabled() ) {
-                log.debug( "Looking for descriptor ");
+            if (log.isDebugEnabled()) {
+                log.debug("Looking for descriptor ");
             }
-            findDescriptor( beanClass, type );
+            findDescriptor(beanClass, type);
 
-            managed=findManagedBean(type);
+            managed = findManagedBean(type);
         }
 
         // Still not found - use introspection
-        if( managed==null ) {
-            if( log.isDebugEnabled() ) {
-                log.debug( "Introspecting ");
+        if (managed == null) {
+            if (log.isDebugEnabled()) {
+                log.debug("Introspecting ");
             }
 
             // introspection
             load("MbeansDescriptorsIntrospectionSource", beanClass, type);
 
-            managed=findManagedBean(type);
-            if( managed==null ) {
-                log.warn( "No metadata found for " + type );
+            managed = findManagedBean(type);
+            if (managed == null) {
+                log.warn("No metadata found for " + type);
                 return null;
             }
-            managed.setName( type );
+            managed.setName(type);
             addManagedBean(managed);
         }
         return managed;
@@ -507,40 +515,36 @@ public class Registry implements Registr
 
     /**
      * EXPERIMENTAL Convert a string to object, based on type. Used by several
-     * components. We could provide some pluggability. It is here to keep
-     * things consistent and avoid duplication in other tasks
+     * components. We could provide some pluggability. It is here to keep 
things
+     * consistent and avoid duplication in other tasks
      *
      * @param type Fully qualified class name of the resulting value
      * @param value String value to be converted
      * @return Converted value
      */
-    public Object convertValue(String type, String value)
-    {
-        Object objValue=value;
+    public Object convertValue(String type, String value) {
+        Object objValue = value;
 
-        if( type==null || "java.lang.String".equals( type )) {
+        if (type == null || "java.lang.String".equals(type)) {
             // string is default
-            objValue=value;
-        } else if( "javax.management.ObjectName".equals( type ) ||
-                "ObjectName".equals( type )) {
+            objValue = value;
+        } else if ("javax.management.ObjectName".equals(type) || 
"ObjectName".equals(type)) {
             try {
-                objValue=new ObjectName( value );
+                objValue = new ObjectName(value);
             } catch (MalformedObjectNameException e) {
                 return null;
             }
-        } else if( "java.lang.Integer".equals( type ) ||
-                "int".equals( type )) {
-            objValue=Integer.valueOf( value );
-        } else if( "java.lang.Long".equals( type ) ||
-                "long".equals( type )) {
-            objValue=Long.valueOf( value );
-        } else if( "java.lang.Boolean".equals( type ) ||
-                "boolean".equals( type )) {
-            objValue=Boolean.valueOf( value );
+        } else if ("java.lang.Integer".equals(type) || "int".equals(type)) {
+            objValue = Integer.valueOf(value);
+        } else if ("java.lang.Long".equals(type) || "long".equals(type)) {
+            objValue = Long.valueOf(value);
+        } else if ("java.lang.Boolean".equals(type) || "boolean".equals(type)) 
{
+            objValue = Boolean.valueOf(value);
         }
         return objValue;
     }
 
+
     /**
      * Experimental. Load descriptors.
      *
@@ -550,48 +554,46 @@ public class Registry implements Registr
      * @return List of descriptors
      * @throws Exception Error loading descriptors
      */
-    public List<ObjectName> load( String sourceType, Object source,
-            String param) throws Exception {
-        if( log.isTraceEnabled()) {
-            log.trace("load " + source );
-        }
-        String location=null;
-        String type=null;
-        Object inputsource=null;
-
-        if( source instanceof URL ) {
-            URL url=(URL)source;
-            location=url.toString();
-            type=param;
-            inputsource=url.openStream();
+    public List<ObjectName> load(String sourceType, Object source, String 
param) throws Exception {
+        if (log.isTraceEnabled()) {
+            log.trace("load " + source);
+        }
+        String location = null;
+        String type = null;
+        Object inputsource = null;
+
+        if (source instanceof URL) {
+            URL url = (URL) source;
+            location = url.toString();
+            type = param;
+            inputsource = url.openStream();
             if (sourceType == null && location.endsWith(".xml")) {
                 sourceType = "MbeansDescriptorsDigesterSource";
             }
-        } else if( source instanceof File ) {
-            location=((File)source).getAbsolutePath();
-            inputsource=new FileInputStream((File)source);
-            type=param;
+        } else if (source instanceof File) {
+            location = ((File) source).getAbsolutePath();
+            inputsource = new FileInputStream((File) source);
+            type = param;
             if (sourceType == null && location.endsWith(".xml")) {
                 sourceType = "MbeansDescriptorsDigesterSource";
             }
-        } else if( source instanceof InputStream ) {
-            type=param;
-            inputsource=source;
-        } else if( source instanceof Class<?> ) {
-            location=((Class<?>)source).getName();
-            type=param;
-            inputsource=source;
-            if( sourceType== null ) {
-                sourceType="MbeansDescriptorsIntrospectionSource";
+        } else if (source instanceof InputStream) {
+            type = param;
+            inputsource = source;
+        } else if (source instanceof Class<?>) {
+            location = ((Class<?>) source).getName();
+            type = param;
+            inputsource = source;
+            if (sourceType == null) {
+                sourceType = "MbeansDescriptorsIntrospectionSource";
             }
         }
 
-        if( sourceType==null ) {
-            sourceType="MbeansDescriptorsDigesterSource";
-        }
-        ModelerSource ds=getModelerSource(sourceType);
-        List<ObjectName> mbeans =
-            ds.loadDescriptors(this, type, inputsource);
+        if (sourceType == null) {
+            sourceType = "MbeansDescriptorsDigesterSource";
+        }
+        ModelerSource ds = getModelerSource(sourceType);
+        List<ObjectName> mbeans = ds.loadDescriptors(this, type, inputsource);
 
         return mbeans;
     }
@@ -605,21 +607,19 @@ public class Registry implements Registr
      * @param type The registry type
      * @throws Exception Error registering component
      */
-    public void registerComponent(Object bean, ObjectName oname, String type)
-           throws Exception
-    {
-        if( log.isDebugEnabled() ) {
-            log.debug( "Managed= "+ oname);
+    public void registerComponent(Object bean, ObjectName oname, String type) 
throws Exception {
+        if (log.isDebugEnabled()) {
+            log.debug("Managed= " + oname);
         }
 
-        if( bean ==null ) {
-            log.error("Null component " + oname );
+        if (bean == null) {
+            log.error("Null component " + oname);
             return;
         }
 
         try {
-            if( type==null ) {
-                type=bean.getClass().getName();
+            if (type == null) {
+                type = bean.getClass().getName();
             }
 
             ManagedBean managed = findManagedBean(null, bean.getClass(), type);
@@ -627,101 +627,104 @@ public class Registry implements Registr
             // The real mbean is created and registered
             DynamicMBean mbean = managed.createMBean(bean);
 
-            if(  getMBeanServer().isRegistered( oname )) {
-                if( log.isDebugEnabled()) {
-                    log.debug("Unregistering existing component " + oname );
+            if (getMBeanServer().isRegistered(oname)) {
+                if (log.isDebugEnabled()) {
+                    log.debug("Unregistering existing component " + oname);
                 }
-                getMBeanServer().unregisterMBean( oname );
+                getMBeanServer().unregisterMBean(oname);
             }
 
-            getMBeanServer().registerMBean( mbean, oname);
-        } catch( Exception ex) {
-            log.error("Error registering " + oname, ex );
+            getMBeanServer().registerMBean(mbean, oname);
+        } catch (Exception ex) {
+            log.error("Error registering " + oname, ex);
             throw ex;
         }
     }
 
+
     /**
-     * Lookup the component descriptor in the package and
-     * in the parent packages.
+     * Lookup the component descriptor in the package and in the parent
+     * packages.
      *
      * @param packageName The package name
      * @param classLoader The class loader
      */
-    public void loadDescriptors( String packageName, ClassLoader classLoader  
) {
-        String res=packageName.replace( '.', '/');
+    public void loadDescriptors(String packageName, ClassLoader classLoader) {
+        String res = packageName.replace('.', '/');
 
-        if( log.isTraceEnabled() ) {
-            log.trace("Finding descriptor " + res );
+        if (log.isTraceEnabled()) {
+            log.trace("Finding descriptor " + res);
         }
 
-        if( searchedPaths.get( packageName ) != null ) {
+        if (searchedPaths.get(packageName) != null) {
             return;
         }
 
         String descriptors = res + "/mbeans-descriptors.xml";
-        URL dURL = classLoader.getResource( descriptors );
+        URL dURL = classLoader.getResource(descriptors);
 
         if (dURL == null) {
             return;
         }
 
-        log.debug( "Found " + dURL);
-        searchedPaths.put( packageName,  dURL );
+        log.debug("Found " + dURL);
+        searchedPaths.put(packageName, dURL);
         try {
             load("MbeansDescriptorsDigesterSource", dURL, null);
-        } catch(Exception ex ) {
+        } catch (Exception ex) {
             log.error("Error loading " + dURL);
         }
     }
 
+
     /**
-     * Lookup the component descriptor in the package and
-     * in the parent packages.
+     * Lookup the component descriptor in the package and in the parent
+     * packages.
      */
     private void findDescriptor(Class<?> beanClass, String type) {
-        if( type==null ) {
-            type=beanClass.getName();
+        if (type == null) {
+            type = beanClass.getName();
         }
-        ClassLoader classLoader=null;
-        if( beanClass!=null ) {
-            classLoader=beanClass.getClassLoader();
-        }
-        if( classLoader==null ) {
-            classLoader=Thread.currentThread().getContextClassLoader();
-        }
-        if( classLoader==null ) {
-            classLoader=this.getClass().getClassLoader();
-        }
-
-        String className=type;
-        String pkg=className;
-        while( pkg.indexOf( ".") > 0 ) {
-            int lastComp=pkg.lastIndexOf( ".");
-            if( lastComp <= 0 ) return;
-            pkg=pkg.substring(0, lastComp);
-            if( searchedPaths.get( pkg ) != null ) {
+        ClassLoader classLoader = null;
+        if (beanClass != null) {
+            classLoader = beanClass.getClassLoader();
+        }
+        if (classLoader == null) {
+            classLoader = Thread.currentThread().getContextClassLoader();
+        }
+        if (classLoader == null) {
+            classLoader = this.getClass().getClassLoader();
+        }
+
+        String className = type;
+        String pkg = className;
+        while (pkg.indexOf(".") > 0) {
+            int lastComp = pkg.lastIndexOf(".");
+            if (lastComp <= 0)
+                return;
+            pkg = pkg.substring(0, lastComp);
+            if (searchedPaths.get(pkg) != null) {
                 return;
             }
             loadDescriptors(pkg, classLoader);
         }
     }
 
-    private ModelerSource getModelerSource( String type )
-            throws Exception
-    {
-        if( type==null ) type="MbeansDescriptorsDigesterSource";
-        if(!type.contains(".")) {
-            type="org.apache.tomcat.util.modeler.modules." + type;
+
+    private ModelerSource getModelerSource(String type) throws Exception {
+        if (type == null)
+            type = "MbeansDescriptorsDigesterSource";
+        if (!type.contains(".")) {
+            type = "org.apache.tomcat.util.modeler.modules." + type;
         }
 
         Class<?> c = Class.forName(type);
-        ModelerSource ds=(ModelerSource)c.getConstructor().newInstance();
+        ModelerSource ds = (ModelerSource) c.getConstructor().newInstance();
         return ds;
     }
 
 
-    // -------------------- Registration  --------------------
+    // -------------------- Registration --------------------
 
     @Override
     public ObjectName preRegister(MBeanServer server, ObjectName name) throws 
Exception {
@@ -731,14 +734,17 @@ public class Registry implements Registr
         return name;
     }
 
+
     @Override
     public void postRegister(Boolean registrationDone) {
     }
 
+
     @Override
     public void preDeregister() throws Exception {
     }
 
+
     @Override
     public void postDeregister() {
     }



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

Reply via email to