[rules-users] Problem when using multiple rule files (Drools 5)
Erik Clairiot
erik at clairiot.com
Tue Jul 28 10:12:22 EDT 2009
this approach works fine, I use it this way (import / export)
public Collection<KnowledgePackage> importPackages(InputStream input) {
Collection<KnowledgePackage> pkgs = Collections.emptyList();
try {
if (input == null || input.available() <= 0)
return pkgs;
ObjectInputStream ois = new ObjectInputStream(input);
pkgs = (Collection<KnowledgePackage>) ois.readObject();
return pkgs;
} catch (IOException e) {
LOG.warn("IOException during package import : " + e.getMessage());
} catch (ClassNotFoundException e) {
LOG.warn("Class saved in the stream does not exists : " +
e.getMessage());
}
return pkgs;
}
boolean exportPackages(Collection<KnowledgePackage> pkgs, OutputStream
output) {
if (pkgs != null && pkgs.size() > 0 && output != null){
try {
ObjectOutputStream oos = new ObjectOutputStream(output);
oos.writeObject(pkgs);
oos.close();
output.close();
return true;
} catch (IOException e) {
LOG.warn("Error exporting rules package : " + e.getMessage());
}
}
return false;
}
tune it as you want, hope it helps.
Erik Clairiot
On Tue, 28 Jul 2009 06:50:21 -0700 (PDT), Olaf Raether <o.raether at epro.de>
wrote:
> now i found out, that my problems are in relation to my serialized
> KnowledgePackages.
>
> When i use the following code and load the drl files everything is fine !
>
> KnowledgeBuilder kbuilder =
KnowledgeBuilderFactory.newKnowledgeBuilder();
> kbuilder.add(ResourceFactory.newClassPathResource(rules[i] + ".drl")),
> ResourceType.DRL);
>
> But this takes too long, when i used it the first time - so i want to use
> serialized
> KnowledgePackages again.
>
> So my question is: What is the right way to serialize/deserialize
> KnowledgePackages ?
>
> As you have seen in my posts i used standard readObject/writeObject
> methods.
> Is this the right approach ?
>
> Thanks.
More information about the rules-users
mailing list