[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