[jboss-cvs] JBossAS SVN: r100058 - in branches/Branch_Hornet_Temporary_2: component-matrix and 7 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Jan 28 11:31:19 EST 2010
Author: ataylor
Date: 2010-01-28 11:31:18 -0500 (Thu, 28 Jan 2010)
New Revision: 100058
Added:
branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/
branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQJMSQueueComponent.java
branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQJMSQueueDiscoveryComponent.java
branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQJMSServerComponent.java
branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQJMSServerDiscoveryComponent.java
branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQServerComponent.java
branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQServerDiscoveryComponent.java
branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/util/
branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/util/MBeanUtil.java
branches/Branch_Hornet_Temporary_2/hornetq-int/src/resources/META-INF/
branches/Branch_Hornet_Temporary_2/hornetq-int/src/resources/META-INF/rhq-plugin.xml
Removed:
branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/server/destination/QueueMO.java
branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/server/destination/QueueMODefinition.java
branches/Branch_Hornet_Temporary_2/hornetq-int/src/resources/hornetq-definitions-jboss-beans.xml
Modified:
branches/Branch_Hornet_Temporary_2/build/build.xml
branches/Branch_Hornet_Temporary_2/component-matrix/pom.xml
branches/Branch_Hornet_Temporary_2/hornetq-int/pom.xml
Log:
added hornetq jopr plugin first pass
Modified: branches/Branch_Hornet_Temporary_2/build/build.xml
===================================================================
--- branches/Branch_Hornet_Temporary_2/build/build.xml 2010-01-28 16:15:28 UTC (rev 100057)
+++ branches/Branch_Hornet_Temporary_2/build/build.xml 2010-01-28 16:31:18 UTC (rev 100058)
@@ -1768,47 +1768,6 @@
<mkdir dir="${install.common.lib}"/>
-
-
- <copy file="${org.hornetq:hornetq-jboss-as-integration:jar}" todir="${install.common.lib}">
- <mapper refid="remove-versions" />
- </copy>
- <copy file="${org.hornetq:hornetq-bootstrap:jar}" todir="${install.common.lib}">
- <mapper refid="remove-versions" />
- </copy>
- <copy file="${org.hornetq:hornetq-core-client:jar}" todir="${install.common.lib}">
- <mapper refid="remove-versions" />
- </copy>
-
- <copy file="${org.hornetq:hornetq-core:jar}" todir="${install.common.lib}">
- <mapper refid="remove-versions" />
- </copy>
-
- <copy file="${org.hornetq:hornetq-logging:jar}" todir="${install.common.lib}">
- <mapper refid="remove-versions" />
- </copy>
-
- <copy file="${org.hornetq:hornetq-ra:jar}" todir="${install.common.lib}">
- <mapper refid="remove-versions" />
- </copy>
-
- <copy file="${org.hornetq:hornetq-transports:jar}" todir="${install.common.lib}">
- <mapper refid="remove-versions" />
- </copy>
-
- <copy file="${org.jboss.jbossas:jboss-as-hornetq-int:jar}" todir="${install.common.lib}">
- <mapper refid="remove-versions" />
- </copy>
-
- <copy file="${org.hornetq:hornetq-jms-client:jar}" todir="${install.common.lib}">
- <mapper refid="remove-versions" />
- </copy>
-
- <copy file="${org.hornetq:hornetq-jms:jar}" todir="${install.common.lib}">
- <mapper refid="remove-versions" />
- </copy>
-
-
<!--
Default configuration
-->
@@ -1849,22 +1808,19 @@
<mapper type="flatten"/>
</unzip>
-
- <mkdir dir="${install.common.lib}"/>
-
<!-- The hibernate-int module output -->
<copy file="${hornetq.module.output}/jboss-as-hornetq-int.jar"
todir="${install.common.lib}/" filtering="no" />
-
- <copy todir="${install.server}/all/deployers" filtering="no">
- <fileset dir="${hornetq.module.output}/resources">
- <include name="hornetq-definitions-jboss-beans.xml"/>
+
+ <copy todir="${install.server}/all/deploy/admin-console.war/plugins" filtering="no">
+ <fileset dir="${hornetq.module.output}">
+ <include name="jboss-as-hornetq-plugin.jar"/>
</fileset>
</copy>
</target>
- <target name="module-hornetq-int-all" depends="module-hibernate-int">
+ <target name="module-hornetq-int-all" depends="module-hornetq-int">
<!-- Copy the generated javadocs -->
<mkdir dir="${install.api}/${hornetq.module.name}"/>
<copy todir="${install.api}/${hornetq.module.name}" filtering="no">
@@ -2005,6 +1961,13 @@
<fileset refid="jboss.web:jsp-api:jar"/>
<fileset refid="jboss.web:servlet-api:jar"/>
<fileset refid="org.jboss.weld:weld-api:jar"/>
+ <fileset refid="org.hornetq:hornetq-jboss-as-integration:jar"/>
+ <fileset refid="org.hornetq:hornetq-bootstrap:jar"/>
+ <fileset refid="org.hornetq:hornetq-core:jar"/>
+ <fileset refid="org.hornetq:hornetq-logging:jar"/>
+ <fileset refid="org.hornetq:hornetq-transports:jar"/>
+ <fileset refid="org.jboss.jbossas:jboss-as-hornetq-int:jar"/>
+ <fileset refid="org.hornetq:hornetq-jms:jar"/>
<mapper refid="remove-versions" />
</copy>
@@ -2090,7 +2053,7 @@
<fileset refid="org.jboss.aop:jboss-aop-deployers:jar"/>
<fileset refid="gnu-getopt:getopt:jar"/>
<mapper refid="remove-versions" />
- </copy>
+ </copy>
<!--
- Note: this is copied separately because the name (jboss-xml-binding) is
- hardcoded in the wsconsume scripts. Once this is changed
@@ -2190,6 +2153,8 @@
<fileset refid="org.codehaus.jettison:jettison:jar"/>
<fileset refid="org.jboss.netty:netty:jar"/>
<fileset refid="org.jboss.weld:weld-api:jar"/>
+ <fileset refid="org.hornetq:hornetq-core-client:jar"/>
+ <fileset refid="org.hornetq:hornetq-jms-client:jar"/>
<mapper refid="remove-versions" />
</copy>
<!--
Modified: branches/Branch_Hornet_Temporary_2/component-matrix/pom.xml
===================================================================
--- branches/Branch_Hornet_Temporary_2/component-matrix/pom.xml 2010-01-28 16:15:28 UTC (rev 100057)
+++ branches/Branch_Hornet_Temporary_2/component-matrix/pom.xml 2010-01-28 16:31:18 UTC (rev 100058)
@@ -583,7 +583,6 @@
<artifactId>hornetq-transports</artifactId>
<version>${version.hornetq}</version>
</dependency>
-
<dependency>
<groupId>org.jboss.aspects</groupId>
<artifactId>jboss-current-invocation-aspects</artifactId>
@@ -2884,6 +2883,10 @@
<exclude>org.jboss.microcontainer:jboss-kernel</exclude>
<exclude>org.jboss.microcontainer:jboss-spring-int</exclude>
</excludes>
+ <includes>
+ <include>javax.xml.bind:jaxb-api:jar:2.1</include>
+ <include>javax.xml.stream:stax-api:jar:1.0-2</include>
+ </includes>
</bannedDependencies>
</rules>
</configuration>
Modified: branches/Branch_Hornet_Temporary_2/hornetq-int/pom.xml
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/pom.xml 2010-01-28 16:15:28 UTC (rev 100057)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/pom.xml 2010-01-28 16:31:18 UTC (rev 100058)
@@ -23,6 +23,16 @@
</resource>
</resources>
<plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-jar-plugin</artifactId>
+ <configuration>
+ <excludes>
+ <exclude>org/jboss/jms/jopr/**</exclude>
+ <exclude>**/rhq-plugin.xml</exclude>
+ </excludes>
+ </configuration>
+ </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-antrun-plugin</artifactId>
@@ -31,7 +41,7 @@
<id>create-output</id>
<goals>
<goal>run</goal>
- </goals>
+ </goals>
<phase>package</phase>
<configuration>
<tasks>
@@ -42,7 +52,14 @@
<include name="**"/>
</fileset>
</copy>
-
+ <jar jarfile="target/jboss-as-hornetq-plugin.jar">
+ <fileset dir="${project.build.outputDirectory}">
+ <include name="org/jboss/jms/jopr/**"/>
+ </fileset>
+ <fileset dir="target/resources">
+ <include name="META-INF/**"/>
+ </fileset>
+ </jar>
</tasks>
</configuration>
</execution>
@@ -114,6 +131,18 @@
<artifactId>jbosssx-client</artifactId>
</dependency>
<dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-core-domain</artifactId>
+ <version>1.4.0.B01</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.rhq</groupId>
+ <artifactId>rhq-core-plugin-api</artifactId>
+ <version>1.4.0.B01</version>
+ <scope>compile</scope>
+ </dependency>
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
Added: branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQJMSQueueComponent.java
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQJMSQueueComponent.java (rev 0)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQJMSQueueComponent.java 2010-01-28 16:31:18 UTC (rev 100058)
@@ -0,0 +1,133 @@
+/*
+ * 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.jms.jopr;
+
+import org.jboss.jms.jopr.util.MBeanUtil;
+import org.jboss.util.property.PropertyMap;
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.Property;
+import org.rhq.core.domain.configuration.PropertyList;
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.configuration.definition.ConfigurationDefinition;
+import org.rhq.core.domain.configuration.definition.ConfigurationTemplate;
+import org.rhq.core.domain.measurement.AvailabilityType;
+import org.rhq.core.domain.measurement.MeasurementReport;
+import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
+import org.rhq.core.domain.operation.OperationDefinition;
+import org.rhq.core.domain.resource.ResourceType;
+import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
+import org.rhq.core.pluginapi.inventory.ResourceComponent;
+import org.rhq.core.pluginapi.inventory.ResourceContext;
+import org.rhq.core.pluginapi.measurement.MeasurementFacet;
+import org.rhq.core.pluginapi.operation.OperationFacet;
+import org.rhq.core.pluginapi.operation.OperationResult;
+
+import javax.management.ObjectName;
+import java.util.*;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ * Created Jan 27, 2010
+ */
+public class HornetQJMSQueueComponent implements ResourceComponent, MeasurementFacet, OperationFacet
+{
+ private MBeanUtil util;
+
+ private ObjectName objectName;
+
+ private ResourceContext resourceContext;
+
+ public void getValues(MeasurementReport measurementReport, Set<MeasurementScheduleRequest> measurementScheduleRequests) throws Exception
+ {
+
+ }
+
+ public OperationResult invokeOperation(String oper, Configuration configuration) throws InterruptedException, Exception
+ {
+ Collection<PropertySimple> props = configuration.getSimpleProperties().values();
+ Object o = util.invoke(objectName, oper, props);
+ if(o == null)
+ {
+ return null;
+ }
+ else
+ {
+ OperationResult operationResult = new OperationResult();
+ Configuration c = operationResult.getComplexResults();
+ OperationDefinition operationDefinition = getOperationDefinition(oper);
+ PropertyList property = new PropertyList("result");
+ Map[] map = (Map[]) o;
+ for (Map map1 : map)
+ {
+ org.rhq.core.domain.configuration.PropertyMap p1 = new org.rhq.core.domain.configuration.PropertyMap("element");
+ property.add(p1);
+ for (Object o1 : map1.keySet())
+ {
+ p1.put(new PropertySimple((String) o1, map1.get(o1)));
+ }
+ }
+ c.put(property);
+ return operationResult;
+ }
+ }
+
+ public void start(ResourceContext resourceContext) throws InvalidPluginConfigurationException, Exception
+ {
+ util = new MBeanUtil();
+ objectName = new ObjectName("org.hornetq:module=JMS,type=Queue,name=" + resourceContext.getResourceKey().split(":")[1]);
+ this.resourceContext = resourceContext;
+ }
+
+ public void stop()
+ {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ public AvailabilityType getAvailability()
+ {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ private OperationDefinition getOperationDefinition(String operationName) {
+ ResourceType resourceType = resourceContext.getResourceType();
+ OperationDefinition operationDefinition = getOperationDefinition(resourceType, operationName);
+ if (operationDefinition == null)
+ throw new IllegalStateException("Operation named '" + operationName
+ + "' is not defined for Resource type '" + resourceType.getName() + "' in the '"
+ + resourceType.getPlugin() + "' plugin's descriptor.");
+ return operationDefinition;
+ }
+
+ public static Configuration getDefaultPluginConfiguration(ResourceType resourceType)
+ {
+ ConfigurationDefinition pluginConfigurationDefinition = resourceType.getPluginConfigurationDefinition();
+ if (pluginConfigurationDefinition != null)
+ {
+ ConfigurationTemplate template = pluginConfigurationDefinition.getDefaultTemplate();
+ if (template != null)
+ return template.getConfiguration().deepCopy();
+ }
+ return new Configuration(); // there is no default plugin config defined - return an empty one
+ }
+
+ public static OperationDefinition getOperationDefinition(ResourceType resourceType, String operationName)
+ {
+ Set<OperationDefinition> operationDefinitions = resourceType.getOperationDefinitions();
+ for (OperationDefinition operationDefinition : operationDefinitions)
+ {
+ if (operationDefinition.getName().equals(operationName))
+ return operationDefinition;
+ }
+ return null;
+ }
+}
Added: branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQJMSQueueDiscoveryComponent.java
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQJMSQueueDiscoveryComponent.java (rev 0)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQJMSQueueDiscoveryComponent.java 2010-01-28 16:31:18 UTC (rev 100058)
@@ -0,0 +1,55 @@
+/*
+ * 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.jms.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 javax.management.MBeanInfo;
+import javax.management.MBeanServer;
+import javax.management.ObjectInstance;
+import javax.management.ObjectName;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ * Created Jan 27, 2010
+ */
+public class HornetQJMSQueueDiscoveryComponent implements ResourceDiscoveryComponent<HornetQJMSQueueComponent>
+{
+ public Set<DiscoveredResourceDetails> discoverResources(ResourceDiscoveryContext<HornetQJMSQueueComponent> ctx) throws InvalidPluginConfigurationException, Exception
+ {
+ ObjectName name = new ObjectName("org.hornetq:module=JMS,type=Queue,name=*");
+ MBeanServer beanServer = org.jboss.mx.util.MBeanServerLocator.locate();
+ Set<ObjectInstance> objectInstances = beanServer.queryMBeans(name, null);
+ Set<DiscoveredResourceDetails> set = new HashSet<DiscoveredResourceDetails>();
+ for (ObjectInstance instance : objectInstances)
+ {
+ instance.getObjectName().getCanonicalName();
+ DiscoveredResourceDetails detail = new DiscoveredResourceDetails(
+ ctx.getResourceType(), // Resource type
+ "HornetQJMSQueue:" + instance.getObjectName().getKeyProperty("name"), // Resource key
+ instance.getObjectName().getKeyProperty("name"), // Resource name
+ null, // Resource version
+ "HornetQ JMS Queue", // Description
+ ctx.getDefaultPluginConfiguration(), // Plugin config
+ null // Process info from a process scan
+ );
+ set.add(detail);
+ }
+ return set;
+ }
+}
Added: branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQJMSServerComponent.java
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQJMSServerComponent.java (rev 0)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQJMSServerComponent.java 2010-01-28 16:31:18 UTC (rev 100058)
@@ -0,0 +1,75 @@
+/*
+ * 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.jms.jopr;
+
+import org.jboss.jms.jopr.util.MBeanUtil;
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.configuration.Property;
+import org.rhq.core.domain.configuration.PropertySimple;
+import org.rhq.core.domain.measurement.AvailabilityType;
+import org.rhq.core.domain.measurement.MeasurementReport;
+import org.rhq.core.domain.measurement.MeasurementScheduleRequest;
+import org.rhq.core.pluginapi.inventory.*;
+import org.rhq.core.pluginapi.measurement.MeasurementFacet;
+import org.rhq.core.pluginapi.operation.OperationFacet;
+import org.rhq.core.pluginapi.operation.OperationResult;
+
+import javax.management.ObjectName;
+import java.util.Collection;
+import java.util.Set;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ * Created Jan 26, 2010
+ */
+public class HornetQJMSServerComponent implements ResourceComponent, MeasurementFacet, OperationFacet
+{
+ private MBeanUtil util;
+
+ private ObjectName objectName;
+
+ public void getValues(MeasurementReport measurementReport, Set<MeasurementScheduleRequest> measurementScheduleRequests) throws Exception
+ {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ public OperationResult invokeOperation(String oper, Configuration configuration) throws InterruptedException, Exception
+ {
+ Collection<PropertySimple> props = configuration.getSimpleProperties().values();
+ Object o = util.invoke(objectName, oper, props);
+ if(o == null)
+ {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+ else
+ {
+ return new OperationResult(o.toString());
+ }
+ }
+
+ public void start(ResourceContext resourceContext) throws InvalidPluginConfigurationException, Exception
+ {
+ util = new MBeanUtil();
+ objectName = new ObjectName("org.hornetq:module=JMS,type=Server");
+ }
+
+ public void stop()
+ {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ public AvailabilityType getAvailability()
+ {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+}
Added: branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQJMSServerDiscoveryComponent.java
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQJMSServerDiscoveryComponent.java (rev 0)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQJMSServerDiscoveryComponent.java 2010-01-28 16:31:18 UTC (rev 100058)
@@ -0,0 +1,44 @@
+/*
+ * 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.jms.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 java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ * Created Jan 26, 2010
+ */
+public class HornetQJMSServerDiscoveryComponent implements ResourceDiscoveryComponent<HornetQJMSServerComponent>
+{
+ public Set<DiscoveredResourceDetails> discoverResources(ResourceDiscoveryContext<HornetQJMSServerComponent> ctx) throws InvalidPluginConfigurationException, Exception
+ {
+ Set<DiscoveredResourceDetails> set = new HashSet<DiscoveredResourceDetails>();
+ DiscoveredResourceDetails detail = new DiscoveredResourceDetails(
+ ctx.getResourceType(), // Resource type
+ "HornetQJMSServerManager", // Resource key
+ "HornetQ JMS Server Manager", // Resource name
+ null, // Resource version
+ "HornetQ Local Server", // Description
+ ctx.getDefaultPluginConfiguration(), // Plugin config
+ null // Process info from a process scan
+ );
+ set.add(detail);
+ return set;
+ }
+}
Added: branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQServerComponent.java
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQServerComponent.java (rev 0)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQServerComponent.java 2010-01-28 16:31:18 UTC (rev 100058)
@@ -0,0 +1,74 @@
+/*
+ * 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.jms.jopr;
+
+import org.rhq.core.domain.configuration.Configuration;
+import org.rhq.core.domain.measurement.*;
+import org.rhq.core.pluginapi.inventory.InvalidPluginConfigurationException;
+import org.rhq.core.pluginapi.inventory.ResourceComponent;
+import org.rhq.core.pluginapi.inventory.ResourceContext;
+import org.rhq.core.pluginapi.measurement.MeasurementFacet;
+import org.rhq.core.pluginapi.operation.OperationFacet;
+import org.rhq.core.pluginapi.operation.OperationResult;
+
+import java.util.Set;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ * Created Jan 26, 2010
+ */
+public class HornetQServerComponent implements ResourceComponent, MeasurementFacet, OperationFacet
+{
+ private String[] queueNames;
+
+ private ResourceContext resourceContext;
+
+ public void getValues(MeasurementReport report, Set<MeasurementScheduleRequest> measurementScheduleRequests) throws Exception
+ {
+ for (MeasurementScheduleRequest request : measurementScheduleRequests)
+ {
+ if(DataType.TRAIT.equals(request.getDataType()))
+ {
+ if(request.getName().equals("hornetqversion"))
+ {
+ report.addData(new MeasurementDataTrait(request, resourceContext.getVersion()));
+ }
+ }
+ }
+ }
+
+ public void start(ResourceContext resourceContext) throws InvalidPluginConfigurationException, Exception
+ {
+ this.resourceContext = resourceContext;
+ }
+
+ public void stop()
+ {
+ //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ public AvailabilityType getAvailability()
+ {
+ return AvailabilityType.UP;
+ }
+
+ public OperationResult invokeOperation(String s, Configuration configuration) throws InterruptedException, Exception
+ {
+ return null; //To change body of implemented methods use File | Settings | File Templates.
+ }
+
+ public void setQueueNames(String[] queueNames)
+ {
+ this.queueNames = queueNames;
+ }
+}
Added: branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQServerDiscoveryComponent.java
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQServerDiscoveryComponent.java (rev 0)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/HornetQServerDiscoveryComponent.java 2010-01-28 16:31:18 UTC (rev 100058)
@@ -0,0 +1,60 @@
+/*
+ * 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.jms.jopr;
+
+import org.jboss.deployers.spi.management.ManagementView;
+import org.jboss.profileservice.spi.ProfileService;
+import org.rhq.core.domain.configuration.Configuration;
+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 javax.management.MBeanAttributeInfo;
+import javax.management.MBeanInfo;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import javax.naming.InitialContext;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ * Created Jan 26, 2010
+ */
+public class HornetQServerDiscoveryComponent implements ResourceDiscoveryComponent<HornetQServerComponent>
+{
+ public Set<DiscoveredResourceDetails> discoverResources(ResourceDiscoveryContext<HornetQServerComponent> ctx) throws InvalidPluginConfigurationException, Exception
+ {
+ ObjectName name = new ObjectName("org.hornetq:module=JMS,type=Server");
+ MBeanServer beanServer = org.jboss.mx.util.MBeanServerLocator.locate();
+ MBeanInfo info = beanServer.getMBeanInfo(name);
+ String version = (String) beanServer.getAttribute(name, "Version");
+ String[] queueNames = (String[]) beanServer.getAttribute(name, "QueueNames");
+ MBeanAttributeInfo[] attributeInfos = info.getAttributes();
+ //ctx.getParentResourceComponent().setQueueNames(queueNames);
+ Set<DiscoveredResourceDetails> set = new HashSet<DiscoveredResourceDetails>();
+ Configuration c = new Configuration();
+ DiscoveredResourceDetails detail = new DiscoveredResourceDetails(
+ ctx.getResourceType(), // Resource type
+ "HornetQServer", // Resource key
+ "HornetQ Local Server", // Resource name
+ version, // Resource version
+ "HornetQ Local Server", // Description
+ c, // Plugin config
+ null // Process info from a process scan
+ );
+ set.add(detail);
+ return set;
+ }
+}
Added: branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/util/MBeanUtil.java
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/util/MBeanUtil.java (rev 0)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/jopr/util/MBeanUtil.java 2010-01-28 16:31:18 UTC (rev 100058)
@@ -0,0 +1,81 @@
+/*
+ * 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.jms.jopr.util;
+
+import org.jboss.mx.util.MBeanServerLocator;
+import org.rhq.core.domain.configuration.Property;
+import org.rhq.core.domain.configuration.PropertySimple;
+
+import javax.management.MBeanInfo;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import java.util.Collection;
+
+/**
+ * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
+ * Created Jan 26, 2010
+ */
+public class MBeanUtil
+{
+ private boolean initialized = false;
+
+ private MBeanServer beanServer;
+
+ private ObjectName jmsServerManager;
+
+ private void init() throws Exception
+ {
+ beanServer = MBeanServerLocator.locate();
+ jmsServerManager = new ObjectName("org.hornetq:module=JMS,type=Server");
+ }
+
+ public Object invoke(ObjectName objectName, String oper, Collection<PropertySimple> props) throws Exception
+ {
+ if(!initialized)
+ {
+ init();
+ }
+ Object[] params = new Object[props.size()];
+ String[] signature = new String[props.size()];
+ populateParams(props, params, signature);
+ return beanServer.invoke(objectName, oper, params, signature);
+ }
+
+ private static void populateParams(Collection<PropertySimple> props, Object[] params, String[] signature)
+ {
+ int pos = 0;
+ for (PropertySimple prop : props)
+ {
+ String[] val = prop.getName().split(":");
+ if(val.length == 1)
+ {
+ params[pos] = prop.getStringValue();
+ signature[pos] = "java.lang.String";
+ }
+ else
+ {
+ if(val[0].equals("Boolean"))
+ {
+ params[pos] = prop.getBooleanValue();
+ signature[pos] = "java.lang.Boolean";
+ }
+ else if(val[0].equals("String"))
+ {
+ params[pos] = prop.getStringValue();
+ signature[pos] = "java.lang.String";
+ }
+ }
+ pos++;
+ }
+ }
+}
Deleted: branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/server/destination/QueueMO.java
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/server/destination/QueueMO.java 2010-01-28 16:15:28 UTC (rev 100057)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/server/destination/QueueMO.java 2010-01-28 16:31:18 UTC (rev 100058)
@@ -1,22 +0,0 @@
-package org.jboss.jms.server.destination;
-
-import org.jboss.managed.api.annotation.*;
-
-import java.io.Serializable;
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- * Created Jan 25, 2010
- */
-
- at ManagementObject(
- componentType = @ManagementComponent(type = "JMSDestination", subtype = "HornetQQueue"),
- properties = ManagementProperties.EXPLICIT,
- isRuntime = true)
-public class QueueMO implements Serializable
-{
- @ManagementProperty(use={ViewUse.CONFIGURATION},
- description="The destination name",
- includeInTemplate=true, mandatory=true, readOnly=true)
- public String getName() { return null; }
-
-}
Deleted: branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/server/destination/QueueMODefinition.java
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/server/destination/QueueMODefinition.java 2010-01-28 16:15:28 UTC (rev 100057)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/src/main/java/org/jboss/jms/server/destination/QueueMODefinition.java 2010-01-28 16:31:18 UTC (rev 100058)
@@ -1,59 +0,0 @@
-package org.jboss.jms.server.destination;
-
-import org.hornetq.jms.client.HornetQQueue;
-import org.hornetq.jms.management.impl.JMSQueueControlImpl;
-import org.jboss.logging.Logger;
-import org.jboss.managed.api.ManagedObject;
-import org.jboss.managed.api.factory.ManagedObjectDefinition;
-import org.jboss.managed.api.factory.ManagedObjectFactory;
-import org.jboss.managed.spi.factory.ManagedObjectBuilder;
-import org.jboss.metadata.spi.MetaData;
-
-/**
- * @author <a href="mailto:andy.taylor at jboss.org">Andy Taylor</a>
- * Created Jan 25, 2010
- */
-public class QueueMODefinition extends ManagedObjectDefinition
-{
- private static Logger log = Logger.getLogger(QueueMODefinition.class);
-
- public QueueMODefinition(ManagedObjectFactory factory)
- {
- super(JMSQueueControlImpl.class, new QueueMOBuilder(factory));
- }
-
- private static class QueueMOBuilder implements ManagedObjectBuilder
- {
- private ManagedObjectFactory factory;
-
- private QueueMOBuilder(ManagedObjectFactory factory)
- {
- this.factory = factory;
- }
- /**
- * Create a ManagedObject from QueueService to QueueServiceMO.
- *
- * @param clazz - the mbean class to create the ManagedObject for
- * @param metaData - the MDR MetaData view
- */
- public ManagedObject buildManagedObject(Class<?> clazz, MetaData metaData)
- {
- ManagedObjectFactory mof = getMOFactory();
- log.info("***********************************************************************************************Creating QueueMO template for: " + clazz);
- return mof.createManagedObject(QueueMO.class, metaData);
- }
-
- /**
- * Get MO factory.
- *
- * @return the MO factory
- */
- protected ManagedObjectFactory getMOFactory()
- {
- if (factory == null)
- factory = ManagedObjectFactory.getInstance();
-
- return factory;
- }
- }
-}
Added: branches/Branch_Hornet_Temporary_2/hornetq-int/src/resources/META-INF/rhq-plugin.xml
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/src/resources/META-INF/rhq-plugin.xml (rev 0)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/src/resources/META-INF/rhq-plugin.xml 2010-01-28 16:31:18 UTC (rev 100058)
@@ -0,0 +1,82 @@
+<?xml version="1.0"?>
+<plugin name="HornetQ"
+ displayName="HornetQPlugin"
+ description="Supports management and monitoring of HornetQ Servers"
+ package="org.jboss.jms.jopr"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns="urn:xmlns:rhq-plugin"
+ xmlns:c="urn:xmlns:rhq-configuration">
+
+ <depends plugin="JMX" useClasses="true"/>
+
+ <server name="HornetQ Server"
+ discovery="HornetQServerDiscoveryComponent"
+ class="HornetQServerComponent">
+ <subcategories>
+ <subcategory name="JMS"
+ description="JMS Management"/>
+ <subcategory name="Core"
+ description="Core Management">
+ </subcategory>
+ </subcategories>
+ <metric property="hornetqversion"
+ displayName="HornetQ Version"
+ description="the HornetQ Version"
+ dataType="trait" displayType="summary"/>
+ <service name="HornetQ JMS Server"
+ discovery="HornetQJMSServerDiscoveryComponent"
+ subCategory="JMS"
+ class="HornetQJMSServerComponent"
+ singleton="true">
+ <operation name="createQueue" displayName="Create a JMS Queue" description="Create a JMS Queue.">
+ <parameters>
+ <c:simple-property required="true" name="queueName" displayName="queue name"/>
+ <c:simple-property required="true" name="String:jndiBinding" displayName="jndi binding"/>
+ </parameters>
+ <results><c:simple-property name="operationResult" description="The Outcome of creating the queue."/></results>
+ </operation>
+ <operation name="destroyQueue" displayName="Destroy a JMS Queue" description="Destroy a JMS Queue.">
+ <parameters>
+ <c:simple-property required="true" name="queueName" displayName="queue name"/>
+ </parameters>
+ <results><c:simple-property name="operationResult" description="The Outcome of destroying the queue."/></results>
+ </operation>
+ <operation name="createTopic" displayName="Create a JMS Topic" description="Create a JMS Topic.">
+ <parameters>
+ <c:simple-property required="true" name="topicName" displayName="topic name"/>
+ <c:simple-property required="true" name="jndiBinding" displayName="jndi binding"/>
+ </parameters>
+ <results><c:simple-property name="operationResult" description="The Outcome of creating the topic."/></results>
+ </operation>
+ <operation name="destroyTopic" displayName="Destroy a JMS Topic" description="Destroy a JMS Topic.">
+ <parameters>
+ <c:simple-property required="true" name="topicName" displayName="topic name"/>
+ </parameters>
+ <results><c:simple-property name="operationResult" description="The Outcome of destroying the topic."/></results>
+ </operation>
+ </service>
+
+ <service name="Queues"
+ discovery="HornetQJMSQueueDiscoveryComponent"
+ subCategory="JMS"
+ class="HornetQJMSQueueComponent">
+ <operation name="listMessages" displayName="list all the messages" description="list all the messages.">
+ <parameters>
+ <c:simple-property required="false" name="selector" displayName="the selector"/>
+ </parameters>
+ <results>
+ <c:list-property name="result">
+ <c:map-property required="false" name="element">
+ <c:simple-property type="string" name="JMSMessageID"/>
+ <c:simple-property type="long" required="false" name="JMSTimestamp"/>
+ <c:simple-property type="long" required="false" name="JMSExpiration"/>
+ <c:simple-property type="string" required="false" name="JMSDeliveryMode"/>
+ <c:simple-property type="string" name="JMSMessageID"/>
+ </c:map-property>
+ </c:list-property>
+ </results>
+ </operation>
+ </service>
+ </server>
+
+</plugin>
\ No newline at end of file
Deleted: branches/Branch_Hornet_Temporary_2/hornetq-int/src/resources/hornetq-definitions-jboss-beans.xml
===================================================================
--- branches/Branch_Hornet_Temporary_2/hornetq-int/src/resources/hornetq-definitions-jboss-beans.xml 2010-01-28 16:15:28 UTC (rev 100057)
+++ branches/Branch_Hornet_Temporary_2/hornetq-int/src/resources/hornetq-definitions-jboss-beans.xml 2010-01-28 16:31:18 UTC (rev 100058)
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
- Mappings for jms destinations to managed objects
- $Id:$
--->
-<deployment xmlns="urn:jboss:bean-deployer:2.0">
-
- <!-- MODefinition for the QueueService class -->
- <bean name="QueueMODefinition" class="org.jboss.jms.server.destination.QueueMODefinition">
- <constructor>
- <parameter><inject bean="ManagedObjectFactory" /></parameter>
- </constructor>
- </bean>
-
-</deployment>
\ No newline at end of file
More information about the jboss-cvs-commits
mailing list