List<PersistenceUnitRefType> specPersistenceUnitRefsUntyped = convert(specDD.selectChildren(PersistenceUnitRefBuilder.PERSISTENCE_UNIT_REF_QNAME_SET), JEE_CONVERTER, PersistenceUnitRefType.class, PersistenceUnitRefType.type);
Map<String, GerPersistenceUnitRefType> gerPersistenceUnitRefsUntyped = getGerPersistenceUnitRefs(plan);
for (PersistenceUnitRefType PersistenceUnitRef: specPersistenceUnitRefsUntyped) {
String persistenceUnitRefName = PersistenceUnitRef.getPersistenceUnitRefName().getStringValue().trim();
AbstractNameQuery persistenceUnitNameQuery;
GerPersistenceUnitRefType gerPersistenceUnitRef = gerPersistenceUnitRefsUntyped.remove(persistenceUnitRefName);
if (gerPersistenceUnitRef != null) {
persistenceUnitNameQuery = findPersistenceUnit(gerPersistenceUnitRef);
} else if (PersistenceUnitRef.isSetPersistenceUnitName()) {
String persistenceUnitName = PersistenceUnitRef.getPersistenceUnitName().getStringValue().trim();
persistenceUnitNameQuery = new AbstractNameQuery(null, Collections.singletonMap("name", persistenceUnitName), PERSISTENCE_UNIT_INTERFACE_TYPES);
} else {
persistenceUnitNameQuery = defaultPersistenceUnitAbstractNameQuery;
}
try {
localConfiguration.findGBeanData(persistenceUnitNameQuery);
} catch (GBeanNotFoundException e) {
throw new DeploymentException("Could not resolve reference at deploy time for query " + persistenceUnitNameQuery, e);
}
PersistenceUnitReference reference = new PersistenceUnitReference(localConfiguration.getId(), persistenceUnitNameQuery);
((Map)componentContext.get(JNDI_KEY)).put(ENV + persistenceUnitRefName, reference);
}
for (GerPersistenceUnitRefType gerPersistenceUnitRef: gerPersistenceUnitRefsUntyped.values()) {
String PersistenceUnitRefName = gerPersistenceUnitRef.getPersistenceUnitRefName();
AbstractNameQuery persistenceUnitNameQuery = findPersistenceUnit(gerPersistenceUnitRef);
try {
localConfiguration.findGBeanData(persistenceUnitNameQuery);
} catch (GBeanNotFoundException e) {
throw new DeploymentException("Could not resolve reference at deploy time for query " + persistenceUnitNameQuery, e);