[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