Krishnan,
As your files have different package names:
com.company.a;
com.company.b;
You need to use different package builders for them. I.e., you can use
the same PackageBuilder to build multiple files only if the files share the
same package name.
[]s
Edson
2007/8/22, Krishnan <krishiyer(a)gmail.com>:
Hi All,
When I migrated to use the latest 4.0 GA release jars, loading of my rule
files fails.
I have basically split my rule files into hierarchies as below :-
Directory structure
rules\a\A.drl
rules\b\B.drl
A.drl
com.company.a;
some rules ...
B.drl
com.company.b;
some rules ...
Java code to load the rules
//read in the source
final Reader source = new InputStreamReader(new
FileInputStream(ruleFile));
//this will parse and compile in one step
//NOTE: There are 2 methods here, the one argument one is for normal DRL.
builder.addPackageFromDrl (source);
builder is created as follows :-
private PackageBuilder getPackageBuilder() {
//Use package builder to build up a rule package.
//An alternative lower level class called "DrlParser" can also be used...
PackageBuilderConfiguration conf = new PackageBuilderConfiguration();
JavaDialectConfiguration javaConf = (JavaDialectConfiguration)
conf.getDialectConfiguration( "java" );
javaConf.setJavaLanguageLevel ("1.5");
PackageBuilder builder = new PackageBuilder(conf);
return builder;
}
Exception I get is as follows :-
EXCEPTION [org.drools.compiler.PackageBuilder$PackageMergeException: Can't
merge packages with different names. This package:
com.makesys.fs.is.dnpiac.vendorBehaviour.snmp - New package:
com.makesys.fs.is.dnpiac.vendorBehaviour.cli]
STACK [org.drools.compiler.PackageBuilder$PackageMergeException: Can't
merge packages with different names. This package:
com.makesys.fs.is.dnpiac.vendorBehaviour.snmp - New package:
com.makesys.fs.is.dnpiac.vendorBehaviour.cli
at org.drools.compiler.PackageBuilder.validatePackageName (
PackageBuilder.java:299)
at org.drools.compiler.PackageBuilder.addPackage(PackageBuilder.java:226)
at org.drools.compiler.PackageBuilder.addPackageFromDrl(
PackageBuilder.java:160)
at com.makesys.fs.is.dnpiac.DNPIACConfigReaderHelper.loadRuleFile (
DNPIACConfigReaderHelper.java:359)
at com.makesys.fs.is.dnpiac.DNPIACConfigReaderHelper.loadRuleFiles(
DNPIACConfigReaderHelper.java:426)
at com.makesys.fs.is.dnpiac.DNPIACConfigReaderHelper.loadRuleFiles(
DNPIACConfigReaderHelper.java :380)
at com.makesys.fs.is.dnpiac.DNPIACConfigReaderHelper.initializeParams(
DNPIACConfigReaderHelper.java:531)
at com.makesys.fs.is.dnpiac.DNPIAutoConfigurationAdapter.collect(
DNPIAutoConfigurationAdapter.java:61)
at com.makesys.fs.app.adapter.BaseAdapter.activate(BaseAdapter.java:177)
at com.makesys.fs.app.adapter.UnicastAdapterImpl.activate(
UnicastAdapterImpl.java:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java :585)
at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:294)
at sun.rmi.transport.Transport$1.run(Transport.java:153)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall (Transport.java:149)
at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java
:466)
at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(
TCPTransport.java:707)
at java.lang.Thread.run(Thread.java :595)
]
Not sure what the issue is. Any ideas ?
TIA,
Krishnan
--
Sivaramakrishna Iyer Krishnan (Anand)
Never assume the obvious is true.
- William Safire
_______________________________________________
rules-users mailing list
rules-users(a)lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users
--
Edson Tirelli
Software Engineer - JBoss Rules Core Developer
Office: +55 11 3529-6000
Mobile: +55 11 9287-5646
JBoss, a division of Red Hat @
www.jboss.com