Skip to content

Commit 540915f

Browse files
authored
Merge pull request #1371 from zyro23/grails-data-mapping-1368
#1368 - respect FactoryBean.getObjectType contract, use context…
2 parents 752d153 + 37bc862 commit 540915f

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/config/DatastoreServiceMethodInvokingFactoryBean.groovy

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,10 @@ class DatastoreServiceMethodInvokingFactoryBean extends MethodInvokingFactoryBea
2222

2323
@Override
2424
Class<?> getObjectType() {
25-
arguments[0] as Class<?>
25+
if (arguments != null && arguments.size() == 1) {
26+
return arguments[0] as Class<?>
27+
}
28+
return super.getObjectType()
2629
}
2730

2831
@Override

grails-datastore-core/src/main/groovy/org/grails/datastore/mapping/services/SoftServiceLoader.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public static Logger getLogger(Class type) {
8888
* @return A new service loader
8989
*/
9090
public static <S> SoftServiceLoader<S> load(Class<S> service) {
91-
return SoftServiceLoader.load(service, SoftServiceLoader.class.getClassLoader());
91+
return SoftServiceLoader.load(service, Thread.currentThread().getContextClassLoader());
9292
}
9393

9494
/**

grails-datastore-gorm/src/main/groovy/org/grails/datastore/gorm/bootstrap/AbstractDatastoreInitializer.groovy

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -333,8 +333,7 @@ abstract class AbstractDatastoreInitializer implements ResourceLoaderAware{
333333

334334
private Class<?> loadServiceClass(Class<Service> clazz) {
335335
final String serviceClassName = clazz.package.getName() + '.' + clazz.simpleName[1..-15]
336-
final ClassLoader cl = org.grails.datastore.mapping.reflect.ClassUtils.classLoader
337-
final Class<?> serviceClass = cl.loadClass(serviceClassName)
336+
final Class<?> serviceClass = classLoader.loadClass(serviceClassName)
338337
serviceClass
339338
}
340339

0 commit comments

Comments
 (0)