Re: [rules-users] Drools function not working with Javassist facts

2012-05-23 Thread Wolfgang Laun
The problem definitely depends on
   msgCtClass.writeFile();
being in the code

AND

the root (!) of the subdirector drools/dynamic into which the class
file Message.class is written being in the classpath.

Since I run javac/java from the comman line, I have to have "." in my
classpath, and this means that ./drools/dynamic/Message.class is in
scope.

See where this subdirectory+file is actually located in your workspace
and make sure the root is in the classpath. Check the javassist API so
as to  exercise more control over the location to which the class file
is writen by the aforementioned method.

-W



On 22/05/2012, Ayush  wrote:
> Thanks Laune,
>  I'm using java version "1.6.0_29"
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/Drools-function-not-working-with-Javassist-facts-tp3996584p4006368.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> ___
> rules-users mailing list
> rules-users@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools function not working with Javassist facts

2012-05-22 Thread Ayush
Thanks Laune,
 I'm using java version "1.6.0_29"

--
View this message in context: 
http://drools.46999.n3.nabble.com/Drools-function-not-working-with-Javassist-facts-tp3996584p4006368.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools function not working with Javassist facts

2012-05-22 Thread Wolfgang Laun
I'll upgrade to 5.4.0 Final and try that.

Please verifiy which Java versions you are using.

I used the latest javassist release, so please check this, too.

-W

On 22/05/2012, Ayush  wrote:
> Does this mean that this problem is due to running this program in Eclipse?
> I already tried it running in application server as well but it's throwing
> same error.
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/Drools-function-not-working-with-Javassist-facts-tp3996584p4006277.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> ___
> rules-users mailing list
> rules-users@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools function not working with Javassist facts

2012-05-22 Thread Ayush
Does this mean that this problem is due to running this program in Eclipse?
I already tried it running in application server as well but it's throwing
same error.

--
View this message in context: 
http://drools.46999.n3.nabble.com/Drools-function-not-working-with-Javassist-facts-tp3996584p4006277.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools function not working with Javassist facts

2012-05-22 Thread Wolfgang Laun
After running the reduced source code once more (5.2.0, 5.3.0 and
5.4.0-Beta2) I detected that  msgCtClass.writeFile()  isn't really
necessary.

Please try executing without Exclipse.

Make sure you have a late version of java 1.6. (I have 1.6.0_23.)

-W


On 22/05/2012, Ayush  wrote:
> Thanks a million Laune, but I'm still getting the same error
>
> I created a new project and copied the same code you posted but still the
> same error.
> I'm attaching my complete project (without jar files, they can be
> referenced
> in .classpath file), please help me kill my desperation to know what I'm
> doing wrong
>
> http://drools.46999.n3.nabble.com/file/n4006075/drools_issue.zip
> drools_issue.zip
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/Drools-function-not-working-with-Javassist-facts-tp3996584p4006075.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> ___
> rules-users mailing list
> rules-users@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools function not working with Javassist facts

2012-05-21 Thread Ayush
Thanks a million Laune, but I'm still getting the same error 

I created a new project and copied the same code you posted but still the
same error.
I'm attaching my complete project (without jar files, they can be referenced
in .classpath file), please help me kill my desperation to know what I'm
doing wrong 

http://drools.46999.n3.nabble.com/file/n4006075/drools_issue.zip
drools_issue.zip 

--
View this message in context: 
http://drools.46999.n3.nabble.com/Drools-function-not-working-with-Javassist-facts-tp3996584p4006075.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools function not working with Javassist facts

2012-05-18 Thread Wolfgang Laun
Set-up of the classpath for compile and execute:

ADDON=javassist/javassist-3.16.1-GA/javassist.jar
root=/extra/drools-distribution-5.3.0.Final/binaries
tag=5.3.0.Final
export 
CLASSPATH=.:$root/drools-core-${tag}.jar:$root/knowledge-api-${tag}.jar:$root/drools-compiler-${tag}.jar:$root/antlr-2.7.7.jar:$root/antlr-3.3.jar:$root/antlr-runtime-3.3.jar:$root/mvel2-2.1.0.drools7.jar:$root/ecj-3.5.1.jar:/extra/quartz-1.8.3/quartz-1.8.3.jar:$root/drools-decisiontables-${tag}.jar:$root/drools-templates-${tag}.jar:$root/xstream-1.4.1.jar:$root/xmlpull-1.1.3.1.jar:$ADDON


