You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2003/12/29 00:06:42 UTC
cvs commit: incubator-geronimo/modules/web/src/java/org/apache/geronimo/web AbstractWebContainer.java WebDeployment.java
djencks 2003/12/28 15:06:42
Modified: modules/core/src/java/org/apache/geronimo/connector/deployment
ConnectorDeploymentPlanner.java
modules/kernel/src/java/org/apache/geronimo/kernel/deployment
DeploymentInfo.java
modules/kernel/src/java/org/apache/geronimo/kernel/deployment/service
ServiceDeploymentPlanner.java
modules/web/src/java/org/apache/geronimo/web
AbstractWebContainer.java
Removed: modules/kernel/src/java/org/apache/geronimo/kernel/deployment/service
ServiceDeployment.java
modules/web/src/java/org/apache/geronimo/web
WebDeployment.java
Log:
Make DeploymentInfo into a GeronimoMBean
Revision Changes Path
1.9 +7 -13 incubator-geronimo/modules/core/src/java/org/apache/geronimo/connector/deployment/ConnectorDeploymentPlanner.java
Index: ConnectorDeploymentPlanner.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/core/src/java/org/apache/geronimo/connector/deployment/ConnectorDeploymentPlanner.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- ConnectorDeploymentPlanner.java 9 Dec 2003 04:22:10 -0000 1.8
+++ ConnectorDeploymentPlanner.java 28 Dec 2003 23:06:42 -0000 1.9
@@ -148,22 +148,16 @@
ObjectName deploymentUnitName = dHelper.buildDeploymentName();
- // Defines a deployment plan for the deployment unit.
- DeploymentPlan deploymentPlan = new DeploymentPlan();
- DeploymentInfo deploymentInfo =
- new DeploymentInfo(deploymentUnitName, null, url);
- deploymentPlan.addTask(
- new RegisterMBeanInstance(getServer(), deploymentUnitName, deploymentInfo));
- MBeanMetadata deploymentUnitMetadata = new MBeanMetadata(deploymentUnitName);
- deploymentPlan.addTask(
- new StartMBeanInstance(getServer(), deploymentUnitMetadata));
+ // Define a deployment plan for the deployment unit.
+ DeploymentPlan deploymentInfoPlan = DeploymentInfo.planDeploymentInfo(getServer(), null, deploymentUnitName, null, url);
+
// Define the ClassSpace for the Connector archives.
ClassSpaceMetadata raCS = dHelper.buildClassSpace();
- deploymentPlan.addTask(new CreateClassSpace(getServer(), raCS));//parent???
- plans.add(deploymentPlan);
+ deploymentInfoPlan.addTask(new CreateClassSpace(getServer(), raCS));//parent???
+ plans.add(deploymentInfoPlan);
//now another plan for the tasks that depend on the class space.
- deploymentPlan = new DeploymentPlan();
+ DeploymentPlan deploymentPlan = new DeploymentPlan();
// Load the deployment descriptor into our POJO
URI raURI = URI.create(raURL.toString()).normalize();
log.trace("Loading deployment descriptor " + raURI);
1.2 +40 -32 incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/deployment/DeploymentInfo.java
Index: DeploymentInfo.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/deployment/DeploymentInfo.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DeploymentInfo.java 8 Sep 2003 04:38:33 -0000 1.1
+++ DeploymentInfo.java 28 Dec 2003 23:06:42 -0000 1.2
@@ -60,77 +60,85 @@
import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
+
+import javax.management.MBeanServer;
import javax.management.ObjectName;
-import org.apache.geronimo.kernel.service.AbstractManagedObject;
+import org.apache.geronimo.kernel.deployment.service.MBeanMetadata;
+import org.apache.geronimo.kernel.deployment.task.DeployGeronimoMBean;
+import org.apache.geronimo.kernel.deployment.task.StartMBeanInstance;
+import org.apache.geronimo.kernel.service.GeronimoAttributeInfo;
+import org.apache.geronimo.kernel.service.GeronimoMBeanInfo;
+import org.apache.geronimo.kernel.service.GeronimoOperationInfo;
+import org.apache.geronimo.kernel.service.GeronimoParameterInfo;
/**
*
- * @jmx:mbean
- * extends="org.apache.geronimo.kernel.management.StateManageable,org.apache.geronimo.kernel.management.ManagedObject"
- *
* @version $Revision$ $Date$
*/
-public class DeploymentInfo extends AbstractManagedObject implements DeploymentInfoMBean {
+public class DeploymentInfo {
private final URL url;
private final ObjectName name;
private final ObjectName parent;
private final Set children = new HashSet();
- /**
- * @jmx:managed-constructor
- */
public DeploymentInfo(ObjectName name, ObjectName parent, URL url) {
this.name = name;
this.parent = parent;
this.url = url;
}
- protected void doStart() throws Exception {
- }
- protected void doStop() throws Exception {
- }
-
- /**
- * @jmx:managed-attribute
- */
public URL getURL() {
return url;
}
- /**
- * @jmx:managed-attribute
- */
public ObjectName getName() {
return name;
}
- /**
- * @jmx:managed-attribute
- */
public ObjectName getParent() {
return parent;
}
- /**
- * @jmx:managed-attribute
- */
public Collection getChildren() {
return Collections.unmodifiableCollection(children);
}
- /**
- * @jmx:managed-attribute
- */
public synchronized void addChild(ObjectName childName) {
children.add(childName);
}
- /**
- * @jmx:managed-attribute
- */
public synchronized void removeChild(ObjectName childName) {
children.remove(childName);
+ }
+
+ public static GeronimoMBeanInfo getGeronimoMBeanInfo() {
+ GeronimoMBeanInfo mbeanInfo = new GeronimoMBeanInfo();
+ mbeanInfo.setTargetClass(DeploymentInfo.class);
+ mbeanInfo.addAttributeInfo(new GeronimoAttributeInfo("URL", true, false, "URL of deployed package"));
+ mbeanInfo.addAttributeInfo(new GeronimoAttributeInfo("Name", true, false, "Name of deployed package"));
+ mbeanInfo.addAttributeInfo(new GeronimoAttributeInfo("Parent", true, false, "Parent DeploymentInfo ObjectName of deployed package"));
+ mbeanInfo.addAttributeInfo(new GeronimoAttributeInfo("Children", true, false, "Child DeploymentInfo ObjectName of deployed package"));
+ mbeanInfo.addOperationInfo(new GeronimoOperationInfo("addChild",
+ new GeronimoParameterInfo[]{new GeronimoParameterInfo("ChildName", ObjectName.class, "ObjectName of child deployment info")},
+ GeronimoOperationInfo.ACTION,
+ "Add a child deployment info"));
+ mbeanInfo.addOperationInfo(new GeronimoOperationInfo("removeChild",
+ new GeronimoParameterInfo[]{new GeronimoParameterInfo("ChildName", ObjectName.class, "ObjectName of child deployment info")},
+ GeronimoOperationInfo.ACTION,
+ "remove a child deployment info"));
+ return mbeanInfo;
+ }
+
+ public static DeploymentPlan planDeploymentInfo(MBeanServer server, ObjectName loaderName, ObjectName deploymentInfoName, ObjectName parentName, URL deploymentURL) {
+ DeploymentPlan plan = new DeploymentPlan();
+ DeploymentInfo deploymentInfo = new DeploymentInfo(deploymentInfoName, parentName, deploymentURL);
+ GeronimoMBeanInfo mbeanInfo = DeploymentInfo.getGeronimoMBeanInfo();
+ mbeanInfo.setTarget(deploymentInfo);
+ MBeanMetadata metadata = new MBeanMetadata(deploymentInfoName, mbeanInfo, loaderName, parentName);
+ plan.addTask(new DeployGeronimoMBean(server, metadata));
+ plan.addTask(new StartMBeanInstance(server, metadata));
+ return plan;
}
}
1.7 +9 -28 incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/deployment/service/ServiceDeploymentPlanner.java
Index: ServiceDeploymentPlanner.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/kernel/src/java/org/apache/geronimo/kernel/deployment/service/ServiceDeploymentPlanner.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- ServiceDeploymentPlanner.java 14 Nov 2003 16:27:34 -0000 1.6
+++ ServiceDeploymentPlanner.java 28 Dec 2003 23:06:42 -0000 1.7
@@ -60,50 +60,36 @@
import java.net.URI;
import java.net.URL;
import java.util.Collection;
-import java.util.HashSet;
import java.util.Iterator;
-import java.util.List;
import java.util.Set;
import javax.management.AttributeNotFoundException;
import javax.management.InstanceNotFoundException;
import javax.management.MBeanException;
-import javax.management.MBeanRegistration;
-import javax.management.MBeanServer;
import javax.management.MalformedObjectNameException;
import javax.management.ObjectName;
import javax.management.ReflectionException;
-import javax.management.relation.RelationServiceMBean;
-import javax.management.relation.Role;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
+import org.apache.geronimo.kernel.deployment.AbstractDeploymentPlanner;
import org.apache.geronimo.kernel.deployment.DeploymentException;
-import org.apache.geronimo.kernel.deployment.scanner.URLType;
+import org.apache.geronimo.kernel.deployment.DeploymentInfo;
+import org.apache.geronimo.kernel.deployment.DeploymentPlan;
import org.apache.geronimo.kernel.deployment.goal.DeployURL;
-import org.apache.geronimo.kernel.deployment.goal.DeploymentGoal;
import org.apache.geronimo.kernel.deployment.goal.RedeployURL;
import org.apache.geronimo.kernel.deployment.goal.UndeployURL;
+import org.apache.geronimo.kernel.deployment.scanner.URLType;
import org.apache.geronimo.kernel.deployment.task.CreateClassSpace;
import org.apache.geronimo.kernel.deployment.task.CreateMBeanInstance;
-import org.apache.geronimo.kernel.deployment.DeploymentPlan;
-import org.apache.geronimo.kernel.deployment.DeploymentPlanner;
-import org.apache.geronimo.kernel.deployment.AbstractDeploymentPlanner;
+import org.apache.geronimo.kernel.deployment.task.DeployGeronimoMBean;
import org.apache.geronimo.kernel.deployment.task.DestroyMBeanInstance;
import org.apache.geronimo.kernel.deployment.task.InitializeMBeanInstance;
-import org.apache.geronimo.kernel.deployment.task.RegisterMBeanInstance;
import org.apache.geronimo.kernel.deployment.task.StartMBeanInstance;
import org.apache.geronimo.kernel.deployment.task.StopMBeanInstance;
-import org.apache.geronimo.kernel.deployment.task.DeployGeronimoMBean;
-import org.apache.geronimo.kernel.jmx.JMXUtil;
-import org.apache.geronimo.kernel.service.GeronimoMBeanInfoXMLLoader;
-import org.apache.geronimo.kernel.service.GeronimoMBeanTarget;
-import org.apache.geronimo.kernel.service.GeronimoMBeanContext;
import org.apache.geronimo.kernel.service.GeronimoMBeanInfo;
-import org.apache.geronimo.kernel.service.GeronimoOperationInfo;
-import org.apache.geronimo.kernel.service.GeronimoParameterInfo;
-
+import org.apache.geronimo.kernel.service.GeronimoMBeanInfoXMLLoader;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
@@ -175,18 +161,13 @@
}
// Create a plan to register the deployment unit and create the class loader
- DeploymentPlan createDeploymentUnitPlan = new DeploymentPlan();
ObjectName deploymentName = null;
try {
deploymentName = new ObjectName("geronimo.deployment:role=DeploymentUnit,type=Service,url=" + ObjectName.quote(url.toString()));
} catch (MalformedObjectNameException e) {
throw new DeploymentException(e);
}
- ServiceDeployment serviceInfo = new ServiceDeployment(deploymentName, null, url);
- createDeploymentUnitPlan.addTask(new RegisterMBeanInstance(getServer(), deploymentName, serviceInfo));
- MBeanMetadata metadata = new MBeanMetadata(deploymentName);
- createDeploymentUnitPlan.addTask(new StartMBeanInstance(getServer(), metadata));
-
+ DeploymentPlan createDeploymentUnitPlan = DeploymentInfo.planDeploymentInfo(getServer(), null, deploymentName, null, url);
// add a plan to create a class space
ClassSpaceMetadata md = createClassSpaceMetadata((Element) doc.getElementsByTagName("class-space").item(0), deploymentName, url);
createDeploymentUnitPlan.addTask(new CreateClassSpace(getServer(), md));
@@ -198,7 +179,7 @@
for (int i = 0; i < nl.getLength(); i++) {
Element mbeanElement = (Element) nl.item(i);
- metadata = mbeanLoader.loadXML(baseURI, mbeanElement);
+ MBeanMetadata metadata = mbeanLoader.loadXML(baseURI, mbeanElement);
if (getServer().isRegistered(metadata.getName())) {
throw new DeploymentException("MBean already exists " + metadata.getName());
}
1.25 +2 -6 incubator-geronimo/modules/web/src/java/org/apache/geronimo/web/AbstractWebContainer.java
Index: AbstractWebContainer.java
===================================================================
RCS file: /home/cvs/incubator-geronimo/modules/web/src/java/org/apache/geronimo/web/AbstractWebContainer.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- AbstractWebContainer.java 7 Dec 2003 03:45:48 -0000 1.24
+++ AbstractWebContainer.java 28 Dec 2003 23:06:42 -0000 1.25
@@ -243,11 +243,7 @@
ObjectName deploymentUnitName = deploymentHelper.buildDeploymentName();
// Add a task to deploy and start the deployment unit mbean
- DeploymentPlan deploymentInfoPlan = new DeploymentPlan();
- DeploymentInfo deploymentInfo = new DeploymentInfo(deploymentUnitName, null, url);
- deploymentInfoPlan.addTask(new RegisterMBeanInstance(server, deploymentUnitName, deploymentInfo));
- MBeanMetadata deploymentUnitMetadata = new MBeanMetadata(deploymentUnitName);
- deploymentInfoPlan.addTask(new StartMBeanInstance(server, deploymentUnitMetadata));
+ DeploymentPlan deploymentInfoPlan = DeploymentInfo.planDeploymentInfo(server, null, deploymentUnitName, null, url);
// Define the ClassSpace for the archives.
ClassSpaceMetadata classSpaceMetaData = deploymentHelper.buildClassSpace();