[jboss-cvs] JBossAS SVN: r103043 - in trunk/hornetq-int/src: main/java/org/jboss/as/integration/hornetq/management/jms and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Mar 26 10:06:05 EDT 2010


Author: ataylor
Date: 2010-03-26 10:06:05 -0400 (Fri, 26 Mar 2010)
New Revision: 103043

Added:
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/JMSServerMO.java
Modified:
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/jopr/JMSManagerComponent.java
   trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/jopr/JMSManagerDiscoveryComponent.java
   trunk/hornetq-int/src/resources/META-INF/rhq-plugin.xml
   trunk/hornetq-int/src/resources/hornetq-deployers-jboss-beans.xml
Log:
hornetq plugin fixes part 2

Modified: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/jopr/JMSManagerComponent.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/jopr/JMSManagerComponent.java	2010-03-26 13:31:12 UTC (rev 103042)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/jopr/JMSManagerComponent.java	2010-03-26 14:06:05 UTC (rev 103043)
@@ -23,6 +23,7 @@
 
 import org.jboss.as.integration.hornetq.jopr.util.ManagementSupport;
 import org.jboss.deployers.spi.management.ManagementView;
+import org.jboss.managed.api.ComponentType;
 import org.jboss.managed.api.ManagedOperation;
 import org.jboss.metatype.api.types.SimpleMetaType;
 import org.jboss.metatype.api.values.SimpleValueSupport;
@@ -31,22 +32,49 @@
 import org.rhq.core.domain.configuration.PropertyMap;
 import org.rhq.core.domain.configuration.PropertySimple;
 import org.rhq.core.domain.measurement.AvailabilityType;
+import org.rhq.core.domain.measurement.MeasurementDataTrait;
+import org.rhq.core.domain.measurement.MeasurementReport;
+import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
 import org.rhq.core.domain.resource.CreateResourceStatus;
 import org.rhq.core.pluginapi.inventory.*;
+import org.rhq.core.pluginapi.measurement.MeasurementFacet;
 
 import java.lang.reflect.Method;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 
 /**
  * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
  *         Created 11-Mar-2010
  */
