public PersistenceContextRef injectionTarget(final String className, final String property) { getInjectionTarget().add(new InjectionTarget(className, property)); // TODO move this to getKey() if (this.persistenceContextRefName == null) { this.persistenceContextRefName = "java:comp/env/" + className + "/" + property; } return this; }
public String getName() { return getPersistenceContextRefName(); }
@Override public PersistenceContextRef put(final String key, final PersistenceContextRef value) { if (!PersistenceContextType.EXTENDED.equals(value.getPersistenceContextType()) && !delegate.containsValue(key)) { return delegate.put(key, value); } return null; }
/** * Add a persistence context reference for the CMP * persistence contexts to this EntityBean definition. * * @param bean The bean we're updating. * * @return Returns true if the context was added. Returns false if * the bean already is associated with the CMP persistence * context. */ private boolean addPersistenceContextRef(EntityBean bean) { // if a ref is already defined, skip this bean if (bean.getPersistenceContextRefMap().containsKey(JpaCmpEngine.CMP_PERSISTENCE_CONTEXT_REF_NAME)) return false; PersistenceContextRef persistenceContextRef = new PersistenceContextRef(); persistenceContextRef.setName(JpaCmpEngine.CMP_PERSISTENCE_CONTEXT_REF_NAME); persistenceContextRef.setPersistenceUnitName(CMP_PERSISTENCE_UNIT_NAME); bean.getPersistenceContextRef().add(persistenceContextRef); return true; }
persistenceContextRef = new PersistenceContextRef(); persistenceContextRef.setPersistenceUnitName(persistenceContext.unitName()); persistenceContextRef.setPersistenceContextRefName(refName); if ("EXTENDED".equalsIgnoreCase(persistenceContext.type())) { persistenceContextRef.setPersistenceContextType(PersistenceContextType.EXTENDED); } else { persistenceContextRef.setPersistenceContextType(PersistenceContextType.TRANSACTION); if (persistenceContextRef.getPersistenceUnitName() == null || ("").equals(persistenceContextRef.getPersistenceUnitName())) { persistenceContextRef.setPersistenceUnitName(persistenceContext.unitName()); if (persistenceContextRef.getPersistenceContextType() == null || ("").equals(persistenceContextRef.getPersistenceContextType())) { if ("EXTENDED".equalsIgnoreCase(persistenceContext.type())) { persistenceContextRef.setPersistenceContextType(PersistenceContextType.EXTENDED); } else { persistenceContextRef.setPersistenceContextType(PersistenceContextType.TRANSACTION); List<Property> persistenceProperties = persistenceContextRef.getPersistenceProperty(); if (persistenceProperties == null) { persistenceProperties = new ArrayList<Property>(); persistenceContextRef.setPersistenceProperty(persistenceProperties); fail(consumer.getJndiConsumerName(), "presistenceContextAnnotation.onEntityManagerFactory", persistenceContextRef.getName()); } else if (!EntityManager.class.isAssignableFrom(type)) { fail(consumer.getJndiConsumerName(), "presistenceContextAnnotation.onNonEntityManager", persistenceContextRef.getName()); } else { target.setInjectionTargetClass(member.getDeclaringClass().getName());
if (persistenceContextRef.getPersistenceContextRefName().trim().equals(persistenceContextRefName)) { if (method != null || field != null) { Set<InjectionTarget> targets = persistenceContextRef.getInjectionTarget(); if (!hasTarget(method, field, targets)) { persistenceContextRef.getInjectionTarget().add(configureInjectionTarget(method, field)); PersistenceContextRef persistenceContextRef = new PersistenceContextRef(); persistenceContextRef.setPersistenceContextRefName(persistenceContextRefName); persistenceContextRef.setPersistenceUnitName(unitNameAnnotation); persistenceContextRef.setPersistenceContextType(org.apache.openejb.jee.PersistenceContextType.TRANSACTION); } else if (annotation.type() == PersistenceContextType.EXTENDED) { persistenceContextRef.setPersistenceContextType(org.apache.openejb.jee.PersistenceContextType.EXTENDED); prop.setName(property.name()); prop.setValue(property.value()); persistenceContextRef.getPersistenceProperty().add(prop); persistenceContextRef.getInjectionTarget().add(configureInjectionTarget(method, field));
private List<PersistenceContextReferenceInfo> buildPersistenceContextRefInfos(JndiConsumer jndiConsumer, URI moduleId) { ArrayList<PersistenceContextReferenceInfo> infos = new ArrayList<PersistenceContextReferenceInfo>(); for (PersistenceContextRef contextRef : jndiConsumer.getPersistenceContextRef()) { PersistenceContextReferenceInfo info = new PersistenceContextReferenceInfo(); info.referenceName = contextRef.getPersistenceContextRefName(); info.persistenceUnitName = contextRef.getPersistenceUnitName(); info.unitId = contextRef.getMappedName(); info.location = buildLocationInfo(contextRef); info.extended = (contextRef.getPersistenceContextType() == PersistenceContextType.EXTENDED); List<Property> persistenceProperty = contextRef.getPersistenceProperty(); for (Property property : persistenceProperty) { String name = property.getName(); String value = property.getValue(); info.properties.setProperty(name, value); } info.targets.addAll(buildInjectionInfos(contextRef)); infos.add(info); } return infos; }
String persistenceContextRefName = entry.getKey(); PersistenceContextRef persistenceContextRef = entry.getValue(); PersistenceContextType persistenceContextType = persistenceContextRef.getPersistenceContextType(); boolean transactionScoped = persistenceContextType == null || persistenceContextType.equals(PersistenceContextType.TRANSACTION); List<Property> propertyTypes = persistenceContextRef.getPersistenceProperty(); Map<String, String> properties = new HashMap<String, String>(); for (Property propertyType : propertyTypes) { put(persistenceContextRefName, reference, ReferenceType.PERSISTENCE_CONTEXT, module.getJndiContext(), persistenceContextRef.getInjectionTarget(), sharedContext); } catch (DeploymentException e) { problems.add(e);
@Override public void preProcessWebXmlElement(WebApp webApp, MergeContext mergeContext) throws DeploymentException { for (PersistenceContextRef persistenceContextRef : webApp.getPersistenceContextRef()) { String persistenceContextRefName = persistenceContextRef.getPersistenceContextRefName(); mergeContext.setAttribute(createPersistenceContextRefKey(persistenceContextRefName), new MergeItem(persistenceContextRef, null, ElementSource.WEB_XML)); //Create an attribute tag to indicate whether injectTarget is configured in web.xml file if (!persistenceContextRef.getInjectionTarget().isEmpty()) { mergeContext.setAttribute(createPersistenceContextRefInjectTargetConfiguredInWebXMLKey(persistenceContextRefName), Boolean.TRUE); } for (InjectionTarget injectionTarget : persistenceContextRef.getInjectionTarget()) { mergeContext.setAttribute(createPersistenceContextRefInjectTargetKey(persistenceContextRefName, injectionTarget.getInjectionTargetClass(), injectionTarget.getInjectionTargetName() ), Boolean.TRUE); } } }
final String refName = ref.getPersistenceContextRefName(); ref.setMappedName(MAPPED_NAME_PREFIX + refName);
ref.setMappedName(null); ref.getInjectionTarget().clear();
public String getKey() { return getName(); }
public void setName(final String name) { setPersistenceContextRefName(name); }
public PersistenceContextRef property(final String name, final String value) { getPersistenceProperty().add(new Property(name, value)); return this; }
persistenceContextRef = new PersistenceContextRef(); persistenceContextRef.setPersistenceUnitName(persistenceContext.unitName()); persistenceContextRef.setPersistenceContextRefName(refName); if ("EXTENDED".equalsIgnoreCase(persistenceContext.type())) { persistenceContextRef.setPersistenceContextType(PersistenceContextType.EXTENDED); } else { persistenceContextRef.setPersistenceContextType(PersistenceContextType.TRANSACTION); if (persistenceContextRef.getPersistenceUnitName() == null || "".equals(persistenceContextRef.getPersistenceUnitName())) { persistenceContextRef.setPersistenceUnitName(persistenceContext.unitName()); if (persistenceContextRef.getPersistenceContextType() == null) { if ("EXTENDED".equalsIgnoreCase(persistenceContext.type())) { persistenceContextRef.setPersistenceContextType(PersistenceContextType.EXTENDED); } else { persistenceContextRef.setPersistenceContextType(PersistenceContextType.TRANSACTION); List<Property> persistenceProperties = persistenceContextRef.getPersistenceProperty(); if (persistenceProperties == null) { persistenceProperties = new ArrayList<Property>(); persistenceContextRef.setPersistenceProperty(persistenceProperties); fail(consumer.getJndiConsumerName(), "persistenceContextAnnotation.onEntityManagerFactory", persistenceContextRef.getName()); } else if (!EntityManager.class.isAssignableFrom(type)) { fail(consumer.getJndiConsumerName(), "persistenceContextAnnotation.onNonEntityManager", persistenceContextRef.getName()); } else { target.setInjectionTargetClass(member.getDeclaringClass().getName());
private void buildPersistenceContextRefInfos(final JndiConsumer jndiConsumer, final JndiEncInfo moduleJndiEnc, final JndiEncInfo compJndiEnc) { for (final PersistenceContextRef contextRef : jndiConsumer.getPersistenceContextRef()) { final PersistenceContextReferenceInfo info = new PersistenceContextReferenceInfo(); info.referenceName = contextRef.getPersistenceContextRefName(); info.persistenceUnitName = contextRef.getPersistenceUnitName(); info.synchronizationType = contextRef.getPersistenceContextSynchronization() != null ? contextRef.getPersistenceContextSynchronization().name() : null; info.unitId = contextRef.getMappedName(); info.location = buildLocationInfo(contextRef); info.extended = contextRef.getPersistenceContextType() == PersistenceContextType.EXTENDED; final List<Property> persistenceProperty = contextRef.getPersistenceProperty(); for (final Property property : persistenceProperty) { final String name = property.getName(); final String value = property.getValue(); info.properties.setProperty(name, value); } info.targets.addAll(buildInjectionInfos(contextRef)); insert( info, appInfo.globalJndiEnc.persistenceContextRefs, appInfo.appJndiEnc.persistenceContextRefs, moduleJndiEnc.persistenceContextRefs, compJndiEnc.persistenceContextRefs ); } }
public void merge(WebFragment webFragment, WebApp webApp, MergeContext mergeContext) throws DeploymentException { for (PersistenceContextRef srcPersistenceContextRef : webFragment.getPersistenceContextRef()) { String persistenceContextRefName = srcPersistenceContextRef.getPersistenceContextRefName(); String persistenceContextRefKey = createPersistenceContextRefKey(persistenceContextRefName); MergeItem mergeItem = (MergeItem) mergeContext.getAttribute(persistenceContextRefKey); for (InjectionTarget injectTarget : srcPersistenceContextRef.getInjectionTarget()) { String persistenceContextRefInjectTargetKey = createPersistenceContextRefInjectTargetKey(persistenceContextRefName, injectTarget.getInjectionTargetClass(), injectTarget .getInjectionTargetName()); if (!mergeContext.containsAttribute(persistenceContextRefInjectTargetKey)) { persistenceContextRef.getInjectionTarget().add(injectTarget); mergeContext.setAttribute(persistenceContextRefInjectTargetKey, Boolean.TRUE); webApp.getPersistenceContextRef().add(srcPersistenceContextRef); mergeContext.setAttribute(persistenceContextRefKey, new MergeItem(srcPersistenceContextRef, mergeContext.getCurrentJarUrl(), ElementSource.WEB_FRAGMENT)); for (InjectionTarget injectionTarget : srcPersistenceContextRef.getInjectionTarget()) { mergeContext.setAttribute(createPersistenceContextRefInjectTargetKey(persistenceContextRefName, injectionTarget.getInjectionTargetClass(), injectionTarget.getInjectionTargetName() ), Boolean.TRUE);
final String refName = ref.getPersistenceContextRefName(); ref.setMappedName(MAPPED_NAME_PREFIX + refName);
/** * Add a persistence context reference for the CMP * persistence contexts to this EntityBean definition. * * @param bean The bean we're updating. * @return Returns true if the context was added. Returns false if * the bean already is associated with the CMP persistence * context. */ private boolean addPersistenceContextRef(final EntityBean bean) { // if a ref is already defined, skip this bean if (bean.getPersistenceContextRefMap().containsKey("java:" + JpaCmpEngine.CMP_PERSISTENCE_CONTEXT_REF_NAME)) { return false; } final PersistenceContextRef persistenceContextRef = new PersistenceContextRef(); persistenceContextRef.setName("java:" + JpaCmpEngine.CMP_PERSISTENCE_CONTEXT_REF_NAME); persistenceContextRef.setPersistenceUnitName(CMP_PERSISTENCE_UNIT_NAME); bean.getPersistenceContextRef().add(persistenceContextRef); return true; }
public String getKey() { final String name = getName(); if (name == null || name.startsWith("java:")) return name; return "java:comp/env/" + name; }