This is an automated email from the ASF dual-hosted git repository.

markt pushed a commit to branch 10.1.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/10.1.x by this push:
     new 19cf662696 Code clean-up - formatting. No functional change.
19cf662696 is described below

commit 19cf66269621c96a9899711a9e3c7c658eaac3ad
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Thu May 22 17:25:39 2025 +0100

    Code clean-up - formatting. No functional change.
---
 .../apache/tomcat/util/modeler/AttributeInfo.java  |  33 +-
 .../tomcat/util/modeler/BaseAttributeFilter.java   |  45 +-
 .../apache/tomcat/util/modeler/BaseModelMBean.java | 457 +++++++++------------
 .../util/modeler/BaseNotificationBroadcaster.java  |  54 +--
 .../apache/tomcat/util/modeler/FeatureInfo.java    |  10 +-
 .../apache/tomcat/util/modeler/ManagedBean.java    | 111 +++--
 .../tomcat/util/modeler/NoDescriptorRegistry.java  |  84 ++--
 .../tomcat/util/modeler/NotificationInfo.java      |  23 +-
 .../apache/tomcat/util/modeler/OperationInfo.java  |  33 +-
 .../apache/tomcat/util/modeler/ParameterInfo.java  |  15 +-
 java/org/apache/tomcat/util/modeler/Registry.java  | 168 ++++----
 .../apache/tomcat/util/modeler/RegistryMBean.java  |  79 ++--
 .../modules/MbeansDescriptorsDigesterSource.java   | 137 +++---
 .../MbeansDescriptorsIntrospectionSource.java      | 122 ++----
 .../tomcat/util/modeler/modules/ModelerSource.java |   9 +-
 15 files changed, 591 insertions(+), 789 deletions(-)

diff --git a/java/org/apache/tomcat/util/modeler/AttributeInfo.java 
b/java/org/apache/tomcat/util/modeler/AttributeInfo.java
index ffb13fe614..c44882fdf5 100644
--- a/java/org/apache/tomcat/util/modeler/AttributeInfo.java
+++ b/java/org/apache/tomcat/util/modeler/AttributeInfo.java
@@ -19,8 +19,9 @@ package org.apache.tomcat.util.modeler;
 import javax.management.MBeanAttributeInfo;
 
 /**
- * <p>Internal configuration information for an <code>Attribute</code>
- * descriptor.</p>
+ * <p>
+ * Internal configuration information for an <code>Attribute</code> descriptor.
+ * </p>
  *
  * @author Craig R. McClanahan
  */
