Skip to content

Commit 0922104

Browse files
scottmarlowbstansberry
authored andcommitted
AS7-5474 fix 'jboss.as.jpa.vfs' support in PersistenceUnitInfo.getPersistenceUnitRootUrl() to return contents of persistence unit root
1 parent 972e157 commit 0922104

File tree

2 files changed

+25
-3
lines changed

2 files changed

+25
-3
lines changed

jpa/core/src/main/java/org/jboss/as/jpa/processor/PersistenceUnitParseProcessor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ private URL getPersistenceUnitURL(VirtualFile persistence_xml, boolean convertVF
281281
try {
282282
VirtualFile metaData = persistence_xml;// di.getMetaDataFile("persistence.xml");
283283
return convertVFS ?
284-
metaData.getParent().getParent().getPhysicalFile().toURI().toURL() :
284+
metaData.getPhysicalFile().getParentFile().getParentFile().toURI().toURL() :
285285
metaData.getParent().getParent().toURL();
286286

287287
} catch (Exception e) {

testsuite/integration/basic/src/test/java/org/jboss/as/test/integration/jpa/mockprovider/classtransformer/TestPersistenceProvider.java

+24-2
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,16 @@
2222

2323
package org.jboss.as.test.integration.jpa.mockprovider.classtransformer;
2424

25+
import java.io.File;
2526
import java.lang.reflect.Proxy;
27+
import java.net.URL;
2628
import java.util.Map;
2729

2830
import javax.persistence.EntityManagerFactory;
2931
import javax.persistence.spi.PersistenceProvider;
3032
import javax.persistence.spi.PersistenceUnitInfo;
3133
import javax.persistence.spi.ProviderUtil;
3234

33-
import org.jboss.as.jpa.container.EntityManagerUnwrappedTargetInvocationHandler;
34-
3535
/**
3636
* TestPersistenceProvider
3737
*
@@ -84,10 +84,32 @@ public EntityManagerFactory createContainerEntityManagerFactory(PersistenceUnitI
8484
testEntityManagerFactory
8585
);
8686

87+
testGetPersistenceUnitRootUrl(info);
88+
8789
System.out.println("TestPersistenceProvider.createContainerEntityManagerFactory() is returning " + proxyEntityManagerFactory);
8890
return proxyEntityManagerFactory;
8991
}
9092

93+
private void testGetPersistenceUnitRootUrl(PersistenceUnitInfo info) {
94+
URL rootUrl = info.getPersistenceUnitRootUrl();
95+
File topFolder = new File(rootUrl.getFile());
96+
if (topFolder == null) {
97+
throw new RuntimeException("couldn't get root file representation of getPersistenceUnitRootUrl");
98+
}
99+
File metainfFolder[] = topFolder.listFiles(); // META-INF
100+
File containedFiles[] = metainfFolder[0].listFiles();
101+
102+
for (File file :containedFiles) {
103+
104+
System.out.println("getPersistenceUnitRootUrl contains " + file.getName());
105+
if (file.getName().equals("persistence.xml")) {
106+
System.out.println("success: found persistence.xml");
107+
return ;
108+
}
109+
}
110+
throw new RuntimeException("failed to find 'persistence.xml' in PersistenceUnitInfo.getPersistenceUnitRootUrl() to verify that it contains 'persistence.xml'");
111+
}
112+
91113
@Override
92114
public ProviderUtil getProviderUtil() {
93115
return null;

0 commit comments

Comments
 (0)