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); 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)); } }
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); }
Map<AccessibleObject, Injector> injectors = classInjectors.get(injectionTarget.getInjectionTargetClass()); if (injectors == null) classInjectors.put(injectionTarget.getInjectionTargetClass(), injectors);
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); 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); 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); throw EeLogger.ROOT_LOGGER.invalidInjectionTarget(injectionTarget.getInjectionTargetName(), injectionTarget.getInjectionTargetClass(), classType);
targetClass = resourceInjectionTargetMD.getInjectionTargetClass(); targetName = resourceInjectionTargetMD.getInjectionTargetName();
targetClass = resourceInjectionTargetMD.getInjectionTargetClass(); targetName = resourceInjectionTargetMD.getInjectionTargetName();
targetClass = resourceInjectionTargetMD.getInjectionTargetClass(); targetName = resourceInjectionTargetMD.getInjectionTargetName();
Class<?> targetClass = cl.loadClass(injectionTarget.getInjectionTargetClass());