private void addJndiNameEnvironmentInjectables(JndiNameEnvironment jndiNameEnv, List<InjectionCapable> injectables) { Collection allEnvProps = new HashSet(); for (Iterator envEntryItr = jndiNameEnv.getEnvironmentProperties().iterator(); envEntryItr.hasNext();) { EnvironmentProperty envEntry = (EnvironmentProperty) envEntryItr.next(); // Only env-entries that have been assigned a value are // eligible for injection. if (envEntry.hasAValue()) { allEnvProps.add(envEntry); } } allEnvProps.addAll(jndiNameEnv.getEjbReferenceDescriptors()); allEnvProps.addAll(jndiNameEnv.getServiceReferenceDescriptors()); allEnvProps.addAll(jndiNameEnv.getResourceReferenceDescriptors()); allEnvProps.addAll(jndiNameEnv.getJmsDestinationReferenceDescriptors()); allEnvProps.addAll(jndiNameEnv.getMessageDestinationReferenceDescriptors()); allEnvProps.addAll(jndiNameEnv.getEntityManagerFactoryReferenceDescriptors()); allEnvProps.addAll(jndiNameEnv.getEntityManagerReferenceDescriptors()); for (Iterator envItr = allEnvProps.iterator(); envItr.hasNext();) { InjectionCapable next = (InjectionCapable) envItr.next(); if (next.isInjectable()) { injectables.add(next); } } }
/** * <p>This is based off of code in <code>InjectionManagerImpl</code>.</p> * * @param instance managed bean instance * @param envDescriptor JNDI environment * @throws InjectionException if an error occurs */ private void invokePostConstruct(Object instance, JndiNameEnvironment envDescriptor) throws InjectionException { LinkedList<Method> postConstructMethods = new LinkedList<Method>(); Class<? extends Object> nextClass = instance.getClass(); // Process each class in the inheritance hierarchy, starting with // the most derived class and ignoring java.lang.Object. while ((!Object.class.equals(nextClass)) && (nextClass != null)) { InjectionInfo injInfo = envDescriptor.getInjectionInfoByClass(nextClass); if (injInfo.getPostConstructMethodName() != null) { Method postConstructMethod = getPostConstructMethod (injInfo, nextClass); // Invoke the preDestroy methods starting from // the least-derived class downward. postConstructMethods.addFirst(postConstructMethod); } nextClass = nextClass.getSuperclass(); } for (Method postConstructMethod : postConstructMethods) { invokeLifecycleMethod(postConstructMethod, instance); } }
/** * Utility method for iterating the set of named descriptors in the supplied nameEnvironment */ protected Collection getNamedDescriptorsFrom(JndiNameEnvironment nameEnvironment) { Collection namedDescriptors = new Vector(); for (Iterator itr = nameEnvironment.getResourceReferenceDescriptors().iterator(); itr.hasNext();) { ResourceReferenceDescriptor resourceReference = (ResourceReferenceDescriptor) itr.next(); namedDescriptors.add(resourceReference); } for (Iterator itr = nameEnvironment.getEjbReferenceDescriptors().iterator(); itr.hasNext();) { EjbReferenceDescriptor ejbReference = (EjbReferenceDescriptor) itr.next(); namedDescriptors.add(ejbReference); } for (Iterator itr = nameEnvironment.getResourceEnvReferenceDescriptors().iterator(); itr.hasNext();) { ResourceEnvReferenceDescriptor resourceEnvRef = (ResourceEnvReferenceDescriptor) itr.next(); namedDescriptors.add(resourceEnvRef); } return namedDescriptors; }
/** * Utility method for iterating the set of named descriptors in the supplied nameEnvironment */ protected Collection getNamedDescriptorsFrom(JndiNameEnvironment nameEnvironment) { Collection namedDescriptors = new Vector(); for (Iterator itr = nameEnvironment.getResourceReferenceDescriptors().iterator(); itr.hasNext();) { ResourceReferenceDescriptor resourceReference = (ResourceReferenceDescriptor) itr.next(); namedDescriptors.add(resourceReference); } for (Iterator itr = nameEnvironment.getEjbReferenceDescriptors().iterator(); itr.hasNext();) { EjbReferenceDescriptor ejbReference = (EjbReferenceDescriptor) itr.next(); namedDescriptors.add(ejbReference); } for (Iterator itr = nameEnvironment.getJmsDestinationReferenceDescriptors().iterator(); itr.hasNext();) { JmsDestinationReferenceDescriptor resourceEnvRef = (JmsDestinationReferenceDescriptor) itr.next(); namedDescriptors.add(resourceEnvRef); } return namedDescriptors; }
protected void accept(BundleDescriptor bundleDescriptor) { if (bundleDescriptor instanceof JndiNameEnvironment) { JndiNameEnvironment nameEnvironment = (JndiNameEnvironment)bundleDescriptor; for (Iterator<EjbReference> itr = nameEnvironment.getEjbReferenceDescriptors().iterator();itr.hasNext();) { accept(itr.next()); } for (Iterator<ResourceReferenceDescriptor> itr = nameEnvironment.getResourceReferenceDescriptors().iterator(); itr.hasNext();) { accept(itr.next()); } for (Iterator<ResourceEnvReferenceDescriptor> itr= nameEnvironment.getResourceEnvReferenceDescriptors().iterator(); itr.hasNext();) { accept(itr.next()); } for (Iterator<MessageDestinationReferencer> itr = nameEnvironment.getMessageDestinationReferenceDescriptors().iterator();itr.hasNext();) { accept(itr.next()); } for (Iterator<MessageDestinationDescriptor> itr = bundleDescriptor.getMessageDestinations().iterator(); itr.hasNext();) { accept(itr.next()); } for (Iterator<ServiceReferenceDescriptor> itr = nameEnvironment.getServiceReferenceDescriptors().iterator();itr.hasNext();) { accept(itr.next()); } } }
public void validateEnvEntries(JndiNameEnvironment env) { if (env instanceof WebBundleDescriptor) { Enumeration<EnvironmentEntry> envEntries = ((WebBundleDescriptor) env) .getEnvironmentEntries(); validateSimpleEnvEntries(env, envEntries); } else { Set<EnvironmentProperty> envProperties = env.getEnvironmentProperties(); validateSimpleEnvEntries(env, envProperties); } Set<EjbReference> ejbReferences = env.getEjbReferenceDescriptors(); validateEjbReferences(env, ejbReferences); Set<ResourceReferenceDescriptor> resRefs = env .getResourceReferenceDescriptors(); validateResRefs(env, resRefs); Set<ResourceEnvReferenceDescriptor> resEnvRefs = env .getResourceEnvReferenceDescriptors(); validateResEnvRefs(env, resEnvRefs); }
private void processDescriptorForRAReferences(com.sun.enterprise.deployment.Application app, String moduleName, Descriptor descriptor) { if (descriptor instanceof JndiNameEnvironment) { JndiNameEnvironment jndiEnv = (JndiNameEnvironment) descriptor; // resource-ref for (Object resourceRef : jndiEnv.getResourceReferenceDescriptors()) { ResourceReferenceDescriptor resRefDesc = (ResourceReferenceDescriptor) resourceRef; String jndiName = resRefDesc.getJndiName(); //ignore refs where jndi-name is not available if(jndiName != null){ detectResourceInRA(app, moduleName, jndiName); } } // resource-env-ref for (Object jmsDestRef : jndiEnv.getJmsDestinationReferenceDescriptors()) { JmsDestinationReferenceDescriptor jmsDestRefDesc = (JmsDestinationReferenceDescriptor) jmsDestRef; String jndiName = jmsDestRefDesc.getJndiName(); //ignore refs where jndi-name is not available if(jndiName != null){ detectResourceInRA(app, moduleName, jndiName); } } } }
public void accept (BundleDescriptor bundle) { for (Iterator<WebService> itr = bundle.getWebServices().getWebServices().iterator(); itr.hasNext();) { WebService aWebService = itr.next(); accept(aWebService); } if (bundle instanceof JndiNameEnvironment) { for (Iterator<ServiceReferenceDescriptor> itr = ((JndiNameEnvironment)bundle).getServiceReferenceDescriptors().iterator(); itr.hasNext();) { accept(itr.next()); } } if (bundle instanceof EjbBundleDescriptor) { EjbBundleDescriptor ejbBundle = (EjbBundleDescriptor)bundle; for (EjbDescriptor anEjb : ejbBundle.getEjbs()) { for (Iterator<ServiceReferenceDescriptor> itr = anEjb.getServiceReferenceDescriptors().iterator(); itr.hasNext();) { accept(itr.next()); } } } }
/** * get resource reference descriptors from current component's jndi environment * * @return set of resource-refs */ public Set getResourceReferenceDescriptor() { JndiNameEnvironment jndiEnv = componentEnvManager.getCurrentJndiNameEnvironment(); if (jndiEnv != null) { return jndiEnv.getResourceReferenceDescriptors(); } else { return null; } }
/** * helper method: find all PUs referenced via @PersistenceUnit or * <persistence-unit-ref> */ protected static Collection<? extends PersistenceUnitDescriptor> findReferencedPUsViaPURefs(JndiNameEnvironment component) { Collection<PersistenceUnitDescriptor> pus = new HashSet<PersistenceUnitDescriptor>(); for (EntityManagerFactoryReference emfRef : component.getEntityManagerFactoryReferenceDescriptors()) { PersistenceUnitDescriptor pu = findReferencedPUViaEMFRef(emfRef); pus.add(pu); } return pus; }
/** * helper method: find all PUs referenced via @PersistenceContext or * <persistence-context-ref> */ protected static Collection<? extends PersistenceUnitDescriptor> findReferencedPUsViaPCRefs(JndiNameEnvironment component) { Collection<PersistenceUnitDescriptor> pus = new HashSet<PersistenceUnitDescriptor>(); for (EntityManagerReference emRef : component.getEntityManagerReferenceDescriptors()) { PersistenceUnitDescriptor pu = findReferencedPUViaEMRef(emRef); pus.add(pu); } return pus; }
@Override protected void combineDataSourceDefinitionDescriptors(JndiNameEnvironment env) { for (DataSourceDefinitionDescriptor ddd: env.getDataSourceDefinitionDescriptors()) { DataSourceDefinitionDescriptor ddDesc = getDataSourceDefinitionDescriptor(ddd.getName()); if (ddDesc != null) { if (ddDesc.isConflict(ddd)) { conflictDataSourceDefinition = true; } } else { getDataSourceDefinitionDescriptors().add(ddd); } } }
@Override protected void combineEnvironmentEntries(JndiNameEnvironment env) { for (Object oenve : env.getEnvironmentProperties()) { EnvironmentEntry enve = (EnvironmentEntry)oenve; EnvironmentProperty envProp = _getEnvironmentPropertyByName(enve.getName()); if (envProp != null) { if (envProp.isConflict((EnvironmentProperty)enve)) { conflictEnvironmentEntry = true; } unionInjectionTargets(envProp, (EnvironmentProperty)enve); } else { addEnvironmentEntry(enve); } } }
protected void combineMessageDestinationReferenceDescriptors(JndiNameEnvironment env) { for (Object omdRef : env.getMessageDestinationReferenceDescriptors()) { MessageDestinationReferenceDescriptor mdRef = (MessageDestinationReferenceDescriptor)omdRef; MessageDestinationReferenceDescriptor mdr = _getMessageDestinationReferenceByName(mdRef.getName()); if (mdr != null) { combineInjectionTargets(mdr, mdRef); } else { if (env instanceof WebBundleDescriptor && ((WebBundleDescriptor)env).conflictMessageDestinationReference) { throw new IllegalArgumentException(localStrings.getLocalString( "enterprise.deployment.exceptionconflictmessagedestinationref", "There are more than one message destination references defined in web fragments with the same name, but not overrided in web.xml")); } else { addMessageDestinationReferenceDescriptor(mdRef); } } } }
protected void combineEjbReferenceDescriptors(JndiNameEnvironment env) { for (Object oejbRef: env.getEjbReferenceDescriptors()) { EjbReference ejbRef = (EjbReference)oejbRef; EjbReferenceDescriptor ejbRefDesc = (EjbReferenceDescriptor)_getEjbReference(ejbRef.getName()); if (ejbRefDesc != null) { combineInjectionTargets(ejbRefDesc, (EnvironmentProperty)ejbRef); } else { if (env instanceof WebBundleDescriptor && ((WebBundleDescriptor)env).conflictEjbReference) { throw new IllegalArgumentException(localStrings.getLocalString( "enterprise.deployment.exceptionconflictejbref", "There are more than one ejb references defined in web fragments with the same name, but not overrided in web.xml")); } else { addEjbReferenceDescriptor(ejbRef); } } } }
protected void combineJmsDestinationReferenceDescriptors(JndiNameEnvironment env) { for (Object ojdRef: env.getJmsDestinationReferenceDescriptors()) { JmsDestinationReferenceDescriptor jdRef = (JmsDestinationReferenceDescriptor)ojdRef; JmsDestinationReferenceDescriptor jdr = _getJmsDestinationReferenceByName(jdRef.getName()); if (jdr != null) { combineInjectionTargets(jdr, jdRef); } else { if (env instanceof WebBundleDescriptor && ((WebBundleDescriptor)env).conflictJmsDestinationReference) { throw new IllegalArgumentException(localStrings.getLocalString( "enterprise.deployment.exceptionconflictresourceenvref", "There are more than one resource env references defined in web fragments with the same name, but not overrided in web.xml")); } else { addJmsDestinationReferenceDescriptor(jdRef); } } } }
/** * Utility method for iterating the set of NameReference pairs in the supplied nameEnvironment */ protected Vector<NamedReferencePair> getNamedReferencePairsFrom(JndiNameEnvironment nameEnvironment) { Vector<NamedReferencePair> pairs = new Vector<NamedReferencePair>(); for (Iterator itr = nameEnvironment.getResourceReferenceDescriptors().iterator(); itr.hasNext();) { ResourceReferenceDescriptor resourceReference = (ResourceReferenceDescriptor) itr.next(); pairs.add(NamedReferencePair.createResourceRefPair((Descriptor) nameEnvironment, resourceReference)); } for (Iterator itr = nameEnvironment.getEjbReferenceDescriptors().iterator(); itr.hasNext();) { EjbReferenceDescriptor ejbReference = (EjbReferenceDescriptor) itr.next(); pairs.add(NamedReferencePair.createEjbRefPair((Descriptor) nameEnvironment, ejbReference)); } for (Iterator itr = nameEnvironment.getJmsDestinationReferenceDescriptors().iterator(); itr.hasNext();) { JmsDestinationReferenceDescriptor resourceEnvRef = (JmsDestinationReferenceDescriptor) itr.next(); pairs.add(NamedReferencePair.createResourceEnvRefPair((Descriptor) nameEnvironment, resourceEnvRef)); } return pairs; }
/** * Utility method for iterating the set of NameReference pairs in the supplied nameEnvironment */ protected Vector<NamedReferencePair> getNamedReferencePairsFrom(JndiNameEnvironment nameEnvironment) { Vector<NamedReferencePair> pairs = new Vector<NamedReferencePair>(); for (Iterator itr = nameEnvironment.getResourceReferenceDescriptors().iterator(); itr.hasNext();) { ResourceReferenceDescriptor resourceReference = (ResourceReferenceDescriptor) itr.next(); pairs.add(NamedReferencePair.createResourceRefPair((Descriptor) nameEnvironment, resourceReference)); } for (Iterator itr = nameEnvironment.getEjbReferenceDescriptors().iterator(); itr.hasNext();) { EjbReferenceDescriptor ejbReference = (EjbReferenceDescriptor) itr.next(); pairs.add(NamedReferencePair.createEjbRefPair((Descriptor) nameEnvironment, ejbReference)); } for (Iterator itr = nameEnvironment.getResourceEnvReferenceDescriptors().iterator(); itr.hasNext();) { ResourceEnvReferenceDescriptor resourceEnvRef = (ResourceEnvReferenceDescriptor) itr.next(); pairs.add(NamedReferencePair.createResourceEnvRefPair((Descriptor) nameEnvironment, resourceEnvRef)); } return pairs; }
/** * writes all the runtime information for service references * * @param parent node to add the runtime xml info * @param descriptor the J2EE component containing service references */ public static void writeServiceReferences(Node parent, JndiNameEnvironment descriptor) { Iterator serviceRefs = descriptor.getServiceReferenceDescriptors().iterator(); if (serviceRefs.hasNext()) { WLServiceRefNode serviceRefNode = new WLServiceRefNode(); while (serviceRefs.hasNext()) { ServiceReferenceDescriptor next = (ServiceReferenceDescriptor) serviceRefs.next(); // Only write runtime service-ref entry if there IS // some runtime info... if (!next.getPortsInfo().isEmpty() || !next.getCallProperties().isEmpty() || next.hasWsdlOverride()) { serviceRefNode.writeDescriptor (parent, WLWebServicesTagNames.SERVICE_REFERENCE_DESCRIPTION, next); } } } }
protected void combineResourceReferenceDescriptors(JndiNameEnvironment env) { for (Object oresRef : env.getResourceReferenceDescriptors()) { ResourceReferenceDescriptor resRef = (ResourceReferenceDescriptor)oresRef; ResourceReferenceDescriptor rrd = _getResourceReferenceByName(resRef.getName()); if (rrd != null) { combineInjectionTargets(rrd, resRef); } else { if (env instanceof WebBundleDescriptor && ((WebBundleDescriptor)env).conflictResourceReference) { throw new IllegalArgumentException(localStrings.getLocalString( "enterprise.deployment.exceptionconflictresourceref", "There are more than one resource references defined in web fragments with the same name, but not overrided in web.xml")); } else { addResourceReferenceDescriptor(resRef); } } } }