[jboss-dev-forums] [Design of POJO Server] - Re: syntax for specifying dependencies?
alesj
do-not-reply at jboss.com
Thu Feb 21 14:53:20 EST 2008
Check org.jboss.web.deployers.AbstractWarDeployer for the mbean Adrian mentioned.
| protected void deployWebModule(VFSDeploymentUnit unit, JBossWebMetaData metaData,
| AbstractWarDeployment deployment)
| throws Exception
| {
| log.debug("deployWebModule: " + unit.getName());
| try
| {
| ServiceMetaData webModule = new ServiceMetaData();
| String name = getObjectName(metaData);
| ObjectName objectName = new ObjectName(name);
| webModule.setObjectName(objectName);
| webModule.setCode(WebModule.class.getName());
| // WebModule(DeploymentUnit, AbstractWarDeployer, AbstractWarDeployment)
| ServiceConstructorMetaData constructor = new ServiceConstructorMetaData();
| constructor.setSignature(new String[] { VFSDeploymentUnit.class.getName(),
| AbstractWarDeployer.class.getName(), AbstractWarDeployment.class.getName()});
| constructor.setParameters(new Object[] {unit, this, deployment});
| webModule.setConstructor(constructor);
|
| // Dependencies...Still have old jmx names here
| Collection<String> depends = metaData.getDepends();
| List<ServiceDependencyMetaData> dependencies = new ArrayList<ServiceDependencyMetaData>();
| if (depends != null && depends.isEmpty() == false)
| {
| if (log.isTraceEnabled())
| log.trace(name + " has dependencies: " + depends);
|
| for(String iDependOn : depends)
| {
| ServiceDependencyMetaData sdmd = new ServiceDependencyMetaData();
| sdmd.setIDependOn(iDependOn);
| dependencies.add(sdmd);
| }
| }
| webModule.setDependencies(dependencies);
|
| // Here's where a bit of magic happens. By attaching the ServiceMetaData
| // to the deployment, we now make the deployment "relevant" to
| // deployers that use ServiceMetaData as an input (e.g. the
| // org.jboss.system.deployers.ServiceDeployer). Those deployers
| // can now take over deploying the web module.
|
| // TODO could create multiple components for the deployment
| // The ServiceConstructorMetaData is not serializable due to its args
| unit.addAttachment(ServiceMetaData.class, webModule);
| }
| catch (Exception e)
| {
| throw DeploymentException.rethrowAsDeploymentException("Error creating rar deployment " + unit.getName(), e);
| }
| }
|
| /**
| * Get the object name of the ServiceMetaData instance associated with
| * the WebMetaData. This uses the pattern:
| * "jboss.web.deployment:war="+metaData.getContextRoot()
| *
| * @param metaData - the web app metaData
| * @return "jboss.web.deployment:war="+metaData.getContextRoot();
| */
| protected String getObjectName(JBossWebMetaData metaData)
| {
| String ctxPath = metaData.getContextRoot();
| // The ctx path value cannot be empty in the object name
| if( ctxPath == null || ctxPath.length() == 0 )
| ctxPath = "/";
| String objectName = "jboss.web.deployment:war="+ctxPath;
| return objectName;
| }
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4131200#4131200
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4131200
More information about the jboss-dev-forums
mailing list