// === dynamic/Main.java 
package dynamic;

import java.io.IOException;

import org.drools.KnowledgeBase;
import org.drools.KnowledgeBaseConfiguration;
import org.drools.KnowledgeBaseFactory;
import org.drools.builder.KnowledgeBuilder;
import org.drools.builder.KnowledgeBuilderFactory;
import org.drools.builder.ResourceType;
import org.drools.conf.EventProcessingOption;
import org.drools.io.ResourceFactory;
import org.drools.runtime.StatefulKnowledgeSession;

import dynamic.FactGenerator;

public class Main {

void myCode () throws Exception {
System.out.println ("myCode()");

final Object obj = new FactGenerator ().getFact ();


final KnowledgeBase knowledgeBase = createKnowledgeBase ();
final StatefulKnowledgeSession session =
knowledgeBase.newStatefulKnowledgeSession ();
try {
session.insert (obj);
System.out.println ("Firing rule...");
final int count = session.fireAllRules ();
System.out.println ("rules count: " + count);
} finally {
session.dispose ();
}

}

private static KnowledgeBase createKnowledgeBase () {
System.out.println ("DroolsInvokerServlet.createKnowledgeBase()");

final KnowledgeBaseConfiguration config =
KnowledgeBaseFactory.newKnowledgeBaseConfiguration ();
config.setOption (EventProcessingOption.STREAM);
final KnowledgeBuilder builder =
KnowledgeBuilderFactory.newKnowledgeBuilder ();

builder.add (ResourceFactory.newClassPathResource
("dynamic/testRule.drl"), ResourceType.DRL);
if (builder.hasErrors ()) {
throw new RuntimeException (builder.getErrors ().toString ());
}
final KnowledgeBase knowledgeBase =
KnowledgeBaseFactory.newKnowledgeBase (config);
knowledgeBase.addKnowledgePackages (builder.getKnowledgePackages ());
return knowledgeBase;
}

public static void main (final String[] args) throws Exception {
Main m = new Main();
m.myCode ();
}
}

// === FactGenerator.java 
package dynamic;

import java.io.*;

import java.lang.reflect.Modifier;

import javassist.CannotCompileException;
import javassist.NotFoundException;
import javassist.ClassPool;
import javassist.CtClass;
import javassist.CtField;
import javassist.CtMethod;
import javassist.CtNewMethod;

public class FactGenerator {

static Class msgClass;

public Object getFact () throws IOException, NotFoundException,
CannotCompileException, InstantiationException, IllegalAccessException
{

if (msgClass != null) {
return msgClass.newInstance ();
} else {
final ClassPool pool = ClassPool.getDefault ();
CtClass msgCtClass = null;
System.out.println ("creating new class...");
msgCtClass = pool.makeClass ("drools.dynamic.Message");
final CtField field = new CtField (CtClass.intType,
"Count", msgCtClass);
field.setModifiers (Modifier.PRIVATE);
msgCtClass.addField (field);

final CtMethod getter = CtNewMethod.getter ("getCount", field);
msgCtClass.addMethod (getter);

final CtMethod setter = CtNewMethod.getter ("setCount", field);
msgCtClass.addMethod (setter);

msgCtClass.writeFile();

msgClass = msgCtClass.toClass ();
return msgClass.newInstance ();
}
}
}

import drools.dynamic.Message;

function void logMessage() {

}

// === testRule.drl =
rule "Hello World"
##  dialect "mvel"
when
$m : Message( count == 0 )
then

System.out.println("count: "+$m.getCount());
logMessage();
retract($m);

end







On 18/05/2012, Ayush  wrote:
> Thanks Laune, I tried executing it after adding msgCtClass.writeFile();
> but
> it's still throwing the same exception.
>
> If you could please share the version of lib files you are using along with
> the file with the changes?
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/Drools-function-not-working-with-Javassist-facts-tp3996584p4000536.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> ___
> rules-use

Re: [rules-users] Drools function not working with Javassist facts

2012-05-18 Thread Ayush
Thanks Laune, I tried executing it after adding msgCtClass.writeFile();  but
it's still throwing the same exception. 