@@ -54,7 +55,7 @@ public class AttributeInfo extends FeatureInfo {
      * @return the name of the property getter method, if non-standard.
      */
     public String getGetMethod() {
-        if(getMethod == null) {
+        if (getMethod == null) {
             getMethod = getMethodName(getName(), true, isIs());
         }
         return this.getMethod;
@@ -66,8 +67,8 @@ public class AttributeInfo extends FeatureInfo {
 
     /**
      * Is this a boolean attribute with an "is" getter?
-     * @return <code>true</code> if this is a boolean attribute
-     *  with an "is" getter
+     *
+     * @return <code>true</code> if this is a boolean attribute with an "is" 
getter
      */
     public boolean isIs() {
         return this.is;
@@ -80,6 +81,7 @@ public class AttributeInfo extends FeatureInfo {
 
     /**
      * Is this attribute readable by management applications?
+     *
      * @return <code>true</code> if readable
      */
     public boolean isReadable() {
@@ -95,7 +97,7 @@ public class AttributeInfo extends FeatureInfo {
      * @return the name of the property setter method, if non-standard.
      */
     public String getSetMethod() {
-        if( setMethod == null ) {
+        if (setMethod == null) {
             setMethod = getMethodName(getName(), false, false);
         }
         return this.setMethod;
@@ -107,6 +109,7 @@ public class AttributeInfo extends FeatureInfo {
 
     /**
      * Is this attribute writable by management applications?
+     *
      * @return <code>true</code> if writable
      */
     public boolean isWriteable() {
@@ -121,29 +124,29 @@ public class AttributeInfo extends FeatureInfo {
 
 
     /**
-     * Create and return a <code>ModelMBeanAttributeInfo</code> object that
-     * corresponds to the attribute described by this instance.
+     * Create and return a <code>ModelMBeanAttributeInfo</code> object that 
corresponds to the attribute described by
+     * this instance.
+     *
      * @return the attribute info
      */
     MBeanAttributeInfo createAttributeInfo() {
         // Return our cached information (if any)
         if (info == null) {
-            info = new MBeanAttributeInfo(getName(), getType(), 
getDescription(),
-                            isReadable(), isWriteable(), false);
+            info = new MBeanAttributeInfo(getName(), getType(), 
getDescription(), isReadable(), isWriteable(), false);
         }
-        return (MBeanAttributeInfo)info;
+        return (MBeanAttributeInfo) info;
     }
 
     // -------------------------------------------------------- Private Methods
 
 
     /**
-     * Create and return the name of a default property getter or setter
-     * method, according to the specified values.
+     * Create and return the name of a default property getter or setter 
method, according to the specified values.
      *
-     * @param name Name of the property itself
+     * @param name   Name of the property itself
      * @param getter Do we want a get method (versus a set method)?
-     * @param is If returning a getter, do we want the "is" form?
+     * @param is     If returning a getter, do we want the "is" form?
+     *
      * @return the method name
      */
     private String getMethodName(String name, boolean getter, boolean is) {
diff --git a/java/org/apache/tomcat/util/modeler/BaseAttributeFilter.java 
b/java/org/apache/tomcat/util/modeler/BaseAttributeFilter.java
index 36bf97d05b..201f8a1e0a 100644
--- a/java/org/apache/tomcat/util/modeler/BaseAttributeFilter.java
+++ b/java/org/apache/tomcat/util/modeler/BaseAttributeFilter.java
@@ -26,10 +26,11 @@ import javax.management.NotificationFilter;
 
 
 /**
- * <p>Implementation of <code>NotificationFilter</code> for attribute change
- * notifications.  This class is used by <code>BaseModelMBean</code> to
- * construct attribute change notification event filters when a filter is not
- * supplied by the application.</p>
+ * <p>
+ * Implementation of <code>NotificationFilter</code> for attribute change 
notifications. This class is used by
+ * <code>BaseModelMBean</code> to construct attribute change notification 
event filters when a filter is not supplied by
+ * the application.
+ * </p>
  *
  * @author Craig R. McClanahan
  */
@@ -40,11 +41,10 @@ public class BaseAttributeFilter implements 
NotificationFilter {
     // ----------------------------------------------------------- Constructors
 
     /**
-     * Construct a new filter that accepts only the specified attribute
-     * name.
+     * Construct a new filter that accepts only the specified attribute name.
      *
-     * @param name Name of the attribute to be accepted by this filter, or
-     *  <code>null</code> to accept all attribute names
+     * @param name Name of the attribute to be accepted by this filter, or 
<code>null</code> to accept all attribute
+     *                 names
      */
     public BaseAttributeFilter(String name) {
 
@@ -60,8 +60,8 @@ public class BaseAttributeFilter implements 
NotificationFilter {
 
 
     /**
-     * The set of attribute names that are accepted by this filter.  If this
-     * list is empty, all attribute names are accepted.
+     * The set of attribute names that are accepted by this filter. If this 
list is empty, all attribute names are
+     * accepted.
      */
     private final Set<String> names = new HashSet<>();
 
@@ -84,8 +84,7 @@ public class BaseAttributeFilter implements 
NotificationFilter {
 
 
     /**
-     * Clear all accepted names from this filter, so that it will accept
-     * all attribute names.
+     * Clear all accepted names from this filter, so that it will accept all 
attribute names.
      */
     public void clear() {
 
@@ -97,9 +96,9 @@ public class BaseAttributeFilter implements 
NotificationFilter {
 
 
     /**
-     * Return the set of names that are accepted by this filter.  If this
-     * filter accepts all attribute names, a zero length array will be
-     * returned.
+     * Return the set of names that are accepted by this filter. If this 
filter accepts all attribute names, a zero
+     * length array will be returned.
+     *
      * @return the array of names
      */
     public String[] getNames() {
@@ -112,13 +111,13 @@ public class BaseAttributeFilter implements 
NotificationFilter {
 
 
     /**
-     * <p>Test whether notification enabled for this event.
-     * Return true if:</p>
+     * <p>
+     * Test whether notification enabled for this event. Return true if:
+     * </p>
      * <ul>
      * <li>This is an attribute change notification</li>
-     * <li>Either the set of accepted names is empty (implying that all
-     *     attribute names are of interest) or the set of accepted names
-     *     includes the name of the attribute in this notification</li>
+     * <li>Either the set of accepted names is empty (implying that all 
attribute names are of interest) or the set of
+     * accepted names includes the name of the attribute in this 
notification</li>
      * </ul>
      */
     @Override
@@ -130,8 +129,7 @@ public class BaseAttributeFilter implements 
NotificationFilter {
         if (!(notification instanceof AttributeChangeNotification)) {
             return false;
         }
-        AttributeChangeNotification acn =
-            (AttributeChangeNotification) notification;
+        AttributeChangeNotification acn = (AttributeChangeNotification) 
notification;
         if 
(!AttributeChangeNotification.ATTRIBUTE_CHANGE.equals(acn.getType())) {
             return false;
         }
@@ -147,8 +145,7 @@ public class BaseAttributeFilter implements 
NotificationFilter {
 
 
     /**
-     * Remove an attribute name from the set of names accepted by this
-     * filter.
+     * Remove an attribute name from the set of names accepted by this filter.
      *
      * @param name Name of the attribute to be removed
      */
diff --git a/java/org/apache/tomcat/util/modeler/BaseModelMBean.java 
b/java/org/apache/tomcat/util/modeler/BaseModelMBean.java
index f0ebc5da18..f805264125 100644
--- a/java/org/apache/tomcat/util/modeler/BaseModelMBean.java
+++ b/java/org/apache/tomcat/util/modeler/BaseModelMBean.java
@@ -70,43 +70,40 @@ import org.apache.tomcat.util.res.StringManager;
  */
 
 /**
- * <p>Basic implementation of the <code>DynamicMBean</code> interface, which
- * supports the minimal requirements of the interface contract.</p>
- *
- * <p>This can be used directly to wrap an existing java bean, or inside
- * a mlet or anywhere an MBean would be used.
+ * <p>
+ * Basic implementation of the <code>DynamicMBean</code> interface, which 
supports the minimal requirements of the
+ * interface contract.
+ * </p>
+ * <p>
+ * This can be used directly to wrap an existing java bean, or inside a mlet 
or anywhere an MBean would be used.
  * <p>
  * Limitations:
  * <ul>
- * <li>Only managed resources of type <code>objectReference</code> are
- *     supported.</li>
- * <li>Caching of attribute values and operation results is not supported.
- *     All calls to <code>invoke()</code> are immediately executed.</li>
+ * <li>Only managed resources of type <code>objectReference</code> are 
supported.</li>
+ * <li>Caching of attribute values and operation results is not supported. All 
calls to <code>invoke()</code> are
+ * immediately executed.</li>
  * <li>Persistence of MBean attributes and operations is not supported.</li>
- * <li>All classes referenced as attribute types, operation parameters, or
- *     operation return values must be one of the following:
- *     <ul>
- *     <li>One of the Java primitive types (boolean, byte, char, double,
- *         float, integer, long, short).  Corresponding value will be wrapped
- *         in the appropriate wrapper class automatically.</li>
- *     <li>Operations that return no value should declare a return type of
- *         <code>void</code>.</li>
- *     </ul>
+ * <li>All classes referenced as attribute types, operation parameters, or 
operation return values must be one of the
+ * following:
+ * <ul>
+ * <li>One of the Java primitive types (boolean, byte, char, double, float, 
integer, long, short). Corresponding value
+ * will be wrapped in the appropriate wrapper class automatically.</li>
+ * <li>Operations that return no value should declare a return type of 
<code>void</code>.</li>
+ * </ul>
  * <li>Attribute caching is not supported</li>
  * </ul>
  *
  * @author Craig R. McClanahan
  * @author Costin Manolache
  */
-public class BaseModelMBean implements DynamicMBean, MBeanRegistration,
-        ModelMBeanNotificationBroadcaster {
+public class BaseModelMBean implements DynamicMBean, MBeanRegistration, 
ModelMBeanNotificationBroadcaster {
 
     private static final Log log = LogFactory.getLog(BaseModelMBean.class);
     private static final StringManager sm = 
StringManager.getManager(BaseModelMBean.class);
 
     // ----------------------------------------------------- Instance Variables
 
-    protected ObjectName oname=null;
+    protected ObjectName oname = null;
 
     /**
      * Notification broadcaster for attribute changes.
@@ -135,34 +132,31 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
     protected String resourceType = null;
 
     // key: operation val: invoke method
-    //private Hashtable invokeAttMap=new Hashtable();
+    // private Hashtable invokeAttMap=new Hashtable();
 
     @Override
-    public Object getAttribute(String name)
-        throws AttributeNotFoundException, MBeanException,
-            ReflectionException {
+    public Object getAttribute(String name) throws AttributeNotFoundException, 
MBeanException, ReflectionException {
         // Validate the input parameters
         if (name == null) {
-            throw new RuntimeOperationsException
-                (new 
IllegalArgumentException(sm.getString("baseModelMBean.nullAttributeName")),
-                        sm.getString("baseModelMBean.nullAttributeName"));
+            throw new RuntimeOperationsException(
+                    new 
IllegalArgumentException(sm.getString("baseModelMBean.nullAttributeName")),
+                    sm.getString("baseModelMBean.nullAttributeName"));
         }
 
-        if( (resource instanceof DynamicMBean) &&
-             ! ( resource instanceof BaseModelMBean )) {
-            return ((DynamicMBean)resource).getAttribute(name);
+        if ((resource instanceof DynamicMBean) && !(resource instanceof 
BaseModelMBean)) {
+            return ((DynamicMBean) resource).getAttribute(name);
         }
 
-        Method m=managedBean.getGetter(name, this, resource);
+        Method m = managedBean.getGetter(name, this, resource);
         Object result;
         try {
             Class<?> declaring = m.getDeclaringClass();
             // workaround for catalina weird mbeans - the declaring class is 
BaseModelMBean.
             // but this is the catalina class.
-            if( declaring.isAssignableFrom(this.getClass()) ) {
-                result = m.invoke(this, NO_ARGS_PARAM );
+            if (declaring.isAssignableFrom(this.getClass())) {
+                result = m.invoke(this, NO_ARGS_PARAM);
             } else {
-                result = m.invoke(resource, NO_ARGS_PARAM );
+                result = m.invoke(resource, NO_ARGS_PARAM);
             }
         } catch (InvocationTargetException e) {
             Throwable t = e.getTargetException();
@@ -170,18 +164,15 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
                 t = e;
             }
             if (t instanceof RuntimeException) {
-                throw new RuntimeOperationsException
-                    ((RuntimeException) t, 
sm.getString("baseModelMBean.invokeError", name));
+                throw new RuntimeOperationsException((RuntimeException) t,
+                        sm.getString("baseModelMBean.invokeError", name));
             } else if (t instanceof Error) {
-                throw new RuntimeErrorException
-                    ((Error) t, sm.getString("baseModelMBean.invokeError", 
name));
+                throw new RuntimeErrorException((Error) t, 
sm.getString("baseModelMBean.invokeError", name));
             } else {
-                throw new MBeanException
-                    (e, sm.getString("baseModelMBean.invokeError", name));
+                throw new MBeanException(e, 
sm.getString("baseModelMBean.invokeError", name));
             }
         } catch (Exception e) {
-            throw new MBeanException
-                (e, sm.getString("baseModelMBean.invokeError", name));
+            throw new MBeanException(e, 
sm.getString("baseModelMBean.invokeError", name));
         }
 
         // Return the results of this method invocation
@@ -194,9 +185,9 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
 
         // Validate the input parameters
         if (names == null) {
-            throw new RuntimeOperationsException
-                (new 
IllegalArgumentException(sm.getString("baseModelMBean.nullAttributeNameList")),
-                        sm.getString("baseModelMBean.nullAttributeNameList"));
+            throw new RuntimeOperationsException(
+                    new 
IllegalArgumentException(sm.getString("baseModelMBean.nullAttributeNameList")),
+                    sm.getString("baseModelMBean.nullAttributeNameList"));
         }
 
         // Prepare our response, eating all exceptions
@@ -228,27 +219,25 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
 
     /**
      * {@inheritDoc}
-     * <p><strong>IMPLEMENTATION NOTE</strong> - This implementation will
-     * attempt to invoke this method on the MBean itself, or (if not
-     * available) on the managed resource object associated with this
-     * MBean.</p>
+     * <p>
+     * <strong>IMPLEMENTATION NOTE</strong> - This implementation will attempt 
to invoke this method on the MBean
+     * itself, or (if not available) on the managed resource object associated 
with this MBean.
+     * </p>
      */
     @Override
-    public Object invoke(String name, Object[] params, String[] signature)
-        throws MBeanException, ReflectionException {
-        if ((resource instanceof DynamicMBean) &&
-             ! (resource instanceof BaseModelMBean)) {
-            return ((DynamicMBean)resource).invoke(name, params, signature);
+    public Object invoke(String name, Object[] params, String[] signature) 
throws MBeanException, ReflectionException {
+        if ((resource instanceof DynamicMBean) && !(resource instanceof 
BaseModelMBean)) {
+            return ((DynamicMBean) resource).invoke(name, params, signature);
         }
 
         // Validate the input parameters
         if (name == null) {
-            throw new RuntimeOperationsException
-                (new 
IllegalArgumentException(sm.getString("baseModelMBean.nullMethodName")),
-                        sm.getString("baseModelMBean.nullMethodName"));
+            throw new RuntimeOperationsException(
+                    new 
IllegalArgumentException(sm.getString("baseModelMBean.nullMethodName")),
+                    sm.getString("baseModelMBean.nullMethodName"));
         }
 
-        if( log.isTraceEnabled()) {
+        if (log.isTraceEnabled()) {
             log.trace("Invoke " + name);
         }
 
@@ -257,31 +246,28 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
         // Invoke the selected method on the appropriate object
         Object result;
         try {
-            if (method.getDeclaringClass().isAssignableFrom( this.getClass())) 
{
+            if (method.getDeclaringClass().isAssignableFrom(this.getClass())) {
                 result = method.invoke(this, params);
             } else {
                 result = method.invoke(resource, params);
             }
         } catch (InvocationTargetException e) {
             Throwable t = e.getTargetException();
-            log.error(sm.getString("baseModelMBean.invokeError", name), t );
+            log.error(sm.getString("baseModelMBean.invokeError", name), t);
             if (t == null) {
                 t = e;
             }
             if (t instanceof RuntimeException) {
-                throw new RuntimeOperationsException
-                    ((RuntimeException) t, 
sm.getString("baseModelMBean.invokeError", name));
+                throw new RuntimeOperationsException((RuntimeException) t,
+                        sm.getString("baseModelMBean.invokeError", name));
             } else if (t instanceof Error) {
-                throw new RuntimeErrorException
-                    ((Error) t, sm.getString("baseModelMBean.invokeError", 
name));
+                throw new RuntimeErrorException((Error) t, 
sm.getString("baseModelMBean.invokeError", name));
             } else {
-                throw new MBeanException
-                    ((Exception)t, sm.getString("baseModelMBean.invokeError", 
name));
+                throw new MBeanException((Exception) t, 
sm.getString("baseModelMBean.invokeError", name));
             }
         } catch (Exception e) {
-            log.error(sm.getString("baseModelMBean.invokeError", name), e );
-            throw new MBeanException
-                (e, sm.getString("baseModelMBean.invokeError", name));
+            log.error(sm.getString("baseModelMBean.invokeError", name), e);
+            throw new MBeanException(e, 
sm.getString("baseModelMBean.invokeError", name));
         }
 
         // Return the results of this method invocation
@@ -289,8 +275,7 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
 
     }
 
-    static Class<?> getAttributeClass(String signature)
-        throws ReflectionException {
+    static Class<?> getAttributeClass(String signature) throws 
ReflectionException {
         if (signature.equals(Boolean.TYPE.getName())) {
             return Boolean.TYPE;
         } else if (signature.equals(Byte.TYPE.getName())) {
@@ -310,10 +295,10 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
         } else {
             try {
                 ClassLoader cl = 
Thread.currentThread().getContextClassLoader();
-                if (cl!=null) {
+                if (cl != null) {
                     return cl.loadClass(signature);
                 }
-            } catch(ClassNotFoundException e) {
+            } catch (ClassNotFoundException e) {
                 // Ignore
             }
             try {
@@ -326,16 +311,14 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
 
     @Override
     public void setAttribute(Attribute attribute)
-        throws AttributeNotFoundException, MBeanException,
-        ReflectionException {
-        if( log.isTraceEnabled() ) {
-            log.trace("Setting attribute " + this + " " + attribute );
+            throws AttributeNotFoundException, MBeanException, 
ReflectionException {
+        if (log.isTraceEnabled()) {
+            log.trace("Setting attribute " + this + " " + attribute);
         }
 
-        if( (resource instanceof DynamicMBean) &&
-             ! ( resource instanceof BaseModelMBean )) {
+        if ((resource instanceof DynamicMBean) && !(resource instanceof 
BaseModelMBean)) {
             try {
-                ((DynamicMBean)resource).setAttribute(attribute);
+                ((DynamicMBean) resource).setAttribute(attribute);
             } catch (InvalidAttributeValueException e) {
                 throw new MBeanException(e);
             }
@@ -344,28 +327,28 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
 
         // Validate the input parameters
         if (attribute == null) {
-            throw new RuntimeOperationsException
-                (new 
IllegalArgumentException(sm.getString("baseModelMBean.nullAttribute")),
-                        sm.getString("baseModelMBean.nullAttribute"));
+            throw new RuntimeOperationsException(
+                    new 
IllegalArgumentException(sm.getString("baseModelMBean.nullAttribute")),
+                    sm.getString("baseModelMBean.nullAttribute"));
         }
 
         String name = attribute.getName();
         Object value = attribute.getValue();
 
         if (name == null) {
-            throw new RuntimeOperationsException
-                (new 
IllegalArgumentException(sm.getString("baseModelMBean.nullAttributeName")),
-                        sm.getString("baseModelMBean.nullAttributeName"));
+            throw new RuntimeOperationsException(
+                    new 
IllegalArgumentException(sm.getString("baseModelMBean.nullAttributeName")),
+                    sm.getString("baseModelMBean.nullAttributeName"));
         }
 
-        Object oldValue=null;
-        //if( getAttMap.get(name) != null )
-        //    oldValue=getAttribute( name );
+        Object oldValue = null;
+        // if( getAttMap.get(name) != null )
+        // oldValue=getAttribute( name );
 
-        Method m=managedBean.getSetter(name,this,resource);
+        Method m = managedBean.getSetter(name, this, resource);
 
         try {
-            if( m.getDeclaringClass().isAssignableFrom( this.getClass()) ) {
+            if (m.getDeclaringClass().isAssignableFrom(this.getClass())) {
                 m.invoke(this, value);
             } else {
                 m.invoke(resource, value);
@@ -376,36 +359,32 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
                 t = e;
             }
             if (t instanceof RuntimeException) {
-                throw new RuntimeOperationsException
-                    ((RuntimeException) t, 
sm.getString("baseModelMBean.invokeError", name));
+                throw new RuntimeOperationsException((RuntimeException) t,
+                        sm.getString("baseModelMBean.invokeError", name));
             } else if (t instanceof Error) {
-                throw new RuntimeErrorException
-                    ((Error) t, sm.getString("baseModelMBean.invokeError", 
name));
+                throw new RuntimeErrorException((Error) t, 
sm.getString("baseModelMBean.invokeError", name));
             } else {
-                throw new MBeanException
-                    (e, sm.getString("baseModelMBean.invokeError", name));
+                throw new MBeanException(e, 
sm.getString("baseModelMBean.invokeError", name));
             }
         } catch (Exception e) {
-            log.error(sm.getString("baseModelMBean.invokeError", name) , e );
-            throw new MBeanException
-                (e, sm.getString("baseModelMBean.invokeError", name));
+            log.error(sm.getString("baseModelMBean.invokeError", name), e);
+            throw new MBeanException(e, 
sm.getString("baseModelMBean.invokeError", name));
         }
         try {
-            sendAttributeChangeNotification(new Attribute( name, oldValue),
-                    attribute);
-        } catch(Exception ex) {
+            sendAttributeChangeNotification(new Attribute(name, oldValue), 
attribute);
+        } catch (Exception ex) {
             log.error(sm.getString("baseModelMBean.notificationError", name), 
ex);
         }
-        //attributes.put( name, value );
-//        if( source != null ) {
-//            // this mbean is associated with a source - maybe we want to 
persist
-//            source.updateField(oname, name, value);
-//        }
+        // attributes.put( name, value );
+        // if( source != null ) {
+        // // this mbean is associated with a source - maybe we want to persist
+        // source.updateField(oname, name, value);
+        // }
     }
 
     @Override
     public String toString() {
-        if( resource==null ) {
+        if (resource == null) {
             return "BaseModelMbean[" + resourceType + "]";
         }
         return resource.toString();
@@ -442,27 +421,24 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
 
 
     /**
-     * Get the instance handle of the object against which we execute
-     * all methods in this ModelMBean management interface.
+     * Get the instance handle of the object against which we execute all 
methods in this ModelMBean management
+     * interface.
      *
      * @return the backend managed object
-     * @exception InstanceNotFoundException if the managed resource object
-     *  cannot be found
-     * @exception InvalidTargetObjectTypeException if the managed resource
-     *  object is of the wrong type
-     * @exception MBeanException if the initializer of the object throws
-     *  an exception
-     * @exception RuntimeOperationsException if the managed resource or the
-     *  resource type is <code>null</code> or invalid
+     *
+     * @exception InstanceNotFoundException        if the managed resource 
object cannot be found
+     * @exception InvalidTargetObjectTypeException if the managed resource 
object is of the wrong type
+     * @exception MBeanException                   if the initializer of the 
object throws an exception
+     * @exception RuntimeOperationsException       if the managed resource or 
the resource type is <code>null</code> or
+     *                                                 invalid
      */
-    public Object getManagedResource()
-        throws InstanceNotFoundException, InvalidTargetObjectTypeException,
-        MBeanException, RuntimeOperationsException {
+    public Object getManagedResource() throws InstanceNotFoundException, 
InvalidTargetObjectTypeException,
+            MBeanException, RuntimeOperationsException {
 
         if (resource == null) {
-            throw new RuntimeOperationsException
-                (new 
IllegalArgumentException(sm.getString("baseModelMBean.nullResource")),
-                        sm.getString("baseModelMBean.nullResource"));
+            throw new RuntimeOperationsException(
+                    new 
IllegalArgumentException(sm.getString("baseModelMBean.nullResource")),
+                    sm.getString("baseModelMBean.nullResource"));
         }
 
         return resource;
@@ -471,51 +447,44 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
 
 
     /**
-     * Set the instance handle of the object against which we will execute
-     * all methods in this ModelMBean management interface.
-     * The caller can provide the mbean instance or the object name to
-     * the resource, if needed.
+     * Set the instance handle of the object against which we will execute all 
methods in this ModelMBean management
+     * interface. The caller can provide the mbean instance or the object name 
to the resource, if needed.
      *
      * @param resource The resource object to be managed
-     * @param type The type of reference for the managed resource
-     *  ("ObjectReference", "Handle", "IOR", "EJBHandle", or
-     *  "RMIReference")
+     * @param type     The type of reference for the managed resource 
("ObjectReference", "Handle", "IOR", "EJBHandle",
+     *                     or "RMIReference")
      *
-     * @exception InstanceNotFoundException if the managed resource object
-     *  cannot be found
-     * @exception MBeanException if the initializer of the object throws
-     *  an exception
-     * @exception RuntimeOperationsException if the managed resource or the
-     *  resource type is <code>null</code> or invalid
+     * @exception InstanceNotFoundException  if the managed resource object 
cannot be found
+     * @exception MBeanException             if the initializer of the object 
throws an exception
+     * @exception RuntimeOperationsException if the managed resource or the 
resource type is <code>null</code> or
+     *                                           invalid
      */
     public void setManagedResource(Object resource, String type)
-        throws InstanceNotFoundException,
-        MBeanException, RuntimeOperationsException
-    {
+            throws InstanceNotFoundException, MBeanException, 
RuntimeOperationsException {
         if (resource == null) {
-            throw new RuntimeOperationsException
-                (new 
IllegalArgumentException(sm.getString("baseModelMBean.nullResource")),
-                        sm.getString("baseModelMBean.nullResource"));
+            throw new RuntimeOperationsException(
+                    new 
IllegalArgumentException(sm.getString("baseModelMBean.nullResource")),
+                    sm.getString("baseModelMBean.nullResource"));
         }
 
-//        if (!"objectreference".equalsIgnoreCase(type))
-//            throw new InvalidTargetObjectTypeException(type);
+        // if (!"objectreference".equalsIgnoreCase(type))
+        // throw new InvalidTargetObjectTypeException(type);
 
         this.resource = resource;
         this.resourceType = resource.getClass().getName();
 
-//        // Make the resource aware of the model mbean.
-//        try {
-//            Method m=resource.getClass().getMethod("setModelMBean",
-//                    new Class[] {ModelMBean.class});
-//            if( m!= null ) {
-//                m.invoke(resource, new Object[] {this});
-//            }
-//        } catch( NoSuchMethodException t ) {
-//            // ignore
-//        } catch( Throwable t ) {
-//            log.error( "Can't set model mbean ", t );
-//        }
+        // // Make the resource aware of the model mbean.
+        // try {
+        // Method m=resource.getClass().getMethod("setModelMBean",
+        // new Class[] {ModelMBean.class});
+        // if( m!= null ) {
+        // m.invoke(resource, new Object[] {this});
+        // }
+        // } catch( NoSuchMethodException t ) {
+        // // ignore
+        // } catch( Throwable t ) {
+        // log.error( "Can't set model mbean ", t );
+        // }
     }
 
 
@@ -523,9 +492,8 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
 
 
     @Override
-    public void addAttributeChangeNotificationListener
-        (NotificationListener listener, String name, Object handback)
-        throws IllegalArgumentException {
+    public void addAttributeChangeNotificationListener(NotificationListener 
listener, String name, Object handback)
+            throws IllegalArgumentException {
 
         if (listener == null) {
             throw new 
IllegalArgumentException(sm.getString("baseModelMBean.nullListener"));
@@ -534,21 +502,19 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
             attributeBroadcaster = new BaseNotificationBroadcaster();
         }
 
-        if( log.isTraceEnabled() ) {
+        if (log.isTraceEnabled()) {
             log.trace("addAttributeNotificationListener " + listener);
         }
 
         BaseAttributeFilter filter = new BaseAttributeFilter(name);
-        attributeBroadcaster.addNotificationListener
-            (listener, filter, handback);
+        attributeBroadcaster.addNotificationListener(listener, filter, 
handback);
 
     }
 
 
     @Override
-    public void removeAttributeChangeNotificationListener
-        (NotificationListener listener, String name)
-        throws ListenerNotFoundException {
+    public void removeAttributeChangeNotificationListener(NotificationListener 
listener, String name)
+            throws ListenerNotFoundException {
 
         if (listener == null) {
             throw new 
IllegalArgumentException(sm.getString("baseModelMBean.nullListener"));
@@ -563,21 +529,19 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
 
 
     @Override
-    public void sendAttributeChangeNotification
-        (AttributeChangeNotification notification)
-        throws MBeanException, RuntimeOperationsException {
+    public void sendAttributeChangeNotification(AttributeChangeNotification 
notification)
+            throws MBeanException, RuntimeOperationsException {
 
         if (notification == null) {
-            throw new RuntimeOperationsException
-                (new 
IllegalArgumentException(sm.getString("baseModelMBean.nullNotification")),
-                        sm.getString("baseModelMBean.nullNotification"));
+            throw new RuntimeOperationsException(
+                    new 
IllegalArgumentException(sm.getString("baseModelMBean.nullNotification")),
+                    sm.getString("baseModelMBean.nullNotification"));
         }
-        if (attributeBroadcaster == null)
-         {
+        if (attributeBroadcaster == null) {
             return; // This means there are no registered listeners
         }
-        if( log.isTraceEnabled() ) {
-            log.trace( "AttributeChangeNotification " + notification );
+        if (log.isTraceEnabled()) {
+            log.trace("AttributeChangeNotification " + notification);
         }
         attributeBroadcaster.sendNotification(notification);
 
@@ -585,9 +549,8 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
 
 
     @Override
-    public void sendAttributeChangeNotification
-        (Attribute oldValue, Attribute newValue)
-        throws MBeanException, RuntimeOperationsException {
+    public void sendAttributeChangeNotification(Attribute oldValue, Attribute 
newValue)
+            throws MBeanException, RuntimeOperationsException {
 
         // Calculate the class name for the change notification
         String type;
@@ -595,33 +558,26 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
             type = newValue.getValue().getClass().getName();
         } else if (oldValue.getValue() != null) {
             type = oldValue.getValue().getClass().getName();
-        }
-        else {
-            return;  // Old and new are both null == no change
+        } else {
+            return; // Old and new are both null == no change
         }
 
-        AttributeChangeNotification notification =
-            new AttributeChangeNotification
-            (this, 1, System.currentTimeMillis(),
-             "Attribute value has changed",
-             oldValue.getName(), type,
-             oldValue.getValue(), newValue.getValue());
+        AttributeChangeNotification notification = new 
AttributeChangeNotification(this, 1, System.currentTimeMillis(),
+                "Attribute value has changed", oldValue.getName(), type, 
oldValue.getValue(), newValue.getValue());
         sendAttributeChangeNotification(notification);
 
     }
 
 
     @Override
-    public void sendNotification(Notification notification)
-        throws MBeanException, RuntimeOperationsException {
+    public void sendNotification(Notification notification) throws 
MBeanException, RuntimeOperationsException {
 
         if (notification == null) {
-            throw new RuntimeOperationsException
-                (new 
IllegalArgumentException(sm.getString("baseModelMBean.nullNotification")),
-                        sm.getString("baseModelMBean.nullNotification"));
+            throw new RuntimeOperationsException(
+                    new 
IllegalArgumentException(sm.getString("baseModelMBean.nullNotification")),
+                    sm.getString("baseModelMBean.nullNotification"));
         }
-        if (generalBroadcaster == null)
-         {
+        if (generalBroadcaster == null) {
             return; // This means there are no registered listeners
         }
         generalBroadcaster.sendNotification(notification);
@@ -630,16 +586,14 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
 
 
     @Override
-    public void sendNotification(String message)
-        throws MBeanException, RuntimeOperationsException {
+    public void sendNotification(String message) throws MBeanException, 
RuntimeOperationsException {
 
         if (message == null) {
-            throw new RuntimeOperationsException
-                (new 
IllegalArgumentException(sm.getString("baseModelMBean.nullMessage")),
-                        sm.getString("baseModelMBean.nullMessage"));
+            throw new RuntimeOperationsException(
+                    new 
IllegalArgumentException(sm.getString("baseModelMBean.nullMessage")),
+                    sm.getString("baseModelMBean.nullMessage"));
         }
-        Notification notification = new Notification
-            ("jmx.modelmbean.generic", this, 1, message);
+        Notification notification = new Notification("jmx.modelmbean.generic", 
this, 1, message);
         sendNotification(notification);
 
     }
@@ -649,24 +603,21 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
 
 
     @Override
-    public void addNotificationListener(NotificationListener listener,
-                                        NotificationFilter filter,
-                                        Object handback)
-        throws IllegalArgumentException {
+    public void addNotificationListener(NotificationListener listener, 
NotificationFilter filter, Object handback)
+            throws IllegalArgumentException {
 
         if (listener == null) {
             throw new 
IllegalArgumentException(sm.getString("baseModelMBean.nullListener"));
         }
 
-        if( log.isTraceEnabled() ) {
+        if (log.isTraceEnabled()) {
             log.trace("addNotificationListener " + listener);
         }
 
         if (generalBroadcaster == null) {
             generalBroadcaster = new BaseNotificationBroadcaster();
         }
-        generalBroadcaster.addNotificationListener
-            (listener, filter, handback);
+        generalBroadcaster.addNotificationListener(listener, filter, handback);
 
         // We'll send the attribute change notifications to all listeners ( 
who care )
         // The normal filtering can be used.
@@ -676,12 +627,11 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
             attributeBroadcaster = new BaseNotificationBroadcaster();
         }
 
-        if( log.isTraceEnabled() ) {
+        if (log.isTraceEnabled()) {
             log.trace("addAttributeNotificationListener " + listener);
         }
 
-        attributeBroadcaster.addNotificationListener
-                (listener, filter, handback);
+        attributeBroadcaster.addNotificationListener(listener, filter, 
handback);
     }
 
 
@@ -690,35 +640,30 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
 
         // Acquire the set of application notifications
         MBeanNotificationInfo[] current = getMBeanInfo().getNotifications();
-        MBeanNotificationInfo[] response =
-            new MBeanNotificationInfo[current.length + 2];
- //       Descriptor descriptor = null;
+        MBeanNotificationInfo[] response = new 
MBeanNotificationInfo[current.length + 2];
+        // Descriptor descriptor = null;
 
         // Fill in entry for general notifications
-//        descriptor = new DescriptorSupport
-//            (new String[] { "name=GENERIC",
-//                            "descriptorType=notification",
-//                            "log=T",
-//                            "severity=5",
-//                            "displayName=jmx.modelmbean.generic" });
-        response[0] = new MBeanNotificationInfo
-            (new String[] { "jmx.modelmbean.generic" },
-             "GENERIC",
-             "Text message notification from the managed resource");
-             //descriptor);
+        // descriptor = new DescriptorSupport
+        // (new String[] { "name=GENERIC",
+        // "descriptorType=notification",
+        // "log=T",
+        // "severity=5",
+        // "displayName=jmx.modelmbean.generic" });
+        response[0] = new MBeanNotificationInfo(new String[] { 
"jmx.modelmbean.generic" }, "GENERIC",
+                "Text message notification from the managed resource");
+        // descriptor);
 
         // Fill in entry for attribute change notifications
-//        descriptor = new DescriptorSupport
-//            (new String[] { "name=ATTRIBUTE_CHANGE",
-//                            "descriptorType=notification",
-//                            "log=T",
-//                            "severity=5",
-//                            "displayName=jmx.attribute.change" });
-        response[1] = new MBeanNotificationInfo
-            (new String[] { "jmx.attribute.change" },
-             "ATTRIBUTE_CHANGE",
-             "Observed MBean attribute value has changed");
-             //descriptor);
+        // descriptor = new DescriptorSupport
+        // (new String[] { "name=ATTRIBUTE_CHANGE",
+        // "descriptorType=notification",
+        // "log=T",
+        // "severity=5",
+        // "displayName=jmx.attribute.change" });
+        response[1] = new MBeanNotificationInfo(new String[] { 
"jmx.attribute.change" }, "ATTRIBUTE_CHANGE",
+                "Observed MBean attribute value has changed");
+        // descriptor);
 
         // Copy remaining notifications as reported by the application
         System.arraycopy(current, 0, response, 2, current.length);
@@ -728,8 +673,7 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
 
 
     @Override
-    public void removeNotificationListener(NotificationListener listener)
-        throws ListenerNotFoundException {
+    public void removeNotificationListener(NotificationListener listener) 
throws ListenerNotFoundException {
 
         if (listener == null) {
             throw new 
IllegalArgumentException(sm.getString("baseModelMBean.nullListener"));
@@ -742,7 +686,7 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
         if (attributeBroadcaster != null) {
             attributeBroadcaster.removeNotificationListener(listener);
         }
-     }
+    }
 
 
     public String getModelerType() {
@@ -769,43 +713,40 @@ public class BaseModelMBean implements DynamicMBean, 
MBeanRegistration,
     }
 
 
-    // -------------------- Registration  --------------------
+    // -------------------- Registration --------------------
     // XXX We can add some method patterns here- like setName() and
     // setDomain() for code that doesn't implement the Registration
 
     @Override
-    public ObjectName preRegister(MBeanServer server,
-                                  ObjectName name)
-            throws Exception
-    {
-        if( log.isTraceEnabled()) {
-            log.trace("preRegister " + resource + " " + name );
+    public ObjectName preRegister(MBeanServer server, ObjectName name) throws 
Exception {
+        if (log.isTraceEnabled()) {
+            log.trace("preRegister " + resource + " " + name);
         }
-        oname=name;
-        if( resource instanceof MBeanRegistration ) {
-            oname = ((MBeanRegistration)resource).preRegister(server, name );
+        oname = name;
+        if (resource instanceof MBeanRegistration) {
+            oname = ((MBeanRegistration) resource).preRegister(server, name);
         }
         return oname;
     }
 
     @Override
     public void postRegister(Boolean registrationDone) {
-        if( resource instanceof MBeanRegistration ) {
-            ((MBeanRegistration)resource).postRegister(registrationDone);
+        if (resource instanceof MBeanRegistration) {
+            ((MBeanRegistration) resource).postRegister(registrationDone);
         }
     }
 
     @Override
     public void preDeregister() throws Exception {
-        if( resource instanceof MBeanRegistration ) {
-            ((MBeanRegistration)resource).preDeregister();
+        if (resource instanceof MBeanRegistration) {
+            ((MBeanRegistration) resource).preDeregister();
         }
     }
 
     @Override
     public void postDeregister() {
-        if( resource instanceof MBeanRegistration ) {
-            ((MBeanRegistration)resource).postDeregister();
+        if (resource instanceof MBeanRegistration) {
+            ((MBeanRegistration) resource).postDeregister();
         }
     }
 }
diff --git 
a/java/org/apache/tomcat/util/modeler/BaseNotificationBroadcaster.java 
b/java/org/apache/tomcat/util/modeler/BaseNotificationBroadcaster.java
index 918776575a..2e4463889d 100644
--- a/java/org/apache/tomcat/util/modeler/BaseNotificationBroadcaster.java
+++ b/java/org/apache/tomcat/util/modeler/BaseNotificationBroadcaster.java
@@ -28,9 +28,8 @@ import javax.management.NotificationListener;
 
 
 /**
- * Implementation of <code>NotificationBroadcaster</code> for attribute
- * change notifications.  This class is used by <code>BaseModelMBean</code> to
- * handle notifications of attribute change events to interested listeners.
+ * Implementation of <code>NotificationBroadcaster</code> for attribute change 
notifications. This class is used by
+ * <code>BaseModelMBean</code> to handle notifications of attribute change 
events to interested listeners.
  *
  * @author Craig R. McClanahan
  * @author Costin Manolache
@@ -46,11 +45,9 @@ public class BaseNotificationBroadcaster implements 
NotificationBroadcaster {
 
 
     /**
-     * The set of registered <code>BaseNotificationBroadcasterEntry</code>
-     * entries.
+     * The set of registered <code>BaseNotificationBroadcasterEntry</code> 
entries.
      */
-    final ArrayList<BaseNotificationBroadcasterEntry> entries =
-            new ArrayList<>();
+    final ArrayList<BaseNotificationBroadcasterEntry> entries = new 
ArrayList<>();
 
 
     // --------------------------------------------------------- Public Methods
@@ -60,18 +57,15 @@ public class BaseNotificationBroadcaster implements 
NotificationBroadcaster {
      * Add a notification event listener to this MBean.
      *
      * @param listener Listener that will receive event notifications
-     * @param filter Filter object used to filter event notifications
-     *  actually delivered, or <code>null</code> for no filtering
-     * @param handback object to be sent along with event
-     *  notifications
+     * @param filter   Filter object used to filter event notifications 
actually delivered, or <code>null</code> for no
+     *                     filtering
+     * @param handback object to be sent along with event notifications
      *
      * @exception IllegalArgumentException if the listener parameter is null
      */
     @Override
-    public void addNotificationListener(NotificationListener listener,
-                                        NotificationFilter filter,
-                                        Object handback)
-        throws IllegalArgumentException {
+    public void addNotificationListener(NotificationListener listener, 
NotificationFilter filter, Object handback)
+            throws IllegalArgumentException {
 
         synchronized (entries) {
 
@@ -79,11 +73,9 @@ public class BaseNotificationBroadcaster implements 
NotificationBroadcaster {
             if (filter instanceof BaseAttributeFilter) {
                 BaseAttributeFilter newFilter = (BaseAttributeFilter) filter;
                 for (BaseNotificationBroadcasterEntry item : entries) {
-                    if ((item.listener == listener) &&
-                        (item.filter instanceof BaseAttributeFilter) &&
-                        (item.handback == handback)) {
-                        BaseAttributeFilter oldFilter =
-                            (BaseAttributeFilter) item.filter;
+                    if ((item.listener == listener) && (item.filter instanceof 
BaseAttributeFilter) &&
+                            (item.handback == handback)) {
+                        BaseAttributeFilter oldFilter = (BaseAttributeFilter) 
item.filter;
                         String[] newNames = newFilter.getNames();
                         String[] oldNames = oldFilter.getNames();
                         if (newNames.length == 0) {
@@ -101,16 +93,14 @@ public class BaseNotificationBroadcaster implements 
NotificationBroadcaster {
             }
 
             // General purpose addition of a new entry
-            entries.add(new BaseNotificationBroadcasterEntry
-                        (listener, filter, handback));
+            entries.add(new BaseNotificationBroadcasterEntry(listener, filter, 
handback));
         }
 
     }
 
 
     /**
-     * Return an <code>MBeanNotificationInfo</code> object describing the
-     * notifications sent by this MBean.
+     * Return an <code>MBeanNotificationInfo</code> object describing the 
notifications sent by this MBean.
      */
     @Override
     public MBeanNotificationInfo[] getNotificationInfo() {
@@ -121,15 +111,12 @@ public class BaseNotificationBroadcaster implements 
NotificationBroadcaster {
     /**
      * Remove a notification event listener from this MBean.
      *
-     * @param listener The listener to be removed (any and all registrations
-     *  for this listener will be eliminated)
+     * @param listener The listener to be removed (any and all registrations 
for this listener will be eliminated)
      *
-     * @exception ListenerNotFoundException if this listener is not
-     *  registered in the MBean
+     * @exception ListenerNotFoundException if this listener is not registered 
in the MBean
      */
     @Override
-    public void removeNotificationListener(NotificationListener listener)
-        throws ListenerNotFoundException {
+    public void removeNotificationListener(NotificationListener listener) 
throws ListenerNotFoundException {
 
         synchronized (entries) {
             entries.removeIf(item -> item.listener == listener);
@@ -147,8 +134,7 @@ public class BaseNotificationBroadcaster implements 
NotificationBroadcaster {
 
         synchronized (entries) {
             for (BaseNotificationBroadcasterEntry item : entries) {
-                if ((item.filter != null) &&
-                    (!item.filter.isNotificationEnabled(notification))) {
+                if ((item.filter != null) && 
(!item.filter.isNotificationEnabled(notification))) {
                     continue;
                 }
                 item.listener.handleNotification(notification, item.handback);
@@ -166,9 +152,7 @@ public class BaseNotificationBroadcaster implements 
NotificationBroadcaster {
 
 class BaseNotificationBroadcasterEntry {
 
-    BaseNotificationBroadcasterEntry(NotificationListener listener,
-                                            NotificationFilter filter,
-                                            Object handback) {
+    BaseNotificationBroadcasterEntry(NotificationListener listener, 
NotificationFilter filter, Object handback) {
         this.listener = listener;
         this.filter = filter;
         this.handback = handback;
diff --git a/java/org/apache/tomcat/util/modeler/FeatureInfo.java 
b/java/org/apache/tomcat/util/modeler/FeatureInfo.java
index 4eb7751ae7..46a23a6f8f 100644
--- a/java/org/apache/tomcat/util/modeler/FeatureInfo.java
+++ b/java/org/apache/tomcat/util/modeler/FeatureInfo.java
@@ -23,9 +23,10 @@ import javax.management.MBeanFeatureInfo;
 
 
 /**
- * <p>Convenience base class for <code>AttributeInfo</code> and
- * <code>OperationInfo</code> classes that will be used to collect 
configuration
- * information for the <code>ModelMBean</code> beans exposed for 
management.</p>
+ * <p>
+ * Convenience base class for <code>AttributeInfo</code> and 
<code>OperationInfo</code> classes that will be used to
+ * collect configuration information for the <code>ModelMBean</code> beans 
exposed for management.
+ * </p>
  *
  * @author Craig R. McClanahan
  */
@@ -55,8 +56,7 @@ public class FeatureInfo implements Serializable {
 
 
     /**
-     * @return the name of this feature, which must be unique among features
-     *  in the same collection.
+     * @return the name of this feature, which must be unique among features 
in the same collection.
      */
     public String getName() {
         return this.name;
diff --git a/java/org/apache/tomcat/util/modeler/ManagedBean.java 
b/java/org/apache/tomcat/util/modeler/ManagedBean.java
index 128dcf714a..b3ff9e41a3 100644
--- a/java/org/apache/tomcat/util/modeler/ManagedBean.java
+++ b/java/org/apache/tomcat/util/modeler/ManagedBean.java
@@ -41,8 +41,9 @@ import org.apache.tomcat.util.res.StringManager;
 
 
 /**
- * <p>Internal configuration information for a managed bean (MBean)
- * descriptor.</p>
+ * <p>
+ * Internal configuration information for a managed bean (MBean) descriptor.
+ * </p>
  *
  * @author Craig R. McClanahan
  */
@@ -58,8 +59,7 @@ public class ManagedBean implements java.io.Serializable {
 
     private final ReadWriteLock mBeanInfoLock = new ReentrantReadWriteLock();
     /**
-     * The <code>ModelMBeanInfo</code> object that corresponds
-     * to this <code>ManagedBean</code> instance.
+     * The <code>ModelMBeanInfo</code> object that corresponds to this 
<code>ManagedBean</code> instance.
      */
     private transient volatile MBeanInfo info = null;
 
@@ -80,7 +80,7 @@ public class ManagedBean implements java.io.Serializable {
      * Constructor. Will add default attributes.
      */
     public ManagedBean() {
-        AttributeInfo ai=new AttributeInfo();
+        AttributeInfo ai = new AttributeInfo();
         ai.setName("modelerType");
         ai.setDescription("Type of the modeled resource. Can be set only 
once");
         ai.setType("java.lang.String");
@@ -100,10 +100,9 @@ public class ManagedBean implements java.io.Serializable {
 
 
     /**
-     * The fully qualified name of the Java class of the MBean
-     * described by this descriptor.  If not specified, the standard JMX
-     * class (<code>javax.management.modelmbean.RequiredModeLMBean</code>)
-     * will be utilized.
+     * The fully qualified name of the Java class of the MBean described by 
this descriptor. If not specified, the
+     * standard JMX class 
(<code>javax.management.modelmbean.RequiredModeLMBean</code>) will be utilized.
+     *
      * @return the class name
      */
     public String getClassName() {
@@ -140,8 +139,8 @@ public class ManagedBean implements java.io.Serializable {
 
 
     /**
-     * @return the (optional) <code>ObjectName</code> domain in which
-     *  this MBean should be registered in the MBeanServer.
+     * @return the (optional) <code>ObjectName</code> domain in which this 
MBean should be registered in the
+     *             MBeanServer.
      */
     public String getDomain() {
         return this.domain;
@@ -165,8 +164,8 @@ public class ManagedBean implements java.io.Serializable {
 
 
     /**
-     * @return the name of this managed bean, which must be unique
-     *  among all MBeans managed by a particular MBeans server.
+     * @return the name of this managed bean, which must be unique among all 
MBeans managed by a particular MBeans
+     *             server.
      */
     public String getName() {
         return this.name;
@@ -200,9 +199,8 @@ public class ManagedBean implements java.io.Serializable {
 
 
     /**
-     * @return the fully qualified name of the Java class of the resource
-     * implementation class described by the managed bean described
-     * by this descriptor.
+     * @return the fully qualified name of the Java class of the resource 
implementation class described by the managed
+     *             bean described by this descriptor.
      */
     public String getType() {
         return this.type;
@@ -240,10 +238,8 @@ public class ManagedBean implements java.io.Serializable {
     public void addNotification(NotificationInfo notification) {
         mBeanInfoLock.writeLock().lock();
         try {
-            NotificationInfo[] results =
-                new NotificationInfo[notifications.length + 1];
-            System.arraycopy(notifications, 0, results, 0,
-                             notifications.length);
+            NotificationInfo[] results = new 
NotificationInfo[notifications.length + 1];
+            System.arraycopy(notifications, 0, results, 0, 
notifications.length);
             results[notifications.length] = notification;
             notifications = results;
             this.info = null;
@@ -264,30 +260,25 @@ public class ManagedBean implements java.io.Serializable {
 
 
     /**
-     * Create and return a <code>ModelMBean</code> that has been
-     * preconfigured with the <code>ModelMBeanInfo</code> information
-     * for this managed bean, and is associated with the specified
-     * managed object instance.  The returned <code>ModelMBean</code>
-     * will <strong>NOT</strong> have been registered with our
-     * <code>MBeanServer</code>.
+     * Create and return a <code>ModelMBean</code> that has been preconfigured 
with the <code>ModelMBeanInfo</code>
+     * information for this managed bean, and is associated with the specified 
managed object instance. The returned
+     * <code>ModelMBean</code> will <strong>NOT</strong> have been registered 
with our <code>MBeanServer</code>.
+     *
+     * @param instance Instanced of the managed object, or <code>null</code> 
for no associated instance
      *
-     * @param instance Instanced of the managed object, or <code>null</code>
-     *  for no associated instance
      * @return the MBean
-     * @exception InstanceNotFoundException if the managed resource
-     *  object cannot be found
-     * @exception MBeanException if a problem occurs instantiating the
-     *  <code>ModelMBean</code> instance
+     *
+     * @exception InstanceNotFoundException  if the managed resource object 
cannot be found
+     * @exception MBeanException             if a problem occurs instantiating 
the <code>ModelMBean</code> instance
      * @exception RuntimeOperationsException if a JMX runtime error occurs
      */
     public DynamicMBean createMBean(Object instance)
-        throws InstanceNotFoundException,
-        MBeanException, RuntimeOperationsException {
+            throws InstanceNotFoundException, MBeanException, 
RuntimeOperationsException {
 
         BaseModelMBean mbean;
 
         // Load the ModelMBean implementation class
-        if(getClassName().equals(BASE_MBEAN)) {
+        if (getClassName().equals(BASE_MBEAN)) {
             // Skip introspection
             mbean = new BaseModelMBean();
         } else {
@@ -299,20 +290,19 @@ public class ManagedBean implements java.io.Serializable {
                 // Ignore
             }
 
-            if( clazz==null ) {
+            if (clazz == null) {
                 try {
-                    ClassLoader cl= 
Thread.currentThread().getContextClassLoader();
-                    if ( cl != null) {
-                        clazz= cl.loadClass(getClassName());
+                    ClassLoader cl = 
Thread.currentThread().getContextClassLoader();
+                    if (cl != null) {
+                        clazz = cl.loadClass(getClassName());
                     }
                 } catch (Exception e) {
-                    ex=e;
+                    ex = e;
                 }
             }
 
-            if( clazz==null) {
-                throw new MBeanException
-                    (ex, sm.getString("managedMBean.cannotLoadClass", 
getClassName()));
+            if (clazz == null) {
+                throw new MBeanException(ex, 
sm.getString("managedMBean.cannotLoadClass", getClassName()));
             }
             try {
                 // Stupid - this will set the default minfo first....
@@ -320,8 +310,7 @@ public class ManagedBean implements java.io.Serializable {
             } catch (RuntimeOperationsException e) {
                 throw e;
             } catch (Exception e) {
-                throw new MBeanException
-                    (e, sm.getString("managedMBean.cannotInstantiateClass", 
getClassName()));
+                throw new MBeanException(e, 
sm.getString("managedMBean.cannotInstantiateClass", getClassName()));
             }
         }
 
@@ -337,8 +326,8 @@ public class ManagedBean implements java.io.Serializable {
 
 
     /**
-     * Create and return a <code>ModelMBeanInfo</code> object that
-     * describes this entire managed bean.
+     * Create and return a <code>ModelMBeanInfo</code> object that describes 
this entire managed bean.
+     *
      * @return the MBean info
      */
     MBeanInfo getMBeanInfo() {
@@ -358,35 +347,28 @@ public class ManagedBean implements java.io.Serializable {
             if (info == null) {
                 // Create subordinate information descriptors as required
                 AttributeInfo[] attrs = getAttributes();
-                MBeanAttributeInfo[] attributes =
-                    new MBeanAttributeInfo[attrs.length];
+                MBeanAttributeInfo[] attributes = new 
MBeanAttributeInfo[attrs.length];
                 for (int i = 0; i < attrs.length; i++) {
                     attributes[i] = attrs[i].createAttributeInfo();
                 }
 
                 OperationInfo[] opers = getOperations();
-                MBeanOperationInfo[] operations =
-                    new MBeanOperationInfo[opers.length];
+                MBeanOperationInfo[] operations = new 
MBeanOperationInfo[opers.length];
                 for (int i = 0; i < opers.length; i++) {
                     operations[i] = opers[i].createOperationInfo();
                 }
 
 
                 NotificationInfo[] notifs = getNotifications();
-                MBeanNotificationInfo[] notifications =
-                    new MBeanNotificationInfo[notifs.length];
+                MBeanNotificationInfo[] notifications = new 
MBeanNotificationInfo[notifs.length];
                 for (int i = 0; i < notifs.length; i++) {
                     notifications[i] = notifs[i].createNotificationInfo();
                 }
 
 
                 // Construct and return a new ModelMBeanInfo object
-                info = new MBeanInfo(getClassName(),
-                                     getDescription(),
-                                     attributes,
-                                     new MBeanConstructorInfo[] {},
-                                     operations,
-                                     notifications);
+                info = new MBeanInfo(getClassName(), getDescription(), 
attributes, new MBeanConstructorInfo[] {},
+                        operations, notifications);
             }
 
             return info;
@@ -445,7 +427,7 @@ public class ManagedBean implements java.io.Serializable {
             try {
                 object = resource;
                 m = object.getClass().getMethod(getMethod, NO_ARGS_PARAM_SIG);
-                exception=null;
+                exception = null;
             } catch (NoSuchMethodException e) {
                 exception = e;
             }
@@ -469,9 +451,9 @@ public class ManagedBean implements java.io.Serializable {
 
         // Look up the actual operation to be used
         String setMethod = attrInfo.getSetMethod();
-        String argType=attrInfo.getType();
+        String argType = attrInfo.getType();
 
-        Class<?>[] signature = new Class[] { BaseModelMBean.getAttributeClass( 
argType ) };
+        Class<?>[] signature = new Class[] { 
BaseModelMBean.getAttributeClass(argType) };
 
         Object object;
         NoSuchMethodException exception = null;
@@ -485,7 +467,7 @@ public class ManagedBean implements java.io.Serializable {
             try {
                 object = resource;
                 m = object.getClass().getMethod(setMethod, signature);
-                exception=null;
+                exception = null;
             } catch (NoSuchMethodException e) {
                 exception = e;
             }
@@ -516,8 +498,7 @@ public class ManagedBean implements java.io.Serializable {
 
         // Acquire the ModelMBeanOperationInfo information for
         // the requested operation
-        OperationInfo opInfo =
-                operations.get(createOperationKey(aname, signature));
+        OperationInfo opInfo = operations.get(createOperationKey(aname, 
signature));
         if (opInfo == null) {
             throw new MBeanException(new 
ServiceNotFoundException(sm.getString("managedMBean.noOperation", aname)),
                     sm.getString("managedMBean.noOperation", aname));
diff --git a/java/org/apache/tomcat/util/modeler/NoDescriptorRegistry.java 
b/java/org/apache/tomcat/util/modeler/NoDescriptorRegistry.java
index a96fa96acf..c8b7f70367 100644
--- a/java/org/apache/tomcat/util/modeler/NoDescriptorRegistry.java
+++ b/java/org/apache/tomcat/util/modeler/NoDescriptorRegistry.java
@@ -45,9 +45,8 @@ import javax.management.ReflectionException;
 import javax.management.loading.ClassLoaderRepository;
 
 /**
- * An implementation of the MBean registry that effectively disables MBean
- * registration. This is typically used when low memory footprint is a primary
- * concern.
+ * An implementation of the MBean registry that effectively disables MBean 
registration. This is typically used when low
+ * memory footprint is a primary concern.
  */
 public class NoDescriptorRegistry extends Registry {
 
@@ -56,8 +55,7 @@ public class NoDescriptorRegistry extends Registry {
 
 
     @Override
-    public void registerComponent(final Object bean, final String oname, final 
String type)
-            throws Exception {
+    public void registerComponent(final Object bean, final String oname, final 
String type) throws Exception {
         // no-op
     }
 
@@ -69,8 +67,8 @@ public class NoDescriptorRegistry extends Registry {
 
 
     @Override
-    public void invoke(final List<ObjectName> mbeans, final String operation,
-            final boolean failFirst) throws Exception {
+    public void invoke(final List<ObjectName> mbeans, final String operation, 
final boolean failFirst)
+            throws Exception {
         // no-op
     }
 
@@ -107,15 +105,14 @@ public class NoDescriptorRegistry extends Registry {
 
 
     @Override
-    public ManagedBean findManagedBean(final Object bean, final Class<?> 
beanClass,
-            final String type) throws Exception {
+    public ManagedBean findManagedBean(final Object bean, final Class<?> 
beanClass, final String type)
+            throws Exception {
         return null;
     }
 
 
     @Override
-    public List<ObjectName> load(final String sourceType, final Object source, 
final String param)
-            throws Exception {
+    public List<ObjectName> load(final String sourceType, final Object source, 
final String param) throws Exception {
         return Collections.emptyList();
     }
 
@@ -127,8 +124,7 @@ public class NoDescriptorRegistry extends Registry {
 
 
     @Override
-    public void registerComponent(final Object bean, final ObjectName oname, 
final String type)
-            throws Exception {
+    public void registerComponent(final Object bean, final ObjectName oname, 
final String type) throws Exception {
         // no-op
     }
 
@@ -147,49 +143,45 @@ public class NoDescriptorRegistry extends Registry {
     private static class NoJmxMBeanServer implements MBeanServer {
 
         @Override
-        public ObjectInstance createMBean(String className, ObjectName name)
-                throws ReflectionException, InstanceAlreadyExistsException,
-                MBeanRegistrationException, NotCompliantMBeanException {
+        public ObjectInstance createMBean(String className, ObjectName name) 
throws ReflectionException,
+                InstanceAlreadyExistsException, MBeanRegistrationException, 
NotCompliantMBeanException {
             return null;
         }
 
 
         @Override
         public ObjectInstance createMBean(String className, ObjectName name, 
ObjectName loaderName)
-                throws ReflectionException, InstanceAlreadyExistsException,
-                MBeanRegistrationException, NotCompliantMBeanException, 
InstanceNotFoundException {
+                throws ReflectionException, InstanceAlreadyExistsException, 
MBeanRegistrationException,
+                NotCompliantMBeanException, InstanceNotFoundException {
             return null;
         }
 
 
         @Override
-        public ObjectInstance createMBean(String className, ObjectName name, 
Object[] params,
-                String[] signature) throws ReflectionException, 
InstanceAlreadyExistsException,
-                MBeanRegistrationException, NotCompliantMBeanException {
+        public ObjectInstance createMBean(String className, ObjectName name, 
Object[] params, String[] signature)
+                throws ReflectionException, InstanceAlreadyExistsException, 
MBeanRegistrationException,
+                NotCompliantMBeanException {
             return null;
         }
 
 
         @Override
-        public ObjectInstance createMBean(String className, ObjectName name, 
ObjectName loaderName,
-                Object[] params, String[] signature) throws 
ReflectionException,
-                InstanceAlreadyExistsException, MBeanRegistrationException,
-                NotCompliantMBeanException, InstanceNotFoundException {
+        public ObjectInstance createMBean(String className, ObjectName name, 
ObjectName loaderName, Object[] params,
+                String[] signature) throws ReflectionException, 
InstanceAlreadyExistsException,
+                MBeanRegistrationException, NotCompliantMBeanException, 
InstanceNotFoundException {
             return null;
         }
 
 
         @Override
         public ObjectInstance registerMBean(Object object, ObjectName name)
-                throws InstanceAlreadyExistsException, 
MBeanRegistrationException,
-                NotCompliantMBeanException {
+                throws InstanceAlreadyExistsException, 
MBeanRegistrationException, NotCompliantMBeanException {
             return null;
         }
 
 
         @Override
-        public void unregisterMBean(ObjectName name)
-                throws InstanceNotFoundException, MBeanRegistrationException {
+        public void unregisterMBean(ObjectName name) throws 
InstanceNotFoundException, MBeanRegistrationException {
 
         }
 
@@ -225,8 +217,8 @@ public class NoDescriptorRegistry extends Registry {
 
 
         @Override
-        public Object getAttribute(ObjectName name, String attribute) throws 
MBeanException,
-                AttributeNotFoundException, InstanceNotFoundException, 
ReflectionException {
+        public Object getAttribute(ObjectName name, String attribute)
+                throws MBeanException, AttributeNotFoundException, 
InstanceNotFoundException, ReflectionException {
             return null;
         }
 
@@ -239,9 +231,8 @@ public class NoDescriptorRegistry extends Registry {
 
 
         @Override
-        public void setAttribute(ObjectName name, Attribute attribute)
-                throws InstanceNotFoundException, AttributeNotFoundException,
-                InvalidAttributeValueException, MBeanException, 
ReflectionException {
+        public void setAttribute(ObjectName name, Attribute attribute) throws 
InstanceNotFoundException,
+                AttributeNotFoundException, InvalidAttributeValueException, 
MBeanException, ReflectionException {
 
         }
 
@@ -254,8 +245,7 @@ public class NoDescriptorRegistry extends Registry {
 
 
         @Override
-        public Object invoke(ObjectName name, String operationName, Object[] 
params,
-                String[] signature)
+        public Object invoke(ObjectName name, String operationName, Object[] 
params, String[] signature)
                 throws InstanceNotFoundException, MBeanException, 
ReflectionException {
             return null;
         }
@@ -274,15 +264,15 @@ public class NoDescriptorRegistry extends Registry {
 
 
         @Override
-        public void addNotificationListener(ObjectName name, 
NotificationListener listener,
-                NotificationFilter filter, Object handback) throws 
InstanceNotFoundException {
+        public void addNotificationListener(ObjectName name, 
NotificationListener listener, NotificationFilter filter,
+                Object handback) throws InstanceNotFoundException {
 
         }
 
 
         @Override
-        public void addNotificationListener(ObjectName name, ObjectName 
listener,
-                NotificationFilter filter, Object handback) throws 
InstanceNotFoundException {
+        public void addNotificationListener(ObjectName name, ObjectName 
listener, NotificationFilter filter,
+                Object handback) throws InstanceNotFoundException {
 
         }
 
@@ -295,9 +285,8 @@ public class NoDescriptorRegistry extends Registry {
 
 
         @Override
-        public void removeNotificationListener(ObjectName name, ObjectName 
listener,
-                NotificationFilter filter, Object handback)
-                throws InstanceNotFoundException, ListenerNotFoundException {
+        public void removeNotificationListener(ObjectName name, ObjectName 
listener, NotificationFilter filter,
+                Object handback) throws InstanceNotFoundException, 
ListenerNotFoundException {
 
         }
 
@@ -325,8 +314,7 @@ public class NoDescriptorRegistry extends Registry {
 
 
         @Override
-        public boolean isInstanceOf(ObjectName name, String className)
-                throws InstanceNotFoundException {
+        public boolean isInstanceOf(ObjectName name, String className) throws 
InstanceNotFoundException {
             return false;
         }
 
@@ -352,8 +340,7 @@ public class NoDescriptorRegistry extends Registry {
 
 
         @Override
-        public Object instantiate(String className, ObjectName loaderName, 
Object[] params,
-                String[] signature)
+        public Object instantiate(String className, ObjectName loaderName, 
Object[] params, String[] signature)
                 throws ReflectionException, MBeanException, 
InstanceNotFoundException {
             return null;
         }
@@ -381,8 +368,7 @@ public class NoDescriptorRegistry extends Registry {
 
 
         @Override
-        public ClassLoader getClassLoaderFor(ObjectName mbeanName)
-                throws InstanceNotFoundException {
+        public ClassLoader getClassLoaderFor(ObjectName mbeanName) throws 
InstanceNotFoundException {
             return null;
         }
 
diff --git a/java/org/apache/tomcat/util/modeler/NotificationInfo.java 
b/java/org/apache/tomcat/util/modeler/NotificationInfo.java
index 2b78acb665..f62e4ea361 100644
--- a/java/org/apache/tomcat/util/modeler/NotificationInfo.java
+++ b/java/org/apache/tomcat/util/modeler/NotificationInfo.java
@@ -23,8 +23,9 @@ import java.util.concurrent.locks.ReentrantReadWriteLock;
 import javax.management.MBeanNotificationInfo;
 
 /**
- * <p>Internal configuration information for a <code>Notification</code>
- * descriptor.</p>
+ * <p>
+ * Internal configuration information for a <code>Notification</code> 
descriptor.
+ * </p>
  *
  * @author Craig R. McClanahan
  */
@@ -36,8 +37,8 @@ public class NotificationInfo extends FeatureInfo {
 
 
     /**
-     * The <code>ModelMBeanNotificationInfo</code> object that corresponds
-     * to this <code>NotificationInfo</code> instance.
+     * The <code>ModelMBeanNotificationInfo</code> object that corresponds to 
this <code>NotificationInfo</code>
+     * instance.
      */
     transient MBeanNotificationInfo info = null;
     protected String[] notifTypes = new String[0];
@@ -110,8 +111,9 @@ public class NotificationInfo extends FeatureInfo {
 
 
     /**
-     * Create and return a <code>ModelMBeanNotificationInfo</code> object that
-     * corresponds to the attribute described by this instance.
+     * Create and return a <code>ModelMBeanNotificationInfo</code> object that 
corresponds to the attribute described by
+     * this instance.
+     *
      * @return the notification info
      */
     public MBeanNotificationInfo createNotificationInfo() {
@@ -122,11 +124,10 @@ public class NotificationInfo extends FeatureInfo {
         }
 
         // Create and return a new information object
-        info = new MBeanNotificationInfo
-            (getNotifTypes(), getName(), getDescription());
-        //Descriptor descriptor = info.getDescriptor();
-        //addFields(descriptor);
-        //info.setDescriptor(descriptor);
+        info = new MBeanNotificationInfo(getNotifTypes(), getName(), 
getDescription());
+        // Descriptor descriptor = info.getDescriptor();
+        // addFields(descriptor);
+        // info.setDescriptor(descriptor);
         return info;
 
     }
diff --git a/java/org/apache/tomcat/util/modeler/OperationInfo.java 
b/java/org/apache/tomcat/util/modeler/OperationInfo.java
index c92cc0b4df..879b8e96e0 100644
--- a/java/org/apache/tomcat/util/modeler/OperationInfo.java
+++ b/java/org/apache/tomcat/util/modeler/OperationInfo.java
@@ -25,8 +25,9 @@ import javax.management.MBeanOperationInfo;
 import javax.management.MBeanParameterInfo;
 
 /**
- * <p>Internal configuration information for an <code>Operation</code>
- * descriptor.</p>
+ * <p>
+ * Internal configuration information for an <code>Operation</code> descriptor.
+ * </p>
  *
  * @author Craig R. McClanahan
  */
@@ -55,9 +56,8 @@ public class OperationInfo extends FeatureInfo {
     // ------------------------------------------------------------- Properties
 
     /**
-     * @return the "impact" of this operation, which should be
-     *  a (case-insensitive) string value "ACTION", "ACTION_INFO",
-     *  "INFO", or "UNKNOWN".
+     * @return the "impact" of this operation, which should be a 
(case-insensitive) string value "ACTION",
+     *             "ACTION_INFO", "INFO", or "UNKNOWN".
      */
     public String getImpact() {
         return this.impact;
@@ -73,8 +73,7 @@ public class OperationInfo extends FeatureInfo {
 
 
     /**
-     * @return the role of this operation ("getter", "setter", "operation", or
-     * "constructor").
+     * @return the role of this operation ("getter", "setter", "operation", or 
"constructor").
      */
     public String getRole() {
         return this.role;
@@ -86,11 +85,10 @@ public class OperationInfo extends FeatureInfo {
 
 
     /**
-     * @return the fully qualified Java class name of the return type for this
-     * operation.
+     * @return the fully qualified Java class name of the return type for this 
operation.
      */
     public String getReturnType() {
-        if(type == null) {
+        if (type == null) {
             type = "void";
         }
         return type;
@@ -138,8 +136,9 @@ public class OperationInfo extends FeatureInfo {
 
 
     /**
-     * Create and return a <code>ModelMBeanOperationInfo</code> object that
-     * corresponds to the attribute described by this instance.
+     * Create and return a <code>ModelMBeanOperationInfo</code> object that 
corresponds to the attribute described by
+     * this instance.
+     *
      * @return the operation info
      */
     MBeanOperationInfo createOperationInfo() {
@@ -156,17 +155,15 @@ public class OperationInfo extends FeatureInfo {
                 impact = MBeanOperationInfo.INFO;
             }
 
-            info = new MBeanOperationInfo(getName(), getDescription(),
-                                          getMBeanParameterInfo(),
-                                          getReturnType(), impact);
+            info = new MBeanOperationInfo(getName(), getDescription(), 
getMBeanParameterInfo(), getReturnType(),
+                    impact);
         }
-        return (MBeanOperationInfo)info;
+        return (MBeanOperationInfo) info;
     }
 
     protected MBeanParameterInfo[] getMBeanParameterInfo() {
         ParameterInfo[] params = getSignature();
-        MBeanParameterInfo[] parameters =
-            new MBeanParameterInfo[params.length];
+        MBeanParameterInfo[] parameters = new 
MBeanParameterInfo[params.length];
         for (int i = 0; i < params.length; i++) {
             parameters[i] = params[i].createParameterInfo();
         }
diff --git a/java/org/apache/tomcat/util/modeler/ParameterInfo.java 
b/java/org/apache/tomcat/util/modeler/ParameterInfo.java
index 09730cc4df..71402fb591 100644
--- a/java/org/apache/tomcat/util/modeler/ParameterInfo.java
+++ b/java/org/apache/tomcat/util/modeler/ParameterInfo.java
@@ -20,8 +20,9 @@ package org.apache.tomcat.util.modeler;
 import javax.management.MBeanParameterInfo;
 
 /**
- * <p>Internal configuration information for a <code>Parameter</code>
- * descriptor.</p>
+ * <p>
+ * Internal configuration information for a <code>Parameter</code> descriptor.
+ * </p>
  *
  * @author Craig R. McClanahan
  */
@@ -38,17 +39,17 @@ public class ParameterInfo extends FeatureInfo {
     }
 
     /**
-     * Create and return a <code>MBeanParameterInfo</code> object that
-     * corresponds to the parameter described by this instance.
+     * Create and return a <code>MBeanParameterInfo</code> object that 
corresponds to the parameter described by this
+     * instance.
+     *
      * @return a parameter info
      */
     public MBeanParameterInfo createParameterInfo() {
 
         // Return our cached information (if any)
         if (info == null) {
-            info = new MBeanParameterInfo
-                (getName(), getType(), getDescription());
+            info = new MBeanParameterInfo(getName(), getType(), 
getDescription());
         }
-        return (MBeanParameterInfo)info;
+        return (MBeanParameterInfo) info;
     }
 }
diff --git a/java/org/apache/tomcat/util/modeler/Registry.java 
b/java/org/apache/tomcat/util/modeler/Registry.java
index d04af64a49..53d8f3eeb6 100644
--- a/java/org/apache/tomcat/util/modeler/Registry.java
+++ b/java/org/apache/tomcat/util/modeler/Registry.java
@@ -43,10 +43,8 @@ import org.apache.tomcat.util.modeler.modules.ModelerSource;
 import org.apache.tomcat.util.res.StringManager;
 
 /**
- * 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 class is itself a mbean.
+ * 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 class is itself a mbean.
  *
  * @author Craig R. McClanahan
  * @author Costin Manolache
@@ -62,40 +60,37 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
     // Support for the factory methods
 
     /**
-     * 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;
 
     // Per registry fields
 
     /**
-     * The <code>MBeanServer</code> instance that we will use to register
-     * management beans.
+     * The <code>MBeanServer</code> instance that we will use to register 
management beans.
      */
     private volatile MBeanServer server = null;
     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
      */
-    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
@@ -109,13 +104,13 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
     // Factories
 
     /**
-     * Factory method to create (if necessary) and return our
-     * <code>Registry</code> instance.
+     * Factory method to create (if necessary) and return our 
<code>Registry</code> instance.
      *
-     * @param key Unused
+     * @param key   Unused
      * @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) {
@@ -131,11 +126,12 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
 
 
     /**
-     * Factory method to create (if necessary) and return our
-     * <code>Registry</code> instance.
+     * Factory method to create (if necessary) and return our 
<code>Registry</code> instance.
      *
      * @param guard Prevent access to the registry by untrusted components
+     *
      * @return the registry
+     *
      * @throws IllegalArgumentException if the guard object does not allow 
access
      */
     public static synchronized Registry getRegistry(Object guard) {
@@ -162,8 +158,7 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
     // -------------------- Generic methods --------------------
 
     /**
-     * Lifecycle method - clean up the registry metadata. Called from
-     * resetMetadata().
+     * Lifecycle method - clean up the registry metadata. Called from 
resetMetadata().
      *
      * @since 1.1
      */
@@ -176,28 +171,21 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
 
 
     /**
-     * Register a bean by creating a modeler mbean and adding it to the
-     * MBeanServer.
-     * If metadata is not loaded, we'll look up and read a file named
-     * "mbeans-descriptors.ser" or "mbeans-descriptors.xml" in the same package
-     * or parent.
-     * If the bean is an instance of DynamicMBean. its metadata will be
-     * converted to a model mbean, and we'll wrap it so modeler services are
-     * supported.
-     * If the metadata is still not found, introspection will be used to 
extract
-     * it automatically.
-     * If a 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
+     * Register a bean by creating a modeler mbean and adding it to the 
MBeanServer. If metadata is not loaded, we'll
+     * look up and read a file named "mbeans-descriptors.ser" or 
"mbeans-descriptors.xml" in the same package or parent.
+     * If the bean is an instance of DynamicMBean. its metadata will be 
converted to a model mbean, and we'll wrap it so
+     * modeler services are supported. If the metadata is still not found, 
introspection will be used to extract it
+     * automatically. If a 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.
      *
-     * @param bean Object to be registered
+     * @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.
+     * @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.
+     *
      * @throws Exception if a registration error occurred
+     *
      * @since 1.1
      */
     @Override
@@ -207,8 +195,7 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
 
 
     /**
-     * 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
      *
@@ -225,18 +212,18 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
 
 
     /**
-     * Invoke an operation on a list of mbeans. Can be used to implement
-     * lifecycle operations.
+     * Invoke an operation on a list of mbeans. Can be used to implement 
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 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
      * @throws Exception Error invoking operation
+     *
      * @since 1.1
      */
     @Override
-    public void invoke(List<ObjectName> mbeans, String operation, boolean 
failFirst)
-            throws Exception {
+    public void invoke(List<ObjectName> mbeans, String operation, boolean 
failFirst) throws Exception {
 
         if (mbeans == null) {
             return;
@@ -263,12 +250,13 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
     // -------------------- 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
+     * @param name   Type of the notification
+     *
      * @return A unique id for the domain:name combination
+     *
      * @since 1.1
      */
     @Override
@@ -276,7 +264,7 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
         if (domain == null) {
             domain = "";
         }
-        Hashtable<String, Integer> domainTable = 
idDomains.computeIfAbsent(domain, k -> new Hashtable<>());
+        Hashtable<String,Integer> domainTable = 
idDomains.computeIfAbsent(domain, k -> new Hashtable<>());
         if (name == null) {
             name = "";
         }
@@ -297,10 +285,10 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
     // 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
      */
     public void addManagedBean(ManagedBean bean) {
@@ -313,12 +301,14 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
 
 
     /**
-     * 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.
      *
-     * @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.
      * @return the managed bean
+     *
      * @since 1.0
      */
     public ManagedBean findManagedBean(String name) {
@@ -336,9 +326,11 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
     /**
      * Get the type of an attribute of the object, from the metadata.
      *
-     * @param oname The bean name
+     * @param oname   The bean name
      * @param attName The attribute name
+     *
      * @return null if metadata about the attribute is not found
+     *
      * @since 1.1
      */
     public String getType(ObjectName oname, String attName) {
@@ -365,8 +357,9 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
     /**
      * Find the operation info for a method
      *
-     * @param oname The bean name
+     * @param oname  The bean name
      * @param opName The operation name
+     *
      * @return the operation info for the specified operation
      */
     public MBeanOperationInfo getMethodInfo(ObjectName oname, String opName) {
@@ -389,15 +382,16 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
     /**
      * Find the operation info for a method.
      *
-     * @param oname The bean name
-     * @param opName The operation name
+     * @param oname    The bean name
+     * @param opName   The operation name
      * @param argCount The number of arguments to the method
+     *
      * @return the operation info for the specified operation
+     *
      * @throws InstanceNotFoundException If the object name is not bound to an 
MBean
      */
     public MBeanOperationInfo getMethodInfo(ObjectName oname, String opName, 
int argCount)
-        throws InstanceNotFoundException
-    {
+            throws InstanceNotFoundException {
         MBeanInfo info;
         try {
             info = getMBeanServer().getMBeanInfo(oname);
@@ -409,8 +403,7 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
         }
         MBeanOperationInfo[] attInfo = info.getOperations();
         for (MBeanOperationInfo mBeanOperationInfo : attInfo) {
-            if (opName.equals(mBeanOperationInfo.getName())
-                    && argCount == mBeanOperationInfo.getSignature().length) {
+            if (opName.equals(mBeanOperationInfo.getName()) && argCount == 
mBeanOperationInfo.getSignature().length) {
                 return mBeanOperationInfo;
             }
         }
@@ -418,8 +411,8 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
     }
 
     /**
-     * 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
      */
@@ -435,8 +428,7 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
 
 
     /**
-     * Factory method to create (if necessary) and return our
-     * <code>MBeanServer</code> instance.
+     * Factory method to create (if necessary) and return our 
<code>MBeanServer</code> instance.
      *
      * @return the MBean server
      */
@@ -465,14 +457,15 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
     /**
      * Find or load metadata.
      *
-     * @param bean The bean
+     * @param bean      The bean
      * @param beanClass The bean class
-     * @param type The registry type
+     * @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 {
+    public ManagedBean findManagedBean(Object bean, Class<?> beanClass, String 
type) throws Exception {
 
         if (bean != null && beanClass == null) {
             beanClass = bean.getClass();
@@ -518,12 +511,12 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
 
 
     /**
-     * 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
+     * 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
      *
-     * @param type Fully qualified class name of the resulting value
+     * @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) {
@@ -552,9 +545,11 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
      * Load descriptors.
      *
      * @param sourceType The source type
-     * @param source The bean
-     * @param param A type to load
+     * @param source     The bean
+     * @param param      A type to load
+     *
      * @return List of descriptors
+     *
      * @throws Exception Error loading descriptors
      */
     public List<ObjectName> load(String sourceType, Object source, String 
param) throws Exception {
@@ -606,9 +601,10 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
     /**
      * Register a component
      *
-     * @param bean The bean
+     * @param bean  The bean
      * @param oname The object name
-     * @param type The registry type
+     * @param type  The registry type
+     *
      * @throws Exception Error registering component
      */
     public void registerComponent(Object bean, ObjectName oname, String type) 
throws Exception {
@@ -647,8 +643,7 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
 
 
     /**
-     * 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
@@ -684,8 +679,7 @@ public class Registry implements RegistryMBean, 
MBeanRegistration {
 
 
     /**
-     * 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) {
diff --git a/java/org/apache/tomcat/util/modeler/RegistryMBean.java 
b/java/org/apache/tomcat/util/modeler/RegistryMBean.java
index 36351f906a..9e82cafb91 100644
--- a/java/org/apache/tomcat/util/modeler/RegistryMBean.java
+++ b/java/org/apache/tomcat/util/modeler/RegistryMBean.java
@@ -22,12 +22,9 @@ import java.util.List;
 import javax.management.ObjectName;
 
 /**
- * Interface for modeler MBeans.
- * This is the main entry point into modeler. It provides methods to create
- * and manipulate model mbeans and simplify their use.
- * Starting with version 1.1, this is no longer a singleton and the static
- * methods are strongly deprecated. In a container environment we can expect
- * different applications to use different registries.
+ * Interface for modeler MBeans. This is the main entry point into modeler. It 
provides methods to create and manipulate
+ * model mbeans and simplify their use. Starting with version 1.1, this is no 
longer a singleton and the static methods
+ * are strongly deprecated. In a container environment we can expect different 
applications to use different registries.
  *
  * @author Craig R. McClanahan
  * @author Costin Manolache
@@ -39,47 +36,36 @@ public interface RegistryMBean {
     /**
      * Invoke an operation on a set of mbeans.
      *
-     * @param mbeans List of ObjectNames
+     * @param mbeans    List of ObjectNames
      * @param operation Operation to perform. Typically "init" "start" "stop" 
or "destroy"
-     * @param failFirst Behavior in case of exceptions - if false we'll ignore
-     *      errors
+     * @param failFirst Behavior in case of exceptions - if false we'll ignore 
errors
+     *
      * @throws Exception Error invoking operation
      */
-    void invoke(List<ObjectName> mbeans, String operation, boolean failFirst)
-            throws Exception;
+    void invoke(List<ObjectName> mbeans, String operation, boolean failFirst) 
throws Exception;
 
     /**
-     * Register a bean by creating a modeler mbean and adding it to the
-     * MBeanServer.
-     * If metadata is not loaded, we'll look up and read a file named
-     * "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 metadata is still not found, introspection will be used to 
extract
-     * it automatically.
-     * If a 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.
-     *
+     * Register a bean by creating a modeler mbean and adding it to the 
MBeanServer. If metadata is not loaded, we'll
+     * look up and read a file named "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 metadata is still not 
found, introspection will be used to extract
+     * it automatically. If a 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.
      *
-     * @param bean Object to be registered
+     * @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.
+     * @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.
+     *
      * @throws Exception Error registering MBean
      *
      * @since 1.1
      */
-    void registerComponent(Object bean, String oname, String type)
-           throws Exception;
+    void registerComponent(Object bean, String oname, String type) throws 
Exception;
 
     /**
-     * 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 The name used by the bean
      *
@@ -88,22 +74,23 @@ public interface RegistryMBean {
     void unregisterComponent(String oname);
 
 
-     /**
-      * 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
-      * @return  A unique id for the domain:name combination
-      * @since 1.1
-      */
+    /**
+     * 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
+     *
+     * @return A unique id for the domain:name combination
+     *
+     * @since 1.1
+     */
     int getId(String domain, String name);
 
 
     /**
-     * Reset all metadata cached by this registry. Should be called
-     * to support reloading. Existing mbeans will not be affected or modified.
-     * It will be called automatically if the Registry is unregistered.
+     * Reset all metadata cached by this registry. Should be called to support 
reloading. Existing mbeans will not be
+     * affected or modified. It will be called automatically if the Registry 
is unregistered.
+     *
      * @since 1.1
      */
     void stop();
diff --git 
a/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java
 
b/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java
index 2c67f88d71..59bd76df49 100644
--- 
a/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java
+++ 
b/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java
@@ -29,10 +29,8 @@ import org.apache.tomcat.util.digester.Digester;
 import org.apache.tomcat.util.modeler.ManagedBean;
 import org.apache.tomcat.util.modeler.Registry;
 
-public class MbeansDescriptorsDigesterSource extends ModelerSource
-{
-    private static final Log log =
-            LogFactory.getLog(MbeansDescriptorsDigesterSource.class);
+public class MbeansDescriptorsDigesterSource extends ModelerSource {
+    private static final Log log = 
LogFactory.getLog(MbeansDescriptorsDigesterSource.class);
     private static final Object dLock = new Object();
 
     private Registry registry;
@@ -44,105 +42,68 @@ public class MbeansDescriptorsDigesterSource extends 
ModelerSource
         Digester digester = new Digester();
         digester.setNamespaceAware(false);
         digester.setValidating(false);
-        URL url = Registry.getRegistry(null).getClass().getResource
-            ("/org/apache/tomcat/util/modeler/mbeans-descriptors.dtd");
+        URL url = Registry.getRegistry(null).getClass()
+                
.getResource("/org/apache/tomcat/util/modeler/mbeans-descriptors.dtd");
         if (url != null) {
-            digester.register
-            ("-//Apache Software Foundation//DTD Model MBeans Configuration 
File",
-                    url.toString());
+            digester.register("-//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");
-        digester.addSetProperties
-            ("mbeans-descriptors/mbean");
-        digester.addSetNext
-            ("mbeans-descriptors/mbean",
-                "add",
-            "java.lang.Object");
-
-        digester.addObjectCreate
-            ("mbeans-descriptors/mbean/attribute",
-            "org.apache.tomcat.util.modeler.AttributeInfo");
-        digester.addSetProperties
-            ("mbeans-descriptors/mbean/attribute");
-        digester.addSetNext
-            ("mbeans-descriptors/mbean/attribute",
-                "addAttribute",
-            "org.apache.tomcat.util.modeler.AttributeInfo");
-
-        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");
-        digester.addSetProperties
-            ("mbeans-descriptors/mbean/notification/descriptor/field");
-        digester.addSetNext
-            ("mbeans-descriptors/mbean/notification/descriptor/field",
-                "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");
-
-        digester.addObjectCreate
-            ("mbeans-descriptors/mbean/operation/descriptor/field",
-            "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");
-
-        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");
+        digester.addObjectCreate("mbeans-descriptors/mbean", 
"org.apache.tomcat.util.modeler.ManagedBean");
+        digester.addSetProperties("mbeans-descriptors/mbean");
+        digester.addSetNext("mbeans-descriptors/mbean", "add", 
"java.lang.Object");
+
+        digester.addObjectCreate("mbeans-descriptors/mbean/attribute", 
"org.apache.tomcat.util.modeler.AttributeInfo");
+        digester.addSetProperties("mbeans-descriptors/mbean/attribute");
+        digester.addSetNext("mbeans-descriptors/mbean/attribute", 
"addAttribute",
+                "org.apache.tomcat.util.modeler.AttributeInfo");
+
+        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");
+        
digester.addSetProperties("mbeans-descriptors/mbean/notification/descriptor/field");
+        
digester.addSetNext("mbeans-descriptors/mbean/notification/descriptor/field", 
"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");
+
+        
digester.addObjectCreate("mbeans-descriptors/mbean/operation/descriptor/field",
+                "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");
+
+        
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;
+        this.registry = reg;
     }
 
 
-    public void setSource( Object source ) {
-        this.source=source;
+    public void setSource(Object source) {
+        this.source = source;
     }
 
     @Override
-    public List<ObjectName> loadDescriptors( Registry registry, String type,
-            Object source) throws Exception {
+    public List<ObjectName> loadDescriptors(Registry registry, String type, 
Object source) throws Exception {
         setRegistry(registry);
         setSource(source);
         execute();
@@ -157,7 +118,7 @@ public class MbeansDescriptorsDigesterSource extends 
ModelerSource
         InputStream stream = (InputStream) source;
 
         List<ManagedBean> loadedMbeans = new ArrayList<>();
-        synchronized(dLock) {
+        synchronized (dLock) {
             if (digester == null) {
                 digester = createDigester();
             }
diff --git 
a/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsIntrospectionSource.java
 
b/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsIntrospectionSource.java
index 2132f05a96..9e959a092c 100644
--- 
a/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsIntrospectionSource.java
+++ 
b/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsIntrospectionSource.java
@@ -38,8 +38,7 @@ import org.apache.tomcat.util.modeler.ParameterInfo;
 import org.apache.tomcat.util.modeler.Registry;
 import org.apache.tomcat.util.res.StringManager;
 
-public class MbeansDescriptorsIntrospectionSource extends ModelerSource
-{
+public class MbeansDescriptorsIntrospectionSource extends ModelerSource {
     private static final Log log = 
LogFactory.getLog(MbeansDescriptorsIntrospectionSource.class);
     private static final StringManager sm = 
StringManager.getManager(MbeansDescriptorsIntrospectionSource.class);
 
@@ -48,7 +47,7 @@ public class MbeansDescriptorsIntrospectionSource extends 
ModelerSource
     private final List<ObjectName> mbeans = new ArrayList<>();
 
     public void setRegistry(Registry reg) {
-        this.registry=reg;
+        this.registry = reg;
     }
 
     /**
@@ -56,17 +55,16 @@ public class MbeansDescriptorsIntrospectionSource extends 
ModelerSource
      *
      * @param type The type
      */
-    public void setType( String type ) {
-       this.type=type;
+    public void setType(String type) {
+        this.type = type;
     }
 
-    public void setSource( Object source ) {
-        this.source=source;
+    public void setSource(Object source) {
+        this.source = source;
     }
 
     @Override
-    public List<ObjectName> loadDescriptors(Registry registry, String type,
-            Object source) throws Exception {
+    public List<ObjectName> loadDescriptors(Registry registry, String type, 
Object source) throws Exception {
         setRegistry(registry);
         setType(type);
         setSource(source);
@@ -75,65 +73,43 @@ public class MbeansDescriptorsIntrospectionSource extends 
ModelerSource
     }
 
     public void execute() throws Exception {
-        if( registry==null ) {
-            registry=Registry.getRegistry(null);
+        if (registry == null) {
+            registry = Registry.getRegistry(null);
         }
         try {
-            ManagedBean managed = createManagedBean(registry, null,
-                    (Class<?>)source, type);
-            if( managed==null ) {
+            ManagedBean managed = createManagedBean(registry, null, (Class<?>) 
source, type);
+            if (managed == null) {
                 return;
             }
-            managed.setName( type );
+            managed.setName(type);
 
             registry.addManagedBean(managed);
 
-        } catch( Exception ex ) {
+        } catch (Exception ex) {
             log.error(sm.getString("modules.readDescriptorsError"), ex);
         }
     }
 
 
-
     // ------------ Implementation for non-declared introspection classes
 
     private static final Map<String,String> specialMethods = new HashMap<>();
     static {
-        specialMethods.put( "preDeregister", "");
-        specialMethods.put( "postDeregister", "");
+        specialMethods.put("preDeregister", "");
+        specialMethods.put("postDeregister", "");
     }
 
-    private static final Class<?>[] supportedTypes  = new Class[] {
-        Boolean.class,
-        Boolean.TYPE,
-        Byte.class,
-        Byte.TYPE,
-        Character.class,
-        Character.TYPE,
-        Short.class,
-        Short.TYPE,
-        Integer.class,
-        Integer.TYPE,
-        Long.class,
-        Long.TYPE,
-        Float.class,
-        Float.TYPE,
-        Double.class,
-        Double.TYPE,
-        String.class,
-        String[].class,
-        BigDecimal.class,
-        BigInteger.class,
-        ObjectName.class,
-        Object[].class,
-        java.io.File.class,
-    };
+    private static final Class<?>[] supportedTypes = new Class[] { 
Boolean.class, Boolean.TYPE, Byte.class, Byte.TYPE,
+            Character.class, Character.TYPE, Short.class, Short.TYPE, 
Integer.class, Integer.TYPE, Long.class,
+            Long.TYPE, Float.class, Float.TYPE, Double.class, Double.TYPE, 
String.class, String[].class,
+            BigDecimal.class, BigInteger.class, ObjectName.class, 
Object[].class, java.io.File.class, };
 
     /**
-     * Check if this class is one of the supported types.
-     * If the class is supported, returns true.  Otherwise,
-     * returns false.
+     * Check if this class is one of the supported types. If the class is 
supported, returns true. Otherwise, returns
+     * false.
+     *
      * @param ret The class to check
+     *
      * @return boolean True if class is supported
      */
     private boolean supportedType(Class<?> ret) {
@@ -146,10 +122,10 @@ public class MbeansDescriptorsIntrospectionSource extends 
ModelerSource
     }
 
     /**
-     * Check if this class conforms to JavaBeans specifications.
-     * If the class is conformant, returns true.
+     * Check if this class conforms to JavaBeans specifications. If the class 
is conformant, returns true.
      *
      * @param javaType The class to check
+     *
      * @return boolean True if the class is compatible.
      */
     private boolean isBeanCompatible(Class<?> javaType) {
@@ -160,8 +136,7 @@ public class MbeansDescriptorsIntrospectionSource extends 
ModelerSource
 
         // Anything in the java or javax package that
         // does not have a defined mapping is excluded.
-        if (javaType.getName().startsWith("java.") ||
-            javaType.getName().startsWith("javax.")) {
+        if (javaType.getName().startsWith("java.") || 
javaType.getName().startsWith("javax.")) {
             return false;
         }
 
@@ -173,10 +148,8 @@ public class MbeansDescriptorsIntrospectionSource extends 
ModelerSource
 
         // Make sure superclass is compatible
         Class<?> superClass = javaType.getSuperclass();
-        if (superClass != null &&
-            superClass != Object.class &&
-            superClass != Exception.class &&
-            superClass != Throwable.class) {
+        if (superClass != null && superClass != Object.class && superClass != 
Exception.class &&
+                superClass != Throwable.class) {
             return isBeanCompatible(superClass);
         }
         return true;
@@ -185,15 +158,14 @@ public class MbeansDescriptorsIntrospectionSource extends 
ModelerSource
     /**
      * Process the methods and extract 'attributes', methods, etc.
      *
-     * @param realClass The class to process
-     * @param attNames The attribute name (complete)
-     * @param getAttMap The readable attributes map
-     * @param setAttMap The settable attributes map
+     * @param realClass     The class to process
+     * @param attNames      The attribute name (complete)
+     * @param getAttMap     The readable attributes map
+     * @param setAttMap     The settable attributes map
      * @param invokeAttList The invokable attributes list
      */
-    private void initMethods(Class<?> realClass, Set<String> attNames,
-            Map<String,Method> getAttMap, Map<String,Method> setAttMap,
-            List<Method> invokeAttList) {
+    private void initMethods(Class<?> realClass, Set<String> attNames, 
Map<String,Method> getAttMap,
+            Map<String,Method> setAttMap, List<Method> invokeAttList) {
 
         Method[] methods = realClass.getMethods();
         for (Method method : methods) {
@@ -271,29 +243,25 @@ public class MbeansDescriptorsIntrospectionSource extends 
ModelerSource
     }
 
     /**
-     * XXX Find if the 'className' is the name of the MBean or
-     *       the real class ( I suppose first )
-     * XXX Read (optional) descriptions from a .properties, generated
-     *       from source
-     * XXX Deal with constructors
+     * XXX Find if the 'className' is the name of the MBean or the real class 
( I suppose first ) XXX Read (optional)
+     * descriptions from a .properties, generated from source XXX Deal with 
constructors
      *
-     * @param registry The Bean registry (not used)
-     * @param domain The bean domain (not used)
+     * @param registry  The Bean registry (not used)
+     * @param domain    The bean domain (not used)
      * @param realClass The class to analyze
-     * @param type The bean type
+     * @param type      The bean type
+     *
      * @return ManagedBean The create MBean
      */
-    public ManagedBean createManagedBean(Registry registry, String domain,
-                                         Class<?> realClass, String type)
-    {
+    public ManagedBean createManagedBean(Registry registry, String domain, 
Class<?> realClass, String type) {
         ManagedBean mbean = new ManagedBean();
 
 
         Set<String> attrNames = new HashSet<>();
         // key: attribute val: getter method
-        Map<String, Method> getAttMap = new HashMap<>();
+        Map<String,Method> getAttMap = new HashMap<>();
         // key: attribute val: setter method
-        Map<String, Method> setAttMap = new HashMap<>();
+        Map<String,Method> setAttMap = new HashMap<>();
         // key: operation val: invoke method
         List<Method> invokeAttList = new ArrayList<>();
 
@@ -362,10 +330,10 @@ public class MbeansDescriptorsIntrospectionSource extends 
ModelerSource
 
     // -------------------- Utils --------------------
     /**
-     * Converts the first character of the given
-     * String into lower-case.
+     * Converts the first character of the given String into lower-case.
      *
      * @param name The string to convert
+     *
      * @return String
      */
     private static String unCapitalize(String name) {
diff --git a/java/org/apache/tomcat/util/modeler/modules/ModelerSource.java 
b/java/org/apache/tomcat/util/modeler/modules/ModelerSource.java
index 6506b0c980..9d158feac7 100644
--- a/java/org/apache/tomcat/util/modeler/modules/ModelerSource.java
+++ b/java/org/apache/tomcat/util/modeler/modules/ModelerSource.java
@@ -34,11 +34,12 @@ public abstract class ModelerSource {
      * Load data, returns a list of items.
      *
      * @param registry The registry
-     * @param type The bean registry type
-     * @param source Introspected object or some other source
+     * @param type     The bean registry type
+     * @param source   Introspected object or some other source
+     *
      * @return a list of object names
+     *
      * @throws Exception Error loading descriptors
      */
-    public abstract List<ObjectName> loadDescriptors(Registry registry,
-            String type, Object source) throws Exception;
+    public abstract List<ObjectName> loadDescriptors(Registry registry, String 
type, Object source) throws Exception;
 }


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

Reply via email to