[jboss-svn-commits] JBL Code SVN: r15187 - in labs/jbossrules/trunk/drools-compiler/src: test/java/org/drools/compiler and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Sep 17 22:24:21 EDT 2007


Author: michael.neale at jboss.com
Date: 2007-09-17 22:24:21 -0400 (Mon, 17 Sep 2007)
New Revision: 15187

Added:
   labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/SourcePackageProvider.java
   labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/SourcePackageProviderTest.java
Log:
JBRULES-1201

Added: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/SourcePackageProvider.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/SourcePackageProvider.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/SourcePackageProvider.java	2007-09-18 02:24:21 UTC (rev 15187)
@@ -0,0 +1,40 @@
+package org.drools.compiler;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStreamReader;
+
+import org.drools.RuntimeDroolsException;
+import org.drools.agent.FileLoader;
+import org.drools.rule.Package;
+
+/**
+ * This is used by the agent when a source file is encountered.
+ * @author michaelneale
+ *
+ */
+public class SourcePackageProvider implements FileLoader {
+
+	public Package loadPackage(File drl) throws IOException {
+		FileInputStream fin = new FileInputStream(drl);
+
+		PackageBuilder b = new PackageBuilder();
+		try {
+			b.addPackageFromDrl(new InputStreamReader(fin));
+			if (b.hasErrors()) {
+				throw new RuntimeDroolsException("Error building rules from source: " + b.getErrors());
+			} else {
+				return b.getPackage();
+			}
+		} catch (DroolsParserException e) {
+			throw new RuntimeException(e);
+		}
+
+
+
+	}
+
+
+
+}


Property changes on: labs/jbossrules/trunk/drools-compiler/src/main/java/org/drools/compiler/SourcePackageProvider.java
___________________________________________________________________
Name: svn:eol-style
   + native

Added: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/SourcePackageProviderTest.java
===================================================================
--- labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/SourcePackageProviderTest.java	                        (rev 0)
+++ labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/SourcePackageProviderTest.java	2007-09-18 02:24:21 UTC (rev 15187)
@@ -0,0 +1,54 @@
+package org.drools.compiler;
+
+import java.io.BufferedReader;
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStreamReader;
+import java.io.OutputStreamWriter;
+import java.util.Properties;
+
+import junit.framework.TestCase;
+
+import org.drools.RuleBase;
+import org.drools.agent.RuleAgent;
+import org.drools.agent.RuleBaseAssemblerTest;
+
+public class SourcePackageProviderTest extends TestCase {
+
+	public void testSourceProvider() throws Exception {
+		new SourcePackageProvider();
+	    File dir = RuleBaseAssemblerTest.getTempDirectory();
+
+	    InputStreamReader reader = new InputStreamReader(this.getClass().getResourceAsStream("/org/drools/integrationtests/HelloWorld.drl"));
+	    assertNotNull(reader);
+
+
+	    File target = new File(dir, "Something.drl");
+
+
+	    OutputStreamWriter writer = new OutputStreamWriter(new FileOutputStream(target));
+
+        BufferedReader in = new BufferedReader(reader);
+        BufferedWriter out = new BufferedWriter(writer);
+        String str;
+        while ((str = in.readLine()) != null) {
+
+            out.write(str + "\n");
+        }
+        in.close();
+        out.flush();
+        out.close();
+
+
+
+        Properties config = new Properties();
+        config.setProperty(RuleAgent.FILES, target.getPath());
+
+
+
+		RuleAgent ag = RuleAgent.newRuleAgent(config);
+		RuleBase rb = ag.getRuleBase();
+		assertNotNull(rb);
+	}
+}


Property changes on: labs/jbossrules/trunk/drools-compiler/src/test/java/org/drools/compiler/SourcePackageProviderTest.java
___________________________________________________________________
Name: svn:eol-style
   + native




More information about the jboss-svn-commits mailing list