Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/Registry.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/Registry.java?rev=415811&r1=415810&r2=415811&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/Registry.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/Registry.java Tue Jun 20 14:31:42 2006 @@ -23,7 +23,6 @@ import java.io.InputStream; import java.net.URL; import java.util.ArrayList; -import java.util.Enumeration; import java.util.HashMap; import java.util.Hashtable; import java.util.Iterator; @@ -38,7 +37,6 @@ import javax.management.MBeanServerFactory; import javax.management.MalformedObjectNameException; import javax.management.ObjectName; -import javax.management.modelmbean.ModelMBean; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -73,10 +71,6 @@ * @author Costin Manolache */ public class Registry implements RegistryMBean, MBeanRegistration { - /** Experimental support for manifest-based discovery. - */ - public static String MODELER_MANIFEST="/META-INF/mbeans-descriptors.xml"; - /** * The Log instance to which we will write our log messages. */ @@ -84,7 +78,7 @@ // Support for the factory methods - /** Will be used to isolate different apps and enhance security + /** Will be used to isolate different apps and enhance security. */ private static HashMap perLoaderRegistries=null; @@ -106,19 +100,19 @@ * The set of ManagedBean instances for the beans this registry * knows about, keyed by name. */ - private HashMap<String, ManagedBean> descriptors = new HashMap<String, ManagedBean>(); + private HashMap descriptors = new HashMap(); /** List of managed byeans, keyed by class name */ - private HashMap<String, ManagedBean> descriptorsByClass = new HashMap<String, ManagedBean>(); + private HashMap descriptorsByClass = new HashMap(); // map to avoid duplicated searching or loading descriptors - private Hashtable<String, URL> searchedPaths=new Hashtable<String, URL>(); + private HashMap searchedPaths=new HashMap(); - private Object key; private Object guard; // Id - small ints to use array access. No reset on stop() + // Used for notifications private Hashtable idDomains=new Hashtable(); private Hashtable ids=new Hashtable(); @@ -160,7 +154,7 @@ localRegistry=(Registry)perLoaderRegistries.get(key); if( localRegistry == null ) { localRegistry=new Registry(); - localRegistry.key=key; +// localRegistry.key=key; localRegistry.guard=guard; perLoaderRegistries.put( key, localRegistry ); return localRegistry; @@ -184,7 +178,8 @@ return (registry); } - /** Allow containers to isolate apps. Can be called only once. + /** + * Allow containers to isolate apps. Can be called only once. * It is highly recommended you call this method if using Registry in * a container environment. The default is false for backward compatibility * @@ -199,28 +194,15 @@ // -------------------- Generic methods -------------------- - /** Set a guard object that will prevent access to this registry - * by unauthorized components - * - * @param guard - * - * @since 1.1 - */ - public void setGuard( Object guard ) { - if( this.guard!=null ) { - return; // already set, only once - } - this.guard=guard; - } - /** Lifecycle method - clean up the registry metadata. + * Called from resetMetadata(). * * @since 1.1 */ public void stop() { - descriptorsByClass = new HashMap<String, ManagedBean>(); - descriptors = new HashMap<String, ManagedBean>(); - searchedPaths=new Hashtable<String, URL>(); + descriptorsByClass = new HashMap(); + descriptors = new HashMap(); + searchedPaths=new HashMap(); } /** @@ -249,9 +231,6 @@ * descriptors file. In the case of File and URL, if the extension is ".ser" * a serialized version will be loaded. * - * Also ( experimental for now ) a ClassLoader - in which case META-INF/ will - * be used. - * * This method should be used to explicitely load metadata - but this is not * required in most cases. The registerComponent() method will find metadata * in the same pacakge. @@ -259,13 +238,7 @@ * @param source */ public void loadMetadata(Object source ) throws Exception { - if( source instanceof ClassLoader ) { - loadMetaInfDescriptors((ClassLoader)source); - return; - } else { - loadDescriptors( null, source, null ); - } - + loadDescriptors( null, source, null ); } /** Register a bean by creating a modeler mbean and adding it to the @@ -411,11 +384,9 @@ */ public void addManagedBean(ManagedBean bean) { // XXX Use group + name - synchronized(descriptors) { - descriptors.put(bean.getName(), bean); - if( bean.getType() != null ) { - descriptorsByClass.put( bean.getType(), bean ); - } + descriptors.put(bean.getName(), bean); + if( bean.getType() != null ) { + descriptorsByClass.put( bean.getType(), bean ); } } @@ -430,12 +401,10 @@ */ public ManagedBean findManagedBean(String name) { // XXX Group ?? Use Group + Type - synchronized(descriptors) { - ManagedBean mb= descriptors.get(name); - if( mb==null ) - mb=descriptorsByClass.get(name); - return mb; - } + ManagedBean mb=((ManagedBean) descriptors.get(name)); + if( mb==null ) + mb=(ManagedBean)descriptorsByClass.get(name); + return mb; } /** @@ -445,9 +414,7 @@ * @since 1.0 */ public String[] findManagedBeans() { - synchronized(descriptors) { - return ((String[]) descriptors.keySet().toArray(new String[0])); - } + return ((String[]) descriptors.keySet().toArray(new String[0])); } @@ -462,15 +429,13 @@ public String[] findManagedBeans(String group) { ArrayList results = new ArrayList(); - synchronized(descriptors) { - Iterator<ManagedBean> items = descriptors.values().iterator(); - while (items.hasNext()) { - ManagedBean item = items.next(); - if ((group == null) && (item.getGroup() == null)) { - results.add(item.getName()); - } else if (group.equals(item.getGroup())) { - results.add(item.getName()); - } + Iterator items = descriptors.values().iterator(); + while (items.hasNext()) { + ManagedBean item = (ManagedBean) items.next(); + if ((group == null) && (item.getGroup() == null)) { + results.add(item.getName()); + } else if (group.equals(item.getGroup())) { + results.add(item.getName()); } } String values[] = new String[results.size()]; @@ -487,10 +452,8 @@ */ public void removeManagedBean(ManagedBean bean) { // TODO: change this to use group/name - synchronized(descriptors) { - descriptors.remove(bean.getName()); - descriptorsByClass.remove( bean.getType()); - } + descriptors.remove(bean.getName()); + descriptorsByClass.remove( bean.getType()); } // -------------------- Deprecated 1.0 methods -------------------- @@ -829,7 +792,7 @@ ManagedBean managed = findManagedBean(bean.getClass(), type); // The real mbean is created and registered - ModelMBean mbean = managed.createMBean(bean); + DynamicMBean mbean = managed.createMBean(bean); if( getMBeanServer().isRegistered( oname )) { if( log.isDebugEnabled()) { @@ -850,7 +813,7 @@ * * @param packageName */ - public synchronized void loadDescriptors( String packageName, ClassLoader classLoader ) { + public void loadDescriptors( String packageName, ClassLoader classLoader ) { String res=packageName.replace( '.', '/'); if( log.isTraceEnabled() ) { @@ -910,25 +873,6 @@ } } - /** Discover all META-INF/modeler.xml files in classpath and register - * the components - * - * @since EXPERIMENTAL - */ - private void loadMetaInfDescriptors(ClassLoader cl) { - try { - Enumeration en=cl.getResources(MODELER_MANIFEST); - while( en.hasMoreElements() ) { - URL url=(URL)en.nextElement(); - InputStream is=url.openStream(); - if( log.isDebugEnabled()) log.debug("Loading " + url); - loadDescriptors("MbeansDescriptorsDigesterSource", is, null ); - } - } catch( Exception ex ) { - ex.printStackTrace(); - } - } - /** Lookup the component descriptor in the package and * in the parent packages. * @@ -1072,12 +1016,6 @@ } } - public List loadMBeans( Object source ) - throws Exception - { - return loadMBeans( source, null ); - } - /** * Load the registry from a cached .ser file. This is typically 2-3 times
Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDOMSource.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDOMSource.java?rev=415811&r1=415810&r2=415811&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDOMSource.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDOMSource.java Tue Jun 20 14:31:42 2006 @@ -25,8 +25,6 @@ import org.apache.commons.logging.LogFactory; import org.apache.tomcat.util.DomUtil; import org.apache.tomcat.util.modeler.AttributeInfo; -import org.apache.tomcat.util.modeler.ConstructorInfo; -import org.apache.tomcat.util.modeler.FieldInfo; import org.apache.tomcat.util.modeler.ManagedBean; import org.apache.tomcat.util.modeler.NotificationInfo; import org.apache.tomcat.util.modeler.OperationInfo; @@ -116,7 +114,7 @@ Node firstN; // Process descriptor subnode - Node mbeanDescriptorN = + /*Node mbeanDescriptorN = DomUtil.getChild(mbeanN, "descriptor"); if (mbeanDescriptorN != null) { Node firstFieldN = @@ -127,7 +125,7 @@ DomUtil.setAttributes(fi, fieldN); managed.addField(fi); } - } + }*/ // process attribute nodes firstN=DomUtil.getChild( mbeanN, "attribute"); @@ -140,7 +138,7 @@ DomUtil.setAttributes(ai, descN); // Process descriptor subnode - Node descriptorN = + /*Node descriptorN = DomUtil.getChild(descN, "descriptor"); if (descriptorN != null) { Node firstFieldN = @@ -152,6 +150,7 @@ ai.addField(fi); } } + */ // Add this info to our managed bean info managed.addAttribute( ai ); @@ -162,6 +161,7 @@ } // process constructor nodes + /* firstN=DomUtil.getChild( mbeanN, "constructor"); for (Node descN = firstN; descN != null; descN = DomUtil.getNext( descN )) { @@ -200,7 +200,7 @@ log.trace("Create constructor " + ci); } - } + }*/ // process notification nodes firstN=DomUtil.getChild( mbeanN, "notification"); @@ -213,7 +213,7 @@ DomUtil.setAttributes(ni, descN); // Process descriptor subnode - Node firstDescriptorN = + /*Node firstDescriptorN = DomUtil.getChild(descN, "descriptor"); if (firstDescriptorN != null) { Node firstFieldN = @@ -224,7 +224,7 @@ DomUtil.setAttributes(fi, fieldN); ni.addField(fi); } - } + }*/ // Process notification-type subnodes Node firstParamN=DomUtil.getChild( descN, "notification-type"); @@ -254,7 +254,7 @@ DomUtil.setAttributes(oi, descN); // Process descriptor subnode - Node firstDescriptorN = + /*Node firstDescriptorN = DomUtil.getChild(descN, "descriptor"); if (firstDescriptorN != null) { Node firstFieldN = @@ -265,7 +265,7 @@ DomUtil.setAttributes(fi, fieldN); oi.addField(fi); } - } + }*/ // Process parameter subnodes Node firstParamN=DomUtil.getChild( descN, "parameter"); Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java?rev=415811&r1=415810&r2=415811&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsDigesterSource.java Tue Jun 20 14:31:42 2006 @@ -70,7 +70,7 @@ "addAttribute", "org.apache.tomcat.util.modeler.AttributeInfo"); - digester.addObjectCreate + /*digester.addObjectCreate ("mbeans-descriptors/mbean/attribute/descriptor/field", "org.apache.tomcat.util.modeler.FieldInfo"); digester.addSetProperties @@ -119,7 +119,7 @@ ("mbeans-descriptors/mbean/descriptor/field", "addField", "org.apache.tomcat.util.modeler.FieldInfo"); - + */ digester.addObjectCreate ("mbeans-descriptors/mbean/notification", "org.apache.tomcat.util.modeler.NotificationInfo"); Modified: tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsIntrospectionSource.java URL: http://svn.apache.org/viewvc/tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsIntrospectionSource.java?rev=415811&r1=415810&r2=415811&view=diff ============================================================================== --- tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsIntrospectionSource.java (original) +++ tomcat/tc6.0.x/trunk/java/org/apache/tomcat/util/modeler/modules/MbeansDescriptorsIntrospectionSource.java Tue Jun 20 14:31:42 2006 @@ -16,20 +16,8 @@ package org.apache.tomcat.util.modeler.modules; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.tomcat.util.modeler.AttributeInfo; -import org.apache.tomcat.util.modeler.ConstructorInfo; -import org.apache.tomcat.util.modeler.ManagedBean; -import org.apache.tomcat.util.modeler.OperationInfo; -import org.apache.tomcat.util.modeler.ParameterInfo; -import org.apache.tomcat.util.modeler.Registry; - -import javax.management.ObjectName; - import java.lang.reflect.Method; import java.lang.reflect.Modifier; -import java.lang.reflect.Constructor; import java.math.BigDecimal; import java.math.BigInteger; import java.util.ArrayList; @@ -37,6 +25,16 @@ import java.util.Hashtable; import java.util.List; +import javax.management.ObjectName; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.tomcat.util.modeler.AttributeInfo; +import org.apache.tomcat.util.modeler.ManagedBean; +import org.apache.tomcat.util.modeler.OperationInfo; +import org.apache.tomcat.util.modeler.ParameterInfo; +import org.apache.tomcat.util.modeler.Registry; + public class MbeansDescriptorsIntrospectionSource extends ModelerSource { private static Log log = LogFactory.getLog(MbeansDescriptorsIntrospectionSource.class); @@ -363,7 +361,7 @@ } } - Constructor[] constructors = realClass.getConstructors(); + /*Constructor[] constructors = realClass.getConstructors(); for(int i=0;i<constructors.length;i++) { ConstructorInfo info = new ConstructorInfo(); String className = realClass.getName(); @@ -383,6 +381,7 @@ } mbean.addConstructor(info); } + */ if( log.isDebugEnabled()) log.debug("Setting name: " + type ); --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