If you could please share the version of lib files you are using along with
the file with the changes?

--
View this message in context: 
http://drools.46999.n3.nabble.com/Drools-function-not-working-with-Javassist-facts-tp3996584p4000536.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools function not working with Javassist facts

2012-05-16 Thread Wolfgang Laun
I removed all this servlet stuff and then I added
   msgCtClass.writeFile();
after building the class in FactGenerator and it works.

-W



On 16/05/2012, Ayush  wrote:
> Please find the attached code as zip. It contains following files
> 1) index.jsp: contains just a link to servlet which will initiate the
> process.
> 2) servlets.DroolsInvokerServlet.java
> 3) test.FactGenerator.java
> 4) testRule.drl
>
> Please deploy the project as .war project in jboss6 and add the following
> in
> web.xml
> /
>  xmlns="http://java.sun.com/xml/ns/j2ee";
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
> xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
> http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd";>
>   BIRT_Chart_JS_API_Samples
>   
>   
>   DroolsInvokerServlet
>   servlets.DroolsInvokerServlet
>   
>   
>   
>   DroolsInvokerServlet
>   /DroolsInvokerServlet
>   
> /
>
>
> Here is my code using which I'm able to reproduce the issue.
>
> Following is the error I'm receiving
>
> /java.lang.RuntimeException: Error importing :
> 'defaultpkg.LogMessage.logMessage'
> [ function logMessagelogMessage (line:7): Only a type can be imported.
> drools.dynamic.Message resolves to a package
>  ]
> Error importing : 'defaultpkg.LogMessage.logMessage'
>
>
> servlets.DroolsInvokerServlet.createKnowledgeBase(DroolsInvokerServlet.java:84)
>   servlets.DroolsInvokerServlet.myCode(DroolsInvokerServlet.java:57)
>   servlets.DroolsInvokerServlet.service(DroolsInvokerServlet.java:38)
>   javax.servlet.http.HttpServlet.service(HttpServlet.java:847)/
>
>
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/Drools-function-not-working-with-Javassist-facts-tp3996584p3996901.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> ___
> rules-users mailing list
> rules-users@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools function not working with Javassist facts

2012-05-16 Thread Ayush
Laune,
Thank you a lot for your reply. Here I go explaining the code.

*I'm generating dynamic java objects. In this the class file is made once
and on each request we make a new instance and insert it in drools session*

public Object getFact () 
throws CannotCompileException, InstantiationException,
IllegalAccessException {

if (msgClass != null) {
return msgClass.newInstance ();
} else {
final ClassPool pool = ClassPool.getDefault ();
CtClass msgCtClass = null;
System.out.println ("creating new class...");
msgCtClass = pool.makeClass ("drools.dynamic.Message");
final CtField field = new CtField (CtClass.intType, "Count",
msgCtClass);
field.setModifiers (Modifier.PRIVATE);
msgCtClass.addField (field);

final CtMethod getter = CtNewMethod.getter ("getCount", field);
msgCtClass.addMethod (getter);

final CtMethod setter = CtNewMethod.getter ("setCount", field);
msgCtClass.addMethod (setter);

msgClass = msgCtClass.toClass ();
return msgClass.newInstance ();

   }
   }

*After getting the object I create drools knowledgebase and session*
 final Object obj = new FactGenerator ().getFact ();

final KnowledgeBase knowledgeBase = createKnowledgeBase ();
final StatefulKnowledgeSession session =
knowledgeBase.newStatefulKnowledgeSession ();
try {
// final Message msg = new Message ();
// msg.setMessage ("Test message");
// msg.setStatus (0);
// session.insert (msg);

session.insert (obj);
System.out.println ("Firing rule...");
final int count = session.fireAllRules ();
System.out.println ("rules count: " + count);
} finally {
session.dispose ();
}

*Here is the drl file I'm using *

import drools.dynamic.Message;

rule "Hello World"
dialect "mvel"
when
$m : Message()
then

//System.out.println("count: "+$m.getCount());
System.out.println("count: -999");
//logMessage();
//System.out.println("Message: "+message);

retract($m);

end

function void logMessage() {

}
---

The above rule works perfect when I'm running it without the function
logMessage(). 
*Below are the jar files I'm using in project *

