[jboss-svn-commits] JBL Code SVN: r21576 - labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Fri Aug 15 22:09:45 EDT 2008
Author: mark.proctor at jboss.com
Date: 2008-08-15 22:09:44 -0400 (Fri, 15 Aug 2008)
New Revision: 21576
Modified:
labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
Log:
JBRULES-1736 Dynamically generated Types
-buildPackage must accept a ClassLoader to be able to successfully build
Modified: labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java
===================================================================
--- labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java 2008-08-16 01:33:02 UTC (rev 21575)
+++ labs/jbossrules/trunk/drools-guvnor/src/main/java/org/drools/guvnor/server/ServiceImplementation.java 2008-08-16 02:09:44 UTC (rev 21576)
@@ -1204,11 +1204,11 @@
RoleTypes.PACKAGE_DEVELOPER);
}
PackageItem item = repository.loadPackageByUUID(packageUUID);
- return buildPackage(selectorConfigName, force, item);
+ return buildPackage(selectorConfigName, force, item, Thread.currentThread().getContextClassLoader() );
}
private BuilderResult[] buildPackage(String selectorConfigName,
- boolean force, PackageItem item)
+ boolean force, PackageItem item, ClassLoader buildCl)
throws DetailedSerializableException {
if (!force && item.isBinaryUpToDate()) {
// we can just return all OK if its up to date.
@@ -1230,7 +1230,7 @@
out.flush();
out.close();
- updateBinaryPackage(item, asm);
+ updateBinaryPackage(item, asm, buildCl);
repository.save();
} catch (Exception e) {
log.error(e);
@@ -1245,9 +1245,11 @@
}
private void updateBinaryPackage(PackageItem item,
- ContentPackageAssembler asm) throws Exception {
+ ContentPackageAssembler asm, ClassLoader buildCl) throws Exception {
item.updateBinaryUpToDate(true);
- RuleBase rb = RuleBaseFactory.newRuleBase();
+ RuleBaseConfiguration conf = new RuleBaseConfiguration();
+ conf.setClassLoader( buildCl );
+ RuleBase rb = RuleBaseFactory.newRuleBase( conf );
rb.addPackage(asm.getBinaryPackage());
// this.ruleBaseCache.put(item.getUUID(), rb);
}
@@ -1571,7 +1573,7 @@
rb = loadRuleBase(item, buildCl);
this.ruleBaseCache.put(item.getUUID(), rb);
} else {
- BuilderResult[] errs = this.buildPackage(null, false, item);
+ BuilderResult[] errs = this.buildPackage(null, false, item, buildCl);
if (errs == null || errs.length == 0) {
rb = loadRuleBase(item, buildCl);
this.ruleBaseCache.put(item.getUUID(), rb);
@@ -1683,7 +1685,7 @@
this.ruleBaseCache.put(item.getUUID(), loadRuleBase(item,
cl));
} else {
- BuilderResult[] errs = this.buildPackage(null, false, item);
+ BuilderResult[] errs = this.buildPackage(null, false, item, cl);
if (errs == null || errs.length == 0) {
this.ruleBaseCache.put(item.getUUID(), loadRuleBase(
item, cl));
More information about the jboss-svn-commits
mailing list