You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by da...@apache.org on 2003/09/05 04:37:49 UTC
cvs commit: incubator-geronimo/modules/core/src/java/org/apache/geronimo/deployment/service MBeanMetadata.java MBeanMetadataXMLLoader.java ServiceDeploymentPlanner.java
dain 2003/09/04 19:37:49
Modified: modules/core/src/java/org/apache/geronimo/deployment/service
MBeanMetadata.java MBeanMetadataXMLLoader.java
ServiceDeploymentPlanner.java
Log:
Added support for GeronimoMBean.
Revision Changes Path
1.6 +21 -3 incubator-geronimo/modules/core/src/java/org/apache/geronimo/deployment/service/MBeanMetadata.java
Index: MBeanMetadata.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/core/src/java/org/apache/geronimo/deployment/service/MBeanMetadata.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- MBeanMetadata.java 20 Aug 2003 22:41:23 -0000 1.5
+++ MBeanMetadata.java 5 Sep 2003 02:37:49 -0000 1.6
@@ -55,22 +55,25 @@
*/
package org.apache.geronimo.deployment.service;
+import java.net.URI;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import java.net.URI;
import javax.management.ObjectName;
+import org.apache.geronimo.jmx.GeronimoMBeanInfo;
+
/**
- *
+ * Metadata about an MBean that is use during deployment.
*
* @version $Revision$ $Date$
*/
public class MBeanMetadata {
private String code;
+ private GeronimoMBeanInfo geronimoMBeanInfo;
private ObjectName name;
private ObjectName loaderName;
private ObjectName parentName;
@@ -106,12 +109,27 @@
this.parentName = parentName;
}
+ public MBeanMetadata(ObjectName name, GeronimoMBeanInfo geronimoMBeanInfo, ObjectName loaderName, ObjectName parentName) {
+ this.name = name;
+ this.geronimoMBeanInfo = geronimoMBeanInfo;
+ this.loaderName = loaderName;
+ this.parentName = parentName;
+ }
+
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
+ }
+
+ public GeronimoMBeanInfo getGeronimoMBeanInfo() {
+ return geronimoMBeanInfo;
+ }
+
+ public void setGeronimoMBeanInfo(GeronimoMBeanInfo geronimoMBeanInfo) {
+ this.geronimoMBeanInfo = geronimoMBeanInfo;
}
public ObjectName getName() {
1.6 +25 -6 incubator-geronimo/modules/core/src/java/org/apache/geronimo/deployment/service/MBeanMetadataXMLLoader.java
Index: MBeanMetadataXMLLoader.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/core/src/java/org/apache/geronimo/deployment/service/MBeanMetadataXMLLoader.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- MBeanMetadataXMLLoader.java 27 Aug 2003 03:43:36 -0000 1.5
+++ MBeanMetadataXMLLoader.java 5 Sep 2003 02:37:49 -0000 1.6
@@ -55,27 +55,46 @@
*/
package org.apache.geronimo.deployment.service;
+import java.net.URI;
import java.util.List;
import java.util.Map;
import java.util.Set;
-
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import org.apache.geronimo.deployment.DeploymentException;
+import org.apache.geronimo.jmx.GeronimoMBeanInfo;
+import org.apache.geronimo.jmx.GeronimoMBeanInfoXMLLoader;
+
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
/**
- *
+ * Loads MBean metadata from xml.
*
* @version $Revision$ $Date$
*/
public class MBeanMetadataXMLLoader {
- public MBeanMetadata loadXML(Element element) throws DeploymentException {
+ private final GeronimoMBeanInfoXMLLoader xmlLoader;
+
+ public MBeanMetadataXMLLoader() throws DeploymentException {
+ this.xmlLoader = new GeronimoMBeanInfoXMLLoader();
+ }
+
+ public MBeanMetadata loadXML(URI baseURI, Element element) throws DeploymentException {
MBeanMetadata md = new MBeanMetadata();
- md.setCode(element.getAttribute("code").trim());
+ md.setBaseURI(baseURI);
+ String code = element.getAttribute("code").trim();
+ if (code.length() > 0) {
+ md.setCode(code);
+ }
+ String descriptor = element.getAttribute("descriptor").trim();
+ if (descriptor.length() > 0) {
+ URI descriptorURI = baseURI.resolve(descriptor);
+ GeronimoMBeanInfo geronimoMBeanInfo = xmlLoader.loadXML(descriptorURI);
+ md.setGeronimoMBeanInfo(geronimoMBeanInfo);
+ }
String s = element.getAttribute("name").trim();
try {
if (s.length() > 0) {
@@ -117,7 +136,7 @@
ObjectName target = null;
String targetString = argElement.getAttribute("target");
- if(targetString != null && targetString.length() > 0) {
+ if (targetString != null && targetString.length() > 0) {
try {
target = new ObjectName(targetString);
} catch (MalformedObjectNameException e) {
1.11 +10 -15 incubator-geronimo/modules/core/src/java/org/apache/geronimo/deployment/service/ServiceDeploymentPlanner.java
Index: ServiceDeploymentPlanner.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/core/src/java/org/apache/geronimo/deployment/service/ServiceDeploymentPlanner.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- ServiceDeploymentPlanner.java 1 Sep 2003 20:38:49 -0000 1.10
+++ ServiceDeploymentPlanner.java 5 Sep 2003 02:37:49 -0000 1.11
@@ -64,7 +64,6 @@
import java.util.Iterator;
import java.util.List;
import java.util.Set;
-
import javax.management.AttributeNotFoundException;
import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
@@ -79,8 +78,6 @@
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.apache.geronimo.deployment.DeploymentException;
import org.apache.geronimo.deployment.goal.DeployURL;
import org.apache.geronimo.deployment.goal.DeploymentGoal;
@@ -96,29 +93,26 @@
import org.apache.geronimo.deployment.plan.StopMBeanInstance;
import org.apache.geronimo.deployment.scanner.URLType;
import org.apache.geronimo.jmx.JMXUtil;
+
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
/**
+ * Plans deployment of MBean services.
*
- * @jmx:mbean
- * extends="org.apache.geronimo.deployment.DeploymentPlanner"
+ * @jmx:mbean extends="org.apache.geronimo.deployment.DeploymentPlanner"
*
* @version $Revision$ $Date$
*/
-public class ServiceDeploymentPlanner
- implements ServiceDeploymentPlannerMBean, MBeanRegistration
-{
- private static final Log log = LogFactory.getLog(ServiceDeploymentPlanner.class);
-
+public class ServiceDeploymentPlanner implements ServiceDeploymentPlannerMBean, MBeanRegistration {
private MBeanServer server;
private ObjectName objectName;
private RelationServiceMBean relationService;
private final DocumentBuilder parser;
private final MBeanMetadataXMLLoader mbeanLoader;
- public ServiceDeploymentPlanner() {
+ public ServiceDeploymentPlanner() throws DeploymentException {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
try {
parser = factory.newDocumentBuilder();
@@ -173,8 +167,9 @@
private boolean addURL(DeployURL goal, Set goals, Set plans) throws DeploymentException {
InputStream is;
URL url = goal.getUrl();
- URI baseURI = URI.create(url.toString()).normalize();;
-
+ URI baseURI = URI.create(url.toString()).normalize();
+ ;
+
URLType type = goal.getType();
if (type == URLType.RESOURCE) {
if (!url.getPath().endsWith("-service.xml")) {
@@ -227,7 +222,7 @@
DeploymentPlan createPlan = new DeploymentPlan();
Element mbeanElement = (Element) nl.item(i);
- metadata = mbeanLoader.loadXML(mbeanElement);
+ metadata = mbeanLoader.loadXML(baseURI, mbeanElement);
if (server.isRegistered(metadata.getName())) {
throw new DeploymentException("MBean already exists " + metadata.getName());
}