/** * JAX-WS section 9.3.1: The runtime MUST then carry out any injections * requested by the handler, typically via the javax .annotation.Resource * annotation. After all the injections have been carried out, including in * the case where no injections were requested, the runtime MUST invoke the * method carrying a javax.annotation .PostConstruct annotation, if present. */ private void configHandler(Handler<?> handler) { if (handler != null) { ResourceManager resourceManager = bus.getExtension(ResourceManager.class); ResourceInjector injector = new ResourceInjector(resourceManager); injector.inject(handler); injector.construct(handler); } } }
public void construct(Object o) { setTarget(o); if (processable(targetClass, o)) { invokePostConstruct(); } } public void construct(Object o, Class<?> cls) {
public void destroy(Object o) { setTarget(o); if (processable(targetClass, o)) { invokePreDestroy(); } }
Method setter = findSetterForResource(res); if (setter != null) { Class<?> type = getResourceType(res, setter); resource = resolveResource(res.name(), type); if (resource == null) { LOG.log(Level.INFO, "RESOURCE_RESOLVE_FAILED"); invokeSetter(setter, resource); return; Field field = findFieldForResource(res); if (field != null) { Class<?> type = getResourceType(res, field); resource = resolveResource(res.name(), type); if (resource == null) { LOG.log(Level.INFO, "RESOURCE_RESOLVE_FAILED"); return; injectField(field, resource); return; LOG.log(Level.SEVERE, "NO_SETTER_OR_FIELD_FOR_RESOURCE", getTarget().getClass().getName());
public Object postProcessBeforeInitialization(Object bean, String beanId) throws BeansException { if (!isProcessing) { return bean; } if (bean instanceof Bus) { getResourceManager(bean); } /* if (bean.getClass().getName().contains("Corb")) { Thread.dumpStack(); } */ if (bean != null && injectable(bean, beanId)) { new ResourceInjector(getResourceManager(bean)).inject(bean); /* System.out.println("p :" + (++count) + ": " + bean.getClass().getName() + " " + beanId); } else if (bean != null) { System.out.println("np: " + (++count2) + ": " + bean.getClass().getName() + " " + beanId); */ } return bean; }
public void destroyBeans() { for (Extension ex : ordered) { if (ex.getLoadedObject() != null) { ResourceInjector injector = new ResourceInjector(resourceManager); injector.destroy(ex.getLoadedObject()); } } } }
public Object postProcessAfterInitialization(Object bean, String beanId) throws BeansException { if (!isProcessing) { if (resourceManager == null && bean instanceof ResourceManager) { resourceManager = (ResourceManager)bean; resourceManager.addResourceResolver(new BusApplicationContextResourceResolver(context)); } return bean; } if (bean != null && injectable(bean, beanId)) { new ResourceInjector(getResourceManager(bean)).construct(bean); } return bean; }
private Collection<Method> getAnnotatedMethods(Class<? extends Annotation> acls) { Collection<Method> methods = new LinkedList<Method>(); addAnnotatedMethods(acls, getTarget().getClass().getMethods(), methods); addAnnotatedMethods(acls, getTarget().getClass().getDeclaredMethods(), methods); if (getTargetClass() != getTarget().getClass()) { addAnnotatedMethods(acls, getTargetClass().getMethods(), methods); addAnnotatedMethods(acls, getTargetClass().getDeclaredMethods(), methods); } return methods; }
public void inject(Object o) { inject(o, o.getClass()); }
private boolean injectable(Object bean, String beanId) { return !"cxf".equals(beanId) && ResourceInjector.processable(bean.getClass(), bean); } private ResourceManager getResourceManager(Object bean) {
private Collection<Method> getPostConstructMethods() { return getAnnotatedMethods(PostConstruct.class); }
public void stop() { // call handler preDestroy destroyHandlers(); if (injector != null) { injector.invokePreDestroy(); } if (toClean != null) { toClean.release(); } // shutdown server super.stop(); } }
toClean = creationalContext; injector.invokePostConstruct();
Method setter = findSetterForResource(res); if (setter != null) { Class<?> type = getResourceType(res, setter); resource = resolveResource(res.name(), type); if (resource == null) { LOG.log(Level.INFO, "RESOURCE_RESOLVE_FAILED"); invokeSetter(setter, resource); return; Field field = findFieldForResource(res); if (field != null) { Class<?> type = getResourceType(res, field); resource = resolveResource(res.name(), type); if (resource == null) { LOG.log(Level.INFO, "RESOURCE_RESOLVE_FAILED"); return; injectField(field, resource); return; LOG.log(Level.SEVERE, "NO_SETTER_OR_FIELD_FOR_RESOURCE", getTarget().getClass().getName());
public Object postProcessBeforeInitialization(Object bean, String beanId) throws BeansException { if (!isProcessing) { return bean; } if (bean instanceof Bus) { getResourceManager(bean); } /* if (bean.getClass().getName().contains("Corb")) { Thread.dumpStack(); } */ if (bean != null && injectable(bean, beanId)) { new ResourceInjector(getResourceManager(bean)).inject(bean); /* System.out.println("p :" + (++count) + ": " + bean.getClass().getName() + " " + beanId); } else if (bean != null) { System.out.println("np: " + (++count2) + ": " + bean.getClass().getName() + " " + beanId); */ } return bean; }
public void destroyBeans() { for (Extension ex : all.values()) { if (ex.getLoadedObject() != null) { ResourceInjector injector = new ResourceInjector(resourceManager); injector.destroy(ex.getLoadedObject()); } } } }
public Object postProcessAfterInitialization(Object bean, String beanId) throws BeansException { if (!isProcessing) { if (resourceManager == null && bean instanceof ResourceManager) { resourceManager = (ResourceManager)bean; resourceManager.addResourceResolver(new BusApplicationContextResourceResolver(context)); } return bean; } if (bean != null && injectable(bean, beanId)) { new ResourceInjector(getResourceManager(bean)).construct(bean); } return bean; }
private Collection<Method> getAnnotatedMethods(Class<? extends Annotation> acls) { Collection<Method> methods = new LinkedList<Method>(); addAnnotatedMethods(acls, getTarget().getClass().getMethods(), methods); addAnnotatedMethods(acls, ReflectionUtil.getDeclaredMethods(getTarget().getClass()), methods); if (getTargetClass() != getTarget().getClass()) { addAnnotatedMethods(acls, getTargetClass().getMethods(), methods); addAnnotatedMethods(acls, ReflectionUtil.getDeclaredMethods(getTargetClass()), methods); } return methods; }
public void inject(Object o) { inject(o, o.getClass()); }
private boolean injectable(Object bean, String beanId) { return !"cxf".equals(beanId) && ResourceInjector.processable(bean.getClass(), bean); } private ResourceManager getResourceManager(Object bean) {