- antlr-2.7.7.jar
- antlr-3.3.jar
- antlr-runtime-3.3.jar
- drools-clips-5.3.0.Final.jar
- drools-compiler-5.3.1.Final.jar
- drools-core-5.3.0.Final.jar
- drools-transformer-jxls-5.1.0.M2.jar
- knowledge-api-5.3.0.Final.jar
- mvel2-2.1.0.drools14.jar

--
View this message in context: 
http://drools.46999.n3.nabble.com/Drools-function-not-working-with-Javassist-facts-tp3996584p3996964.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools function not working with Javassist facts

2012-05-16 Thread Ayush
Please find the attached code as zip. It contains following files
1) index.jsp: contains just a link to servlet which will initiate the
process.
2) servlets.DroolsInvokerServlet.java
3) test.FactGenerator.java
4) testRule.drl

Please deploy the project as .war project in jboss6 and add the following in
web.xml
/
http://java.sun.com/xml/ns/j2ee";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd";>
BIRT_Chart_JS_API_Samples


DroolsInvokerServlet
servlets.DroolsInvokerServlet



DroolsInvokerServlet
/DroolsInvokerServlet

/


Here is my code using which I'm able to reproduce the issue.

Following is the error I'm receiving 

/java.lang.RuntimeException: Error importing :
'defaultpkg.LogMessage.logMessage'
[ function logMessagelogMessage (line:7): Only a type can be imported.
drools.dynamic.Message resolves to a package
 ]
Error importing : 'defaultpkg.LogMessage.logMessage'


servlets.DroolsInvokerServlet.createKnowledgeBase(DroolsInvokerServlet.java:84)
servlets.DroolsInvokerServlet.myCode(DroolsInvokerServlet.java:57)
servlets.DroolsInvokerServlet.service(DroolsInvokerServlet.java:38)
javax.servlet.http.HttpServlet.service(HttpServlet.java:847)/



--
View this message in context: 
http://drools.46999.n3.nabble.com/Drools-function-not-working-with-Javassist-facts-tp3996584p3996901.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools function not working with Javassist facts

2012-05-16 Thread Wolfgang Laun
You will have to provide all of your (reduced) code as it reproduces the issue.

It's pointless posting "I got this error" when you don't show the
actual code where it happens, the error message, the way DRL
compilation is done...

-W


On 16/05/2012, Ayush  wrote:
> Thanks a million for your reply.
>
> Yes this is a sample code because the one I'm actually working on is much
> complex. The actual flow is
>  - create dynamic object and keep it in map
>  - create session and load drl
>  - insert all the dynamically created object in drools session
>  - fire all rules.
>
> Yes, when error is thrown the function is declared in same drl in which the
> rule is.
>
> We thought of creating Map instead of Dynamic classes but due to
> performance
> constraint we have to use dynamic classes.
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/Drools-function-not-working-with-Javassist-facts-tp3996584p3996609.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> ___
> rules-users mailing list
> rules-users@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools function not working with Javassist facts

2012-05-16 Thread Ayush
Thanks a million for your reply.

Yes this is a sample code because the one I'm actually working on is much
complex. The actual flow is
 - create dynamic object and keep it in map
 - create session and load drl
 - insert all the dynamically created object in drools session
 - fire all rules.

Yes, when error is thrown the function is declared in same drl in which the
rule is.

We thought of creating Map instead of Dynamic classes but due to performance
constraint we have to use dynamic classes. 

--
View this message in context: 
http://drools.46999.n3.nabble.com/Drools-function-not-working-with-Javassist-facts-tp3996584p3996609.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


Re: [rules-users] Drools function not working with Javassist facts

2012-05-16 Thread Wolfgang Laun
You aren't showing all of your code, or not the code you're actually using.

 It's remarkable that you can compile your DRL (without the function)
when the dynamically created class "drools.dynamic.MyDynamicClass"
isn't there yet.

Is the function logMessage declared in the DRL where the error is thrown?
You can't import a DRL function into another DRL file.

-W


