Skip to content

Commit 71dc77c

Browse files
JBRULES-1736 Dynamically generated Types
-Must get classloader from the rulebase root classloader now git-svn-id: http://anonsvn.jboss.org/repos/labs/labs/jbossrules/trunk@21573 c60d74c8-e8f6-0310-9e8f-d4a2fc68ab70
1 parent 4da0fa1 commit 71dc77c

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

drools-clips/.classpath

+15-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,21 @@
99
<classpathentry kind="src" path="/drools-compiler"/>
1010
<classpathentry kind="src" path="/drools-core"/>
1111
<classpathentry kind="var" path="M2_REPO/org/mvel/mvel/2.0-dp4/mvel-2.0-dp4.jar"/>
12-
<classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0/antlr-runtime-3.0.jar"/>
12+
<classpathentry kind="var" path="M2_REPO/org/antlr/antlr-runtime/3.0.1/antlr-runtime-3.0.1.jar"/>
13+
<classpathentry kind="var" path="M2_REPO/org/antlr/stringtemplate/3.1-b1/stringtemplate-3.1-b1.jar"/>
14+
<classpathentry kind="var" path="M2_REPO/org/antlr/gunit/1.0.1/gunit-1.0.1.jar"/>
15+
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-project/2.0/maven-project-2.0.jar"/>
16+
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-profile/2.0/maven-profile-2.0.jar"/>
17+
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-model/2.0/maven-model-2.0.jar"/>
18+
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-utils/1.0.4/plexus-utils-1.0.4.jar"/>
19+
<classpathentry kind="var" path="M2_REPO/org/codehaus/plexus/plexus-container-default/1.0-alpha-8/plexus-container-default-1.0-alpha-8.jar"/>
20+
<classpathentry kind="var" path="M2_REPO/classworlds/classworlds/1.1-alpha-2/classworlds-1.1-alpha-2.jar"/>
21+
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-artifact-manager/2.0/maven-artifact-manager-2.0.jar"/>
22+
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-repository-metadata/2.0/maven-repository-metadata-2.0.jar"/>
23+
<classpathentry kind="var" path="M2_REPO/org/apache/maven/maven-artifact/2.0/maven-artifact-2.0.jar"/>
24+
<classpathentry kind="var" path="M2_REPO/org/apache/maven/wagon/wagon-provider-api/1.0-alpha-5/wagon-provider-api-1.0-alpha-5.jar"/>
25+
<classpathentry kind="var" path="M2_REPO/org/antlr/antlr/3.0.1/antlr-3.0.1.jar"/>
26+
<classpathentry kind="var" path="M2_REPO/antlr/antlr/2.7.7/antlr-2.7.7.jar"/>
1327
<classpathentry kind="var" path="M2_REPO/org/eclipse/jdt/core/3.2.3.v_686_R32x/core-3.2.3.v_686_R32x.jar"/>
1428
<classpathentry kind="var" path="M2_REPO/janino/janino/2.5.10/janino-2.5.10.jar"/>
1529
</classpath>

drools-clips/src/main/java/org/drools/clips/ClipsShell.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -403,7 +403,8 @@ public void lispFormHandler(LispForm lispForm) {
403403
context.addPackageImport( importName.substring( 0,
404404
importName.length() - 2 ) );
405405
} else {
406-
Class cls = pkg.getDialectRuntimeRegistry().getClassLoader().loadClass( importName );
406+
407+
Class cls = ((InternalRuleBase)ruleBase).getRootClassLoader().loadClass( importName );
407408
context.addImport( cls.getSimpleName(),
408409
(Class) cls );
409410
}
@@ -418,7 +419,7 @@ public void lispFormHandler(LispForm lispForm) {
418419
}
419420

420421
ClassLoader tempClassLoader = Thread.currentThread().getContextClassLoader();
421-
Thread.currentThread().setContextClassLoader( pkg.getPackageScopeClassLoader() );
422+
Thread.currentThread().setContextClassLoader( ((InternalRuleBase)ruleBase).getRootClassLoader() );
422423

423424
ExpressionCompiler expr = new ExpressionCompiler( appendable.toString() );
424425
Serializable executable = expr.compile( context );

drools-clips/src/test/java/org/drools/clips/ClipsShellTest.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.drools.clips.functions.RunFunction;
3232
import org.drools.clips.functions.SetFunction;
3333
import org.drools.clips.functions.SwitchFunction;
34+
import org.drools.common.InternalRuleBase;
3435
import org.drools.rule.Package;
3536
import org.drools.rule.Rule;
3637

@@ -251,7 +252,7 @@ public void FIXME_testTemplateCreation2() throws Exception {
251252
this.shell.eval( "(defrule xxx (PersonTemplate (name ?name&bob) (age 30) ) (PersonTemplate (name ?name) (age 35)) => (printout t xx \" \" (eq 1 1) ) )" );
252253
this.shell.eval( "(assert (PersonTemplate (name 'mike') (age 34)))" );
253254

254-
Class personClass = this.shell.getStatefulSession().getRuleBase().getPackage( "MAIN" ).getPackageScopeClassLoader().loadClass( "MAIN.PersonTemplate" );
255+
Class personClass = ((InternalRuleBase)this.shell.getStatefulSession().getRuleBase()).getRootClassLoader().loadClass( "MAIN.PersonTemplate" );
255256
assertNotNull( personClass );
256257
}
257258

@@ -287,7 +288,7 @@ public void testTemplateCreationWithJava() throws Exception {
287288
pkg.getRules().length );
288289

289290
WorkingMemory wm = shell.getStatefulSession();
290-
Class personClass = this.shell.getStatefulSession().getRuleBase().getPackage( "MAIN" ).getPackageScopeClassLoader().loadClass( "MAIN.Person" );
291+
Class personClass = ((InternalRuleBase)this.shell.getStatefulSession().getRuleBase()).getRootClassLoader().loadClass( "MAIN.Person" );
291292

292293
Method nameMethod = personClass.getMethod( "setName",
293294
new Class[]{String.class} );

0 commit comments

Comments
 (0)