Hi,
as mentioned in the docs, you could use an ant task. So if you look at
the sources
drools-ant/src/main/java/org/drools/contrib/DroolsCompilerAntTask.java
you will notice, that it adds the package file explicitly.
In your case, try this:
String rulePackageContent = FileUtils.readFileToString(rule.package);
String brl = FileUtils.readFileToString(file);
String outputDRL = rulePackageContent + write.marshal(read.unmarshal(brl));
HTH,
Jarek
----- Original Message -----
Hi,
We created a brl rule using guided editor in Eclipse 3.3
On trying to create a rule package we are getting a 'MissingPackageName'
exception.
As like a brl rule created in BRMS, on eclipse, the DRL source of the
created brl shows only the rule body `with the exception of the package
statement and imports. Our understanding is that packagebuilder in
drools-compiler should pick the package name and the imports defined in the
rules.package text file.
Things work fine for business rules created in guided editor in BRMS. Are we
missing something obvious here? or there isn't a way to compile and test the
brl files created in Eclipse. Any inputs are highly appreciated. Thanks.
Code snippet fyi
File file = new File(test_brl);
BRXMLPersistence read = (BRXMLPersistence)
BRXMLPersistence.getInstance();
BRDRLPersistence write =
(BRDRLPersistence)BRDRLPersistence.getInstance();
String brl = FileUtils.readFileToString(file);
String outputDRL = write.marshal(read.unmarshal(brl));
System.out.println("outputDRl"+outputDRL);
//Output DRL here doesn't show the import
statements
and package name
PackageBuilder builder = new PackageBuilder();
builder.addPackageFromDrl(new
StringReader(outputDRL
)); //Missing package name for rule package exception occurs here
Package pkg = builder.getPackage();
RuleBase ruleBase = RuleBaseFactory.newRuleBase();
ruleBase.addPackage( pkg );
WorkingMemory workingMemory = ruleBase.newStatefulSession();
workingMemory.insert(obj);
workingMemory.fireAllRules();