if (entry.getInjectionTargets() != null) { for (ResourceInjectionTargetMetaData injectionTarget : entry.getInjectionTargets()) { final String injectionTargetClassName = injectionTarget.getInjectionTargetClass(); final String injectionTargetName = injectionTarget.getInjectionTargetName(); final AccessibleObject fieldOrMethod = getInjectionTarget(injectionTargetClassName, injectionTargetName, classLoader, deploymentReflectionIndex); final Class<?> injectionTargetType = fieldOrMethod instanceof Field ? ((Field) fieldOrMethod).getType() : ((Method) fieldOrMethod).getParameterTypes()[0]; throw EeLogger.ROOT_LOGGER.invalidInjectionTarget(injectionTarget.getInjectionTargetName(), injectionTarget.getInjectionTargetClass(), classType);
public static void createInjectors(Map<String, Map<AccessibleObject, Injector>> injectors, ClassLoader classLoader, InjectorFactory<?> factory, Collection<ResourceInjectionTargetMetaData> injectionTargets) { for(ResourceInjectionTargetMetaData injectionTarget : injectionTargets) { Map<AccessibleObject, Injector> map = injectors.get(injectionTarget.getInjectionTargetClass()); if(map == null) { map = new HashMap<AccessibleObject, Injector>(); injectors.put(injectionTarget.getInjectionTargetClass(), map); } AccessibleObject ao = InjectionUtil.findInjectionTarget(classLoader, injectionTarget); BeanProperty property = BeanPropertyFactory.create(ao); map.put(ao, factory.create(property)); } }
private void addDependencies(EJBContainer container, JBossEnterpriseBeanMetaData enterpriseBean) throws Exception { Set<String> depends = enterpriseBean.getDepends(); if (depends != null && depends.size() > 0) { DependsImpl annotation = new DependsImpl(); Iterator<String> dependencies = enterpriseBean.getDepends() .iterator(); while (dependencies.hasNext()) { annotation.addDependency(dependencies.next()); } addClassAnnotation(container, Depends.class, annotation); } if (enterpriseBean.getIgnoreDependency() != null) { for(ResourceInjectionTargetMetaData ignore : enterpriseBean.getIgnoreDependency().getInjectionTargets()) { IgnoreDependencyImpl annotation = new IgnoreDependencyImpl(); MethodMetaData method = new MethodMetaData(); method.setMethodName(ignore.getInjectionTargetName()); addAnnotations(IgnoreDependency.class, annotation, container, method); } } }
public static <E extends AnnotatedElement> Set<ResourceInjectionTargetMetaData> getInjectionTargets(String name, E element) { Set<ResourceInjectionTargetMetaData> injectionTargets = null; if((element instanceof Class) == false) { // Create an injection target for non-class elements ResourceInjectionTargetMetaData target = new ResourceInjectionTargetMetaData(); target.setInjectionTargetClass(getDeclaringClass(element)); target.setInjectionTargetName(name); injectionTargets = Collections.singleton(target); } return injectionTargets; }
Map<AccessibleObject, Injector> injectors = classInjectors.get(injectionTarget.getInjectionTargetClass()); if (injectors == null) classInjectors.put(injectionTarget.getInjectionTargetClass(), injectors);
method.setMethodName(xmlAnnotation.getInjectionTarget().getInjectionTargetName()); addAnnotations(annotationClass, annotation, container, method);
public static <E extends AnnotatedElement> Set<ResourceInjectionTargetMetaData> getInjectionTargets(String name, E element) { Set<ResourceInjectionTargetMetaData> injectionTargets = null; if((element instanceof Class) == false) { // Create an injection target for non-class elements ResourceInjectionTargetMetaData target = new ResourceInjectionTargetMetaData(); target.setInjectionTargetClass(getDeclaringClass(element)); target.setInjectionTargetName(name); injectionTargets = Collections.singleton(target); } return injectionTargets; }
public static AccessibleObject findInjectionTarget(ClassLoader loader, ResourceInjectionTargetMetaData target) { Class<?> clazz = null; try { clazz = loader.loadClass(target.getInjectionTargetClass()); } catch (ClassNotFoundException e) { throw new RuntimeException("<injection-target> class: " + target.getInjectionTargetClass() + " was not found in deployment"); } for (Field field : clazz.getDeclaredFields()) { if (target.getInjectionTargetName().equals(field.getName())) return field; } for (java.lang.reflect.Method method : clazz.getDeclaredMethods()) { if (method.getName().equals(target.getInjectionTargetName())) return method; } throw new RuntimeException("<injection-target> could not be found: " + target.getInjectionTargetClass() + "." + target.getInjectionTargetName()); }
public static AccessibleObject findInjectionTarget(ClassLoader loader, ResourceInjectionTargetMetaData target) { Class<?> clazz = null; try { clazz = loader.loadClass(target.getInjectionTargetClass()); } catch (ClassNotFoundException e) { throw new RuntimeException("<injection-target> class: " + target.getInjectionTargetClass() + " was not found in deployment"); } for (Field field : clazz.getDeclaredFields()) { if (target.getInjectionTargetName().equals(field.getName())) return field; } for (Method method : clazz.getDeclaredMethods()) { if (method.getName().equals(target.getInjectionTargetName())) return method; } throw new RuntimeException("<injection-target> could not be found: " + target.getInjectionTargetClass() + "." + target.getInjectionTargetName()); }
/** * Converts and returns a collection of {@link ResourceInjectionTargetMetaData} to a collection of * jboss-injection specific {@link InjectionTargetType injection targets} * * @param resourceInjectionTargets * @return Returns an empty collection if the passed <code>resourceInjectionTargets</code> is null or empty */ private Collection<InjectionTargetType> convertInjectionTargets(Collection<ResourceInjectionTargetMetaData> resourceInjectionTargets) { if (resourceInjectionTargets == null || resourceInjectionTargets.isEmpty()) { return new HashSet<InjectionTargetType>(); } Collection<InjectionTargetType> injectionTargets = new HashSet<InjectionTargetType>(); for (ResourceInjectionTargetMetaData resourceInjectionTarget : resourceInjectionTargets) { Class<?> targetClass; try { targetClass = this.classLoader.loadClass(resourceInjectionTarget.getInjectionTargetClass()); } catch (ClassNotFoundException cnfe) { throw new RuntimeException("Could not load injection target class: " + resourceInjectionTarget.getInjectionTargetClass(), cnfe); } injectionTargets.add(new InjectionTarget(targetClass, resourceInjectionTarget.getInjectionTargetName())); } return injectionTargets; } }
private ServiceReferenceMetaData getServiceRefForInjectionTarget(Method method) { ServiceReferenceMetaData match = null; Iterator<String> iterator = srefMap.keySet().iterator(); while(iterator.hasNext()) { ServiceReferenceMetaData sref = srefMap.get(iterator.next()); if(sref.getInjectionTargets()!=null) { for(ResourceInjectionTargetMetaData injectionTuple : sref.getInjectionTargets()) { if(method.getDeclaringClass().getName().equals(injectionTuple.getInjectionTargetClass()) && method.getName().equals(injectionTuple.getInjectionTargetName())) { match = sref; break; } } } } return match; }
private ServiceReferenceMetaData getServiceRefForInjectionTarget(Field field) { ServiceReferenceMetaData match = null; Iterator<String> iterator = srefMap.keySet().iterator(); while(iterator.hasNext()) { ServiceReferenceMetaData sref = srefMap.get(iterator.next()); if(sref.getInjectionTargets()!=null) { for(ResourceInjectionTargetMetaData injectionTuple : sref.getInjectionTargets()) { if(field.getDeclaringClass().getName().equals(injectionTuple.getInjectionTargetClass()) && field.getName().equals(injectionTuple.getInjectionTargetName())) { match = sref; break; } } } } return match; }
private static void processWSFeatures(final DeploymentUnit unit, final Set<ResourceInjectionTargetMetaData> injectionTargets, final UnifiedServiceRefMetaData serviceRefUMDM) throws DeploymentUnitProcessingException { if (injectionTargets == null || injectionTargets.size() == 0) return; if (injectionTargets.size() > 1) { // TODO: We should validate all the injection targets whether they're compatible. // This means all the injection targets must be assignable or equivalent. // If there are @Addressing, @RespectBinding or @MTOM annotations present on injection targets, // these annotations must be equivalent for all the injection targets. } final Module module = unit.getAttachment(org.jboss.as.server.deployment.Attachments.MODULE); final DeploymentReflectionIndex deploymentReflectionIndex = unit.getAttachment(org.jboss.as.server.deployment.Attachments.REFLECTION_INDEX); final ResourceInjectionTargetMetaData injectionTarget = injectionTargets.iterator().next(); final String injectionTargetClassName = injectionTarget.getInjectionTargetClass(); final String injectionTargetName = injectionTarget.getInjectionTargetName(); final AccessibleObject fieldOrMethod = getInjectionTarget(injectionTargetClassName, injectionTargetName, module.getClassLoader(), deploymentReflectionIndex); processAnnotatedElement(fieldOrMethod, serviceRefUMDM); }
private static void processWSFeatures(final DeploymentUnit unit, final Set<ResourceInjectionTargetMetaData> injectionTargets, final UnifiedServiceRefMetaData serviceRefUMDM) throws DeploymentUnitProcessingException { if (injectionTargets == null || injectionTargets.size() == 0) return; if (injectionTargets.size() > 1) { // TODO: We should validate all the injection targets whether they're compatible. // This means all the injection targets must be assignable or equivalent. // If there are @Addressing, @RespectBinding or @MTOM annotations present on injection targets, // these annotations must be equivalent for all the injection targets. } final Module module = unit.getAttachment(org.jboss.as.server.deployment.Attachments.MODULE); final DeploymentReflectionIndex deploymentReflectionIndex = unit.getAttachment(org.jboss.as.server.deployment.Attachments.REFLECTION_INDEX); final ResourceInjectionTargetMetaData injectionTarget = injectionTargets.iterator().next(); final String injectionTargetClassName = injectionTarget.getInjectionTargetClass(); final String injectionTargetName = injectionTarget.getInjectionTargetName(); final AccessibleObject fieldOrMethod = getInjectionTarget(injectionTargetClassName, injectionTargetName, module.getClassLoader(), deploymentReflectionIndex); processAnnotatedElement(fieldOrMethod, serviceRefUMDM); }
private static void processWSFeatures(final DeploymentUnit unit, final Set<ResourceInjectionTargetMetaData> injectionTargets, final UnifiedServiceRefMetaData serviceRefUMDM) throws DeploymentUnitProcessingException { if (injectionTargets == null || injectionTargets.size() == 0) return; if (injectionTargets.size() > 1) { // TODO: We should validate all the injection targets whether they're compatible. // This means all the injection targets must be assignable or equivalent. // If there are @Addressing, @RespectBinding or @MTOM annotations present on injection targets, // these annotations must be equivalent for all the injection targets. } final Module module = unit.getAttachment(org.jboss.as.server.deployment.Attachments.MODULE); final DeploymentReflectionIndex deploymentReflectionIndex = unit.getAttachment(org.jboss.as.server.deployment.Attachments.REFLECTION_INDEX); final ResourceInjectionTargetMetaData injectionTarget = injectionTargets.iterator().next(); final String injectionTargetClassName = injectionTarget.getInjectionTargetClass(); final String injectionTargetName = injectionTarget.getInjectionTargetName(); final AccessibleObject fieldOrMethod = getInjectionTarget(injectionTargetClassName, injectionTargetName, module.getClassLoader(), deploymentReflectionIndex); processAnnotatedElement(fieldOrMethod, serviceRefUMDM); }
if (entry.getInjectionTargets() != null) { for (ResourceInjectionTargetMetaData injectionTarget : entry.getInjectionTargets()) { final String injectionTargetClassName = injectionTarget.getInjectionTargetClass(); final String injectionTargetName = injectionTarget.getInjectionTargetName(); final AccessibleObject fieldOrMethod = getInjectionTarget(injectionTargetClassName, injectionTargetName, classLoader, deploymentReflectionIndex); final Class<?> injectionTargetType = fieldOrMethod instanceof Field ? ((Field) fieldOrMethod).getType() : ((Method) fieldOrMethod).getParameterTypes()[0]; throw EeLogger.ROOT_LOGGER.invalidInjectionTarget(injectionTarget.getInjectionTargetName(), injectionTarget.getInjectionTargetClass(), classType);
if (entry.getInjectionTargets() != null) { for (ResourceInjectionTargetMetaData injectionTarget : entry.getInjectionTargets()) { final String injectionTargetClassName = injectionTarget.getInjectionTargetClass(); final String injectionTargetName = injectionTarget.getInjectionTargetName(); final AccessibleObject fieldOrMethod = getInjectionTarget(injectionTargetClassName, injectionTargetName, classLoader, deploymentReflectionIndex); final Class<?> injectionTargetType = fieldOrMethod instanceof Field ? ((Field) fieldOrMethod).getType() : ((Method) fieldOrMethod).getParameterTypes()[0]; throw MESSAGES.invalidInjectionTarget(injectionTarget.getInjectionTargetName(), injectionTarget.getInjectionTargetClass(), classType);
if (entry.getInjectionTargets() != null) { for (ResourceInjectionTargetMetaData injectionTarget : entry.getInjectionTargets()) { final String injectionTargetClassName = injectionTarget.getInjectionTargetClass(); final String injectionTargetName = injectionTarget.getInjectionTargetName(); final AccessibleObject fieldOrMethod = getInjectionTarget(injectionTargetClassName, injectionTargetName, classLoader, deploymentReflectionIndex); final Class<?> injectionTargetType = fieldOrMethod instanceof Field ? ((Field) fieldOrMethod).getType() : ((Method) fieldOrMethod).getParameterTypes()[0]; throw EeLogger.ROOT_LOGGER.invalidInjectionTarget(injectionTarget.getInjectionTargetName(), injectionTarget.getInjectionTargetClass(), classType);
targetClass = resourceInjectionTargetMD.getInjectionTargetClass(); targetName = resourceInjectionTargetMD.getInjectionTargetName();
targetClass = resourceInjectionTargetMD.getInjectionTargetClass(); targetName = resourceInjectionTargetMD.getInjectionTargetName();