-public class JMSManagerComponent implements ResourceComponent, CreateChildResourceFacet, JMSComponent
+public class JMSManagerComponent implements ResourceComponent, CreateChildResourceFacet, MeasurementFacet, JMSComponent
 {
    private ResourceContext resourceContext;
 
+   public void getValues(MeasurementReport measurementReport, Set<MeasurementScheduleRequest> measurementScheduleRequests) throws Exception
+   {
+
+      for (MeasurementScheduleRequest measurementScheduleRequest : measurementScheduleRequests)
+      {
+
+         if("version".equalsIgnoreCase(measurementScheduleRequest.getName()))
+         {
+            ManagementView managementView = getProfileService();
+            ManagedOperation operation = ManagementSupport.getOperation(managementView, "JMSServerMO", "getVersion", new ComponentType("JMSManage", "ServerManage"));
+            SimpleValueSupport support = (SimpleValueSupport) operation.invoke();measurementReport.addData(new MeasurementDataTrait(measurementScheduleRequest, support.getValue().toString()));
+         }
+         else if("started".equalsIgnoreCase(measurementScheduleRequest.getName()))
+         {
+            ManagementView managementView = getProfileService();
+            ManagedOperation operation = ManagementSupport.getOperation(managementView, "JMSServerMO", "isStarted", new ComponentType("JMSManage", "ServerManage"));
+            SimpleValueSupport support = (SimpleValueSupport) operation.invoke();measurementReport.addData(new MeasurementDataTrait(measurementScheduleRequest, support.getValue().toString()));
+         }
+      }
+
+   }
+
    public CreateResourceReport createResource(CreateResourceReport createResourceReport)
    {
       createResourceReport.setStatus(CreateResourceStatus.IN_PROGRESS);

Modified: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/jopr/JMSManagerDiscoveryComponent.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/jopr/JMSManagerDiscoveryComponent.java	2010-03-26 13:31:12 UTC (rev 103042)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/jopr/JMSManagerDiscoveryComponent.java	2010-03-26 14:06:05 UTC (rev 103043)
@@ -21,11 +21,12 @@
 */
 package org.jboss.as.integration.hornetq.jopr;
 
-import org.rhq.core.pluginapi.inventory.DiscoveredResourceDetails;
-import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
-import org.rhq.core.pluginapi.inventory.ResourceDiscoveryComponent;
-import org.rhq.core.pluginapi.inventory.ResourceDiscoveryContext;
+import org.jboss.deployers.spi.management.ManagementView;
+import org.jboss.managed.api.ComponentType;
+import org.jboss.managed.api.ManagedComponent;
+import org.rhq.core.pluginapi.inventory.*;
 
+import java.lang.reflect.Method;
 import java.util.Collections;
 import java.util.Set;
 
@@ -37,7 +38,11 @@
 {
    public Set<DiscoveredResourceDetails> discoverResources(ResourceDiscoveryContext ctx) throws InvalidPluginConfigurationException, Exception
    {
-      DiscoveredResourceDetails detail = new DiscoveredResourceDetails(
+      ManagementView managementView = getProfileService(ctx);
+      ManagedComponent component = managementView.getComponent("JMSServerMO", new ComponentType("JMSManage", "ServerManage"));
+      if(component != null)
+      {
+         DiscoveredResourceDetails detail = new DiscoveredResourceDetails(
                   ctx.getResourceType(), // Resource type
                   ctx.getResourceType().getName(), // Resource key
                   ctx.getResourceType().getName(), // Resource name
@@ -45,7 +50,18 @@
                   ctx.getResourceType().getDescription(), // Description
                   ctx.getDefaultPluginConfiguration(), // Plugin config
                   null // Process info from a process scan
-            );
-      return Collections.singleton(detail);
+         );
+         return Collections.singleton(detail);
+      }
+      return Collections.EMPTY_SET;
    }
+
+   public ManagementView getProfileService(ResourceDiscoveryContext ctx) throws Exception
+   {
+      ResourceComponent component = ctx.getParentResourceComponent();
+      Method m = component.getClass().getMethod("getConnection");
+      Object conn = m.invoke(component);
+      m = conn.getClass().getMethod("getManagementView");
+      return (ManagementView) m.invoke(conn);
+   }
 }

Added: trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/JMSServerMO.java
===================================================================
--- trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/JMSServerMO.java	                        (rev 0)
+++ trunk/hornetq-int/src/main/java/org/jboss/as/integration/hornetq/management/jms/JMSServerMO.java	2010-03-26 14:06:05 UTC (rev 103043)
@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009 Red Hat, Inc.
+ * Red Hat licenses this file to you under the Apache License, version
+ * 2.0 (the "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *    http://www.apache.org/licenses/LICENSE-2.0
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ * implied.  See the License for the specific language governing
+ * permissions and limitations under the License.
+ */
+package org.jboss.as.integration.hornetq.management.jms;
+
+import org.hornetq.core.server.HornetQServer;
+import org.jboss.managed.api.annotation.ManagementComponent;
+import org.jboss.managed.api.annotation.ManagementObject;
+import org.jboss.managed.api.annotation.ManagementOperation;
+import org.jboss.managed.api.annotation.ManagementProperties;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ *         Created Mar 26, 2010
+ */
+ at ManagementObject(componentType = @ManagementComponent(type = "JMSManage", subtype = "ServerManage"),
+    properties = ManagementProperties.EXPLICIT, isRuntime = true)
+public class JMSServerMO extends JMSManageMO
+{
+   public JMSServerMO(HornetQServer server)
+   {
+      super(server);    //To change body of overridden methods use File | Settings | File Templates.
+   }
+
+   @ManagementOperation(name = "getVersion", description = "returns the servers version")
+   public String getVersion()
+   {
+      return jmsServerControl.getVersion();
+   }
+
+   @ManagementOperation(name = "getVersion", description = "returns the servers status")
+   public boolean isStarted()
+   {
+      return jmsServerControl.isStarted();
+   }
+}

Modified: trunk/hornetq-int/src/resources/META-INF/rhq-plugin.xml
===================================================================
--- trunk/hornetq-int/src/resources/META-INF/rhq-plugin.xml	2010-03-26 13:31:12 UTC (rev 103042)
+++ trunk/hornetq-int/src/resources/META-INF/rhq-plugin.xml	2010-03-26 14:06:05 UTC (rev 103043)
@@ -41,6 +41,15 @@
          <parent-resource-type name="JBossAS Server" plugin="JBossAS5"/>
       </runs-inside>
 
+      <metric property="version"
+                 displayName="HornetQ Version"
+                 description="The HornetQ version"
+                 dataType="trait" displayType="summary"/>
+      <metric property="started"
+                 displayName="Is Started"
+                 description="The HornetQ version"
+                 dataType="trait" displayType="summary"/>
+      
       <service name="JMS Queue"
                discovery="JMSQueueDiscoveryComponent"
                class="JMSQueueComponent"

Modified: trunk/hornetq-int/src/resources/hornetq-deployers-jboss-beans.xml
===================================================================
--- trunk/hornetq-int/src/resources/hornetq-deployers-jboss-beans.xml	2010-03-26 13:31:12 UTC (rev 103042)
+++ trunk/hornetq-int/src/resources/hornetq-deployers-jboss-beans.xml	2010-03-26 14:06:05 UTC (rev 103043)
@@ -56,4 +56,9 @@
       <demand>JMSServerManager</demand>
    </bean>
 
+   <bean name="JMSServerMO" class="org.jboss.as.integration.hornetq.management.jms.JMSServerMO">
+      <constructor><parameter><inject bean="HornetQServer" /></parameter></constructor>
+      <demand>JMSServerManager</demand>
+   </bean>
+
 </deployment>
\ No newline at end of file




More information about the jboss-cvs-commits mailing list