[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] |