[rules-users] how to specify classpath dependencies in .drl files.

Edson Tirelli tirelli at post.com
Wed Sep 26 07:55:04 EDT 2007


    Drools does not have any special treatment/feature for classloaders.
Default java classloader hirarchy is used. So, set your URLClassLoader as
the context classloader before building the package and it shall work.

    []s
    Edson

2007/9/25, Godmar Back <godmar at gmail.com>:
>
> My question is how to manage a rule base that is composed from sets of
> rules drawn from different sources.
>
> Our goal is to supply sets of rules as .jar files - each .jar file
> containing a related set of rules. For instance, consider an expert
> system where different experts could export their expertise in such a
> jar file. Such a .jar file would contain one or more .drl files and a
> set of supporting .java classes. We'd like to be able to refer to
> these .jar files using a URLClassLoader and/or JarURLConnection so
> they can be referred to without a user having to download them prior
> to starting their application.
>
> Users should be able to combine those provided rules (that is, the
> rules of those experts whose knowledge they wish to exploit) with
> their own rules in their own .drl files.
>
> My question is whether drools supports such a setup easily.
> Specifically, is there a way for a user to import external .jar files
> in their .drl files? A statement such as
> use jar:http://expertbase.com/expert1/knowledge5.jar
> which would instruct the rule compiler to load the classes from this
> jar to its compile class path, and which would instruct the class
> loader used to load the user's classes to delegate to the loader used
> to load the jar file's classes? [Note that a given expert's knowledge
> should only be loaded by one classloader.]
>
> I browsed through the API and discovered that the package builder
> configuration allows the specification of a class loader. Does this
> mean the rule compiler will attempt to load related classes through
> this loader as well? If so, it would need to use reflection to examine
> those classes (which I'd find unlikely). If not, is there a way to
> control the rule compiler's compiler classpath?
>
> In our current prototype, we need to load everything through the
> application classpath to avoid compile errors.
>
> - Godmar
> _______________________________________________
> rules-users mailing list
> rules-users at 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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20070926/3f8cfc8d/attachment.html 


More information about the rules-users mailing list