try {
String persistenceUnitRefName = persistenceUnitRef.getPersistenceUnitRefName().getStringValue().trim();
addInjections(persistenceUnitRefName, persistenceUnitRef.getInjectionTargetArray(), componentContext);
AbstractNameQuery persistenceUnitNameQuery;
GerPersistenceUnitRefType gerPersistenceUnitRef = gerPersistenceUnitRefsUntyped.remove(persistenceUnitRefName);
if (gerPersistenceUnitRef != null) {
persistenceUnitNameQuery = findPersistenceUnit(gerPersistenceUnitRef);
checkForGBean(localConfiguration, persistenceUnitNameQuery, true);
} else if (persistenceUnitRef.isSetPersistenceUnitName() && persistenceUnitRef.getPersistenceUnitName().getStringValue().trim().length() > 0) {
String persistenceUnitName = persistenceUnitRef.getPersistenceUnitName().getStringValue().trim();
persistenceUnitNameQuery = new AbstractNameQuery(null, Collections.singletonMap("name", persistenceUnitName), PERSISTENCE_UNIT_INTERFACE_TYPES);
if (!checkForGBean(localConfiguration, persistenceUnitNameQuery, strictMatching)) {
persistenceUnitName = "persistence/" + persistenceUnitName;
persistenceUnitNameQuery = new AbstractNameQuery(null, Collections.singletonMap("name", persistenceUnitName), PERSISTENCE_UNIT_INTERFACE_TYPES);
checkForGBean(localConfiguration, persistenceUnitNameQuery, true);
}
} else {
persistenceUnitNameQuery = new AbstractNameQuery(null, Collections.EMPTY_MAP, PERSISTENCE_UNIT_INTERFACE_TYPES);
Set<AbstractNameQuery> patterns = Collections.singleton(persistenceUnitNameQuery);
LinkedHashSet<GBeanData> gbeans = localConfiguration.findGBeanDatas(localConfiguration, patterns);
persistenceUnitNameQuery = checkForDefaultPersistenceUnit(gbeans);
if (gbeans.isEmpty()) {
gbeans = localConfiguration.findGBeanDatas(patterns);
persistenceUnitNameQuery = checkForDefaultPersistenceUnit(gbeans);
if (gbeans.isEmpty()) {
if (defaultPersistenceUnitAbstractNameQuery == null) {
throw new DeploymentException("No default PersistenceUnit specified, and none located");
}
persistenceUnitNameQuery = defaultPersistenceUnitAbstractNameQuery;
}
}
}
checkForGBean(localConfiguration, persistenceUnitNameQuery, true);
PersistenceUnitReference reference = new PersistenceUnitReference(module.getConfigId(), persistenceUnitNameQuery);
put(persistenceUnitRefName, reference, NamingBuilder.JNDI_KEY.get(componentContext));
} catch (DeploymentException e) {
problems.add(e);
}
}
for (GerPersistenceUnitRefType gerPersistenceUnitRef : gerPersistenceUnitRefsUntyped.values()) {
try {
String PersistenceUnitRefName = gerPersistenceUnitRef.getPersistenceUnitRefName();
AbstractNameQuery persistenceUnitNameQuery = findPersistenceUnit(gerPersistenceUnitRef);
checkForGBean(localConfiguration, persistenceUnitNameQuery, true);