URL persistenceXmlURL = null;
try {
persistenceXmlURL = archive.getResource(DIRECTORY_PERSISTENCE_XML_FILE + '/' + PERSISTENCE_XML_FILE);
} catch (ArchiveException e) {
throw new PersistenceXmlFileAnalyzerException("Cannot check if entry '" + DIRECTORY_PERSISTENCE_XML_FILE
+ '/' + PERSISTENCE_XML_FILE + "' is present on the file '" + archive.getName() + "'.", e);
}
URL ormXmlURL = null;
try {
ormXmlURL = archive.getResource(DIRECTORY_PERSISTENCE_XML_FILE + '/' + ORM_XML_FILE);
} catch (ArchiveException e) {
throw new PersistenceXmlFileAnalyzerException("Cannot check if entry '" + DIRECTORY_PERSISTENCE_XML_FILE
+ '/' + ORM_XML_FILE + "' is present on the file '" + archive.getName() + "'.", e);
}
URL persistenceXmlURLWeb = null;
try {
persistenceXmlURLWeb = archive.getResource(WEB_DIRECTORY_PERSISTENCE_XML_FILE + '/' + PERSISTENCE_XML_FILE);
} catch (ArchiveException e) {
throw new PersistenceXmlFileAnalyzerException("Cannot check if entry '" + WEB_DIRECTORY_PERSISTENCE_XML_FILE
+ '/' + PERSISTENCE_XML_FILE + "' is present on the file '" + archive.getName() + "'.", e);
}
// Now, do the parsing and fill the structure.
boolean found = false;
List<JPersistenceUnitInfo> persistenceUnitInfos = null;
if (persistenceXmlURL != null) {
try {
persistenceUnitInfos = JPersistenceUnitInfoHelper.getPersistenceUnitInfoList(persistenceXmlURL);
} catch (JPersistenceUnitInfoException e) {
throw new PersistenceXmlFileAnalyzerException("Cannot parse the URL '" + persistenceXmlURL + "'.", e);
}
found = true;
}
List<JPersistenceUnitInfo> persistenceUnitInfosWeb = null;
if (persistenceXmlURLWeb != null) {
try {
persistenceUnitInfosWeb = JPersistenceUnitInfoHelper.getPersistenceUnitInfoList(persistenceXmlURLWeb);
} catch (JPersistenceUnitInfoException e) {
throw new PersistenceXmlFileAnalyzerException("Cannot parse the URL '" + persistenceXmlURLWeb + "'.", e);
}
if (persistenceUnitInfos != null) {
persistenceUnitInfos.addAll(persistenceUnitInfosWeb);
} else {
persistenceUnitInfos = persistenceUnitInfosWeb;
found = true;
}
}
if (found) {
int i = 0;
JPersistenceUnitInfo[] persistenceUnitInfosTab = new JPersistenceUnitInfo[persistenceUnitInfos.size()];
for (JPersistenceUnitInfo persistenceUnitInfo : persistenceUnitInfos) {
persistenceUnitInfosTab[i++] = persistenceUnitInfo;
try {
// Set the root url
persistenceUnitInfo.setPersistenceUnitRootUrl(archive.getURL());
} catch (ArchiveException e) {
throw new PersistenceXmlFileAnalyzerException("Cannot get the URL on the jar file '" + archive.getName()
+ "'.", e);
}
// Add mapping file
if (ormXmlURL != null) {