Skip to content

Commit c53b262

Browse files
committed
1 parent 0c59058 commit c53b262

File tree

3 files changed

+19
-27
lines changed

3 files changed

+19
-27
lines changed

framework/src/play/classloading/ApplicationClassloader.java

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -255,27 +255,15 @@ public InputStream getResourceAsStream(String name) {
255255

256256
@Override
257257
public URL getResource(String name) {
258-
try {
259258
for (VirtualFile vf : Play.javaPath) {
260259
VirtualFile res = vf.child(name);
261260
if (res != null && res.exists()) {
261+
try {
262262
return res.getRealFile().toURI().toURL();
263-
}
264-
}
265-
if (Play.usePrecompiled) {
266-
File file = Play.getFile("precompiled/java/" + name);
267-
if (file.exists()) {
268-
return file.toURI().toURL();
269-
}
270-
}
271-
else if ("true".equals(Play.configuration.getProperty("play.bytecodeCache", "true"))) {
272-
File f = new File(Play.tmpDir, "classes/" + name);
273-
if (f.exists()) {
274-
return f.toURI().toURL();
275-
}
276-
}
277263
} catch (MalformedURLException ex) {
278264
throw new UnexpectedException(ex);
265+
}
266+
}
279267
}
280268
return super.getResource(name);
281269
}

framework/src/play/db/jpa/JPAPlugin.java

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -135,18 +135,18 @@ public void onApplicationStart() {
135135
JPQL.instance = new JPQL();
136136
}
137137

138-
private List<String> entityClasses(String dbName) {
139-
List<String> entityClasses = new ArrayList<>();
138+
private List<Class> entityClasses(String dbName) {
139+
List<Class> entityClasses = new ArrayList<>();
140140

141141
List<Class> classes = Play.classloader.getAnnotatedClasses(Entity.class);
142142
for (Class<?> clazz : classes) {
143143
if (clazz.isAnnotationPresent(Entity.class)) {
144144
// Do we have a transactional annotation matching our dbname?
145145
PersistenceUnit pu = clazz.getAnnotation(PersistenceUnit.class);
146146
if (pu != null && pu.name().equals(dbName)) {
147-
entityClasses.add(clazz.getName());
147+
entityClasses.add(clazz);
148148
} else if (pu == null && JPA.DEFAULT.equals(dbName)) {
149-
entityClasses.add(clazz.getName());
149+
entityClasses.add(clazz);
150150
}
151151
}
152152
}
@@ -162,9 +162,9 @@ private List<String> entityClasses(String dbName) {
162162
// Do we have a transactional annotation matching our dbname?
163163
PersistenceUnit pu = clazz.getAnnotation(PersistenceUnit.class);
164164
if (pu != null && pu.name().equals(dbName)) {
165-
entityClasses.add(clazz.getName());
165+
entityClasses.add(clazz);
166166
} else if (pu == null && JPA.DEFAULT.equals(dbName)) {
167-
entityClasses.add(clazz.getName());
167+
entityClasses.add(clazz);
168168
}
169169
} catch (Exception e) {
170170
Logger.warn(e, "JPA -> Entity not found: %s", entity);
@@ -184,8 +184,11 @@ protected EntityManagerFactory newEntityManagerFactory(String dbName, Configurat
184184
}
185185

186186
protected PersistenceUnitInfoImpl persistenceUnitInfo(String dbName, Configuration dbConfig) {
187-
return new PersistenceUnitInfoImpl(dbName,
188-
entityClasses(dbName), mappingFiles(dbConfig), properties(dbName, dbConfig));
187+
final List<Class> managedClasses = entityClasses(dbName);
188+
final Properties properties = properties(dbName, dbConfig);
189+
properties.put(org.hibernate.jpa.AvailableSettings.LOADED_CLASSES,managedClasses);
190+
return new PersistenceUnitInfoImpl(dbName,
191+
managedClasses, mappingFiles(dbConfig), properties);
189192
}
190193

191194
private List<String> mappingFiles(Configuration dbConfig) {

framework/src/play/db/jpa/PersistenceUnitInfoImpl.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import java.util.Collections;
1313
import java.util.List;
1414
import java.util.Properties;
15+
import java.util.stream.Collectors;
1516

1617
/**
1718
* @author Vlad Mihalcea
@@ -24,7 +25,7 @@ public class PersistenceUnitInfoImpl implements PersistenceUnitInfo {
2425

2526
private PersistenceUnitTransactionType transactionType = PersistenceUnitTransactionType.RESOURCE_LOCAL;
2627

27-
private final List<String> managedClassNames;
28+
private final List<Class> managedClasses;
2829
private final List<String> mappingFileNames;
2930

3031
private final Properties properties;
@@ -33,9 +34,9 @@ public class PersistenceUnitInfoImpl implements PersistenceUnitInfo {
3334

3435
private DataSource nonJtaDataSource;
3536

36-
public PersistenceUnitInfoImpl(String persistenceUnitName, List<String> managedClassNames, List<String> mappingFileNames, Properties properties) {
37+
public PersistenceUnitInfoImpl(String persistenceUnitName, List<Class> managedClasses, List<String> mappingFileNames, Properties properties) {
3738
this.persistenceUnitName = persistenceUnitName;
38-
this.managedClassNames = managedClassNames;
39+
this.managedClasses = managedClasses;
3940
this.mappingFileNames = mappingFileNames;
4041
this.properties = properties;
4142
}
@@ -96,7 +97,7 @@ public URL getPersistenceUnitRootUrl() {
9697

9798
@Override
9899
public List<String> getManagedClassNames() {
99-
return managedClassNames;
100+
return managedClasses.stream().map(Class::getName).collect(Collectors.toList());
100101
}
101102

102103
@Override

0 commit comments

Comments
 (0)