[rules-users] workflow rules in process order example
Hi, looking at the process order example in Drools 5.0 I wonder what workflow_rules.drl is doing? It relies on implementation details but seems not to be used on execution. thanks, gryf ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools Guvnor DB setup issue.
What error? Can you paste the server log? Maybe it's the white space before 'brms' in your connection url? Maybe you didn't provide the driver jar? Cheers, Jarek ami...@hsenidmobile.com wrote: hi everyone, I had problem in setting up a Database (mysql) with Drools Guvnor. wht i did was put the guvnor war file into JBOSS deploy dir and it creats a repository.xml and repoitory dir under bin folder. and i change the repository.xml as following PersistenceManager class = org.apache.jackrabbit.core.persistence.bundle.MySqlPersistenceManager param name=driver value=com.mysql.jdbc.Driver/ param name=url value=jdbc:mysql://localhost:3306/ brms/ param name=user value=brms_user/ param name=password value=brms_password/ param name=schemaObjectPrefix value=${wsp.name}_/ param name=schema value=mysql/ /PersistenceManager but it gave some error and wont deploy. please any have the answer please do reply me it very very urgent i spent 2 days for this setup still i couldn't get a result ___ 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] How to execute the SQL query using drools
hi All, I have requirement like to execute the sql queries through drools. is there are way to do it? please let me know asap. thanks amila silva ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
RE: [rules-users] forEach node Clarification
Your jpg was not visible at the enclosed URL. -Original Message- From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of rajakanthan Sent: 23 June 2009 02:24 To: rules-users@lists.jboss.org Subject: [rules-users] forEach node Clarification Hey guys, I'm doing a POC using drools and drools flow.I have inserted a image here after modifying some of ruleflow groups. There are more ruleflow groups. The rules belong to each ruleset in a composite node is perfectly working.Ok. fine. the problem is, when it comes to 'child service', a list of ChildService Object will be returned by POJO(let me say, ). For each object, the rules belong to Service 1,2 and 3 has to executed before coming out of this composite node 'Level Child'. I dont have any clue on this. what i have to be given in CollectionExpression and variableName property in forEach node? How to work on this forEach? http://www.nabble.com/file/p24150374/ServiceForEach.jpg -- View this message in context: http://www.nabble.com/forEach-node-Clarification-tp24150374p24150374.htm l Sent from the drools - user 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] How to execute the SQL query using drools
You have not clearly defined when you want to execute SQL queries. If you want to access a DB from the LHS you can use the from keyword. Note the results need to be time-constant i.e. not change on successive calls. If you want to access a DB from the RHS it is plain Java (or MVEL depending upon your rule dialect). See the documentation for more information. From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Amila Silva Sent: 23 June 2009 07:55 To: rules-users@lists.jboss.org Subject: [rules-users] How to execute the SQL query using drools hi All, I have requirement like to execute the sql queries through drools. is there are way to do it? please let me know asap. thanks amila silva ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
RE: [rules-users] help
You need to provide more information. Your question is like me replying with I don't have any problems. Not very helpful. -Original Message- From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of SHIMI Abdelouahad ( Prestataire ) Sent: 22 June 2009 16:54 To: rules-users@lists.jboss.org Subject: [rules-users] help Effectivly by using the version 4 and plugin 4 of drools, the application Works without any problem, but with version 5 and plugin 5 of drooos i have allwise the exception. Is the first time that I use Drools, I don't undurtand why don't work, I need the help. Please please help This e-mail and/or attachment(s) is (are) confidential and may be legally protected. This message is addressed to the intended recipient only. If you are not the intended recipient of the message, please notify the sender immediately. Its contents do not constitute a commitment by the sender's company except where provided for in a written and signed agreement between you and sender's company. Any disclosure, use or dissemination, either in whole or in partial, shall be prior authorized by the sender's company by written and signed agreement. E-mail and/or attachment(s) cannot be guaranteed to be secured or error-free as information can be intercepted, corrupted, lost, destroyed, arrive late or incomplete, or contain viruses. The sender.s company has taken all reasonable precautions to ensure that any attachment to this message does not contain a virus. However, the sender.s company (and not any of its Officers, Directors, Employees or Agents) cannot be held liable for any damages resulting from or linked to the existence of a virus. You are therefore strongly advised to carry out all your own anti-virus checks before opening any and all attachments to this message. ___ 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] Link for drools-server module
Did you replace the EL jar with that available from JBOSS? You will still need an EL jar somewhere if you are using JSF. Do you have Java security enabled in your Tomcat instance? I've previously had to put the EL jar in Tomcat's lib folder to fix other issues relating to the use of JSF and EL on Tomcat (not when trying to use Drools on Tomcat, but other standalone applications). -Original Message- From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of tanzu Sent: 22 June 2009 12:28 To: rules-users@lists.jboss.org Subject: [rules-users] Link for drools-server module Hi Can anyone please provide me with the following Tutorials about the detailed working and usage of the drools execution server. I have exported the drools-server in the drools 5 download, as a war and deployed on the application server to be used in conjuction with guvnor.But I am getting the following errrors. java.lang.IllegalStateException: Attempted to invoke a Seam component outside an initialized application at org.jboss.seam.contexts.Lifecycle.getApplication(Lifecycle.java:36) at org.jboss.seam.contexts.Lifecycle.mockApplication(Lifecycle.java:111) at org.jboss.seam.Seam.componentForName(Seam.java:298) at org.jboss.seam.intercept.RootInterceptor.getComponent(RootInterceptor.ja va:224) at org.jboss.seam.intercept.JavaBeanInterceptor.callPostActivate(JavaBeanIn terceptor.java:151) at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor. java:72) at org.drools.guvnor.server.security.RoleBasedPermissionManager_$$_javassis t_0.sessionDidActivate(RoleBasedPermissionManager_$$_javassist_0.java) at org.apache.catalina.session.StandardSession.activate(StandardSession.jav a:804) at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java: 397) at org.apache.catalina.session.StandardManager.load(StandardManager.java:32 1).. and java.lang.NoClassDefFoundError: javax/el/ExpressionFactory at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.j ava:3713) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216 ) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.ja va:760) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:831) at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:720).. . I am working on tomcat 5.5.7 and eclipse 3.4. I have guvnor 5.0 runnning with this configuration.I have already copied the jsf jars in tomcat lib folder.As it is tomcat 5.5.7 and not 6.x , I havent removed el-api jar from drools-guvnor.war for depolyment. Please help I need the drools-server up and working. Thanks tanzu -- View this message in context: http://www.nabble.com/Link-for-drools-server-module-tp24142668p24142668. html Sent from the drools - user 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] How to execute the SQL query using drools
Hi Anstis, I'm creating a rule engine which is basically a SQL query executor. for that i need to have a drool file where i can add new rules to build the different query criteria. user should be able to create new selection criteria. is there any way that i can define sql queries in side the drool files. thanks ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
RE: [rules-users] How to execute the SQL query using drools
Let me see if I understand correctly. You want the user to be able to define the SQL query (table, field list, predicates) and have the resulting SQL executed within Drools? Is this your only requirement for the rules engine; if so have you thought a rules engine might not be your best option. From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Amila Silva Sent: 23 June 2009 09:49 To: rules-users@lists.jboss.org Subject: [rules-users] How to execute the SQL query using drools Hi Anstis, I'm creating a rule engine which is basically a SQL query executor. for that i need to have a drool file where i can add new rules to build the different query criteria. user should be able to create new selection criteria. is there any way that i can define sql queries in side the drool files. thanks ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
RE: [rules-users] How to execute the SQL query using drools
The best I think you could achieve would be something like this... Global ExecuterService es; rule execute some SQL when $q : Query() $f : Fields(query == $q) $t : Tables(query == $q) $p : Predicates(query == $q) then es.execute($f, $t, $p); end Still not sure if a rules engine is your best option, if I understand your use case correctly. From: Anstis, Michael (M.) Sent: 23 June 2009 10:00 To: 'ami...@hsenidmobile.com'; 'Rules Users List' Subject: RE: [rules-users] How to execute the SQL query using drools Let me see if I understand correctly. You want the user to be able to define the SQL query (table, field list, predicates) and have the resulting SQL executed within Drools? Is this your only requirement for the rules engine; if so have you thought a rules engine might not be your best option. From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Amila Silva Sent: 23 June 2009 09:49 To: rules-users@lists.jboss.org Subject: [rules-users] How to execute the SQL query using drools Hi Anstis, I'm creating a rule engine which is basically a SQL query executor. for that i need to have a drool file where i can add new rules to build the different query criteria. user should be able to create new selection criteria. is there any way that i can define sql queries in side the drool files. thanks ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
RE: [rules-users] Link for drools-server module
Hi Michael I added the el-api 1.2 to tomcat 5.5.7/common/lib ,and then the drools-server started working.But then my web-client ,built on struts and using jsp not jsf ,started giving the same el-api error. I am also working with tomcat 6.0.3 .I had added the jsf jars from jboss ,but drools server and later my web - client application started to work ,but guvnor gave el-api version error.Because tomcat 6.0.3 had el-api and guvnor contained el-api 1.2 .So at last i removed the el-api 1.2 from guvnor ,and replaced it in tomcat lib with el-api. Bingo now all 3 guvnor ,drools-server ,and my web-client application are deployed in tomcat 6 and working fine. Still in need of a document describing ,the complete working of the rest api along with the web client to call drools server. Thanks Tanzu Anstis, Michael (M.) wrote: Did you replace the EL jar with that available from JBOSS? You will still need an EL jar somewhere if you are using JSF. Do you have Java security enabled in your Tomcat instance? I've previously had to put the EL jar in Tomcat's lib folder to fix other issues relating to the use of JSF and EL on Tomcat (not when trying to use Drools on Tomcat, but other standalone applications). -Original Message- From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of tanzu Sent: 22 June 2009 12:28 To: rules-users@lists.jboss.org Subject: [rules-users] Link for drools-server module Hi Can anyone please provide me with the following Tutorials about the detailed working and usage of the drools execution server. I have exported the drools-server in the drools 5 download, as a war and deployed on the application server to be used in conjuction with guvnor.But I am getting the following errrors. java.lang.IllegalStateException: Attempted to invoke a Seam component outside an initialized application at org.jboss.seam.contexts.Lifecycle.getApplication(Lifecycle.java:36) at org.jboss.seam.contexts.Lifecycle.mockApplication(Lifecycle.java:111) at org.jboss.seam.Seam.componentForName(Seam.java:298) at org.jboss.seam.intercept.RootInterceptor.getComponent(RootInterceptor.ja va:224) at org.jboss.seam.intercept.JavaBeanInterceptor.callPostActivate(JavaBeanIn terceptor.java:151) at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor. java:72) at org.drools.guvnor.server.security.RoleBasedPermissionManager_$$_javassis t_0.sessionDidActivate(RoleBasedPermissionManager_$$_javassist_0.java) at org.apache.catalina.session.StandardSession.activate(StandardSession.jav a:804) at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java: 397) at org.apache.catalina.session.StandardManager.load(StandardManager.java:32 1).. and java.lang.NoClassDefFoundError: javax/el/ExpressionFactory at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.j ava:3713) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216 ) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.ja va:760) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:831) at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:720).. . I am working on tomcat 5.5.7 and eclipse 3.4. I have guvnor 5.0 runnning with this configuration.I have already copied the jsf jars in tomcat lib folder.As it is tomcat 5.5.7 and not 6.x , I havent removed el-api jar from drools-guvnor.war for depolyment. Please help I need the drools-server up and working. Thanks tanzu -- View this message in context: http://www.nabble.com/Link-for-drools-server-module-tp24142668p24142668. html Sent from the drools - user 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 -- View this message in context: http://www.nabble.com/Link-for-drools-server-module-tp24142668p24162551.html Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list
Re: [rules-users] rules conversion to Flex
For client-server communications in a flex application, take a look at GraniteDS. Le lundi 22 juin 2009 à 10:04 -0500, Brian Towles a écrit : Howdy all I am trying to see if there is a project or product out there that will do a conversion of rules to a flex based front end. This is a only sometimes connected project and what I am looking for is something that is similar to BlazeDS (allowing database interaction on a flex UI with a Java based back in with disconnected storage and syncing) I found one project/company talking about it (http://www.integratedsemantics.com/index.html ) but there is no more information then beyond the blurb on the main page. Any hints or pointers? Thanks -=Brian -- Brian Towles Application Architect Technology Consortium, LLC btow...@tech-consortium.com tel: 512.415.8105 ___ 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] wait states, jpdl and nlp
Hello, I read the post by Salaboy on drools blog. and after that, I began to think about replacing the JBPM WF implementation with RuleFlow in my web application. After a couple of days of reading, I can say that the tools are really excellent, but I am not sure if I understand: - does RuleFlow support arbitrary long wait states, in other words, can I call long-running services from it asynchronously? - if not, can I put JPDL node in rule flow process definition, and if yes, how? Also, I would have one more question: Do you maybe know if somebody used drools for NLP (tokenisation, sentence splitting, POS tagging, Named Entity Recognition, etc). If so, do you have any feedback (I could not find anything by google). Thanks for response. Lemel ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] unable to resolve method using strict-mode
On Mon, 2009-06-22 at 11:47 -1000, Chris Richmond wrote: I cannot seem to call a static method on one of my classes and keep getting this error: [Error: Failed to compile: 1 compilation error(s): - (1,44) unable to resolve method using strict-mode: com.aps.syslog.logging.manager.LoggingManager.runLoggingTest(java.lang.String, com.aps.syslog.logging.Transaction)] [Near : {... Unknown }] How is the method declared? In other words: is mvel correct in not finding that method with that declaration because it doesn't exist? If the method uses different formal argument types, have you tried explicitly casting the actual arguments to the formal types? -- Andreas -- Never attribute to malice that which can be adequately explained by stupidity.-- Hanlon's Razor signature.asc Description: This is a digitally signed message part ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
RE: [rules-users] Link for drools-server module
Sounds like you found a solution! It could be worth you posting your configuration (including version of Tomcat, Drools components and EL) back to the forum to help others. Something showing the folder hierarchy and location of JARS would be good. You could even dig out the wiki page relating to Drools and Tomcat if you feel adventurous. I don't know anything about the REST api etc. Sorry. -Original Message- From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of tanzu Sent: 23 June 2009 10:15 To: rules-users@lists.jboss.org Subject: RE: [rules-users] Link for drools-server module Hi Michael I added the el-api 1.2 to tomcat 5.5.7/common/lib ,and then the drools-server started working.But then my web-client ,built on struts and using jsp not jsf ,started giving the same el-api error. I am also working with tomcat 6.0.3 .I had added the jsf jars from jboss ,but drools server and later my web - client application started to work ,but guvnor gave el-api version error.Because tomcat 6.0.3 had el-api and guvnor contained el-api 1.2 .So at last i removed the el-api 1.2 from guvnor ,and replaced it in tomcat lib with el-api. Bingo now all 3 guvnor ,drools-server ,and my web-client application are deployed in tomcat 6 and working fine. Still in need of a document describing ,the complete working of the rest api along with the web client to call drools server. Thanks Tanzu Anstis, Michael (M.) wrote: Did you replace the EL jar with that available from JBOSS? You will still need an EL jar somewhere if you are using JSF. Do you have Java security enabled in your Tomcat instance? I've previously had to put the EL jar in Tomcat's lib folder to fix other issues relating to the use of JSF and EL on Tomcat (not when trying to use Drools on Tomcat, but other standalone applications). -Original Message- From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of tanzu Sent: 22 June 2009 12:28 To: rules-users@lists.jboss.org Subject: [rules-users] Link for drools-server module Hi Can anyone please provide me with the following Tutorials about the detailed working and usage of the drools execution server. I have exported the drools-server in the drools 5 download, as a war and deployed on the application server to be used in conjuction with guvnor.But I am getting the following errrors. java.lang.IllegalStateException: Attempted to invoke a Seam component outside an initialized application at org.jboss.seam.contexts.Lifecycle.getApplication(Lifecycle.java:36) at org.jboss.seam.contexts.Lifecycle.mockApplication(Lifecycle.java:111) at org.jboss.seam.Seam.componentForName(Seam.java:298) at org.jboss.seam.intercept.RootInterceptor.getComponent(RootInterceptor.ja va:224) at org.jboss.seam.intercept.JavaBeanInterceptor.callPostActivate(JavaBeanIn terceptor.java:151) at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor. java:72) at org.drools.guvnor.server.security.RoleBasedPermissionManager_$$_javassis t_0.sessionDidActivate(RoleBasedPermissionManager_$$_javassist_0.java) at org.apache.catalina.session.StandardSession.activate(StandardSession.jav a:804) at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java: 397) at org.apache.catalina.session.StandardManager.load(StandardManager.java:32 1).. and java.lang.NoClassDefFoundError: javax/el/ExpressionFactory at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.j ava:3713) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216 ) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.ja va:760) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:831) at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:720).. . I am working on tomcat 5.5.7 and eclipse 3.4. I have guvnor 5.0 runnning with this configuration.I have already copied the jsf jars in tomcat lib folder.As it is tomcat 5.5.7 and not 6.x , I havent removed el-api jar from drools-guvnor.war for depolyment. Please help I need the drools-server up and working. Thanks tanzu -- View this message in context: http://www.nabble.com/Link-for-drools-server-module-tp24142668p24142668. html Sent
Re: [rules-users] wait states, jpdl and nlp
Hi Lemel, Yes ruleflow support wait state in the same way that jBPM does. With a different approach maybe, but you can do exactly the same with Ruleflow. There is also a limited support for jPDL inside ruleflow, that means, that you can take your jPDL process and run it with ruleflow. But, if you are thinking in replace the old jPDL to Ruleflow you can do it. Greetins On Tue, Jun 23, 2009 at 7:23 AM, Clandes Tino clandestino_...@yahoo.co.ukwrote: Hello, I read the post by Salaboy on drools blog. and after that, I began to think about replacing the JBPM WF implementation with RuleFlow in my web application. After a couple of days of reading, I can say that the tools are really excellent, but I am not sure if I understand: - does RuleFlow support arbitrary long wait states, in other words, can I call long-running services from it asynchronously? - if not, can I put JPDL node in rule flow process definition, and if yes, how? Also, I would have one more question: Do you maybe know if somebody used drools for NLP (tokenisation, sentence splitting, POS tagging, Named Entity Recognition, etc). If so, do you have any feedback (I could not find anything by google). Thanks for response. Lemel ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - http://salaboy.wordpress.com - http://www.jbug.com.ar - Salatino Salaboy Mauricio - ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Rule overriding
We are building a rule engine that will serve multiple companies. Many of the rules are common but there are some situations where the common rules need to be overriden by rules that are specific to a particular company. Each company has it's own rulebase that we create with packages that are configured for that company. I know that rules with the same name will override previous rules if they have the same package name. We could make that work if we compile the rules at runtime but I would like to deploy the binary packages from Guvnor. Has anyone come up with a solution for this? Thanks Kent Symanzik ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] unable to resolve method using strict-mode
What versions of Drools and MVEL are you using? []s Edson 2009/6/22 Chris Richmond crichm...@referentia.com I cannot seem to call a static method on one of my classes and keep getting this error: [Error: Failed to compile: 1 compilation error(s): - (1,44) unable to resolve method using strict-mode: com.aps.syslog.logging.manager.LoggingManager.runLoggingTest(java.lang.String, com.aps.syslog.logging.Transaction)] [Near : {... Unknown }] When I call the static method: LoggingManager.runLoggingTest (23223, transaction); Where the first argument can be any string and the second is a custom class that I isntatiated earlier in the RHS with no problems. Is the problem strict-mode? Or something else? LogginManager.runLoggingTest is a static method but do I perhaps have to do something like: $lm : LoggingManager() Then call the static method using: $lm.runLoggingTest (23223, transaction); Or something along these lines (I did try this but it failed as well). Thanks, Chris ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Edson Tirelli JBoss Drools Core Development JBoss, a division of Red Hat @ www.jboss.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Rule overriding
Kent, Not sure I understand your question. Does not matter if your rules are in source format or binary format from guvnor. As long as they have the same package name + rule name, a new rule will override a previous rule... []s Edson 2009/6/23 k...@chryslerfinancial.com We are building a rule engine that will serve multiple companies. Many of the rules are common but there are some situations where the common rules need to be overriden by rules that are specific to a particular company. Each company has it's own rulebase that we create with packages that are configured for that company. I know that rules with the same name will override previous rules if they have the same package name. We could make that work if we compile the rules at runtime but I would like to deploy the binary packages from Guvnor. Has anyone come up with a solution for this? Thanks Kent Symanzik -- Edson Tirelli JBoss Drools Core Development JBoss, a division of Red Hat @ www.jboss.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] wait states, jpdl and nlp
Let me try to answer the first set of questions: - does RuleFlow support arbitrary long wait states, in other words, can I call long-running services from it asynchronously? Of course, there are various nodes that behave as some sort of wait node. For example, a work item node waits until the work it has requested is completed (a human task node is a special case of this). An event wait node (or the more generic wait state that will be introduced in 5.1) allows you to wait for some condition (or manual trigger), etc. If you want to call a long-running service asynchronously, take a look at the work item node and use a work item handler that completes the work item asynchronously. - if not, can I put JPDL node in rule flow process definition, and if yes, how? If you would want to extend the current set of nodes, that would be possible, but you would need to dive into the internals to do that. But I don't think that is necessary. The work item and wait state nodes should be all you need I think. Kris Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
RE: [rules-users] How to execute the SQL query using drools
Your requirement isn't that clear however here's a few thoughts:- Data can be inserted into the Rule Engine either externally (i.e. WorkingMemory.insert) or internally (using from). If you use DSL you can make DRL more human readable; although neither are binary format in the first place. Drools will fit your requirement, but without knowing your use-cases better I can't say whether it would be the best fit. Perhaps if you can give a more detailed use-case the group would be better able to comment further. Please also ensure your emails go to the group http://www.jboss.org/drools/lists.html Finally, do read the documentation, you would probably be able to answer your own questions. With kind regards, Mike From: Amila Silva [mailto:ami...@hsenidmobile.com] Sent: 23 June 2009 10:58 To: Anstis, Michael (M.) Subject: Re: [rules-users] How to execute the SQL query using drools Thanks Michael, another thing can you tell me how can select data set or execute some queries using the drools ? can we have method to store rules as humand readable format instead of binary format? My requirement is to have rule engine , basically there are some set of rules which used to execute some queries and populate some tables depend on the situations, other than that need have every flexible rule engine instead of hard coded rule in java? what you think,is it possible to use drools for my requirement. thank you very much amila On Tue, Jun 23, 2009 at 2:29 PM, Anstis, Michael (M.) manst...@ford.com wrote: Let me see if I understand correctly. You want the user to be able to define the SQL query (table, field list, predicates) and have the resulting SQL executed within Drools? Is this your only requirement for the rules engine; if so have you thought a rules engine might not be your best option. From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Amila Silva Sent: 23 June 2009 09:49 To: rules-users@lists.jboss.org Subject: [rules-users] How to execute the SQL query using drools Hi Anstis, I'm creating a rule engine which is basically a SQL query executor. for that i need to have a drool file where i can add new rules to build the different query criteria. user should be able to create new selection criteria. is there any way that i can define sql queries in side the drool files. thanks -- Thanks, Regrads, Amila Silva, Associate Software Engineer hSenid Mobile Solutions Phone : +94-77-9983894 Fax : +94-11-2673 845 Web: http://www.hSenid.com Make it Happen http://www.hSenidMobile.com Enabling the Mobile World Disclaimer: This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to which they are addressed. The content and opinions contained in this email are not necessarily those of hSenid Software International. If you have received this email in error please contact the sender. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] RuleContext and insertLogical()
Hi Michal, Yes, I just noticed the method was not published in there. Although you don't need it if you are using straight forward insertLogical() call in the consequence, if you try to pass the ruleContext as parameter to an external method/function, you need the method. I will add it to the KnowledgeRuntime interface for the next release . Thanks for reporting. Edson 2009/6/21 Michal Bali michalb...@gmail.com Hi, The org.drools.runtime.rule.RuleContext doesn't support insertLogical() as did the deprecated KnowledgeHelper. Is it planned to support this method in the next release of Drools? Thanking you in advance. Best regards, Michal ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Edson Tirelli JBoss Drools Core Development JBoss, a division of Red Hat @ www.jboss.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Class Cast Exception in Drools 4 Generated Accumulate Method
Hi Rules Users, I'm experiencing an issue with a Drools 4.0.7 rule. Here is a clip of the exception that is thrown: Caused by: org.mvel.CompileException: cannot invoke method at org.mvel.optimizers.impl.refl.MethodAccessor.getValue(MethodAccessor.java:54) at org.mvel.optimizers.impl.refl.VariableAccessor.getValue(VariableAccessor.java:39) at org.mvel.ast.VariableDeepPropertyNode.getReducedValueAccelerated(VariableDeepPropertyNode.java:22) at org.mvel.ast.PropertyASTNode.getReducedValueAccelerated(PropertyASTNode.java:21) at org.mvel.MVELRuntime.execute(MVELRuntime.java:90) at org.mvel.CompiledExpression.getValue(CompiledExpression.java:111) at org.mvel.MVEL.executeExpression(MVEL.java:235) at org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:48) at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:554) ... 80 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor412.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.mvel.optimizers.impl.refl.MethodAccessor.getValue(MethodAccessor.java:46) ... 88 more Caused by: org.drools.RuntimeDroolsException: java.lang.ClassCastException: com.demo.Rule_My_Rule_0$Accumulate0 at org.drools.rule.Accumulate.accumulate(Accumulate.java:131) at org.drools.reteoo.AccumulateNode.modifyTuple(AccumulateNode.java:352) at org.drools.reteoo.AccumulateNode.assertObject(AccumulateNode.java:248) at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:318) at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:162) at org.drools.reteoo.Rete.assertObject(Rete.java:175) at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192) at org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:71) at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:911) at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:883) at org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:67) at org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:61) ... 92 more Caused by: java.lang.ClassCastException: com.demo.Rule_My_Rule_0$Accumulate0 at com.demo.Rule_My_Rule_0Accumulate0Invoker.accumulate(Rule_My_Rule_0Accumulate0Invoker.java:43) at org.drools.rule.Accumulate.accumulate(Accumulate.java:123) ... 103 more The actually rule name and package are a lot longer, I changed them here for brevity and because I don't believe the names themselves are relevant. This exception is being thrown intermittently when this rule, which contains an accumulate function is called. I say intermittently because it does not happen every time the rule is run. As far as I can tell the ClassCastExceptions only happens when the computer that the rules are running on is under load. A few more details before I post the rule itself. The rule base that I am building consists of 2 drl files. Both of the files have the same package declaration at the top. The 2 packages are built separately using PackageBuilder then combined using RuleBase.addPackage() on both packages. Also, I'm not sure if this is relevant, but this scenario takes place in a web application where the two package objects are only built once (for performance) but each user session creates a new RuleBase and adds the packages. The individual sessions then create stateful sessions from the rule base. This is the rule that I believe is causing the issue. rule My Rule salience 50 dialect java no-loop true when $module : Module( selected == false, required 1, $size : required ) $list : ArrayList( ) from accumulate( PotentialMatch( module == $module, $slot : slot ), init( List result = new ArrayList(); ), action( result.add($slot); ), reverse( result.remove((Integer)$slot ); ), result( result ) ) eval( countThem($list, $size) != $module.setMatchCount() ) then modify( $module ) { setMatchCount(countThem($list, $size)) }; end As I'm typing this I realize that there is another way to write this rule using collect. I'm not sure why it was written this way, but since I have already come this far, has anyone had any experience with the Drools 4 generated code throwing ClassCastExceptions? Thanks, Steve Ronderos___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Exposing the rule engine as a web service to be accessed by the client
Sorry I could not be of more help. I have only played with Guvnor with existing default server settings. Regards, Prem On Sun, Jun 21, 2009 at 9:27 AM, tanzu tanu...@rediffmail.com wrote: Dear prem Entire day I struggled ,but in vain.Please help.I downloaded the drools-5.0.1 CR1 war and ,removed el-api .jar as I am using Tomcat 6X.Even added the required jsf ,jars as mentioned in http://www.jboss.org/community/wiki/JBRMSjsfdependencies I have myeclipse 6.5 ,with eclipse 3.3 bundled with it.I added drools5.0.0 eclipse-all plugin in the plugin folder of eclipse.I was able to create a repoistory location ,but when the location was formed ,the packages below it are not visible to me. Guvnor connection wizard is completed, but the new Guvnor repository connection does not appear in the Guvnor Repository Explorer. I cannot expand the tree to view Guvnor repository contents.I access internet through a proxy. I even tried adding the drools5.0.0 eclipse-all plugin in eclipse 3.4 . Same problem like above. Am I missing some configuration settings,for my tomcat in the drools-guvnor.war. I have not read about guvnor.And the link you sent is also with guvnor. Do you have any reference ,where guvnor is not used ,just simple drl files in the drools execution server ,with how is the xml data sent from the client to the server. Really in a big mess.Deadline too close.Just 2 more days. Please help Regards Tanzu pkpkpkpk wrote: Mark has provided the elegant way to do it. However, as a newbie, it can be done simpler without using this API for stateless rules,. In this JIRA, https://jira.jboss.org/jira/browse/GUVNOR-354, you will find complete working examples. This has a ruby file, which invokes the webservice -- easily doable in struts It uses json format - you could pass in the xml format as well. You don't have to use Guvnor, its just that Guvnor has tooling that creates the packaging (.pkg files) , snapshots, etc and it is easier. You can skip Guvnor ( I just have'nt tried it). Regards, Prem On Thu, Jun 18, 2009 at 9:05 AM, tanzu tanu...@rediffmail.com wrote: My requirement is to expose drools rules as a web service ,which can be accessed by any kind of client including .net .I have built a struts based web application.When the user submits the struts client should be able to submit the data ,to the web service ,which will execute the rule engine ,and fire all rules ,and send a response back to the client.You said it correctly the drools execution server can suffice my need. My doubts are 1.Is it possible that I dont use guvnor ,and instead use just the drools expert with drl files with the execution server. 2.The data from the struts client should be converted into xml ,fact object and sent to the server to be used in the rules.Am I thinking right. A sample code showing how the client ,sends xml data to server ,and the response sent back to the client ,will be very helpful to me. Please help.I have a deadline.:-( tanzu pkpkpkpk wrote: Using the Drools execution server, the rules engine can be exposed as a web service. In http://hudson.jboss.org/hudson/job/drools/lastSuccessfulBuild/artifact/trunk/target/docs/drools-guvnor/html_single/index.html , check out section 1.4.7.2 The web service can be invoked using JSON or XML, so, it is possible to invoke it from any client. Regards, Prem On Sun, Jun 14, 2009 at 6:45 AM, tanzu tanu...@rediffmail.com wrote: Can the drools rule engine ,be exposed as a web service or do we need to write a web service and make an explicit call to rule engine ,using the working memory. Is it possible for a .net application to invoke drools rule engine. Please help as I am a newbie Thanks tanzu -- View this message in context: http://www.nabble.com/Exposing-the-rule-engine-as-a-web-service-to-be-accessed-by-the-client-tp23961020p23961020.html Sent from the drools - user 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 -- View this message in context: http://www.nabble.com/Exposing-the-rule-engine-as-a-web-service-to-be-accessed-by-the-client-tp23961020p24092604.html Sent from the drools - user 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
Re: [rules-users] Link for drools-server module
if you are able to create your packages, then you do not need the guvnor, since guvnor merely automates it for you. create a xxx.properties file in your classes folder ( where xxx is the package name ) This is documented in the guvnor documentation -- search for drools-server or look at the properties file attached in the JIRA provided. then, you are all set when you make a web service call to the URL as shown in the rb file i had attached. Regards, Prem On Tue, Jun 23, 2009 at 5:15 AM, tanzu tanu...@rediffmail.com wrote: Hi Michael I added the el-api 1.2 to tomcat 5.5.7/common/lib ,and then the drools-server started working.But then my web-client ,built on struts and using jsp not jsf ,started giving the same el-api error. I am also working with tomcat 6.0.3 .I had added the jsf jars from jboss ,but drools server and later my web - client application started to work ,but guvnor gave el-api version error.Because tomcat 6.0.3 had el-api and guvnor contained el-api 1.2 .So at last i removed the el-api 1.2 from guvnor ,and replaced it in tomcat lib with el-api. Bingo now all 3 guvnor ,drools-server ,and my web-client application are deployed in tomcat 6 and working fine. Still in need of a document describing ,the complete working of the rest api along with the web client to call drools server. Thanks Tanzu Anstis, Michael (M.) wrote: Did you replace the EL jar with that available from JBOSS? You will still need an EL jar somewhere if you are using JSF. Do you have Java security enabled in your Tomcat instance? I've previously had to put the EL jar in Tomcat's lib folder to fix other issues relating to the use of JSF and EL on Tomcat (not when trying to use Drools on Tomcat, but other standalone applications). -Original Message- From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of tanzu Sent: 22 June 2009 12:28 To: rules-users@lists.jboss.org Subject: [rules-users] Link for drools-server module Hi Can anyone please provide me with the following Tutorials about the detailed working and usage of the drools execution server. I have exported the drools-server in the drools 5 download, as a war and deployed on the application server to be used in conjuction with guvnor.But I am getting the following errrors. java.lang.IllegalStateException: Attempted to invoke a Seam component outside an initialized application at org.jboss.seam.contexts.Lifecycle.getApplication(Lifecycle.java:36) at org.jboss.seam.contexts.Lifecycle.mockApplication(Lifecycle.java:111) at org.jboss.seam.Seam.componentForName(Seam.java:298) at org.jboss.seam.intercept.RootInterceptor.getComponent(RootInterceptor.ja va:224) at org.jboss.seam.intercept.JavaBeanInterceptor.callPostActivate(JavaBeanIn terceptor.java:151) at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor. java:72) at org.drools.guvnor.server.security.RoleBasedPermissionManager_$$_javassis t_0.sessionDidActivate(RoleBasedPermissionManager_$$_javassist_0.java) at org.apache.catalina.session.StandardSession.activate(StandardSession.jav a:804) at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java: 397) at org.apache.catalina.session.StandardManager.load(StandardManager.java:32 1).. and java.lang.NoClassDefFoundError: javax/el/ExpressionFactory at java.lang.Class.getDeclaredConstructors0(Native Method) at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) at java.lang.Class.getConstructor0(Unknown Source) at java.lang.Class.newInstance0(Unknown Source) at java.lang.Class.newInstance(Unknown Source) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.j ava:3713) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4216 ) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.ja va:760) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:740) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:544) at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:831) at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:720).. . I am working on tomcat 5.5.7 and eclipse 3.4. I have guvnor 5.0 runnning with this configuration.I have already copied the jsf jars in tomcat lib folder.As it is tomcat 5.5.7 and not 6.x , I havent removed el-api jar from drools-guvnor.war for depolyment. Please help I need the drools-server up and working. Thanks tanzu -- View this message in context: http://www.nabble.com/Link-for-drools-server-module-tp24142668p24142668. html Sent from the
Re: [rules-users] workflow rules in process order example
Gryf, The order example can be executed using what we call advanced execution mode. In that case, you are not automatically going from one node to the other in your process all the time, but we allow other rules to intervene and possibly override the default behaviour. The workflow_rules you are referring to are describing the default behaviour. The logging rules and assignment rules in the example show how to add additional behaviour in this advanced execution mode. However, because advanced execution mode is still experimental (as very powerful and the user needs to know much more internal details to use them effectively), so we did not enable it by default. If you want to enable advanced execution mode, add this line before adding the knowledge packages to the knowledge base: ((InternalRuleBase) ((KnowledgeBaseImpl) kbase).getRuleBase()) .getConfiguration().setAdvancedProcessRuleIntegration(true); Kris Quoting g...@hippogrif.dk: Hi, looking at the process order example in Drools 5.0 I wonder what workflow_rules.drl is doing? It relies on implementation details but seems not to be used on execution. thanks, gryf Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Class Cast Exception in Drools 4 Generated Accumulate Method
Steve, What versions of MVEL and Drools are you using? Comments: * You can not share packages between rulebases. You can share rulebases among sessions. So, I strongly advise you to change your application to build the rulebase once, and have the web sessions only create the rule session every time... not the whole rulebase. Since packages have their own classloaders and everytime you create a rulebase you merge such classloaders, the problem might happen (CCE) exactly at the time you are creating the rulebase concurrently. Drools 5 allows you to share packages, although I still prefer to not do it and share only the rulebase. * You can not use collect in this case, because you are creating a list of $slot, not a list of PotentialMatch. Although, it is extremely easy to create an accumulate function for that. Drools 5 includes 2 accumulate functions: collectSet and collectList for that. If you want, just get the class from Drools 5, fix the imports to use the classes from Drools 4 and use it. Except for the imports you should not have any problem. Your rule would look like: *rule* My Rule *salience* 50 *dialect* java *no-loop* *true* *when* $module : Module( selected == *false*, required 1, $size : required ) $list : List( ) *from* *accumulate*( PotentialMatch( module == $module, $slot : slot ), collectList( $slot ) ) *eval*( countThem($list, $size) != $module.setMatchCount() ) *then* *modify*( $module ) { setMatchCount(countThem($list, $size)) }; *end* * Finally, your eval looks odd to me, but anyway, don't have enough details to advise you on that. []s Edson 2009/6/23 Steve Ronderos steve.ronde...@ni.com Hi Rules Users, I'm experiencing an issue with a Drools 4.0.7 rule. Here is a clip of the exception that is thrown: Caused by: org.mvel.CompileException: cannot invoke method at org.mvel.optimizers.impl.refl.MethodAccessor.getValue(MethodAccessor.java:54) at org.mvel.optimizers.impl.refl.VariableAccessor.getValue(VariableAccessor.java:39) at org.mvel.ast.VariableDeepPropertyNode.getReducedValueAccelerated(VariableDeepPropertyNode.java:22) at org.mvel.ast.PropertyASTNode.getReducedValueAccelerated(PropertyASTNode.java:21) at org.mvel.MVELRuntime.execute(MVELRuntime.java:90) at org.mvel.CompiledExpression.getValue(CompiledExpression.java:111) at org.mvel.MVEL.executeExpression(MVEL.java:235) at org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:48) at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:554) ... 80 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor412.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.mvel.optimizers.impl.refl.MethodAccessor.getValue(MethodAccessor.java:46) ... 88 more Caused by: org.drools.RuntimeDroolsException: java.lang.ClassCastException: com.demo.Rule_My_Rule_0$Accumulate0 at org.drools.rule.Accumulate.accumulate(Accumulate.java:131) at org.drools.reteoo.AccumulateNode.modifyTuple(AccumulateNode.java:352) at org.drools.reteoo.AccumulateNode.assertObject(AccumulateNode.java:248) at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:318) at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:162) at org.drools.reteoo.Rete.assertObject(Rete.java:175) at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192) at org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:71) at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:911) at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:883) at org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:67) at org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:61) ... 92 more Caused by: java.lang.ClassCastException: com.demo.Rule_My_Rule_0$Accumulate0 at com.demo.Rule_My_Rule_0Accumulate0Invoker.accumulate(Rule_My_Rule_0Accumulate0Invoker.java:43) at org.drools.rule.Accumulate.accumulate(Accumulate.java:123) ... 103 more The actually rule name and package are a lot longer, I changed them here for brevity and because I don't believe the names themselves are relevant. This exception is being thrown intermittently when this rule, which contains an accumulate function is called. I say intermittently because it does not happen every time the rule is run. As far as I can tell the ClassCastExceptions only happens when the computer that
RE: [rules-users] forEach node Clarification
guys.. Thanks for your co-operation. I have just found a solution for this. This can be done finely using workitem. Anstis, Michael (M.) wrote: Your jpg was not visible at the enclosed URL. -Original Message- From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of rajakanthan Sent: 23 June 2009 02:24 To: rules-users@lists.jboss.org Subject: [rules-users] forEach node Clarification Hey guys, I'm doing a POC using drools and drools flow.I have inserted a image here after modifying some of ruleflow groups. There are more ruleflow groups. The rules belong to each ruleset in a composite node is perfectly working.Ok. fine. the problem is, when it comes to 'child service', a list of ChildService Object will be returned by POJO(let me say, ). For each object, the rules belong to Service 1,2 and 3 has to executed before coming out of this composite node 'Level Child'. I dont have any clue on this. what i have to be given in CollectionExpression and variableName property in forEach node? How to work on this forEach? http://www.nabble.com/file/p24150374/ServiceForEach.jpg -- View this message in context: http://www.nabble.com/forEach-node-Clarification-tp24150374p24150374.htm l Sent from the drools - user 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 -- View this message in context: http://www.nabble.com/forEach-node-Clarification-tp24150374p24167529.html Sent from the drools - user 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] Class Cast Exception in Drools 4 Generated Accumulate Method
Edson, Thanks for the quick response! I'm using Drools 4.0.7 and mvel 1.3.1 Thanks for the tip about packages and rulebases. I'll make sure to change that in our code. As far as changing the accumulate to collect, I can easily work around that selector returning a list of PotentialMatches instead of Integers. I made that change and have been unable to create the ClassCastException since. I'm still not certain that the problem is resolved due to its random nature, but I'm hoping that it is patched enough for now until we can make the rulebase change you mentioned. Thanks for the info about Drools 5. I'm currently in the process of converting to Drools 5. You're right the eval does look odd, but it is working for the time being. This rule is in one of the first features I implemented using Drools, so it is probably not done in the best way possible. I'll keep an eye on it if I do not get this issue resolved some other way. Thanks again! Steve Ronderos rules-users-boun...@lists.jboss.org wrote on 06/23/2009 11:09:48 AM: [image removed] Re: [rules-users] Class Cast Exception in Drools 4 Generated Accumulate Method Edson Tirelli to: Rules Users List 06/23/2009 11:29 AM Sent by: rules-users-boun...@lists.jboss.org Please respond to Rules Users List Steve, What versions of MVEL and Drools are you using? Comments: * You can not share packages between rulebases. You can share rulebases among sessions. So, I strongly advise you to change your application to build the rulebase once, and have the web sessions only create the rule session every time... not the whole rulebase. Since packages have their own classloaders and everytime you create a rulebase you merge such classloaders, the problem might happen (CCE) exactly at the time you are creating the rulebase concurrently. Drools 5 allows you to share packages, although I still prefer to not do it and share only the rulebase. * You can not use collect in this case, because you are creating a list of $slot, not a list of PotentialMatch. Although, it is extremely easy to create an accumulate function for that. Drools 5 includes 2 accumulate functions: collectSet and collectList for that. If you want, just get the class from Drools 5, fix the imports to use the classes from Drools 4 and use it. Except for the imports you should not have any problem. Your rule would look like: rule My Rule salience 50 dialect java no-loop true when $module : Module( selected == false, required 1, $size : required ) $list : List( ) from accumulate( PotentialMatch( module == $module, $slot : slot ), collectList( $slot ) ) eval( countThem($list, $size) != $module.setMatchCount() ) then modify( $module ) { setMatchCount(countThem($list, $size)) }; end * Finally, your eval looks odd to me, but anyway, don't have enough details to advise you on that. []s Edson 2009/6/23 Steve Ronderos steve.ronde...@ni.com Hi Rules Users, I'm experiencing an issue with a Drools 4.0.7 rule. Here is a clip of the exception that is thrown: Caused by: org.mvel.CompileException: cannot invoke method at org.mvel.optimizers.impl.refl.MethodAccessor.getValue (MethodAccessor.java:54) at org.mvel.optimizers.impl.refl.VariableAccessor.getValue (VariableAccessor.java:39) at org.mvel.ast.VariableDeepPropertyNode.getReducedValueAccelerated (VariableDeepPropertyNode.java:22) at org.mvel.ast.PropertyASTNode.getReducedValueAccelerated (PropertyASTNode.java:21) at org.mvel.MVELRuntime.execute(MVELRuntime.java:90) at org.mvel.CompiledExpression.getValue(CompiledExpression.java:111) at org.mvel.MVEL.executeExpression(MVEL.java:235) at org.drools.base.mvel.MVELConsequence.evaluate (MVELConsequence.java:48) at org.drools.common.DefaultAgenda.fireActivation (DefaultAgenda.java:554) ... 80 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor412.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.mvel.optimizers.impl.refl.MethodAccessor.getValue (MethodAccessor.java:46) ... 88 more Caused by: org.drools.RuntimeDroolsException: java.lang.ClassCastException: com.demo.Rule_My_Rule_0$Accumulate0 at org.drools.rule.Accumulate.accumulate(Accumulate.java:131) at org.drools.reteoo.AccumulateNode.modifyTuple (AccumulateNode.java:352) at org.drools.reteoo.AccumulateNode.assertObject (AccumulateNode.java:248) at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject
Re: [rules-users] Class Cast Exception in Drools 4 Generated Accumulate Method
Steve and all users of Drools 4, Although earlier versions of Drools used mvel 1.3.1, in version 4.0.7 we updated to mvel 1.3.9. There are several fixes from 1.3.1 to 1.3.9, so I strongly suggest you all update. There are even newer versions of mvel 1.3.x, but the one I personally QA'd and found no problems was 1.3.9. Updating is just a matter of replacing the old jar for the new jar in the classpath. There are no API breaks or any other known problem. []s Edson 2009/6/23 Steve Ronderos steve.ronde...@ni.com Edson, Thanks for the quick response! I'm using Drools 4.0.7 and mvel 1.3.1 Thanks for the tip about packages and rulebases. I'll make sure to change that in our code. As far as changing the accumulate to collect, I can easily work around that selector returning a list of PotentialMatches instead of Integers. I made that change and have been unable to create the ClassCastException since. I'm still not certain that the problem is resolved due to its random nature, but I'm hoping that it is patched enough for now until we can make the rulebase change you mentioned. Thanks for the info about Drools 5. I'm currently in the process of converting to Drools 5. You're right the eval does look odd, but it is working for the time being. This rule is in one of the first features I implemented using Drools, so it is probably not done in the best way possible. I'll keep an eye on it if I do not get this issue resolved some other way. Thanks again! Steve Ronderos rules-users-boun...@lists.jboss.org wrote on 06/23/2009 11:09:48 AM: [image removed] Re: [rules-users] Class Cast Exception in Drools 4 Generated Accumulate Method Edson Tirelli to: Rules Users List 06/23/2009 11:29 AM Sent by: rules-users-boun...@lists.jboss.org Please respond to Rules Users List Steve, What versions of MVEL and Drools are you using? Comments: * You can not share packages between rulebases. You can share rulebases among sessions. So, I strongly advise you to change your application to build the rulebase once, and have the web sessions only create the rule session every time... not the whole rulebase. Since packages have their own classloaders and everytime you create a rulebase you merge such classloaders, the problem might happen (CCE) exactly at the time you are creating the rulebase concurrently. Drools 5 allows you to share packages, although I still prefer to not do it and share only the rulebase. * You can not use collect in this case, because you are creating a list of $slot, not a list of PotentialMatch. Although, it is extremely easy to create an accumulate function for that. Drools 5 includes 2 accumulate functions: collectSet and collectList for that. If you want, just get the class from Drools 5, fix the imports to use the classes from Drools 4 and use it. Except for the imports you should not have any problem. Your rule would look like: rule My Rule salience 50 dialect java no-loop true when $module : Module( selected == false, required 1, $size : required ) $list : List( ) from accumulate( PotentialMatch( module == $module, $slot : slot ), collectList( $slot ) ) eval( countThem($list, $size) != $module.setMatchCount() ) then modify( $module ) { setMatchCount(countThem($list, $size)) }; end * Finally, your eval looks odd to me, but anyway, don't have enough details to advise you on that. []s Edson 2009/6/23 Steve Ronderos steve.ronde...@ni.com Hi Rules Users, I'm experiencing an issue with a Drools 4.0.7 rule. Here is a clip of the exception that is thrown: Caused by: org.mvel.CompileException: cannot invoke method at org.mvel.optimizers.impl.refl.MethodAccessor.getValue (MethodAccessor.java:54) at org.mvel.optimizers.impl.refl.VariableAccessor.getValue (VariableAccessor.java:39) at org.mvel.ast.VariableDeepPropertyNode.getReducedValueAccelerated (VariableDeepPropertyNode.java:22) at org.mvel.ast.PropertyASTNode.getReducedValueAccelerated (PropertyASTNode.java:21) at org.mvel.MVELRuntime.execute(MVELRuntime.java:90) at org.mvel.CompiledExpression.getValue(CompiledExpression.java:111) at org.mvel.MVEL.executeExpression(MVEL.java:235) at org.drools.base.mvel.MVELConsequence.evaluate (MVELConsequence.java:48) at org.drools.common.DefaultAgenda.fireActivation (DefaultAgenda.java:554) ... 80 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.GeneratedMethodAccessor412.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at
RE: [rules-users] unable to resolve method using strict-mode
I am using Drools 5.0.1 Final..MVEL is whatever version was downloaded with drools 5, specifically mvel2.jar. Thanks, Chris _ From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Edson Tirelli Sent: Tuesday, June 23, 2009 2:07 AM To: Rules Users List Subject: Re: [rules-users] unable to resolve method using strict-mode What versions of Drools and MVEL are you using? []s Edson 2009/6/22 Chris Richmond crichm...@referentia.com I cannot seem to call a static method on one of my classes and keep getting this error: [Error: Failed to compile: 1 compilation error(s): - (1,44) unable to resolve method using strict-mode: com.aps.syslog.logging.manager.LoggingManager.runLoggingTest(java.lang.Strin g, com.aps.syslog.logging.Transaction)] [Near : {... Unknown }] When I call the static method: LoggingManager.runLoggingTest (23223, transaction); Where the first argument can be any string and the second is a custom class that I isntatiated earlier in the RHS with no problems. Is the problem strict-mode? Or something else? LogginManager.runLoggingTest is a static method but do I perhaps have to do something like: $lm : LoggingManager() Then call the static method using: $lm.runLoggingTest (23223, transaction); Or something along these lines (I did try this but it failed as well). Thanks, Chris ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Edson Tirelli JBoss Drools Core Development JBoss, a division of Red Hat @ www.jboss.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
RE: [rules-users] unable to resolve method using strict-mode
Simply declaring as examples do for MVEL: # setup dialect for the semantic code to be MVEL dialect mvel _ From: rules-users-boun...@lists.jboss.org [mailto:rules-users-boun...@lists.jboss.org] On Behalf Of Edson Tirelli Sent: Tuesday, June 23, 2009 2:07 AM To: Rules Users List Subject: Re: [rules-users] unable to resolve method using strict-mode What versions of Drools and MVEL are you using? []s Edson 2009/6/22 Chris Richmond crichm...@referentia.com I cannot seem to call a static method on one of my classes and keep getting this error: [Error: Failed to compile: 1 compilation error(s): - (1,44) unable to resolve method using strict-mode: com.aps.syslog.logging.manager.LoggingManager.runLoggingTest(java.lang.Strin g, com.aps.syslog.logging.Transaction)] [Near : {... Unknown }] When I call the static method: LoggingManager.runLoggingTest (23223, transaction); Where the first argument can be any string and the second is a custom class that I isntatiated earlier in the RHS with no problems. Is the problem strict-mode? Or something else? LogginManager.runLoggingTest is a static method but do I perhaps have to do something like: $lm : LoggingManager() Then call the static method using: $lm.runLoggingTest (23223, transaction); Or something along these lines (I did try this but it failed as well). Thanks, Chris ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Edson Tirelli JBoss Drools Core Development JBoss, a division of Red Hat @ www.jboss.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] fixed xsd for xml of knowledgebase-request,response
Hi All I have a web client which is built with struts and jsp.I intend to convert the form data into ,a bean(pojo) and then convert it into an xml data for transporting it to drools-server ,using HttpClient. My doubts are ,how can i perform this conversion of bean into xml as per drools notations. Is there a fixed xsd for this xml. Please help. tanzu -- View this message in context: http://www.nabble.com/fixed-xsd-for-xml-of-knowledgebase-request%2Cresponse-tp24173297p24173297.html Sent from the drools - user 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] unable to resolve method using strict-mode
Can you create a self contained test case that I can execute to debug this? If so, plz open a JIRA, attach the test case and let me know. Thanks, Edson 2009/6/23 Chris Richmond crichm...@referentia.com I am using Drools 5.0.1 Final……MVEL is whatever version was downloaded with drools 5, specifically mvel2.jar. Thanks, Chris -- *From:* rules-users-boun...@lists.jboss.org [mailto: rules-users-boun...@lists.jboss.org] *On Behalf Of *Edson Tirelli *Sent:* Tuesday, June 23, 2009 2:07 AM *To:* Rules Users List *Subject:* Re: [rules-users] unable to resolve method using strict-mode What versions of Drools and MVEL are you using? []s Edson 2009/6/22 Chris Richmond crichm...@referentia.com I cannot seem to call a static method on one of my classes and keep getting this error: [Error: Failed to compile: 1 compilation error(s): - (1,44) unable to resolve method using strict-mode: com.aps.syslog.logging.manager.LoggingManager.runLoggingTest(java.lang.String, com.aps.syslog.logging.Transaction)] [Near : {... Unknown }] When I call the static method: LoggingManager.runLoggingTest (23223, transaction); Where the first argument can be any string and the second is a custom class that I isntatiated earlier in the RHS with no problems. Is the problem strict-mode? Or something else? LogginManager.runLoggingTest is a static method but do I perhaps have to do something like: $lm : LoggingManager() Then call the static method using: $lm.runLoggingTest (23223, transaction); Or something along these lines (I did try this but it failed as well). Thanks, Chris ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Edson Tirelli JBoss Drools Core Development JBoss, a division of Red Hat @ www.jboss.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Edson Tirelli JBoss Drools Core Development JBoss by Red Hat @ www.jboss.com ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] RuleContext and insertLogical()
Thank you Edson. 2009/6/23 Edson Tirelli tire...@post.com Hi Michal, Yes, I just noticed the method was not published in there. Although you don't need it if you are using straight forward insertLogical() call in the consequence, if you try to pass the ruleContext as parameter to an external method/function, you need the method. I will add it to the KnowledgeRuntime interface for the next release . Thanks for reporting. Edson 2009/6/21 Michal Bali michalb...@gmail.com Hi, The org.drools.runtime.rule.RuleContext doesn't support insertLogical() as did the deprecated KnowledgeHelper. Is it planned to support this method in the next release of Drools? Thanking you in advance. Best regards, Michal ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- Edson Tirelli JBoss Drools Core Development JBoss, a division of Red Hat @ www.jboss.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] RuleContext and insertLogical()
Michal Bali wrote: Hi, The org.drools.runtime.rule.RuleContext doesn't support insertLogical() as did the deprecated KnowledgeHelper. Is it planned to support this method in the next release of Drools? Thanking you in advance. As this isn't available from the KnowledgeRuntime and it's linked to the rule I'm guessing it will have to go on the kcontext variable - I've avoided putting too much sugar on interfaces and guess I over trimmed things :) For now you can still use the drools variable for logical insert as we kept things backwards compatible. We will fix for 5.1. Maybe open a JIRA so we don't forget :) Mark Best regards, Michal ___ 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] RuleContext and insertLogical()
Thanks Mark, I've created the JIRA: https://jira.jboss.org/jira/browse/JBRULES-2138 Best regards, Michal 2009/6/23 Mark Proctor mproc...@codehaus.org Michal Bali wrote: Hi, The org.drools.runtime.rule.RuleContext doesn't support insertLogical() as did the deprecated KnowledgeHelper. Is it planned to support this method in the next release of Drools? Thanking you in advance. As this isn't available from the KnowledgeRuntime and it's linked to the rule I'm guessing it will have to go on the kcontext variable - I've avoided putting too much sugar on interfaces and guess I over trimmed things :) For now you can still use the drools variable for logical insert as we kept things backwards compatible. We will fix for 5.1. Maybe open a JIRA so we don't forget :) Mark Best regards, Michal -- ___ rules-users mailing listrules-us...@lists.jboss.orghttps://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 mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
RE: [rules-users] How to execute the SQL query using drools
RE: [rules-users] How to execute the SQL query using droolshi Anstis, Michael (M.), thanks a lot your final solution help me get and idea and start work on it. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Need help with setFocus
Hi All, Need some help with understanding setFocus. I have the following use case: if (condition1) { if (condition2) { } else if (condition3) { } else if (condition 4) { } } if (condition5) { if (condition2) { } else if (condition3) { } else if (condition 4) { } } I created 3 rules (rule2, rule3, rule4) for checking condition2, condition3, condition4 and created 1 agenda group (groupX) for them. I created 2 rules (rule1, rule5) for checking condition1, condition5 and created 1 agenda group(groupY) for them. rule rule1 agenda-group groupY when // then drools.setFocus(groupX); end rule rule3 agenda-group groupX activation-group someActiveGroup when // then // end From the java code: ksession.getAgenda().getAgendaGroup(groupY).setFocus(); Problem: The first time, drools.setFocus(groupX) is invoked, I see that it's working fine. rule2 or rule3 or rule4 get triggered. But, the SECOND time that drools.setFocus(groupX) is invoked, I don't see that any rule in agenda-group groupX is being invoked...even though one of the rule's LHS explicitly matches...thinking that the activation-group is cancelling all the activation's (after one rule in that activation group is fired), I even removed the activation-group statement. But, it didn't help...ideally, I would like to bunch rule2, rule3, rule4 in one activation group. Can you please let me know as to why the second invocation of setFocus is not working? I even tried to remove everything in LHS of rule2/3/4, to see if the second invocation would work...it doesn't... Thanks!! -- View this message in context: http://www.nabble.com/Need-help-with-setFocus-tp24177742p24177742.html Sent from the drools - user mailing list archive at Nabble.com. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users