[jboss-dev-forums] [Deployers on JBoss (Deployers/JBoss)] - Deploying multiple service through the ServiceDeployer

thomas.diesler@jboss.com do-not-reply at jboss.com
Fri Feb 22 08:14:02 EST 2008


Folks,

I have/had an issue with a deployment wanting to create multiple services

1) EJBDeployer attaches ServiceMetaData
2) WebServiceDeployer generates and attaches JBossWebMetaData
3) TomcatDeployer also attaches ServiceMetaData

my proposed fix is 


  |          // In case there already is a ServiceMetaData object attached, we use a set 
  |          ServiceMetaData prevService = unit.getAttachment(ServiceMetaData.class);
  |          if (prevService != null)
  |          {
  |             ServiceMetaDataSet services = new ServiceMetaDataSet();
  |             services.add(prevService);
  |             services.add(webModule);
  |             unit.addAttachment(ServiceMetaDataSet.class, services);
  |             unit.removeAttachment(ServiceMetaData.class);
  |          }
  |          else
  |          {
  |             unit.addAttachment(ServiceMetaData.class, webModule);
  |          }
  | 

and a new deployer


  | public class MultipleServicesDeployer extends AbstractSimpleRealDeployer<ServiceMetaDataSet>
  | {
  |    private ServiceDeployer serviceDeployer;
  | 
  |    public MultipleServicesDeployer()
  |    {
  |       super(ServiceMetaDataSet.class);
  |    }
  | 
  |    public void setServiceDeployer(ServiceDeployer serviceDeployer)
  |    {
  |       this.serviceDeployer = serviceDeployer;
  |    }
  | 
  |    @Override
  |    public void deploy(DeploymentUnit unit, ServiceMetaDataSet deployment) throws DeploymentException
  |    {
  |       Iterator<ServiceMetaData> it = deployment.iterator();
  |       while (it.hasNext())
  |       {
  |          ServiceMetaData service = it.next();
  |          unit.addAttachment(ServiceMetaData.class, service);
  |          try 
  |          {
  |             serviceDeployer.deploy(unit, service);
  |          }
  |          finally
  |          {
  |             unit.removeAttachment(ServiceMetaData.class);
  |          }
  |       }
  |    }
  |    ...
  | 
  |   | 
  |   | Please review.

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4131387#4131387

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4131387



More information about the jboss-dev-forums mailing list