private void addInjector(InjectionContainer container, AccessibleObject ao, Class<?> declaringClass, Injector injector) { if(injector == null) throw new IllegalArgumentException("null injector."); Map<AccessibleObject, Injector> map = container.getEncInjections().get(declaringClass.getName()); if(map == null) { map = new HashMap<AccessibleObject, Injector>(); container.getEncInjections().put(declaringClass.getName(), map); } map.put(ao, injector); } }
public static <X extends RemoteEnvironment> void processDynamicBeanAnnotations(InjectionContainer container, Collection<InjectionHandler<X>> handlers, Class<?> clazz) { Map<AccessibleObject, Injector> classInjectors = container.getEncInjections().get(clazz.getName()); if(classInjectors == null) { classInjectors = new HashMap<AccessibleObject, Injector>(); container.getEncInjections().put(clazz.getName(), classInjectors); } HashSet<String> visitedMethods = new HashSet<String>(); collapseXmlMethodInjectors(visitedMethods, clazz, container.getEncInjections(), classInjectors); processClassAnnotations(container, handlers, clazz); visitedMethods = new HashSet<String>(); processMethodAnnotations(container, handlers, visitedMethods, clazz, classInjectors); processFieldAnnotations(container, handlers, clazz, classInjectors); }
public static <X extends RemoteEnvironment> Map<AccessibleObject, Injector> processAnnotations(InjectionContainer container, Collection<InjectionHandler<X>> handlers, Class<?> clazz) { Map<AccessibleObject, Injector> classInjectors = new HashMap<AccessibleObject, Injector>(); HashSet<String> visitedMethods = new HashSet<String>(); collapseXmlMethodInjectors(visitedMethods, clazz, container.getEncInjections(), classInjectors); processClassAnnotations(container, handlers, clazz); visitedMethods = new HashSet<String>(); processMethodAnnotations(container, handlers, visitedMethods, clazz, classInjectors); processFieldAnnotations(container, handlers, clazz, classInjectors); return classInjectors; }
private static void loadXmlMessageDestinationRefs(InjectionContainer container, Collection<MessageDestinationReferenceMetaData> refs) { for (MessageDestinationReferenceMetaData envRef : refs) { String encName = "env/" + envRef.getMessageDestinationRefName(); // if (container.getEncInjectors().containsKey(encName)) // continue; // String jndiName = envRef.getMappedName(); // if (jndiName == null || jndiName.equals("")) // { // jndiName = envRef.getResolvedJndiName(); // if (jndiName == null || jndiName.equals("")) // throw new RuntimeException("mapped-name is required for " + envRef.getMessageDestinationRefName() // + " of deployment " + container.getIdentifier()); // } // container.getEncInjectors().put(encName, // new LinkRefEncInjector(encName, jndiName, "<message-destination-ref>")); InjectionUtil.injectionTarget(encName, envRef, container, container.getEncInjections()); } }
private static void loadXmlMessageDestinationRefs(InjectionContainer container, Collection<MessageDestinationReferenceMetaData> refs) { for (MessageDestinationReferenceMetaData envRef : refs) { String encName = "env/" + envRef.getMessageDestinationRefName(); if (container.getEncInjectors().containsKey(encName)) continue; String jndiName = envRef.getMappedName(); if (jndiName == null || jndiName.equals("")) { // Look for a message-destination-link jndiName = envRef.getResolvedJndiName(); if (jndiName == null) { throw new RuntimeException("message-destination has no jndi-name/resolved-jndi-name " + envRef); // TODO: add dependency } } container.getEncInjectors().put(encName, new LinkRefEncInjector(encName, jndiName, "<message-destination-ref>")); InjectionUtil.injectionTarget(encName, envRef, container, container.getEncInjections()); } }
private static void loadEnvEntry(InjectionContainer container, Collection<EnvironmentEntryMetaData> envEntries) { for (EnvironmentEntryMetaData envEntry : envEntries) { String encName = "env/" + envEntry.getEnvEntryName(); // 16.4.1.3: If the env-entry-value is not specified, no value will be injected and it // will not be initialized into the naming context. if(envEntry.getValue() == null) { log.debug("ignoring env-entry " + envEntry); continue; } InjectionUtil.injectionTarget(encName, envEntry, container, container.getEncInjections()); if (container.getEncInjectors().containsKey(encName)) continue; log.trace("adding env-entry injector " + encName); container.getEncInjectors().put(encName, new EnvEntryEncInjector(encName, envEntry.getType(), envEntry.getValue())); } }
private static void loadEnvEntry(InjectionContainer container, Collection<EnvironmentEntryMetaData> envEntries) { for (EnvironmentEntryMetaData envEntry : envEntries) { String encName = "env/" + envEntry.getEnvEntryName(); // 16.4.1.3: If the env-entry-value is not specified, no value will be injected and it // will not be initialized into the naming context. if (envEntry.getValue() == null) { log.debug("ignoring env-entry " + envEntry); continue; } InjectionUtil.injectionTarget(encName, envEntry, container, container.getEncInjections()); if (container.getEncInjectors().containsKey(encName)) continue; log.trace("adding env-entry injector " + encName); container.getEncInjectors().put(encName, new EnvEntryEncInjector(encName, envEntry.getType(), envEntry.getValue())); } }
private static void loadEnvEntry(InjectionContainer container, Collection<EnvironmentEntryMetaData> envEntries) { for (EnvironmentEntryMetaData envEntry : envEntries) { String encName = "env/" + envEntry.getEnvEntryName(); // 16.4.1.3: If the env-entry-value is not specified, no value will be injected and it // will not be initialized into the naming context. if(envEntry.getValue() == null) { log.debug("ignoring env-entry " + envEntry); continue; } InjectionUtil.injectionTarget(encName, envEntry, container, container.getEncInjections()); if (container.getEncInjectors().containsKey(encName)) continue; log.trace("adding env-entry injector " + encName); String envEntryType = getEnvEntryType(container, envEntry); if (envEntryType == null) { throw new RuntimeException("env-entry-type is not specified for env-entry named " + envEntry.getName()); } container.getEncInjectors().put(encName, new EnvEntryEncInjector(encName, envEntryType, envEntry.getValue())); } }
public void loadXml(X xml, InjectionContainer container) { if (xml == null) return; if (xml instanceof JBossEnterpriseBeanMetaData == false) return; JndiRefsMetaData jndiRefs = ((JBossEnterpriseBeanMetaData) xml).getJndiRefs(); if (jndiRefs == null) return; for (JndiRefMetaData ref : jndiRefs) { if (ref.getMappedName() == null || ref.getMappedName().equals("")) throw new RuntimeException("mapped-name is required for " + ref.getJndiRefName() + " of container " + container.getIdentifier()); String encName = "env/" + ref.getJndiRefName(); if (!container.getEncInjectors().containsKey(encName)) { container.getEncInjectors().put(encName, new LinkRefEncInjector(encName, ref.getMappedName(), "jndi ref")); } InjectionUtil.injectionTarget(encName, ref, container, container.getEncInjections()); } }
private static void loadXmlMessageDestinationRefs(InjectionContainer container, Collection<MessageDestinationReferenceMetaData> refs) { for (MessageDestinationReferenceMetaData envRef : refs) { String encName = "env/" + envRef.getMessageDestinationRefName(); if (container.getEncInjectors().containsKey(encName)) continue; String jndiName = envRef.getMappedName(); if (jndiName == null || jndiName.equals("")) { // Look for a message-destination-link String link = envRef.getLink(); if( link != null ) { jndiName = container.resolveMessageDestination(link); if (jndiName == null) throw new RuntimeException("message-destination-link not found " + link + " of deployment " + container.getIdentifier()); // TODO: add dependency } else throw new RuntimeException("mapped-name or message-destination-link is required for " + envRef.getMessageDestinationRefName() + " of deployment " + container.getIdentifier()); } container.getEncInjectors().put(encName, new LinkRefEncInjector(encName, jndiName, "<message-destination-ref>")); InjectionUtil.injectionTarget(encName, envRef, container, container.getEncInjections()); } }
InjectionUtil.injectionTarget(encName, envRef, container, container.getEncInjections());
InjectionUtil.injectionTarget(encName, envRef, container, container.getEncInjections());
protected void ejbRefXml(AbstractEJBReferenceMetaData ref, String interfaceName, InjectionContainer container, String errorType) InjectionUtil.injectionTarget(encName, ref, container, container.getEncInjections()); if (container.getEncInjectors().containsKey(encName)) return;
protected void ejbRefXml(AbstractEJBReferenceMetaData ref, String interfaceName, InjectionContainer container, String errorType) InjectionUtil.injectionTarget(encName, ref, container, container.getEncInjections()); if (container.getEncInjectors().containsKey(encName)) return;
protected void ejbRefXml(AbstractEJBReferenceMetaData ref, String interfaceName, InjectionContainer container, String errorType) InjectionUtil.injectionTarget(encName, ref, container, container.getEncInjections()); if (container.getEncInjectors().containsKey(encName)) return;
public void loadXml(X xml, InjectionContainer container) { if (xml == null) return; if (xml.getPersistenceUnitRefs() == null) return; for (PersistenceUnitReferenceMetaData ref : xml.getPersistenceUnitRefs()) { String encName = "env/" + ref.getPersistenceUnitRefName(); // we add injection target no matter what. enc injection might be overridden but // XML injection cannot be overriden Class<?> injectionType = InjectionUtil.injectionTarget(encName, ref, container, container.getEncInjections()); if (container.getEncInjectors().containsKey(encName)) return; container.getEncInjectors().put(encName, new RemotePuEncInjector(encName, injectionType, ref.getPersistenceUnitName(), "<persistence-unit-ref>")); try { PersistenceUnitHandler.addPUDependency(ref.getPersistenceUnitName(), container); } catch (NameNotFoundException e) { throw new RuntimeException("Illegal <persistence-unit-ref> of " + ref.getPersistenceUnitRefName() + " :" + e.getMessage()); } } }
InjectionUtil.injectionTarget(encName, envRef, container, container.getEncInjections());
public void loadXml(X xml, InjectionContainer container) { if (xml == null) return; if (xml.getPersistenceUnitRefs() == null) return; for (PersistenceUnitReferenceMetaData ref : xml.getPersistenceUnitRefs()) { String encName = "env/" + ref.getPersistenceUnitRefName(); // we add injection target no matter what. enc injection might be overridden but // XML injection cannot be overriden Class<?> injectionType = InjectionUtil.injectionTarget(encName, ref, container, container.getEncInjections()); if (container.getEncInjectors().containsKey(encName)) return; container.getEncInjectors().put(encName, new PuEncInjector(encName, injectionType, ref.getPersistenceUnitName(), "<persistence-unit-ref>")); try { addPUDependency(ref.getPersistenceUnitName(), container); } catch (NameNotFoundException e) { throw new RuntimeException("Illegal <persistence-unit-ref> of " + ref.getPersistenceUnitRefName() + " :" + e.getMessage()); } } }
InjectionUtil.injectionTarget(encName, envRef, container, container.getEncInjections());
public void loadXml(X xml, InjectionContainer container) { if (xml == null) return; if (xml instanceof Environment == false) return; Environment env = (Environment) xml; if (env.getPersistenceContextRefs() == null) return; for (PersistenceContextReferenceMetaData ref : env.getPersistenceContextRefs()) { String encName = "env/" + ref.getPersistenceContextRefName(); // we add injection target no matter what. enc injection might be overridden but // XML injection cannot be overriden Class<?> injectionType = InjectionUtil.injectionTarget(encName, ref, container, container.getEncInjections()); if (container.getEncInjectors().containsKey(encName)) continue; // add it to list of String error = "unable to load <persistence-context-ref> for unitName: " + ref.getPersistenceUnitName() + " <ref-name>: " + ref.getPersistenceContextRefName(); PersistenceContextType type = ref.getPersistenceContextType(); String unitName = ref.getPersistenceUnitName(); container.getEncInjectors().put(encName, new PcEncInjector(encName, unitName, type, injectionType, error)); try { PersistenceUnitHandler.addPUDependency(ref.getPersistenceUnitName(), container); } catch (NameNotFoundException e) { throw new RuntimeException("Illegal <persistence-context-ref> of " + ref.getPersistenceContextRefName() + " :" + e.getMessage()); } } }