package org.mobicents.slee.container.component.deployment.jaxb.descriptors; import java.util.HashSet; import java.util.Set; import javax.slee.ComponentID; import javax.slee.EventTypeID; import javax.slee.SbbID; import javax.slee.ServiceID; import javax.slee.management.DeploymentException; import org.mobicents.slee.container.component.deployment.jaxb.descriptors.service.MService; /** * Start time:17:15:13 2009-01-20<br> * Project: mobicents-jainslee-server-core<br> * * @author <a href="mailto:baranowb@gmail.com">baranowb - Bartosz Baranowski * </a> * @author <a href="mailto:brainslog@gmail.com"> Alexandre Mendonca </a> */ public class ServiceDescriptorImpl { private final MService mService; private final ServiceID serviceID; private final SbbID rootSbbID; private final Set<ComponentID> dependenciesSet = new HashSet<ComponentID>(); public ServiceDescriptorImpl(MService mService) throws DeploymentException { try { this.mService = mService; this.serviceID = new ServiceID(mService.getServiceName(),mService.getServiceVendor(),mService.getServiceVersion()); this.rootSbbID = new SbbID(mService.getRootSbb().getSbbName(),mService.getRootSbb().getSbbVendor(),mService.getRootSbb().getSbbVersion()); dependenciesSet.add(rootSbbID); // even if the root sbb does not declares it, all services depend on standard service started event(s) dependenciesSet.add(new EventTypeID("javax.slee.serviceactivity.ServiceStartedEvent", "javax.slee", "1.0")); if (isSlee11()) { dependenciesSet.add(new EventTypeID("javax.slee.serviceactivity.ServiceStartedEvent", "javax.slee", "1.1")); } } catch (Exception e) { throw new DeploymentException("failed to build service descriptor",e); } } public Set<ComponentID> getDependenciesSet() { return dependenciesSet; } public MService getMService() { return mService; } public SbbID getRootSbbID() { return rootSbbID; } public ServiceID getServiceID() { return serviceID; } public boolean isSlee11() { return mService.isSlee11(); } }