[Jboss-cvs] JBossAS SVN: r56908 - branches/MC_VDF_WORK/system-jmx/src/main/org/jboss/system/deployers
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sat Sep 16 06:58:03 EDT 2006
Author: adrian at jboss.org
Date: 2006-09-16 06:58:00 -0400 (Sat, 16 Sep 2006)
New Revision: 56908
Modified:
branches/MC_VDF_WORK/system-jmx/src/main/org/jboss/system/deployers/ServiceDeployer.java
branches/MC_VDF_WORK/system-jmx/src/main/org/jboss/system/deployers/ServiceDeploymentDeployer.java
Log:
[JBMICROCONT-5] - Update the service deployment to the simplified plumbing.
Modified: branches/MC_VDF_WORK/system-jmx/src/main/org/jboss/system/deployers/ServiceDeployer.java
===================================================================
--- branches/MC_VDF_WORK/system-jmx/src/main/org/jboss/system/deployers/ServiceDeployer.java 2006-09-16 10:43:16 UTC (rev 56907)
+++ branches/MC_VDF_WORK/system-jmx/src/main/org/jboss/system/deployers/ServiceDeployer.java 2006-09-16 10:58:00 UTC (rev 56908)
@@ -21,11 +21,9 @@
*/
package org.jboss.system.deployers;
-import java.util.Set;
-
import javax.management.ObjectName;
-import org.jboss.deployers.plugins.deployers.helpers.AbstractRealDeployer;
+import org.jboss.deployers.plugins.deployers.helpers.AbstractSimpleRealDeployer;
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.deployers.spi.deployer.DeploymentUnit;
import org.jboss.mx.loading.RepositoryClassLoader;
@@ -42,7 +40,7 @@
* @author <a href="adrian at jboss.com">Adrian Brock</a>
* @version $Revision: 1.1 $
*/
-public class ServiceDeployer extends AbstractRealDeployer<ServiceMetaData>
+public class ServiceDeployer extends AbstractSimpleRealDeployer<ServiceMetaData>
{
/** The service controller */
private final ServiceController controller;
@@ -61,82 +59,68 @@
this.controller = controller;
}
- public void deploy(DeploymentUnit unit) throws DeploymentException
+ public void deploy(DeploymentUnit unit, ServiceMetaData deployment) throws DeploymentException
{
- Set<ServiceMetaData> services = getAllMetaData(unit);
- for (ServiceMetaData service : services)
+ ObjectName name = deployment.getObjectName();
+ try
{
- ObjectName name = service.getObjectName();
- try
+ ObjectName loaderName = deployment.getClassLoaderName();
+ if (loaderName == null)
{
- ObjectName loaderName = service.getClassLoaderName();
- if (loaderName == null)
- {
- ClassLoader cl = unit.getClassLoader();
- if (cl != null && cl instanceof RepositoryClassLoader)
- loaderName = ((RepositoryClassLoader) cl).getObjectName();
- }
+ ClassLoader cl = unit.getClassLoader();
+ if (cl != null && cl instanceof RepositoryClassLoader)
+ loaderName = ((RepositoryClassLoader) cl).getObjectName();
+ }
- controller.install(service, loaderName);
+ controller.install(deployment, loaderName);
+ ServiceContext context = controller.getServiceContext(name);
+ if (context == null)
+ throw new IllegalStateException("No context for " + name);
+ try
+ {
+ create(context);
try
{
- ServiceContext context = controller.getServiceContext(name);
- create(context);
- try
- {
- start(context);
- }
- catch (Throwable t)
- {
- destroy(name);
- throw t;
- }
+ start(context);
}
catch (Throwable t)
{
- remove(name);
+ destroy(name);
throw t;
}
}
catch (Throwable t)
{
- // TODO better unwind
- undeploy(unit);
- throw DeploymentException.rethrowAsDeploymentException("Error deploying: " + name, t);
+ remove(name);
+ throw t;
}
}
+ catch (Throwable t)
+ {
+ throw DeploymentException.rethrowAsDeploymentException("Error deploying: " + name, t);
+ }
}
- public void undeploy(DeploymentUnit unit)
+ public void undeploy(DeploymentUnit unit, ServiceMetaData deployment)
{
- Set<ServiceMetaData> services = getAllMetaData(unit);
- for (ServiceMetaData service : services)
+ ObjectName name = deployment.getObjectName();
+ ServiceContext context = controller.getServiceContext(name);
+ if (context != null)
{
- ObjectName name = service.getObjectName();
- ServiceContext context = controller.getServiceContext(name);
- if (context != null)
- {
- stop(name);
- destroy(name);
- remove(name);
- }
+ stop(name);
+ destroy(name);
+ remove(name);
}
}
protected void create(ServiceContext context) throws Throwable
{
controller.create(context.objectName);
- Throwable problem = context.problem;
- if (problem != null)
- throw problem;
}
protected void start(ServiceContext context) throws Throwable
{
controller.start(context.objectName);
- Throwable problem = context.problem;
- if (problem != null)
- throw problem;
}
protected void stop(ObjectName name)
Modified: branches/MC_VDF_WORK/system-jmx/src/main/org/jboss/system/deployers/ServiceDeploymentDeployer.java
===================================================================
--- branches/MC_VDF_WORK/system-jmx/src/main/org/jboss/system/deployers/ServiceDeploymentDeployer.java 2006-09-16 10:43:16 UTC (rev 56907)
+++ branches/MC_VDF_WORK/system-jmx/src/main/org/jboss/system/deployers/ServiceDeploymentDeployer.java 2006-09-16 10:58:00 UTC (rev 56908)
@@ -22,11 +22,11 @@
package org.jboss.system.deployers;
import java.util.List;
-import java.util.Set;
import javax.management.ObjectName;
-import org.jboss.deployers.plugins.deployers.helpers.AbstractRealDeployer;
+import org.jboss.deployers.plugins.deployers.helpers.AbstractComponentDeployer;
+import org.jboss.deployers.plugins.deployers.helpers.SimpleDeploymentVisitor;
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.deployers.spi.deployer.DeploymentUnit;
import org.jboss.system.metadata.ServiceMetaData;
@@ -42,26 +42,44 @@
* @author <a href="adrian at jboss.com">Adrian Brock</a>
* @version $Revision: 1.1 $
*/
-public class ServiceDeploymentDeployer extends AbstractRealDeployer<ServiceDeployment>
+public class ServiceDeploymentDeployer extends AbstractComponentDeployer<ServiceDeployment, ServiceMetaData>
{
- public int getRelativeOrder()
- {
- return COMPONENT_DEPLOYER;
- }
-
/**
- * Create a new ServiceDeployer.
+ * Create a new ServiceDeploymentDeployer.
*/
public ServiceDeploymentDeployer()
{
- super(ServiceDeployment.class);
+ setDeploymentVisitor(new ServiceDeploymentVisitor());
+ setComponentVisitor(new ServiceMetaDataVisitor());
}
- public void deploy(DeploymentUnit unit) throws DeploymentException
+ protected static void addServiceComponent(DeploymentUnit unit, ServiceMetaData service)
{
- Set<ServiceDeployment> deployments = getAllMetaData(unit);
- for (ServiceDeployment deployment : deployments)
+ ObjectName objectName = service.getObjectName();
+ String name = objectName.getCanonicalName();
+ DeploymentUnit component = unit.addComponent(name);
+ component.addAttachment(ServiceMetaData.class.getName(), service);
+ }
+
+ protected static void removeServiceComponent(DeploymentUnit unit, ServiceMetaData service)
+ {
+ ObjectName objectName = service.getObjectName();
+ String name = objectName.getCanonicalName();
+ unit.removeComponent(name);
+ }
+
+ /**
+ * ServiceDeploymentVisitor.
+ */
+ public class ServiceDeploymentVisitor implements SimpleDeploymentVisitor<ServiceDeployment>
+ {
+ public Class<ServiceDeployment> getVisitorType()
{
+ return ServiceDeployment.class;
+ }
+
+ public void deploy(DeploymentUnit unit, ServiceDeployment deployment) throws DeploymentException
+ {
try
{
List<ServiceMetaData> services = deployment.getServices();
@@ -71,7 +89,7 @@
if (config == null)
{
log.debug("Service deployment has no services: " + deployment.getName());
- continue;
+ return;
}
ServiceMetaDataParser parser = new ServiceMetaDataParser(config);
@@ -83,28 +101,19 @@
return;
for (ServiceMetaData service : services)
- {
- ObjectName objectName = service.getObjectName();
- String name = objectName.getCanonicalName();
- DeploymentUnit component = unit.addComponent(name);
- component.addAttachment(ServiceMetaData.class.getName(), service);
- }
+ addServiceComponent(unit, service);
}
catch (Throwable t)
{
throw DeploymentException.rethrowAsDeploymentException("Error deploying: " + deployment.getName(), t);
}
}
- }
- public void undeploy(DeploymentUnit unit)
- {
- Set<ServiceDeployment> deployments = getAllMetaData(unit);
- for (ServiceDeployment deployment : deployments)
+ public void undeploy(DeploymentUnit unit, ServiceDeployment deployment)
{
List<ServiceMetaData> services = deployment.getServices();
if (services == null)
- continue;
+ return;
for (ServiceMetaData service : services)
{
@@ -114,4 +123,25 @@
}
}
}
+
+ /**
+ * ServiceMetaDataVisitor.
+ */
+ public static class ServiceMetaDataVisitor implements SimpleDeploymentVisitor<ServiceMetaData>
+ {
+ public Class<ServiceMetaData> getVisitorType()
+ {
+ return ServiceMetaData.class;
+ }
+
+ public void deploy(DeploymentUnit unit, ServiceMetaData deployment) throws DeploymentException
+ {
+ addServiceComponent(unit, deployment);
+ }
+
+ public void undeploy(DeploymentUnit unit, ServiceMetaData deployment)
+ {
+ removeServiceComponent(unit, deployment);
+ }
+ }
}
More information about the jboss-cvs-commits
mailing list