[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