[jboss-svn-commits] JBL Code SVN: r22691 - labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Thu Sep 11 17:01:51 EDT 2008


Author: tcunning
Date: 2008-09-11 17:01:48 -0400 (Thu, 11 Sep 2008)
New Revision: 22691

Added:
   labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ESBDiscoveryComponent.java
   labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/SOADiscoveryComponent.java
Modified:
   labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ActionComponent.java
   labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ActionDiscoveryComponent.java
   labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ListenerComponent.java
   labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ServiceComponent.java
Log:
JBESB-2030
Add version to plugin.


Modified: labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ActionComponent.java
===================================================================
--- labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ActionComponent.java	2008-09-11 20:59:40 UTC (rev 22690)
+++ labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ActionComponent.java	2008-09-11 21:01:48 UTC (rev 22691)
@@ -33,7 +33,9 @@
 import org.mc4j.ems.connection.bean.EmsBean;
 
 /**
- * @author Greg Hinkle
+ * The ActionComponent finds ESB action data (messages, bytes, time).
+ * 
+ * @author Tom Cunningham
  */
 public class ActionComponent extends MBeanResourceComponent<MBeanResourceComponent> {
     private ResourceContext<MBeanResourceComponent> context;

Modified: labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ActionDiscoveryComponent.java
===================================================================
--- labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ActionDiscoveryComponent.java	2008-09-11 20:59:40 UTC (rev 22690)
+++ labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ActionDiscoveryComponent.java	2008-09-11 21:01:48 UTC (rev 22691)
@@ -20,6 +20,7 @@
 
 import java.util.ArrayList;
 import java.util.HashSet;
+import java.util.Hashtable;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Set;
@@ -40,12 +41,12 @@
 import org.rhq.plugins.jmx.MBeanResourceComponent;
 
 /**
- * Discovers hibernate entities from a hibernate stats mbean
+ * Discovers ESB actions from a JMX bean
  *
- * @author Greg Hinkle
+ * @author Tom Cunningham
  * @param <T>
  */
-public class ActionDiscoveryComponent<T extends JMXComponent> implements ResourceDiscoveryComponent<MBeanResourceComponent> {
+public class ActionDiscoveryComponent<T extends JMXComponent> extends SOADiscoveryComponent {
 	
 	private static final String SERVICE_NAME = "service-name";
 	private static final String MESSAGES_SUCCESSFULLY_PROCESSED = "messages successfully processed count";
@@ -75,8 +76,16 @@
         Set<DiscoveredResourceDetails> entities = new HashSet<DiscoveredResourceDetails>();
 
         EmsBean actionBean = context.getParentResourceComponent().getEmsBean();
-        String serviceName = actionBean.getBeanName().getKeyProperty(SERVICE_NAME);
-
+        String serviceName = actionBean.getBeanName().getKeyProperty(SERVICE_NAME);        
+        
+        String versionNumber;
+        try {
+        	Hashtable ht = getVersionAttribute(context);
+        	versionNumber = (String) ht.get(VERSION_NUMBER);
+        } catch (Exception e) {
+        	versionNumber = "";
+        }
+        
         // Do two passes - one to grab the entity names (ex. "data fileraction"
         // and then a second to build up the metrics for the entity
         Set<EmsAttribute> attributeSet = actionBean.getAttributes();
@@ -89,11 +98,7 @@
                 
                 Configuration pc = detail.getPluginConfiguration();
                 ArrayList<Property> props = new ArrayList<Property>();
-                //PropertySimple ps = new PropertySimple("", "");
-                //props.add(ps);
-                //pc.setProperties(props);
-                //List<EmsAttribute> refreshedAttribute = actionBean.refreshAttributes();
-                
+                detail.setResourceVersion(versionNumber);
                 entities.add(detail);
         	}
         }

Added: labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ESBDiscoveryComponent.java
===================================================================
--- labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ESBDiscoveryComponent.java	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ESBDiscoveryComponent.java	2008-09-11 21:01:48 UTC (rev 22691)
@@ -0,0 +1,46 @@
+package org.jbosson.plugins.jbossesb;
+import java.util.HashSet;
+import java.util.Hashtable;
+import java.util.List;
+import java.util.Set;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import org.mc4j.ems.connection.bean.EmsBean;
+import org.mc4j.ems.connection.bean.attribute.EmsAttribute;
+import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails;
+import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
+import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.plugins.jmx.JMXComponent;
+import org.rhq.plugins.jmx.JMXDiscoveryComponent;
+import org.rhq.plugins.jmx.MBeanResourceComponent;
+import org.rhq.plugins.jmx.MBeanResourceDiscoveryComponent;
+
+/**
+ * This DiscoveryComponent extends the MBeanResouceDiscoveryComponent, but also
+ * adds in the version number from the application server. 
+ *
+ * @author Tom Cunningham
+ */
+public class ESBDiscoveryComponent extends MBeanResourceDiscoveryComponent {
+    public Set<DiscoveredResourceDetails> discoverResources(ResourceDiscoveryContext<JMXComponent> context) {
+        Set<DiscoveredResourceDetails> jmxResources = super.discoverResources(context);
+
+        String versionNumber;
+        try {
+			EmsBean bean = context.getParentResourceComponent().getEmsConnection().getBean(SOADiscoveryComponent.SYSTEM_BEAN);
+		    EmsAttribute versionAttribute = bean.getAttribute(SOADiscoveryComponent.VERSION_NUMBER);		
+		    versionNumber = (String) versionAttribute.refresh();
+        } catch (Exception e) {
+        	versionNumber = "";
+        }
+ 
+        for (DiscoveredResourceDetails jmxResource : jmxResources) {
+        	jmxResource.setResourceVersion(versionNumber);
+        }
+
+        return jmxResources;
+    }
+}
\ No newline at end of file

Modified: labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ListenerComponent.java
===================================================================
--- labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ListenerComponent.java	2008-09-11 20:59:40 UTC (rev 22690)
+++ labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ListenerComponent.java	2008-09-11 21:01:48 UTC (rev 22691)
@@ -35,7 +35,9 @@
 
 
 /**
- * @author Greg Hinkle
+ * The ListenerComponent finds ESB configuration data stored in jboss-esb.xml.
+ * 
+ * @author Tom Cunningham
  */
 public class ListenerComponent extends MBeanResourceComponent<MBeanResourceComponent> {
     private ResourceContext<MBeanResourceComponent> context;

Added: labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/SOADiscoveryComponent.java
===================================================================
--- labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/SOADiscoveryComponent.java	                        (rev 0)
+++ labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/SOADiscoveryComponent.java	2008-09-11 21:01:48 UTC (rev 22691)
@@ -0,0 +1,45 @@
+package org.jbosson.plugins.jbossesb;
+
+import java.util.Hashtable;
+
+import org.mc4j.ems.connection.bean.EmsBean;
+import org.mc4j.ems.connection.bean.attribute.EmsAttribute;
+import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
+import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
+import org.rhq.plugins.jmx.MBeanResourceComponent;
+
+/**
+ * Abstract class which gets version attributes.
+ *
+ * @author Tom Cunningham
+ * @param <T>
+ */
+public abstract class SOADiscoveryComponent implements ResourceDiscoveryComponent<MBeanResourceComponent>  {
+	public static final String SYSTEM_BEAN = "jboss.system:type=Server";
+	public static final String VERSION_NUMBER = "VersionNumber";
+	public static final String BUILD_DATE = "BuildDate";
+	public static final String BUILD_ID = "BuildID";
+	
+	public Hashtable getVersionAttribute(ResourceDiscoveryContext<MBeanResourceComponent> context) {
+	    Hashtable ht = new Hashtable();
+
+		try {
+			EmsBean bean = context.getParentResourceComponent().getEmsConnection().getBean(SYSTEM_BEAN);
+		    EmsAttribute versionAttribute = bean.getAttribute(VERSION_NUMBER);		
+		    String version = (String) versionAttribute.refresh();
+		    
+		    EmsAttribute buildDateAttribute = bean.getAttribute(BUILD_DATE);
+		    String buildDate = (String) buildDateAttribute.refresh();
+	
+		    EmsAttribute buildIDAttribute = bean.getAttribute(BUILD_ID);
+		    String buildID = (String) buildIDAttribute.refresh();
+	
+		    ht.put(VERSION_NUMBER, version);
+		    ht.put(BUILD_DATE, buildDate);
+		    ht.put(BUILD_ID, buildID);
+		} catch (Exception e) {
+			// Do nothing in the case that we cannot recover these attributes
+		}
+	    return ht;
+	}
+}

Modified: labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ServiceComponent.java
===================================================================
--- labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ServiceComponent.java	2008-09-11 20:59:40 UTC (rev 22690)
+++ labs/jbossesb/trunk/product/tools/jonplugin/src/main/java/org/jbosson/plugins/jbossesb/ServiceComponent.java	2008-09-11 21:01:48 UTC (rev 22691)
@@ -34,7 +34,9 @@
 
 
 /**
- * @author Greg Hinkle
+ * The ServiceComponent finds ESB service data (messages, bytes, time).
+ * 
+ * @author Tom Cunningham
  */
 public class ServiceComponent extends MBeanResourceComponent<MBeanResourceComponent> {
     private ResourceContext<MBeanResourceComponent> context;




More information about the jboss-svn-commits mailing list