public DependencyPolicy clone() { DependencyPolicy policy = new JmxDependencyPolicy(); for (ObjectName dependency : this.getDependencies()) { policy.addDependency(dependency.getCanonicalName()); } return policy; }
public static void addPUDependency(String unitName, InjectionContainer container) throws NameNotFoundException { if(container instanceof ExtendedInjectionContainer) { ExtendedInjectionContainer eic = (ExtendedInjectionContainer) container; try { String dependency = eic.resolvePersistenceUnitSupplier(unitName); container.getDependencyPolicy().addDependency(dependency); } catch(IllegalArgumentException e) { throw new IllegalArgumentException("Container " + container + ERROR_MESSAGE_FAILED_TO_RESOVLE_PU + unitName, e); } return; } throw new UnsupportedOperationException("Container " + container + " does not implement ExtendedInjectionContainer, can't resolve persistence unit " + unitName); }
protected void registerEJBContainer(Container container) throws Exception { ObjectName on = container.getObjectName(); String name = on.getCanonicalName(); DependencyPolicy dependsPolicy = container.getDependencyPolicy(); dependsPolicy.addDependency("jboss.ejb:service=EJBTimerService"); kernelAbstraction.install(name, dependsPolicy, unit, container); mbeanServer.registerMBean(container.getMBean(), on); log.debug("Bound ejb3 container " + name); }
public void handleMethodAnnotations(Method method, InjectionContainer container, Map<AccessibleObject, Injector> injectors) { Depends dep = container.getAnnotation(Depends.class, method.getDeclaringClass(), method); if (dep != null) { if (!method.getName().startsWith("set")) throw new RuntimeException("@EJB can only be used with a set method: " + method); String[] names = dep.value(); if (names.length != 1) throw new RuntimeException("@Depends on a field can only take one object name: " + method); ObjectName on = null; try { on = new ObjectName(names[0]); } catch (MalformedObjectNameException e) { throw new RuntimeException(e); } // don't replace other injections if (injectors.get(method) == null) injectors.put(method, new DependsMethodInjector(method, on)); container.getDependencyPolicy().addDependency(names[0]); } }
public void handleFieldAnnotations(Field field, InjectionContainer container, Map<AccessibleObject, Injector> injectors) { Depends dep = container.getAnnotation(Depends.class, field.getDeclaringClass(), field); if (dep != null) { String[] names = dep.value(); if (names.length != 1) throw new RuntimeException("@Depends on a field can only take one object name: " + field); ObjectName on = null; try { on = new ObjectName(names[0]); } catch (MalformedObjectNameException e) { throw new RuntimeException(e); } // don't replace other injections if (injectors.get(field) == null) injectors.put(field, new DependsFieldInjector(field, on)); container.getDependencyPolicy().addDependency(names[0]); } }
public void handleClassAnnotations(Class<?> clazz, InjectionContainer container) { Depends dep = container.getAnnotation(Depends.class, clazz); if (dep == null) return; for (String dependency : dep.value()) { container.getDependencyPolicy().addDependency(dependency); } }
for (String dependency : clientMetaData.getDepends()) getDependencyPolicy().addDependency(dependency);
DependencyPolicy newPolicy = containerPolicy.clone(); String cName = this.getObjectName().getCanonicalName(); newPolicy.addDependency(cName);
dependsPolicy.addDependency(injectorMCBeanName); log.debug("Added Injector dependency: " + injectorMCBeanName + " for EJB: " + ejbContainer.getEjbName() + " in unit " + this.jbossUnit); dependsPolicy.addDependency(interceptorInjectorMCBeanName); log.debug("Added Injector dependency: " + interceptorInjectorMCBeanName + " for interceptor " + interceptor.getName() + " of EJB: " + ejbContainer.getEjbName() + " in unit " + this.jbossUnit);