Skip to content

Commit 0112b08

Browse files
committed
Fix compilation errors, allow execution when domain class plugin is not present
1 parent 970a959 commit 0112b08

File tree

5 files changed

+33
-7
lines changed

5 files changed

+33
-7
lines changed

grails-plugin-testing/src/main/groovy/org/grails/compiler/injection/test/TestForTransformation.java

Lines changed: 20 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -263,15 +263,28 @@ protected MethodNode weaveMock(ClassNode classNode, ClassExpression value, boole
263263
}
264264

265265
// must be a domain class
266-
weaveMixinClass(classNode, DomainClassUnitTestMixin.class);
267-
if (isClassUnderTest) {
268-
testForMethod = addClassUnderTestMethod(classNode, value, DOMAIN_TYPE);
269-
}
270-
else {
271-
addMockCollaboratorToSetup(classNode, value, DOMAIN_TYPE);
266+
Class<?> domainClassPresent = null;
267+
try {
268+
domainClassPresent = Class.forName("org.grails.plugins.domain.DomainClassGrailsPlugin", true, TestForTransformation.class.getClassLoader());
269+
} catch (ClassNotFoundException e) {
270+
// not on classpath ignore
271+
} catch (NoClassDefFoundError e) {
272+
// ignore
272273
}
273274

274-
return testForMethod;
275+
if(domainClassPresent != null) {
276+
277+
weaveMixinClass(classNode, DomainClassUnitTestMixin.class);
278+
if (isClassUnderTest) {
279+
testForMethod = addClassUnderTestMethod(classNode, value, DOMAIN_TYPE);
280+
}
281+
else {
282+
addMockCollaboratorToSetup(classNode, value, DOMAIN_TYPE);
283+
}
284+
285+
return testForMethod;
286+
}
287+
return null;
275288
}
276289

277290
protected Class getMixinClassForArtefactType(ClassNode classNode) {

grails-plugin-testing/src/main/groovy/org/grails/compiler/injection/test/TestMixinTransformation.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ public void weaveMixinsIntoClass(ClassNode classNode, ListExpression values, Cla
195195
if (current instanceof ClassExpression) {
196196
ClassExpression ce = (ClassExpression) current;
197197
ClassNode mixinClassNode = ce.getType();
198+
mixinClassNode.getAllInterfaces();
198199
weaveMixinIntoClass(classNode, mixinClassNode, junit3MethodHandler, applicationClassNode);
199200
}
200201
}

grails-test-suite-base/build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@ dependencies {
44
project(':grails-spring'),
55
project(':grails-web'),
66
project(':grails-test'),
7+
project(':grails-plugin-converters'),
8+
project(':grails-plugin-domain-class'),
79
project(':grails-plugin-testing')
810
}

grails-test-suite-uber/build.gradle

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
dependencies {
22

33
compile project(':grails-test-suite-base'),
4+
project(':grails-plugin-interceptors'),
5+
project(':grails-plugin-filters'),
6+
project(':grails-plugin-gsp'),
7+
project(':grails-plugin-controllers'),
48
project(':grails-plugin-testing')
59

610
testRuntime 'javax.servlet.jsp:jsp-api:2.1'

grails-test-suite-web/build.gradle

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,13 @@ dependencies {
1313
project(':grails-plugin-i18n'),
1414
project(':grails-plugin-async'),
1515
project(':grails-plugin-url-mappings'),
16+
project(':grails-plugin-databinding'),
1617
project(':grails-plugin-services'),
18+
project(':grails-plugin-interceptors'),
19+
project(':grails-plugin-filters'),
20+
project(':grails-plugin-gsp'),
21+
project(':grails-plugin-controllers'),
22+
project(':grails-plugin-rest'),
1723
project(':grails-web'),
1824
project(':grails-spring')
1925

0 commit comments

Comments
 (0)