public AppModule deploy(AppModule appModule) throws OpenEJBException {
for (EjbModule ejbModule : appModule.getEjbModules()) {
EjbJar ejbJar = ejbModule.getEjbJar();
OpenejbJar openejbJar = ejbModule.getOpenejbJar();
Map<String, EjbDeployment> deployments = openejbJar.getDeploymentsByEjbName();
ejbJar.setRelationships(null);
List<String> removed = new ArrayList();
for (EnterpriseBean bean : ejbJar.getEnterpriseBeans()) {
String ejbName = bean.getEjbName();
EjbDeployment ejbDeployment = deployments.get(ejbName);
for (ResourceRef ref : copy(bean.getResourceRef())) {
if (ref.getResType().startsWith("javax.jms.")){
ResourceLink resourceLink = ejbDeployment.getResourceLink(ref.getName());
ejbDeployment.getResourceLink().remove(resourceLink);
bean.getResourceRef().remove(ref);
}
}
for (ResourceEnvRef ref : bean.getResourceEnvRef()) {
ResourceLink resourceLink = ejbDeployment.getResourceLink(ref.getName());
ejbDeployment.getResourceLink().remove(resourceLink);
}
bean.getResourceEnvRef().clear();
for (MessageDestinationRef ref : bean.getMessageDestinationRef()) {
ResourceLink resourceLink = ejbDeployment.getResourceLink(ref.getName());
ejbDeployment.getResourceLink().remove(resourceLink);
}
bean.getMessageDestinationRef().clear();
bean.getPersistenceContextRef().clear();
bean.getPersistenceUnitRef().clear();
if (!(bean instanceof MessageDrivenBean) && !(bean instanceof EntityBean)) {
continue;
}
ejbJar.removeEnterpriseBean(ejbName);
openejbJar.removeEjbDeployment(ejbDeployment);
removed.add(ejbName);
AssemblyDescriptor assemblyDescriptor = ejbJar.getAssemblyDescriptor();
if (assemblyDescriptor != null){
for (MethodPermission permission : copy(assemblyDescriptor.getMethodPermission())) {