tree d35ca43497ad820bc6a84791ba8aaef0c7cfce1c
parent 1158e028cff444c23fb22638cb3fcd3aac3e6757
author Radek Felcman <radek.felcman@oracle.com> 1641547173 +0100
committer GitHub <noreply@github.com> 1641547173 +0100
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJh2AWlCRBK7hj4Ov3rIwAAkEYIADVaikZlhzTEziQgW++e7R8d
 xhyJOGR7Z9JW9PlTAP5F5Qz2MusVxup4drPXWq8i9k2yXQtIG6KCubOlbQKa/I9Y
 kaaSTTr65IxipNbGMRHq1KO5HVVi0v1Vg2/lyl5fwKBn7Ulqsi07wx30N8bcuvYN
 dbAI8FzhkNldIdXW/ed3r6z7CIHrEkoxJ6/T6ejG4ucOb18XYgQHLg/SX1JwsNFn
 VVrVbJUDKffodME2Ynf8taYqg9MspzOWaH9CnmKhaQXPQFJwsUNDn9gUQmRS6Fxz
 nR2xJv4/vC4hf2iO5QPoOPYKhnGdKIN9B2D3doVpTaRkuhC3j1wyZTi9aAhf2EY=
 =NVrb
 -----END PGP SIGNATURE-----
 

Bug in the PersistenceUnitProcessor.findPersistenceArchives(ClassLoader loader, String descriptorPath) - bugfix (#1383)

Bug in the PersistenceUnitProcessor.findPersistenceArchives(ClassLoader loader, String descriptorPath) - bugfix

This small fix allows using/loading persistence.xml from WAR file from .../WEB-INF/classes/META-INF/persistence.xml location in JSE environment.
It is still required to point EclipseLink (EntityManagerFactory) to this location in JSE environment by:

  System.setProperty(PersistenceUnitProperties.ECLIPSELINK_PERSISTENCE_XML, "WEB-INF/classes/META-INF/persistence.xml");
or
  Properties persistenceUnitProperties = new Properties();
  persistenceUnitProperties.setProperty(PersistenceUnitProperties.ECLIPSELINK_PERSISTENCE_XML, "WEB-INF/classes/META-INF/persistence.xml");
  EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("test-jpa-pu2", persistenceUnitProperties);

Before this fix ValidationException
e.g.
Internal Exception: Exception [EclipseLink-7357] (Eclipse Persistence Services - 4.0.0.v202112161344): org.eclipse.persistence.exceptions.ValidationException
Exception Description: URL [jar:file:/tmp/test1348.war!/WEB-INF/classes/META-INF/persistence.xml] for resource [WEB-INF/classes/META-INF/persistence.xml] does not belong to a valid persistence root (as per JPA Specification)

was thrown

Fixes #1348

Signed-off-by: Radek Felcman <radek.felcman@oracle.com>