[Mc4j-cvs] SF.net SVN: mc4j:[629] trunk/mc4j/modules/ems
Brought to you by:
ghinkl
From: <ian...@us...> - 2011-10-28 21:44:35
|
Revision: 629 http://mc4j.svn.sourceforge.net/mc4j/?rev=629&view=rev Author: ianpspringer Date: 2011-10-28 21:44:26 +0000 (Fri, 28 Oct 2011) Log Message: ----------- fix so cached defunct MBeanInfos are nulled out after connection is re-established to a restarted MBeanServer; bump up version to 1.3 Modified Paths: -------------- trunk/mc4j/modules/ems/build.xml trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/access/Lookup.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/ConnectionFactory.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/EmsConnection.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/LoadException.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/MBeanRegistrationEvent.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/MBeanRegistrationListener.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/bean/EmsBean.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/bean/notification/EmsNotificationEvent.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/bean/operation/EmsOperation.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/local/LocalVMFinder.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/local/LocalVirtualMachine.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/settings/ConnectionSettings.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/settings/persistence/ConnectionSettingPersistence.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/settings/persistence/ConnectionSettingsStore.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/ClassLoaderFactory.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/DeepClassLoader.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/DeepClassLoaderOrig.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/NestedJarClassLoader.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/deepjar/Handler.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/metadata/AbstractConnectionTypeDescriptor.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/metadata/JBossConnectionTypeDescriptor.java trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/store/CompleteValueHistory.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/DConnection.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/PooledConnectionTracker.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/DAdvancedBean.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/DBeanName.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/DMBean.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/attribute/DAttribute.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/notification/DNotification.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/operation/DOperation.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/parameter/DParameter.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/AbstractConnectionProvider.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/InternalVMProvider.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/JBossConnectionProvider.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/JMXRemotingConnectionProvider.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/LocalVMProvider.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/Oc4jConnectionProvider.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/PramatiConnectionProvider.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/WeblogicConnectionProvider.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/WebsphereConnectionProvider.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/jaas/JBossCallbackHandler.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/jaas/JBossConfiguration.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/local/LocalVMConnector.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/proxy/GenericMBeanServerProxy.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/proxy/JMXRemotingMBeanServerProxy.java trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/proxy/JSR77ManagementMBeanServerProxy.java trunk/mc4j/modules/ems/src/test/org/mc4j/ems/test/ConnectionTest.java trunk/mc4j/modules/ems/src/test/org/mc4j/ems/test/LoaderTest.java trunk/mc4j/modules/ems/src/test/org/mc4j/ems/test/MultiConnectionTest.java trunk/mc4j/modules/ems/src/test/org/mc4j/ems/test/beans/BeanTest.java trunk/mc4j/modules/ems/src/test/org/mc4j/ems/test/beans/MyTestBean.java trunk/mc4j/modules/ems/src/test/org/mc4j/ems/test/notifications/NotificationTest.java Modified: trunk/mc4j/modules/ems/build.xml =================================================================== --- trunk/mc4j/modules/ems/build.xml 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/build.xml 2011-10-28 21:44:26 UTC (rev 629) @@ -29,7 +29,7 @@ <property name="module.jar" value="org-mc4j-ems.jar"/> - <property name="release.version" value="1.2.16"/> + <property name="release.version" value="1.3"/> <target name="init" description="Initializes the MC4J-EMS build system."> Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/access/Lookup.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/access/Lookup.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/access/Lookup.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,12 +16,12 @@ package org.mc4j.ems.access; +import java.util.HashMap; +import java.util.Map; + import ognl.Ognl; import ognl.OgnlException; -import java.util.Map; -import java.util.HashMap; - /** * @author Greg Hinkle (gh...@us...), Apr 12, 2005 * @version $Revision$($Author$ / $Date$) Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/ConnectionFactory.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/ConnectionFactory.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/ConnectionFactory.java 2011-10-28 21:44:26 UTC (rev 629) @@ -26,6 +26,7 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.mc4j.ems.connection.settings.ConnectionSettings; import org.mc4j.ems.connection.support.ConnectionProvider; import org.mc4j.ems.connection.support.classloader.ClassLoaderFactory; Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/EmsConnection.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/EmsConnection.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/EmsConnection.java 2011-10-28 21:44:26 UTC (rev 629) @@ -1,5 +1,5 @@ /* - * Copyright 2002-2004 Greg Hinkle + * Copyright 2002-2011 Greg Hinkle * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,15 +13,14 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.mc4j.ems.connection; +import java.util.List; +import java.util.SortedSet; + import org.mc4j.ems.connection.bean.EmsBean; import org.mc4j.ems.connection.support.ConnectionProvider; -import java.util.List; -import java.util.SortedSet; - /** * TODO GH: Decide exception handling strategy (runtime?) * @@ -30,13 +29,24 @@ */ public interface EmsConnection extends Refreshable { - ConnectionTracker getTracker(); void close(); + /** + * Does a *:* load of all MBean names and caches them as EmsBeans. + * + * @param deep if true, also loads the MBeanInfo for each MBean and caches it in the corresponding EmsBean + */ void loadSynchronous(boolean deep); + /** + * Unloads all cached metadata associated with this connection - MBeanInfos, etc. + * + * @since 1.3 + */ + void unload(); + void addRegistrationListener(MBeanRegistrationListener registrationListener); void removeRegistrationListener(MBeanRegistrationListener registrationListener); Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/LoadException.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/LoadException.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/LoadException.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,8 +16,6 @@ package org.mc4j.ems.connection; -import org.mc4j.ems.connection.EmsException; - /** * @author Greg Hinkle (gh...@us...), Apr 12, 2005 * @version $Revision$($Author$ / $Date$) Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/MBeanRegistrationEvent.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/MBeanRegistrationEvent.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/MBeanRegistrationEvent.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,10 +16,10 @@ package org.mc4j.ems.connection; +import java.util.Set; + import org.mc4j.ems.connection.bean.EmsBean; -import java.util.Set; - /** * @author Greg Hinkle (gh...@us...), Apr 4, 2005 * @version $Revision$($Author$ / $Date$) Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/MBeanRegistrationListener.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/MBeanRegistrationListener.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/MBeanRegistrationListener.java 2011-10-28 21:44:26 UTC (rev 629) @@ -1,7 +1,5 @@ package org.mc4j.ems.connection; -import org.mc4j.ems.connection.MBeanRegistrationEvent; - /** * @author Greg Hinkle (gh...@us...), Apr 4, 2005 * @version $Revision$($Author$ / $Date$) Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/bean/EmsBean.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/bean/EmsBean.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/bean/EmsBean.java 2011-10-28 21:44:26 UTC (rev 629) @@ -1,5 +1,5 @@ /* - * Copyright 2002-2010 Greg Hinkle + * Copyright 2002-2011 Greg Hinkle * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,14 +15,14 @@ */ package org.mc4j.ems.connection.bean; +import java.util.List; +import java.util.SortedSet; + import org.mc4j.ems.connection.bean.attribute.EmsAttribute; import org.mc4j.ems.connection.bean.notification.EmsNotification; import org.mc4j.ems.connection.bean.operation.EmsOperation; import org.mc4j.ems.connection.support.ConnectionProvider; -import java.util.List; -import java.util.SortedSet; - /** * An MBean. * @@ -59,9 +59,22 @@ */ <T> T getProxy(Class<T> beanInterface); + /** + * Loads local representations of this MBean's attributes, operations and notifications if not already loaded. + * Current attribute values are not retrieved. + */ void loadSynchronous() ; /** + * Unloads any cached metadata associated with this MBean. This is useful for handling dynamic mbeans with changing + * descriptors or corner case situations where an MBean is unregistered and then another MBean with a non-equivalent + * MBeanInfo is registered with the same ObjectName. + * + * @since 1.3 + */ + void unload(); + + /** * Returns the set of all attributes for this MBean; never null. * * @return the set of all attributes for this MBean; never null Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/bean/notification/EmsNotificationEvent.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/bean/notification/EmsNotificationEvent.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/bean/notification/EmsNotificationEvent.java 2011-10-28 21:44:26 UTC (rev 629) @@ -15,10 +15,10 @@ */ package org.mc4j.ems.connection.bean.notification; +import java.util.Date; + import org.mc4j.ems.connection.bean.EmsBean; -import java.util.Date; - /** * @author Greg Hinkle (gh...@us...), Nov 10, 2005 * @version $Revision$($Author$ / $Date$) Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/bean/operation/EmsOperation.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/bean/operation/EmsOperation.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/bean/operation/EmsOperation.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,15 +16,15 @@ package org.mc4j.ems.connection.bean.operation; +import java.io.ObjectStreamException; +import java.io.Serializable; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; + +import org.mc4j.ems.connection.EmsInvocationException; import org.mc4j.ems.connection.bean.parameter.EmsParameter; -import org.mc4j.ems.connection.EmsInvocationException; -import java.util.List; -import java.util.Collections; -import java.util.Arrays; -import java.io.Serializable; -import java.io.ObjectStreamException; - /** * An MBean operation. * Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/local/LocalVMFinder.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/local/LocalVMFinder.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/local/LocalVMFinder.java 2011-10-28 21:44:26 UTC (rev 629) @@ -22,14 +22,14 @@ package org.mc4j.ems.connection.local; +import java.lang.reflect.Method; +import java.util.Map; + +import org.mc4j.ems.connection.EmsException; import org.mc4j.ems.connection.settings.ConnectionSettings; import org.mc4j.ems.connection.support.classloader.ClassLoaderFactory; import org.mc4j.ems.connection.support.metadata.LocalVMTypeDescriptor; -import org.mc4j.ems.connection.EmsException; -import java.lang.reflect.Method; -import java.util.Map; - public class LocalVMFinder { public static Map<Integer, LocalVirtualMachine> getManageableVirtualMachines() { Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/local/LocalVirtualMachine.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/local/LocalVirtualMachine.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/local/LocalVirtualMachine.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,14 +16,7 @@ package org.mc4j.ems.connection.local; -import com.sun.tools.attach.AgentInitializationException; -import com.sun.tools.attach.AgentLoadException; -import com.sun.tools.attach.AttachNotSupportedException; -import com.sun.tools.attach.VirtualMachine; - import java.io.File; -import java.io.IOException; -import java.util.Properties; public class LocalVirtualMachine { Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/settings/ConnectionSettings.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/settings/ConnectionSettings.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/settings/ConnectionSettings.java 2011-10-28 21:44:26 UTC (rev 629) @@ -17,15 +17,15 @@ package org.mc4j.ems.connection.settings; -import org.mc4j.ems.connection.support.metadata.ConnectionTypeDescriptor; - import java.io.File; import java.io.ObjectStreamField; import java.io.Serializable; import java.util.List; +import java.util.Map; import java.util.Properties; -import java.util.Map; +import org.mc4j.ems.connection.support.metadata.ConnectionTypeDescriptor; + /** * Options for connections * Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/settings/persistence/ConnectionSettingPersistence.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/settings/persistence/ConnectionSettingPersistence.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/settings/persistence/ConnectionSettingPersistence.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,20 +16,20 @@ package org.mc4j.ems.connection.settings.persistence; -import org.mc4j.ems.connection.settings.ConnectionSettings; -import org.mc4j.ems.connection.EmsException; - -import java.io.ByteArrayOutputStream; -import java.io.BufferedOutputStream; -import java.io.File; -import java.io.ByteArrayInputStream; -import java.beans.XMLEncoder; +import java.beans.Encoder; import java.beans.ExceptionListener; +import java.beans.Expression; import java.beans.PersistenceDelegate; -import java.beans.Expression; -import java.beans.Encoder; import java.beans.XMLDecoder; +import java.beans.XMLEncoder; +import java.io.BufferedOutputStream; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; +import java.io.File; +import org.mc4j.ems.connection.EmsException; +import org.mc4j.ems.connection.settings.ConnectionSettings; + /** * @author Greg Hinkle (gh...@us...), May 9, 2005 * @version $Revision$($Author$ / $Date$) Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/settings/persistence/ConnectionSettingsStore.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/settings/persistence/ConnectionSettingsStore.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/settings/persistence/ConnectionSettingsStore.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,11 +16,11 @@ package org.mc4j.ems.connection.settings.persistence; +import java.util.prefs.Preferences; + import org.mc4j.ems.connection.settings.ConnectionSettings; -import java.util.prefs.Preferences; - /** * @author Greg Hinkle (gh...@us...), May 5, 2005 * @version $Revision$($Author$ / $Date$) Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/ClassLoaderFactory.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/ClassLoaderFactory.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/ClassLoaderFactory.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,27 +16,33 @@ package org.mc4j.ems.connection.support.classloader; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.mc4j.ems.connection.ConnectionFactory; -import org.mc4j.ems.connection.EmsConnectException; -import org.mc4j.ems.connection.EmsException; -import org.mc4j.ems.connection.settings.ConnectionSettings; -import org.mc4j.ems.connection.support.metadata.JSR160ConnectionTypeDescriptor; -import org.mc4j.ems.connection.support.metadata.LocalVMTypeDescriptor; - import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; +import java.lang.ref.WeakReference; import java.net.MalformedURLException; import java.net.URL; import java.net.URLClassLoader; -import java.util.*; -import java.lang.ref.WeakReference; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import org.mc4j.ems.connection.ConnectionFactory; +import org.mc4j.ems.connection.EmsConnectException; +import org.mc4j.ems.connection.EmsException; +import org.mc4j.ems.connection.settings.ConnectionSettings; +import org.mc4j.ems.connection.support.metadata.JSR160ConnectionTypeDescriptor; +import org.mc4j.ems.connection.support.metadata.LocalVMTypeDescriptor; + /** * @author Greg Hinkle (gh...@us...), Apr 5, 2005 * @version $Revision$($Author$ / $Date$) Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/DeepClassLoader.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/DeepClassLoader.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/DeepClassLoader.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,8 +16,6 @@ package org.mc4j.ems.connection.support.classloader; -import org.mc4j.ems.connection.support.classloader.deepjar.Handler; - import java.net.MalformedURLException; import java.net.URL; import java.security.CodeSigner; @@ -25,6 +23,8 @@ import java.security.ProtectionDomain; import java.util.Map; +import org.mc4j.ems.connection.support.classloader.deepjar.Handler; + /** * @author Greg Hinkle (gh...@us...), May 17, 2005 * @version $Revision$($Author$ / $Date$) Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/DeepClassLoaderOrig.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/DeepClassLoaderOrig.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/DeepClassLoaderOrig.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,8 +16,6 @@ package org.mc4j.ems.connection.support.classloader; -import org.mc4j.ems.connection.support.classloader.deepjar.Handler; - import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; @@ -41,6 +39,8 @@ import java.util.jar.JarInputStream; import java.util.jar.Manifest; +import org.mc4j.ems.connection.support.classloader.deepjar.Handler; + /** * @author Greg Hinkle (gh...@us...), May 9, 2005 * @version $Revision$($Author$ / $Date$) Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/NestedJarClassLoader.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/NestedJarClassLoader.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/NestedJarClassLoader.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,16 +16,16 @@ package org.mc4j.ems.connection.support.classloader; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - import java.net.URL; import java.net.URLClassLoader; +import java.util.ArrayList; import java.util.HashMap; +import java.util.List; import java.util.Map; -import java.util.ArrayList; -import java.util.List; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + /** * <p>This classloader is able to load classes from the contents of jar files available * in the parent classloader. This mechanism creates support for nested jar file Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/deepjar/Handler.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/deepjar/Handler.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/classloader/deepjar/Handler.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,15 +16,16 @@ package org.mc4j.ems.connection.support.classloader.deepjar; -import org.mc4j.ems.connection.support.classloader.NestedJarClassLoader; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.net.URLConnection; +import java.net.URLStreamHandler; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import java.net.URLStreamHandler; -import java.net.URLConnection; -import java.net.URL; -import java.io.IOException; -import java.io.InputStream; +import org.mc4j.ems.connection.support.classloader.NestedJarClassLoader; /** * @author Greg Hinkle (gh...@us...), May 9, 2005 Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/metadata/AbstractConnectionTypeDescriptor.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/metadata/AbstractConnectionTypeDescriptor.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/metadata/AbstractConnectionTypeDescriptor.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,18 +16,18 @@ package org.mc4j.ems.connection.support.metadata; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - import java.io.File; import java.io.IOException; -import java.util.jar.JarFile; -import java.util.jar.Attributes; +import java.net.MalformedURLException; +import java.util.Iterator; import java.util.Map; -import java.util.Iterator; import java.util.Properties; -import java.net.MalformedURLException; +import java.util.jar.Attributes; +import java.util.jar.JarFile; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + /** * @author Greg Hinkle (gh...@us...), Sep 30, 2004 * @version $Revision$($Author$ / $Date$) Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/metadata/JBossConnectionTypeDescriptor.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/metadata/JBossConnectionTypeDescriptor.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/connection/support/metadata/JBossConnectionTypeDescriptor.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,10 +16,11 @@ package org.mc4j.ems.connection.support.metadata; -import javax.naming.Context; import java.util.Properties; +import javax.naming.Context; + /** * @author Greg Hinkle (gh...@us...), Sep 30, 2004 * @version $Revision$($Author$ / $Date$) Modified: trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/store/CompleteValueHistory.java =================================================================== --- trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/store/CompleteValueHistory.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems/org/mc4j/ems/store/CompleteValueHistory.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,9 +16,9 @@ package org.mc4j.ems.store; +import java.util.Collections; +import java.util.LinkedList; import java.util.List; -import java.util.LinkedList; -import java.util.Collections; /** * @author Greg Hinkle (gh...@us...), Apr 6, 2005 Modified: trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/DConnection.java =================================================================== --- trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/DConnection.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/DConnection.java 2011-10-28 21:44:26 UTC (rev 629) @@ -1,5 +1,5 @@ /* - * Copyright 2002-2004 Greg Hinkle + * Copyright 2002-2011 Greg Hinkle * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -13,11 +13,31 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - package org.mc4j.ems.impl.jmx.connection; +import java.util.ArrayList; +import java.util.Comparator; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedMap; +import java.util.SortedSet; +import java.util.TreeMap; +import java.util.TreeSet; + +import javax.management.MBeanException; +import javax.management.MBeanServer; +import javax.management.MalformedObjectNameException; +import javax.management.ObjectInstance; +import javax.management.ObjectName; +import javax.management.OperationsException; +import javax.management.QueryExp; +import javax.management.ReflectionException; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.mc4j.ems.connection.ConnectionTracker; import org.mc4j.ems.connection.EmsConnection; import org.mc4j.ems.connection.EmsException; @@ -31,24 +51,6 @@ import org.mc4j.ems.impl.jmx.connection.bean.DMBean; import org.mc4j.ems.impl.jmx.connection.support.providers.AbstractConnectionProvider; -import javax.management.MBeanException; -import javax.management.MalformedObjectNameException; -import javax.management.ObjectInstance; -import javax.management.ObjectName; -import javax.management.OperationsException; -import javax.management.QueryExp; -import javax.management.ReflectionException; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; -import java.util.SortedMap; -import java.util.SortedSet; -import java.util.TreeMap; -import java.util.TreeSet; -import java.util.Comparator; - /** * TODO GH: Decide exception handling strategy (runtime?) * @@ -62,7 +64,6 @@ protected String connectionName; protected AbstractConnectionProvider connectionProvider; - protected SortedMap<DObjectName, EmsBean> beanMap; protected boolean loaded; @@ -89,7 +90,6 @@ return null; } - public void refresh() { try { loadSynchronous(false); @@ -119,29 +119,25 @@ objectNames = server.queryNames(null,null); }*/ - - /** - * Does a *:* load of all MBean names. Puts them in a list - * - * @param deep - */ @SuppressWarnings({"unchecked"}) public synchronized void loadSynchronous(boolean deep) { if (!connectionProvider.isConnected()) connectionProvider.connect(); - log.info("Querying MBeanServer for all MBeans"); + log.info("Querying MBeanServer for all MBeans..."); + MBeanServer mBeanServer = connectionProvider.getMBeanServer(); Set<ObjectName> objectNames = null; try { - objectNames = (Set<ObjectName>) connectionProvider.getMBeanServer().queryNames(new ObjectName("*:*"), null); + objectNames = (Set<ObjectName>) mBeanServer.queryNames(new ObjectName("*:*"), null); } catch (MalformedObjectNameException e) { /* Should never happen */ } SortedMap<ObjectName, DMBean> retrievedBeansMap = new TreeMap<ObjectName, DMBean>(new ObjectNameComparator()); - if (!loaded) - log.info("Found " + objectNames.size() + " MBeans, starting load"); + if (!loaded) { + log.info("Found " + objectNames.size() + " MBeans - starting load..."); + } Set<DObjectName> currentKeys = new HashSet<DObjectName>(this.beanMap.keySet()); @@ -149,7 +145,7 @@ // TODO: We're loading the beans on every run here i think... only load it if its not in the beanMap - DMBean bean = mapBean(connectionProvider, objectName, deep); + DMBean bean = mapBean(objectName, deep); retrievedBeansMap.put(objectName, bean); } @@ -168,11 +164,18 @@ } } -// if (false) -// log.debug("Added " + newBeans.size() + " and removed " + removedBeans.size()); + if (loaded && log.isDebugEnabled()) { + log.debug("Added " + newBeans.size() + " and removed " + removedBeans.size() + " since previous load."); + } + loaded = true; fireRegistrationEvent(newBeans, removedBeans); + } + public void unload() { + for (EmsBean bean : beanMap.values()) { + bean.unload(); + } } static boolean isJMX12 = false; @@ -185,11 +188,11 @@ } } - private DMBean mapBean(ConnectionProvider provider, ObjectName objectName, boolean loadSynchronous) { + private DMBean mapBean(ObjectName objectName, boolean loadSynchronous) { DMBean bean = null; DObjectName dObjectName = new DObjectName(objectName); - // If the bean is unkown to the internal map, create our local representation and add it + // If the bean is unknown to the internal map, create our local representation and add it synchronized (this) { if (!this.beanMap.keySet().contains(dObjectName)) { if (isJMX12) { @@ -201,8 +204,8 @@ } } - // If the bean was just created then optional load its metadata syncrhonously - // Do this outside the syncrhonized block + // If the bean was just created then optional load its metadata synchronously + // Do this outside the synchronized block if (bean != null && loadSynchronous) { try { bean.loadSynchronous(); @@ -306,7 +309,7 @@ List<EmsBean> results = new ArrayList<EmsBean>(); for (ObjectName name : objectNames) { - results.add(mapBean(connectionProvider, name, false)); + results.add(mapBean(name, false)); } return results; } @@ -338,7 +341,7 @@ try { ObjectName objName = new ObjectName(objectName); ObjectInstance instance = connectionProvider.getMBeanServer().createMBean(className, objName); - return mapBean(connectionProvider, instance.getObjectName(), false); + return mapBean(instance.getObjectName(), false); } catch (MBeanException e) { e.printStackTrace(); throw new EmsException("Couldn't create MBean", e); @@ -354,7 +357,7 @@ try { ObjectName objName = new ObjectName(objectName); ObjectInstance instance = connectionProvider.getMBeanServer().createMBean(className, objName, params, signature); - return mapBean(connectionProvider, instance.getObjectName(), false); + return mapBean(instance.getObjectName(), false); } catch (MBeanException e) { e.printStackTrace(); throw new EmsException("Couldn't create MBean", e); Modified: trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/PooledConnectionTracker.java =================================================================== --- trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/PooledConnectionTracker.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/PooledConnectionTracker.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,13 +16,6 @@ package org.mc4j.ems.impl.jmx.connection; -import org.mc4j.ems.connection.ConnectionTracker; -import org.mc4j.ems.connection.bean.EmsBean; -import org.mc4j.ems.connection.bean.attribute.EmsAttribute; -import org.mc4j.ems.impl.jmx.connection.bean.DMBean; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - import java.util.ArrayList; import java.util.List; import java.util.Set; @@ -31,6 +24,14 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import org.mc4j.ems.connection.ConnectionTracker; +import org.mc4j.ems.connection.bean.EmsBean; +import org.mc4j.ems.connection.bean.attribute.EmsAttribute; +import org.mc4j.ems.impl.jmx.connection.bean.DMBean; + /** * @author Greg Hinkle (gh...@us...), Apr 12, 2005 * @version $Revision$($Author$ / $Date$) Modified: trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/DAdvancedBean.java =================================================================== --- trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/DAdvancedBean.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/DAdvancedBean.java 2011-10-28 21:44:26 UTC (rev 629) @@ -15,13 +15,14 @@ */ package org.mc4j.ems.impl.jmx.connection.bean; -import org.mc4j.ems.impl.jmx.connection.support.providers.AbstractConnectionProvider; +import java.lang.reflect.Method; -import javax.management.ObjectName; import javax.management.MBeanServer; import javax.management.MBeanServerInvocationHandler; -import java.lang.reflect.Method; +import javax.management.ObjectName; +import org.mc4j.ems.impl.jmx.connection.support.providers.AbstractConnectionProvider; + /** * @author Greg Hinkle (gh...@us...), Nov 16, 2005 * @version $Revision$($Author$ / $Date$) Modified: trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/DBeanName.java =================================================================== --- trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/DBeanName.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/DBeanName.java 2011-10-28 21:44:26 UTC (rev 629) @@ -1,12 +1,13 @@ package org.mc4j.ems.impl.jmx.connection.bean; -import org.mc4j.ems.connection.bean.EmsBeanName; -import org.mc4j.ems.connection.EmsMalformedObjectNameException; +import java.util.Map; +import javax.management.MalformedObjectNameException; import javax.management.ObjectName; -import javax.management.MalformedObjectNameException; -import java.util.Map; +import org.mc4j.ems.connection.EmsMalformedObjectNameException; +import org.mc4j.ems.connection.bean.EmsBeanName; + /** * Created by IntelliJ IDEA. * User: ghinkle Modified: trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/DMBean.java =================================================================== --- trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/DMBean.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/DMBean.java 2011-10-28 21:44:26 UTC (rev 629) @@ -1,5 +1,5 @@ /* - * Copyright 2002-2010 Greg Hinkle + * Copyright 2002-2011 Greg Hinkle * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,34 +15,46 @@ */ package org.mc4j.ems.impl.jmx.connection.bean; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.HashMap; +import java.util.Iterator; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.SortedSet; +import java.util.TreeMap; +import java.util.TreeSet; + +import javax.management.Attribute; +import javax.management.AttributeList; +import javax.management.InstanceNotFoundException; +import javax.management.MBeanAttributeInfo; +import javax.management.MBeanInfo; +import javax.management.MBeanNotificationInfo; +import javax.management.MBeanOperationInfo; +import javax.management.MBeanRegistrationException; +import javax.management.MBeanServer; +import javax.management.ObjectName; + import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; + import org.mc4j.ems.connection.EmsBeanNotFoundException; import org.mc4j.ems.connection.EmsUnsupportedTypeException; import org.mc4j.ems.connection.bean.EmsBean; import org.mc4j.ems.connection.bean.EmsBeanName; -import org.mc4j.ems.connection.bean.parameter.EmsParameter; import org.mc4j.ems.connection.bean.attribute.EmsAttribute; import org.mc4j.ems.connection.bean.notification.EmsNotification; import org.mc4j.ems.connection.bean.operation.EmsOperation; +import org.mc4j.ems.connection.bean.parameter.EmsParameter; import org.mc4j.ems.impl.jmx.connection.bean.attribute.DAttribute; import org.mc4j.ems.impl.jmx.connection.bean.attribute.DUnkownAttribute; import org.mc4j.ems.impl.jmx.connection.bean.notification.DNotification; import org.mc4j.ems.impl.jmx.connection.bean.operation.DOperation; import org.mc4j.ems.impl.jmx.connection.support.providers.AbstractConnectionProvider; -import javax.management.Attribute; -import javax.management.AttributeList; -import javax.management.InstanceNotFoundException; -import javax.management.MBeanAttributeInfo; -import javax.management.MBeanInfo; -import javax.management.MBeanNotificationInfo; -import javax.management.MBeanOperationInfo; -import javax.management.MBeanRegistrationException; -import javax.management.MBeanServer; -import javax.management.ObjectName; -import java.util.*; - /** * @author Greg Hinkle (gh...@us...), Apr 4, 2005 * @version $Revision$($Author$ / $Date$) @@ -62,7 +74,6 @@ private boolean unsupportedType = false; protected boolean deleted = false; - private Map<String, EmsAttribute> attributes = new TreeMap<String, EmsAttribute>(String.CASE_INSENSITIVE_ORDER); private Map<String, EmsOperation> operations = new TreeMap<String, EmsOperation>(String.CASE_INSENSITIVE_ORDER); private Set<EmsOperation> allOperations = new TreeSet<EmsOperation>(); @@ -120,15 +131,8 @@ throw new UnsupportedOperationException("Proxies not supported pre-jmx 1.2"); } - /** - * Loads local representations of attributes, operations and notifications. - * Current attribute values are not retrived. - */ public synchronized void loadSynchronous() { - - if (!loaded) { - // TODO GH: Support loading twice to handle dynamic mbeans with changing descriptors? try { info = connectionProvider.getMBeanServer().getMBeanInfo(this.objectName); @@ -162,7 +166,17 @@ loaded = true; } } + } + public void unload() { + if (loaded) { + loaded = false; + info = null; + attributes.clear(); + operations.clear(); + allOperations.clear(); + notifications.clear(); + } } public boolean isRegistered() { @@ -198,7 +212,12 @@ if (info == null) loadSynchronous(); - MBeanAttributeInfo[] infos = this.info.getAttributes(); + MBeanAttributeInfo[] infos = new MBeanAttributeInfo[0]; + try { + infos = this.info.getAttributes(); + } catch (RuntimeException e) { + // If this throws an exception, there's a good chance our cached + } // MUST be careful to only ask for types that we know we have // otherwise the RMI call will fail and we will get no data. @@ -402,7 +421,6 @@ otherBean.getObjectName().getCanonicalName()); } - public String toString() { return this.getBeanName().toString(); } Modified: trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/attribute/DAttribute.java =================================================================== --- trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/attribute/DAttribute.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/attribute/DAttribute.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,38 +16,38 @@ package org.mc4j.ems.impl.jmx.connection.bean.attribute; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.mc4j.ems.connection.EmsException; -import org.mc4j.ems.connection.bean.attribute.AttributeChangeEvent; -import org.mc4j.ems.connection.bean.attribute.AttributeChangeListener; -import org.mc4j.ems.connection.bean.attribute.EmsAttribute; -import org.mc4j.ems.impl.jmx.connection.bean.DMBean; -import org.mc4j.ems.store.Value; -import org.mc4j.ems.store.ValueHistory; -import org.mc4j.ems.store.CompleteValueHistory; - -import javax.management.Attribute; -import javax.management.AttributeNotFoundException; -import javax.management.InstanceNotFoundException; -import javax.management.MBeanAttributeInfo; -import javax.management.MBeanException; -import javax.management.MBeanServer; -import javax.management.ReflectionException; -import javax.management.modelmbean.ModelMBeanAttributeInfo; import java.io.NotSerializableException; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.UndeclaredThrowableException; import java.math.BigDecimal; import java.math.BigInteger; +import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; -import java.util.Collections; +import javax.management.Attribute; +import javax.management.AttributeNotFoundException; +import javax.management.InstanceNotFoundException; +import javax.management.MBeanAttributeInfo; +import javax.management.MBeanException; +import javax.management.MBeanServer; +import javax.management.ReflectionException; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import org.mc4j.ems.connection.EmsException; +import org.mc4j.ems.connection.bean.attribute.AttributeChangeEvent; +import org.mc4j.ems.connection.bean.attribute.AttributeChangeListener; +import org.mc4j.ems.connection.bean.attribute.EmsAttribute; +import org.mc4j.ems.impl.jmx.connection.bean.DMBean; +import org.mc4j.ems.store.CompleteValueHistory; +import org.mc4j.ems.store.ValueHistory; + /** * @author Greg Hinkle (gh...@us...), Apr 4, 2005 * @version $Revision$($Author$ / $Date$) Modified: trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/notification/DNotification.java =================================================================== --- trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/notification/DNotification.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/notification/DNotification.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,18 +16,29 @@ package org.mc4j.ems.impl.jmx.connection.bean.notification; +import java.io.Serializable; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +import javax.management.InstanceNotFoundException; +import javax.management.ListenerNotFoundException; +import javax.management.MBeanNotificationInfo; +import javax.management.Notification; +import javax.management.NotificationFilter; +import javax.management.NotificationListener; + import org.mc4j.ems.connection.EmsBeanNotFoundException; +import org.mc4j.ems.connection.bean.EmsBean; import org.mc4j.ems.connection.bean.notification.EmsNotification; import org.mc4j.ems.connection.bean.notification.EmsNotificationEvent; import org.mc4j.ems.connection.bean.notification.EmsNotificationListener; -import org.mc4j.ems.connection.bean.EmsBean; import org.mc4j.ems.impl.jmx.connection.bean.DBeanName; import org.mc4j.ems.impl.jmx.connection.bean.DMBean; -import javax.management.*; -import java.io.Serializable; -import java.util.*; - /** * @author Greg Hinkle (gh...@us...), Apr 4, 2005 * @version $Revision$($Author$ / $Date$) Modified: trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/operation/DOperation.java =================================================================== --- trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/operation/DOperation.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/operation/DOperation.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,20 +16,19 @@ package org.mc4j.ems.impl.jmx.connection.bean.operation; -import org.mc4j.ems.impl.jmx.connection.bean.DMBean; -import org.mc4j.ems.impl.jmx.connection.bean.parameter.DParameter; -import org.mc4j.ems.connection.bean.operation.EmsOperation; -import org.mc4j.ems.connection.bean.parameter.EmsParameter; -import org.mc4j.ems.connection.EmsInvocationException; +import java.util.ArrayList; +import java.util.List; import javax.management.MBeanOperationInfo; import javax.management.MBeanParameterInfo; import javax.management.ReflectionException; -import java.util.List; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; +import org.mc4j.ems.connection.EmsInvocationException; +import org.mc4j.ems.connection.bean.operation.EmsOperation; +import org.mc4j.ems.connection.bean.parameter.EmsParameter; +import org.mc4j.ems.impl.jmx.connection.bean.DMBean; +import org.mc4j.ems.impl.jmx.connection.bean.parameter.DParameter; + /** * @author Greg Hinkle (gh...@us...), Apr 4, 2005 * @version $Revision$($Author$ / $Date$) Modified: trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/parameter/DParameter.java =================================================================== --- trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/parameter/DParameter.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/bean/parameter/DParameter.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,10 +16,10 @@ package org.mc4j.ems.impl.jmx.connection.bean.parameter; +import javax.management.MBeanParameterInfo; + import org.mc4j.ems.connection.bean.parameter.EmsParameter; -import javax.management.MBeanParameterInfo; - /** * Created: Jul 20, 2005 1:12:14 AM * Modified: trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/AbstractConnectionProvider.java =================================================================== --- trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/AbstractConnectionProvider.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/AbstractConnectionProvider.java 2011-10-28 21:44:26 UTC (rev 629) @@ -1,5 +1,5 @@ /* - * Copyright 2002-2010 Greg Hinkle + * Copyright 2002-2011 Greg Hinkle * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,19 +15,20 @@ */ package org.mc4j.ems.impl.jmx.connection.support.providers; +import java.util.ArrayList; +import java.util.List; +import java.util.Timer; + +import javax.management.MBeanServer; + +import org.mc4j.ems.connection.EmsConnectException; import org.mc4j.ems.connection.EmsConnection; -import org.mc4j.ems.connection.EmsConnectException; import org.mc4j.ems.connection.settings.ConnectionSettings; +import org.mc4j.ems.connection.support.ConnectionListener; import org.mc4j.ems.connection.support.ConnectionProvider; -import org.mc4j.ems.connection.support.ConnectionListener; import org.mc4j.ems.impl.jmx.connection.DConnection; import org.mc4j.ems.impl.jmx.connection.support.providers.proxy.StatsProxy; -import javax.management.MBeanServer; -import java.util.Timer; -import java.util.List; -import java.util.ArrayList; - /** * This Node is the abstract node representing a connection to a JMX Server. * @@ -81,18 +82,21 @@ return this.connected; } + @Deprecated public void setConnected(boolean connected) throws Exception { - - if (this.connected) { + if (connected) { + connect(); + } else { disconnect(); - } else { - connect(); } - } public final EmsConnection connect() { + if (existingConnection != null) { + // We were previously connected. Clear any cached data, since it could contain references to stale RMI stubs. + existingConnection.unload(); + } try { doConnect(); @@ -103,7 +107,7 @@ } if (existingConnection == null) { - DConnection connection = new DConnection("unknown",this); + DConnection connection = new DConnection("unknown", this); this.existingConnection = connection; } else { Modified: trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/InternalVMProvider.java =================================================================== --- trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/InternalVMProvider.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/InternalVMProvider.java 2011-10-28 21:44:26 UTC (rev 629) @@ -15,15 +15,16 @@ */ package org.mc4j.ems.impl.jmx.connection.support.providers; -import org.mc4j.ems.connection.support.metadata.InternalVMTypeDescriptor; - -import javax.management.MBeanServer; -import javax.management.MBeanServerFactory; import java.lang.management.ManagementFactory; import java.security.AccessController; import java.security.PrivilegedAction; import java.util.ArrayList; +import javax.management.MBeanServer; +import javax.management.MBeanServerFactory; + +import org.mc4j.ems.connection.support.metadata.InternalVMTypeDescriptor; + /** * Connect to the platform mbean server in the VM that EMS is running in. * Modified: trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/JBossConnectionProvider.java =================================================================== --- trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/JBossConnectionProvider.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/JBossConnectionProvider.java 2011-10-28 21:44:26 UTC (rev 629) @@ -15,23 +15,25 @@ */ package org.mc4j.ems.impl.jmx.connection.support.providers; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.mc4j.ems.connection.ConnectionException; -import org.mc4j.ems.impl.jmx.connection.support.providers.proxy.GenericMBeanServerProxy; -import org.mc4j.ems.impl.jmx.connection.support.providers.jaas.JBossCallbackHandler; -import org.mc4j.ems.impl.jmx.connection.support.providers.jaas.JBossConfiguration; +import java.util.Properties; import javax.management.MBeanServer; import javax.naming.Context; import javax.naming.InitialContext; import javax.naming.NamingException; import javax.naming.NoInitialContextException; +import javax.security.auth.login.Configuration; import javax.security.auth.login.LoginContext; import javax.security.auth.login.LoginException; -import javax.security.auth.login.Configuration; -import java.util.Properties; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import org.mc4j.ems.connection.ConnectionException; +import org.mc4j.ems.impl.jmx.connection.support.providers.jaas.JBossCallbackHandler; +import org.mc4j.ems.impl.jmx.connection.support.providers.jaas.JBossConfiguration; +import org.mc4j.ems.impl.jmx.connection.support.providers.proxy.GenericMBeanServerProxy; + /** * Represents a Connection to a JBoss JMX Server. This connection * works against the JBoss RMI connector. If a principal and @@ -84,6 +86,7 @@ if (this.proxy != null) { // This is a reconnect + log.debug("Reconnecting to remote JBoss MBeanServer..."); this.proxy.setRemoteServer(rmiAdaptor); } else { this.proxy = new GenericMBeanServerProxy(rmiAdaptor); @@ -115,7 +118,8 @@ // Try to be more helpful, indicating the reason we couldn't make the connection in this // common case of missing libraries. if (e.getCause() instanceof ClassNotFoundException) { - throw new ConnectionException("Necessary classes not found for remote connection, check installation path configuration.",e.getCause()); + throw new ConnectionException("Necessary classes not found for remote connection, check installation path configuration.", + e.getCause()); } throw e; } Modified: trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/JMXRemotingConnectionProvider.java =================================================================== --- trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/JMXRemotingConnectionProvider.java 2011-09-13 16:50:12 UTC (rev 628) +++ trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/JMXRemotingConnectionProvider.java 2011-10-28 21:44:26 UTC (rev 629) @@ -16,11 +16,16 @@ package org.mc4j.ems.impl.jmx.connection.support.providers; -import org.mc4j.ems.connection.EmsConnectException; -import org.mc4j.ems.connection.EmsException; -import org.mc4j.ems.impl.jmx.connection.support.providers.proxy.JMXRemotingMBeanServerProxy; -import org.mc4j.ems.impl.jmx.connection.support.providers.proxy.JSR77ManagementMBeanServerProxy; -import org.mc4j.ems.impl.jmx.connection.support.providers.proxy.StatsProxy; +import java.io.IOException; +import java.lang.reflect.Method; +import java.net.MalformedURLException; +import java.rmi.NotBoundException; +import java.rmi.RemoteException; +import java.rmi.registry.LocateRegistry; +import java.rmi.registry.Registry; +import java.util.Hashtable; +import java.util.Map; +import java.util.Set; import javax.management.MBeanServer; import javax.management.MBeanServerConnection; @@ -35,17 +40,13 @@ import javax.naming.NamingException; import javax.rmi.PortableRemoteObject; import javax.rmi.ssl.SslRMIClientSocketFactory; -import java.io.IOException; -import java.lang.reflect.Method; -import java.net.MalformedURLException; -import java.rmi.NotBoundException; -import java.rmi.RemoteException; -import java.rmi.registry.LocateRegistry; -import java.rmi.registry.Registry; -import java.util.Hashtable; -import java.util.Map; -import java.util.Set; +import org.mc4j.ems.connection.EmsConnectException; +import org.mc4j.ems.connection.EmsException; +import org.mc4j.ems.impl.jmx.connection.support.providers.proxy.JMXRemotingMBeanServerProxy; +import org.mc4j.ems.impl.jmx.connection.support.providers.proxy.JSR77ManagementMBeanServerProxy; +import org.mc4j.ems.impl.jmx.connection.support.providers.proxy.StatsProxy; + /** * Represents a Connection to a JSR 160 compliant RMI server * Modified: trunk/mc4j/modules/ems/src/ems-impl/org/mc4j/ems/impl/jmx/connection/support/providers/LocalVMProvider.java =================================================================== --- trunk/mc4j/modules/ems/src/ems... [truncated message content] |