On 16/05/2012, Ayush  wrote:
> Hello,
>
> I'm trying to build a rule which accepts the dynamic facts. The dynamic
> facts are created using the javassist API. The rule works fine when I'm
> adding a single rule but as soon as I declare any function in the drl file
> the rule doesn't compile.
>
> *Following is the code sample for creating the dynamic facts.*
>   // creating class object
>   final ClassPool pool = ClassPool.getDefault ();
>   CtClass evalClass = pool.makeClass ("drools.dynamic.MyDynamicClass");
>
>   // creating class field
>   final CtField nameField = new CtField (CtClass.intType, "Count",
> evalClass);
>   nameField.setModifiers (Modifier.PRIVATE);
>   evalClass.addField (nameField);
>
>   // creating getter for the above created field.
>   final CtMethod getter = CtNewMethod.getter ("getCount", nameField);
>   evalClass.addMethod (getter);
>
>   // creating setter for the above created field.
>   final CtMethod setter = CtNewMethod.setter ("setCount", nameField);
>   evalClass.addMethod (setter);
>
>   // finally creating class
>   final Class tempClass = evalClass.toClass ();
>
>   // creating class object
>   Object obj = tempClass.newInstance()
>
>   // inserting it in drools
>   droolsSession.insert(obj)
>
> *Following is the rule *
>   rule "DynamicFactRule"
>   dialect "mvel"
>   when
>   $obj : MyDynamicClass()
>   then
>   $obj.setCount(8);
>   System.out.println("Count set is: "+$obj.getCount(8));
>   end
>
> *This rule works fine but when I'm adding a function in drl file then it
> throws error: *
>   1) Unable to resolve ObjectType 'MyDynamicClass'
>   2)Error importing : 'defaultpkg.LogMessage.logMessage'
>
> *The function I added is*
>   function void logMessage() {
>   System.out.println("This is log message");
>   }
>
>
> *Following is the environment I'm using*
>   - Drools 5.3.0
>   - JBoss 6.x
>   - JDK6
>
> I looked at many approaches but I'm confused and out of soln, as none of it
> is working. I also tried looking at Drools trait but it's going over my head
>
>
> I'll highly appreciate if someone can please suggest what should be the
> ideal approach to solve it.
>
> --
> View this message in context:
> http://drools.46999.n3.nabble.com/Drools-function-not-working-with-Javassist-facts-tp3996584.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> ___
> rules-users mailing list
> rules-users@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users


[rules-users] Drools function not working with Javassist facts

2012-05-16 Thread Ayush
Hello,

I'm trying to build a rule which accepts the dynamic facts. The dynamic
facts are created using the javassist API. The rule works fine when I'm
adding a single rule but as soon as I declare any function in the drl file
the rule doesn't compile. 

*Following is the code sample for creating the dynamic facts.*
  // creating class object
  final ClassPool pool = ClassPool.getDefault ();
  CtClass evalClass = pool.makeClass ("drools.dynamic.MyDynamicClass");

  // creating class field
  final CtField nameField = new CtField (CtClass.intType, "Count",
evalClass);
  nameField.setModifiers (Modifier.PRIVATE);
  evalClass.addField (nameField);

  // creating getter for the above created field.
  final CtMethod getter = CtNewMethod.getter ("getCount", nameField);
  evalClass.addMethod (getter);

  // creating setter for the above created field.
  final CtMethod setter = CtNewMethod.setter ("setCount", nameField);
  evalClass.addMethod (setter);

  // finally creating class
  final Class tempClass = evalClass.toClass ();

  // creating class object
  Object obj = tempClass.newInstance()

  // inserting it in drools
  droolsSession.insert(obj)

*Following is the rule *
rule "DynamicFactRule"
dialect "mvel"
when
$obj : MyDynamicClass()
then
$obj.setCount(8);
System.out.println("Count set is: "+$obj.getCount(8));
end 

*This rule works fine but when I'm adding a function in drl file then it
throws error: *
1) Unable to resolve ObjectType 'MyDynamicClass' 
2)Error importing : 'defaultpkg.LogMessage.logMessage'

*The function I added is*
function void logMessage() {
System.out.println("This is log message");
}


*Following is the environment I'm using*
- Drools 5.3.0
- JBoss 6.x
- JDK6

I looked at many approaches but I'm confused and out of soln, as none of it
is working. I also tried looking at Drools trait but it's going over my head 

I'll highly appreciate if someone can please suggest what should be the
ideal approach to solve it.

--
View this message in context: 
http://drools.46999.n3.nabble.com/Drools-function-not-working-with-Javassist-facts-tp3996584.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
___
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users