Re: [rules-users] Drools reflection problem.
Hi, I have never been doing this (opening a JIRA), but I will try in next 2, meaby 3 days - when I would have some extra time for it :) Thanks, tom. 2010/9/15 Edson Tirelli tire...@post.com That is odd Tom. Can you please open a JIRA for it and attach a test case to reproduce the problem plz? I will look into it when I get a chance. Edson 2010/9/14 tom ska tiberium.li...@gmail.com: Hi, in my package definition I have two kinds of facts. I use stateFullSession and I send to ksession facts of two different types. For each type I have one rule using only this type. So what I am doing is processing two different fact's types in one session. I start fireAllRules, and I know it fires good rules, and all is working fine. But problem appears later - when I want to get my fact's back using Drools reflection API. With first type (facts of first type) all is working fine, but when I change factType object to point into another type (the second one), I get problems: [ERROR] package.Type2 cannot be cast to package.Type2 java.lang.reflect.InvocationTargetException It is thrown when I call kbase.getFactType(package, Type2).get(factObject , filed1_name); I know that factObject is good, because when I use syso (factObject) I get what I want. What surprises me is when I call it for Type1 it works. Also, if I process in ksession only one fact type using my code, I don't get this error (for first and second fact type). Thanks, tom. ___ 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 ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Drools reflection problem.
Hi, in my package definition I have two kinds of facts. I use stateFullSession and I send to ksession facts of two different types. For each type I have one rule using only this type. So what I am doing is processing two different fact's types in one session. I start fireAllRules, and I know it fires good rules, and all is working fine. But problem appears later - when I want to get my fact's back using Drools reflection API. With first type (facts of first type) all is working fine, but when I change factType object to point into another type (the second one), I get problems: [ERROR] package.Type2 cannot be cast to package.Type2 java.lang.reflect.InvocationTargetException It is thrown when I call kbase.getFactType(package, Type2).get(factObject , filed1_name); I know that factObject is good, because when I use syso (factObject) I get what I want. What surprises me is when I call it for Type1 it works. Also, if I process in ksession only one fact type using my code, I don't get this error (for first and second fact type). Thanks, tom. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] How can I know, how many facts are processed by stateFulSession?
Hello, I think you understood me. Your solution is to validate facts in the rule. OK - I think this is a good idea, but... What if rules are created by no-IT (no-Math-aware ;) ) people? I can imagine situation where they do not validate this issue (div by 0). What then? If I send 1000 facts to ksession, and 901 has value set to 0? I want my 900 correct facts back. How can I know, how many have been processed? P.S. I don't want to use globals to count this. Thanks, tom. 2010/8/31 Edson Tirelli tire...@post.com I am not sure I understand your problem. The rule clearly should NOT match facts with value 0, as it will raise division by zero error all the time. So, the solution, in my mind is: rule r1 when p : CTestObj( value != 0 ) then p.setValue( 1 / p.getValue() ); end If you need to give a different treatment to objects with value == 0, just add another rule for them. []s Edson 2010/8/31 tom ska tiberium.li...@gmail.com Hello, I have a class and rule: class CTestObj { private double value; void setValue(double v) { this.value = v; } double getValue() { return this.value; } } rule r1 when p : CTestObj then p.setValue( 1 / p.getValue() ); end As you can see, in this rule, there is risk, to put into stateFulSession object with value set 0. I can't validate this, because, this problem has a variation where I put into stateFulSession object with set no 0, but the rule will modify it... So - I can't validate this = fact with value 0 is correct. But I process with stateFulSession many, many facts... For example 1000. And, after 900 facts it occurs, that fact number 901 has value set on 0. In effect I get an exception: org.drools.runtime.rule.ConsequenceException: java.lang.ArithmeticException: / by zero. And ksession stops processing facts. But, 900 facts are processed! I don't want to process them second time. And this is my question: How can I know, which fact is first no-processed fact? Which one stoped fireAllRules method? Beacuse I don't want to process them another time. Greetings :) tom. ___ 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 ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Problem with importing DrlParser and XmlDumper classes.
Hi, I have problem with importing and using DrlParser XmlDumper classes. In Eclipse I get thoose communicate: Discouraged access: The type DrlParser is not accessible due to restriction on required library [path hier]\drools-compiler.jar I googled this problem (maybe not too long) but I haven't found a solution. I want to mark, that my Eclipse configuration is correct - I don't get error, but only warning. But this is annoying :) I tried to look in docs, but Drools 5.1 has no javadocs, and in Drools 5.0.'s javadocs there are no DrlParser and XmlDumper classes! Why? (In Drools 5.1. Expert User Guide 4.11.4 is written that Drools 5.1. uses those classes). I don't understand what's going on :) Greetings, tom. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Getting rule's body to application.
Hello, what I want to do, is to get rule's body(rule's code written in DRL). For example: I have a ConsequenceException, and I can get rule's name, and package this way: . . . catch (ConsequenceException e) { e.getRule().getName(); e.getRule().getPackageName(); } But for me it is not enough. I want to see rule's code. haw can I get it? Thanks, tom. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] How can I know, how many facts are processed by stateFulSession?
Hello, I have a class and rule: class CTestObj { private double value; void setValue(double v) { this.value = v; } double getValue() { return this.value; } } rule r1 when p : CTestObj then p.setValue( 1 / p.getValue() ); end As you can see, in this rule, there is risk, to put into stateFulSession object with value set 0. I can't validate this, because, this problem has a variation where I put into stateFulSession object with set no 0, but the rule will modify it... So - I can't validate this = fact with value 0 is correct. But I process with stateFulSession many, many facts... For example 1000. And, after 900 facts it occurs, that fact number 901 has value set on 0. In effect I get an exception: org.drools.runtime.rule.ConsequenceException: java.lang.ArithmeticException: / by zero. And ksession stops processing facts. But, 900 facts are processed! I don't want to process them second time. And this is my question: How can I know, which fact is first no-processed fact? Which one stoped fireAllRules method? Beacuse I don't want to process them another time. Greetings :) tom. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Rules in Database.
Hi, what I can't do is to save rules defined in Guvnor to DBMS's tables. I want another application to read rules, and this another application can read from Database. I saved Guvnor's data in database, but I can't see tables with rules definition... How can I do it? Thanks in advance, tom. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] error while inserting values in excel
Hi, You put 1000 value in cell in column, where Your's condition never uses values from this column (basic salarz). This same problem with basic salary 1 column. What do You mean by a.getBasic()!=null ? What do You mean by null? Also if Your's model is not complicated, please show it to us. regards, tom 2010/8/20 Kripa Nathwani kripa.nathw...@lntinfotech.com Hi, Below is the decision table on which I am working. It is calculating PF and HRA by taking basic value and checking that basic is not equal to null. The problem is when I start inserting values in the column it is giving me following error messages: no viable alternative at input ')' in rule Pricing bracket_12 in pattern AmountPojo mismatched input '!=' expecting ')' in rule Pricing bracket_12 in pattern AmountPojo Unknown error while parsing. This is a bug. Please contact the Development team I know it is related to syntax but I am not able to solve it. Best Regards, Kripa -- This Email may contain confidential or privileged information for the intended recipient (s) If you are not the intended recipient, please do not use or disseminate the information, notify the sender and delete it from your system. __ ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users image004.png___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Drools beginners guide
Hi, try to read docs from Drools web site. I recommend http://downloads.jboss.com/drools/docs/5.1.0.34406.FINAL/drools-expert/html_single/index.html regards, tom 2010/8/19 Singh, Palvinder X. pxsi...@seic.com I am new to Drools and just executed with my first sample program. I have been trying to find out some beginners guide to help me in start up, but unable to find any over the net. I would appreciate if anyone can share some material to go thru. Just to set up some background, I am not new to IT but yes new to Business rule engine. *Thanks,** **Palvinder Singh * ___ 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] error while inserting values in excel
Ok, please write me AmountPojo class code, and - if You can - those rules in DRL, I will try to write You rules in DT. regards, tom 2010/8/20 Kripa Nathwani kripa.nathw...@lntinfotech.com Hi, Below is the decision table on which I am working. It is calculating PF and HRA by taking basic value and checking that basic is not equal to null. The problem is when I start inserting values in the column it is giving me following error messages: no viable alternative at input ')' in rule Pricing bracket_12 in pattern AmountPojo mismatched input '!=' expecting ')' in rule Pricing bracket_12 in pattern AmountPojo Unknown error while parsing. This is a bug. Please contact the Development team I know it is related to syntax but I am not able to solve it. Best Regards, Kripa -- This Email may contain confidential or privileged information for the intended recipient (s) If you are not the intended recipient, please do not use or disseminate the information, notify the sender and delete it from your system. __ ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users image004.png___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Skills required for using Drools Guvnor
Hi, it's important to do quick training to Your's client. Why? Because a way of thinking is a little bit different in some cases. For example: in Drools rules You can't do ELSE case (in IF-ELSE). There exists only IF. Another case could be creating general rules: http://drools-java-rules-engine.46999.n3.nabble.com/General-rules-in-spreadsheet-td1005183.html#a1005183 Using Guvnor or Decision Tables is (in my opinion) easy enought to show it (with training) to Your's client. regards, tom 2010/8/18 Swapnil Sawant swapnil.saw...@lntinfotech.com Hi, I had a very basic question. I wanted to know the pre-requisite skills which are required in order to start working on drools guvnor GUI. When I say work , I mean creating rules/modifying them etc. Technical knowledge(e.g. java technology) is must in this case? Thanks Regards, Swapnil Sawant *S* -- This Email may contain confidential or privileged information for the intended recipient (s) If you are not the intended recipient, please do not use or disseminate the information, notify the sender and delete it from your system. __ ___ 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] error while inserting values in excel
Hi, all what is said by Thomas is right. Read it carefully, because it can helps You. If You want us to help us write a spreadsheet, please try also code rules in DRL. regards, tom 2010/8/20 Kripa Nathwani kripa.nathw...@lntinfotech.com Hi, The foll is the java file which I tried to run as a stand alone application: *package* com.sample; *public* *class* AmountPojo { *public* *static* *int* *basic*; *public* *static* *double* *pf*; *public* *static* *double* *hra*; *public* *static* *int* getBasic() { *return* *basic*; } *public* *static* *void* setBasic(*int* basic) { AmountPojo.*basic* = basic; } *public* *static* *double* getPf() { *return* *pf*; } *public* *static* *void* setPf(*double* pf) { AmountPojo.*pf* = pf; } *public* *static* *double* getHra() { *return* *hra*; } *public* *static* *void* setHra(*double* hra) { AmountPojo.*hra* = hra; } } Let me know if you still require any further information. Regards, Kripa *From:* rules-users-boun...@lists.jboss.org [mailto: rules-users-boun...@lists.jboss.org] *On Behalf Of *tom ska *Sent:* Friday, August 20, 2010 12:42 PM *To:* Rules Users List *Subject:* Re: [rules-users] error while inserting values in excel Ok, please write me AmountPojo class code, and - if You can - those rules in DRL, I will try to write You rules in DT. regards, tom 2010/8/20 Kripa Nathwani kripa.nathw...@lntinfotech.com Hi, Below is the decision table on which I am working. It is calculating PF and HRA by taking basic value and checking that basic is not equal to null. The problem is when I start inserting values in the column it is giving me following error messages: no viable alternative at input ')' in rule Pricing bracket_12 in pattern AmountPojo mismatched input '!=' expecting ')' in rule Pricing bracket_12 in pattern AmountPojo Unknown error while parsing. This is a bug. Please contact the Development team I know it is related to syntax but I am not able to solve it. Best Regards, Kripa -- This Email may contain confidential or privileged information for the intended recipient (s) If you are not the intended recipient, please do not use or disseminate the information, notify the sender and delete it from your system. __ ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users __ -- This Email may contain confidential or privileged information for the intended recipient (s) If you are not the intended recipient, please do not use or disseminate the information, notify the sender and delete it from your system. __ ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users image001.png___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Multi-user architecture of Drools Web Service.
Hi, what I have is SOAP Web Service with two methods: fn_AddFacts, and fn_Conclude. I defined special XML implementation to send various fact's types via SOAP. Model is defined in DRL/Guvnor - and rules too. So now, I can add some facts (web service creates them using Drools reflection API) to knowledge base. And then use fn_Conclude method, to fire fireAllRules method and get response with results. But. What if now I have 100 users, and I don't want their's facts to interfere each other? I want, to use Drools to conclude for different users. I want to use this same rules, but on different knowledge bases (each user has own knowledge base of his facts). Please help me, how to solve this problem... I am new in JAVA EE, and I don't understand some elementary issues well. (But I am trying to understand them :D ) regards, tom. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Multi-user architecture of Drools Web Service.
Thanks Esteban. I thought it could be a solution too, but I am not experienced (and my knowledge is not big either) in solving such a problems. If I would do, like You said - am I to write all communication between web service and client too? In web programming with browser, I have cookies. In them, I could keep some session ID. But using SOAP, I have to write this mechanisms alone, yes? Can AXIS do it for me? Or some other tool? regards, tom. 2010/8/20 Esteban Aliverti esteban.alive...@gmail.com A basic solution could be to have each user identified with an unique id. Then, in the server side you could have different ksessions (and not kbases) for each user. Best, Esteban Aliverti - Developer @ http://www.plugtree.com - Blog @ http://ilesteban.wordpress.com 2010/8/20 tom ska tiberium.li...@gmail.com Hi, what I have is SOAP Web Service with two methods: fn_AddFacts, and fn_Conclude. I defined special XML implementation to send various fact's types via SOAP. Model is defined in DRL/Guvnor - and rules too. So now, I can add some facts (web service creates them using Drools reflection API) to knowledge base. And then use fn_Conclude method, to fire fireAllRules method and get response with results. But. What if now I have 100 users, and I don't want their's facts to interfere each other? I want, to use Drools to conclude for different users. I want to use this same rules, but on different knowledge bases (each user has own knowledge base of his facts). Please help me, how to solve this problem... I am new in JAVA EE, and I don't understand some elementary issues well. (But I am trying to understand them :D ) regards, tom. ___ 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 mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Multi-user architecture of Drools Web Service.
Well, I will explain my architecture as well as I can: - I created Dynamic Web Project with Eclipse based on AXIS1.4.1 - I also added Drools Runtime to a project - In class I have KnowledgeBase kbase attribute - Each time I use fn_Conclude function, I create new StatefulKnowledgeSession ksession = kbase.newStatefulKnowledgeSession() and use fireAllRules method. I understand, that user who uses fn_Conclude will get his own results, but I don't get how using StatefulKnowledgeSession can I guarantee that user, who added his facts will get results only from facts he added. I see problem in connecting facts to user,but meybe that's not good point of view. Facts adding is done by ksession object (each user has his own), but I want to have this web service with states... Then user can add his own facts, than do something else, then process only his facts. Between adding and processing, I want other user to do this same. I want Web Service to wait for each user after adding by him some facts. I hope, it is clear for You (my english... :/ ) regards, tom. 2010/8/20 Mauricio Salatino sala...@gmail.com It depends on how are you exposing web services or the component behind those web services.. If you use a Stateful Session Bean, this component will do all the work for you. But if your services are stateless by nature, you need to implement the mechanism. You can implement this mechanism in two ways: In messages (adding a session id that goes and come back with the response) or in server side with a client id. 2010/8/20 tom ska tiberium.li...@gmail.com Thanks Esteban. I thought it could be a solution too, but I am not experienced (and my knowledge is not big either) in solving such a problems. If I would do, like You said - am I to write all communication between web service and client too? In web programming with browser, I have cookies. In them, I could keep some session ID. But using SOAP, I have to write this mechanisms alone, yes? Can AXIS do it for me? Or some other tool? regards, tom. 2010/8/20 Esteban Aliverti esteban.alive...@gmail.com A basic solution could be to have each user identified with an unique id. Then, in the server side you could have different ksessions (and not kbases) for each user. Best, Esteban Aliverti - Developer @ http://www.plugtree.com - Blog @ http://ilesteban.wordpress.com 2010/8/20 tom ska tiberium.li...@gmail.com Hi, what I have is SOAP Web Service with two methods: fn_AddFacts, and fn_Conclude. I defined special XML implementation to send various fact's types via SOAP. Model is defined in DRL/Guvnor - and rules too. So now, I can add some facts (web service creates them using Drools reflection API) to knowledge base. And then use fn_Conclude method, to fire fireAllRules method and get response with results. But. What if now I have 100 users, and I don't want their's facts to interfere each other? I want, to use Drools to conclude for different users. I want to use this same rules, but on different knowledge bases (each user has own knowledge base of his facts). Please help me, how to solve this problem... I am new in JAVA EE, and I don't understand some elementary issues well. (But I am trying to understand them :D ) regards, tom. ___ 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 mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - CTO @ http://www.plugtree.com - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ 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 mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Guvnor's data in Oracle 11g Database.
Hi, I have a problem with creating Guvnor repository using Oracle 11g database. When I try to run JBoss, drools-guvnor.war deployment process is failed. Info from server log and my config (repository.xml) are below: Oracle JDBC provider has been copied to JBOSS_HOME/server/default/lib/. I use the latest version of Drools Guvnor and JBoss 4.2.3. Any ideas? Many thanks, tom Log: - (...) 2010-08-17 11:40:55,932 DEBUG [javax.enterprise.resource.webcontainer.jsf.config] No FacesServlet found in deployment descriptor - bypassing configuration 2010-08-17 11:41:00,456 INFO [STDOUT] ERROR 17-08 11:41:00,440 (RepositoryImpl.java:initStartupWorkspaces:542) Failed to initialize workspace 'default' javax.jcr.RepositoryException: Cannot instantiate persistence manager org.apache.jackrabbit.core.persistence.db.OraclePersistenceManager at org.apache.jackrabbit.core.RepositoryImpl.createPersistenceManager(RepositoryImpl.java:1433) at org.apache.jackrabbit.core.RepositoryImpl.access$800(RepositoryImpl.java:125) at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.doInitialize(RepositoryImpl.java:2014) at org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:1997) at org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:535) at org.apache.jackrabbit.core.RepositoryImpl.init(RepositoryImpl.java:366) at org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:673) at org.apache.jackrabbit.core.TransientRepository$2.getRepository(TransientRepository.java:231) at org.apache.jackrabbit.core.TransientRepository.startRepository(TransientRepository.java:279) at org.apache.jackrabbit.core.TransientRepository.login(TransientRepository.java:375) at org.apache.jackrabbit.commons.AbstractRepository.login(AbstractRepository.java:123) at org.drools.guvnor.server.repository.RepositoryStartupService.newSession(RepositoryStartupService.java:151) at org.drools.guvnor.server.repository.RepositoryStartupService.create(RepositoryStartupService.java:72) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.seam.util.Reflections.invoke(Reflections.java:22) at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56) at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44) at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107) at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166) at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102) at org.drools.guvnor.server.repository.RepositoryStartupService_$$_javassist_1.create(RepositoryStartupService_$$_javassist_1.java) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.jboss.seam.util.Reflections.invoke(Reflections.java:22) at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:138) at org.jboss.seam.Component.callComponentMethod(Component.java:2171) at org.jboss.seam.Component.callCreateMethod(Component.java:2094) at org.jboss.seam.Component.newInstance(Component.java:2054) at org.jboss.seam.contexts.Contexts.startup(Contexts.java:304) at org.jboss.seam.contexts.Contexts.startup(Contexts.java:278) at org.jboss.seam.contexts.ServletLifecycle.endInitialization(ServletLifecycle.java:112) at org.jboss.seam.init.Initialization.init(Initialization.java:727) at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:34) at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3856) at org.apache.catalina.core.StandardContext.start(StandardContext.java:4361) at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:790) at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:770) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:553) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at
[rules-users] Math calculations on attributes in WHEN section of rules.
Hello, what I want to do, is to calculate on object's attributes in WHEN section of rule. Can I do it? For example: class CObj { private int k; private int n; // setters and getters } Now what I want to do is: rule r1 when p : CObj ( k + n = 1000) then System.out.println(We love Drools :)); end Why can't I construct conditions like in Java, or C++ (with calculations in conditions)? How can I achieve my goal? Thx, Tom. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Math calculations on attributes in WHEN section of rules.
Thanks for answer. I will look for info about eval (Expert User Guide - I know where ;) ) But, even, if this works, what with Guvnor, and GUI based rule constructor? How can I do it with Guvnor GUI? 2010/8/6 Swindells, Thomas tswinde...@nds.com Have you looked at eval()? *From:* rules-users-boun...@lists.jboss.org [mailto: rules-users-boun...@lists.jboss.org] *On Behalf Of *tom ska *Sent:* 06 August 2010 10:49 *To:* rules-users@lists.jboss.org *Subject:* [rules-users] Math calculations on attributes in WHEN section of rules. Hello, what I want to do, is to calculate on object's attributes in WHEN section of rule. Can I do it? For example: class CObj { private int k; private int n; // setters and getters } Now what I want to do is: rule r1 when p : CObj ( k + n = 1000) then System.out.println(We love Drools :)); end Why can't I construct conditions like in Java, or C++ (with calculations in conditions)? How can I achieve my goal? Thx, Tom. -- ** This message is confidential and intended only for the addressee. If you have received this message in error, please immediately notify the postmas...@nds.com and delete it from your system as well as any copies. The content of e-mails as well as traffic data may be monitored by NDS for employment and security purposes. To protect the environment please do not print this e-mail unless necessary. NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18 4EX, United Kingdom. A company registered in England and Wales. Registered no. 3080780. VAT no. GB 603 8808 40-00 ** ___ 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 Web Service or external JAR in Oracle Database?
Hello, I have my Drools project, and I want to use a Drools JAR in Oracle PL/SQL. The problem is, that importing JAR to Oracle means for me (as far as I know) splitting JAR (in Oracle Database) to classes. After importing I have few thousands of classes in my Oracle Database. I want to avoid this, so I decided to use Soap Web Service as facade for my Drools and connection between Drools and PL/SQL. Now I have two questions: 1.) Can I import Drools JAR's to Oracle without splitting it to thousands of classes? 2.) If no - I want to use this JAR as external source. I think, that Web Service is good interface. Am I right? ;) I used to use JAX-WS to create Web Services, but maybe Drools has own method of creating Web Service (Drools is so powerful ;) ) Thanks, tom. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] General rules in spreadsheet.
Hello, well, You are right, but what if I want to use object's method in ACTION section like this: CONDITION ACTION ACTIVATION-GROUP PRIORITYp:CProduct name System.out.println(p.getName() + + $param); Rules names Product name what to print Case A A Special A G1 1 Case B B Special B G1 1 General case normal G1 0 In this case, I want for each CProduct fire it's method in ACTION column (like in rule Case general for DRL. Thanks :) 2010/7/28 Mauricio Salatino sala...@gmail.com you can remove p, because in the spreadsheet you are not using it.. in the rules you use p to print the type of the product but in the spreadsheet you are hardcoding the value in the what to print column 2010/7/27 tom ska tiberium.li...@gmail.com Hello, I want to use StatelessSession with spreadsheet. I wrote few rules in DRL, but I cant do it in spreadsheet. First I want to present rules and class that is used by rules: public class CProduct { private String name; private int value; public CProduct () { name = empty; value = 0; } public CProduct (String name, int value) { this.name = name; this.value = value; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getValue() { return value; } public void setValue(int value) { this.value = value; } } Rules: rule Case A salience 1 activation-group g1 when p : CProduct( name == A ) then System.out.println(Special product: + p.getName()); end rule Case B salience 1 activation-group g1 when p : CProduct( name == B ) then System.out.println(Special product: + p.getName()); end rule Case general salience 0 activation-group g1 when p : CProduct( ) then System.out.println(Normal product: + p.getName()); end Using stateLessSession, salience, and activation-group I can determine, that only one rule is going to be fired for each CProduct. And with salience param, I can determine priority (it is important to get special products first). Now I am going to write those rules in spreadsheet. But I can't define rule Case general. CONDITION ACTION ACTIVATION-GROUP PRIORITYp:CProduct name System.out.println($param); Rules names Product name what to print Case A A Special A G1 1 Case B B Special B G1 1 General case normal G1 0 But when I am going to use the spreadsheet, I get this error: p cannot be resolved Problem disappears, when I fill Product name in General case. But I want it to be empty, because I want to fire rule General case when rules Case A Case B won't fire for any object's name. Thanks, Tom. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -- - CTO @ http://www.plugtree.com - MyJourney @ http://salaboy.wordpress.com - Co-Founder @ 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 mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] General rules in spreadsheet.
Thomas, as far as I understood, I don't have to use update(p), to update it :) After using update method, there is infinite loop in my rules (I am talking about DRL). # this method doesn't change CProduct object rule Case A salience 1 activation-group g1 when p : CProduct( name == A ) then System.out.println(Special product: + p.getName()); end # this method doesn't change CProduct object rule Case B salience 1 activation-group g1 when p : CProduct( name == B ) then System.out.println(Special product: + p.getName()); end # this method changes CProduct object rule Case general salience 0 activation-group g1 when p : CProduct( ) then p.setValue(1000); # changes object's value # I don't use update() System.out.println(Normal product: + p.getName()); end # this method changes CProduct object rule New rule salience 0 # lower salience activation-group g1 when p : CProduct( ) then p.setValue(-1); # I change object's value # I don't use update() System.out.println(p.getName() + + p.getValue()); end In program, I use StatelessKnowledgeSession and execute method to use rules on CProduct. And All normal products (name != A name != B) have value 1000. Not -1. I don't use update function. So: I use rules that update my object, but I don't get what am I to watch out... For each object my activation-group fires only one rule. Rule New rule never fires. Thanks, tom. 2010/7/28 Swindells, Thomas tswinde...@nds.com There are two other solutions if you do need the p: 1. Change your condition to be “name matches $param”, this will match as a regular expressions. Your general case can then be “.*”. 2. Merge your p:CProduct across two columns. Have a condition of “this != $param” for the first column and give all the rows in this column the value of null. Your second column can be name and then be missing in the general clause. For the general clause this will evaluate to: rule Case general salience 0 activation-group g1 when p : CProduct( this != null ) then System.out.println(Normal product: + p.getName()); end which obviously will always evaluate to true for any CProduct. The other general thing you need to watch out for with a spreadsheet of this form is if you have any rules which update CProduct as these rules would then be re-evaluated and re-executed again. In particular if you have any rules of a lower salience that update the name then the activation group doesn’t stop a different rule from being fired – activation groups are only mutually exclusive at a given point in time when the activation occurs, they don’t prevent different later re-activations. Thomas *From:* rules-users-boun...@lists.jboss.org [mailto: rules-users-boun...@lists.jboss.org] *On Behalf Of *Mauricio Salatino *Sent:* 28 July 2010 04:58 *To:* Rules Users List *Subject:* Re: [rules-users] General rules in spreadsheet. you can remove p, because in the spreadsheet you are not using it.. in the rules you use p to print the type of the product but in the spreadsheet you are hardcoding the value in the what to print column 2010/7/27 tom ska tiberium.li...@gmail.com Hello, I want to use StatelessSession with spreadsheet. I wrote few rules in DRL, but I cant do it in spreadsheet. First I want to present rules and class that is used by rules: public class CProduct { private String name; private int value; public CProduct () { name = empty; value = 0; } public CProduct (String name, int value) { this.name = name; this.value = value; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getValue() { return value; } public void setValue(int value) { this.value = value; } } Rules: rule Case A salience 1 activation-group g1 when p : CProduct( name == A ) then System.out.println(Special product: + p.getName()); end rule Case B salience 1 activation-group g1 when p : CProduct( name == B ) then System.out.println(Special product: + p.getName()); end rule Case general salience 0 activation-group g1 when p : CProduct( ) then System.out.println(Normal product: + p.getName()); end Using stateLessSession, salience, and activation-group I can determine, that only one rule is going to be fired for each CProduct. And with salience param, I can determine priority (it is important to get special products first). Now I am going to write those rules in spreadsheet. But I can't define rule Case general. CONDITION ACTION ACTIVATION-GROUP
[rules-users] GWT Console - Drools Flow problems.
Hello, I am trying to use Drools Flow with GWT Console v.2.1. I use Guvnor and Eclipse too. I am new in server applications, and jBoss is for me something new, so please be patient :) What I did are: 1.)Creating processes in Eclipse. They work. 2.)Exporting them to Guvnor - I can see them, everything is OK. Then I try to start GWT-Console. When I log in, I get this: - URL: 'http://localhost:8080/gwt-console-server/rs/tasks/admin' - Action: 'org.jboss.bpm.console.client.task.LoadTasksAction' - Exception: 'class com.google.gwt.http.client.RequestException' HTTP 500: HTTP Status 500 - -- *type* Exception report *message* *description* *The server encountered an internal error () that prevented it from fulfilling this request.* *exception* org.jboss.resteasy.spi.UnhandledException: java.lang.IllegalArgumentException: Could not connect task client org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:319) org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:230) org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:206) org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:360) org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173) org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93) org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) *root cause* java.lang.IllegalArgumentException: Could not connect task client org.drools.integration.console.DroolsFlowTaskManagement.connect(DroolsFlowTaskManagement.java:43) org.drools.integration.console.DroolsFlowTaskManagement.getAssignedTasks(DroolsFlowTaskManagement.java:112) org.jboss.bpm.console.server.TaskListFacade.getTasksForIdRef(TaskListFacade.java:99) sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:597) org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:117) org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:260) org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:232) org.jboss.resteasy.core.ResourceMethod.invoke(ResourceMethod.java:166) org.jboss.resteasy.core.DispatcherUtilities.getJaxrsResponse(DispatcherUtilities.java:142) org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356) org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173) org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:93) org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:68) javax.servlet.http.HttpServlet.service(HttpServlet.java:717) org.jboss.bpm.console.server.util.GWTJsonFilter.doFilter(GWTJsonFilter.java:59) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) *note* *The full stack trace of the root cause is available in the JBoss Web/2.* When I click on Process Overwiev, I get: - URL: 'http://localhost:8080/gwt-console-server/rs/process/definitions' - Action: 'org.jboss.bpm.console.client.process.UpdateDefinitionsAction' - Exception: 'class com.google.gwt.http.client.RequestException' HTTP 500: HTTP Status 500 - -- *type* Exception report *message* *description* *The server encountered an internal error () that prevented it from fulfilling this request.* *exception* org.jboss.resteasy.spi.UnhandledException: java.lang.RuntimeException: Could not initialize stateful knowledge session: Could not commit session or rollback org.jboss.resteasy.core.SynchronousDispatcher.handleApplicationException(SynchronousDispatcher.java:319) org.jboss.resteasy.core.SynchronousDispatcher.handleException(SynchronousDispatcher.java:230) org.jboss.resteasy.core.SynchronousDispatcher.handleInvokerException(SynchronousDispatcher.java:206) org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:360) org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:173)
Re: [rules-users] GWT Console - Drools Flow problems.
Kris, really thank You for help - I will try installer tomorrow :) If I would have some problems - I will write about them. Greetings, Tom. P.S. unfortunately I have another problem - something else: rules in Spreadsheet, so welcome in my new thread ;) ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] General rules in spreadsheet.
Hello, I want to use StatelessSession with spreadsheet. I wrote few rules in DRL, but I cant do it in spreadsheet. First I want to present rules and class that is used by rules: public class CProduct { private String name; private int value; public CProduct () { name = empty; value = 0; } public CProduct (String name, int value) { this.name = name; this.value = value; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getValue() { return value; } public void setValue(int value) { this.value = value; } } Rules: rule Case A salience 1 activation-group g1 when p : CProduct( name == A ) then System.out.println(Special product: + p.getName()); end rule Case B salience 1 activation-group g1 when p : CProduct( name == B ) then System.out.println(Special product: + p.getName()); end rule Case general salience 0 activation-group g1 when p : CProduct( ) then System.out.println(Normal product: + p.getName()); end Using stateLessSession, salience, and activation-group I can determine, that only one rule is going to be fired for each CProduct. And with salience param, I can determine priority (it is important to get special products first). Now I am going to write those rules in spreadsheet. But I can't define rule Case general. CONDITION ACTION ACTIVATION-GROUP PRIORITYp:CProduct name System.out.println($param); Rules names Product name what to print Case A A Special A G1 1 Case B B Special B G1 1 General case normal G1 0 But when I am going to use the spreadsheet, I get this error: p cannot be resolved Problem disappears, when I fill Product name in General case. But I want it to be empty, because I want to fire rule General case when rules Case A Case B won't fire for any object's name. Thanks, Tom. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Drools Flow - users authentication.
Hello, I want to try Drools Flow software (Eclipse plugin works). I have installed Guvnor. Then I have installed console (two wars). I type http://localhost:8080/gwt-console/app.html in my web browser. Then I get a dialog, and I have to authenticate. But I don't know default Username and Password. As far as I know, I have to create a XML file, and manually create a user and his pass... Am I right? I use Drools Flow Console v.2.1. Please help me, and do it slowly and like for no-IT person ;) Thanks, tom. ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
[rules-users] Problem with DRL language/ XLS decision tables.
Hello, I have a problem with defining rules. I insert many, many objects (facts) to ksession object (StatefulKnowledgeSession). I want to fire rules for *all*of them(facts), but I want to fire only one rule from all rules for each one fact(not always this same rule is fired, because I use salience). activation-group is not appropriate, because it works only with one object (fact) - rest is not processed by engine. Second question is: how can I stop processing rules, bot only for one fact, not for all of them. Thanks, tom. P.S. forgive me my English... :) P.S.2 Firstly I want to do this in DRL, then, I'll try with XLS, and write post if I would find problems... ___ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
Re: [rules-users] Problem with DRL language/ XLS decision tables.
Thanks for reacting ;) I did some simulations, and after them, I want of course to parallelize this process of processing 2 billions facts. But as far as I wrote, Drools engine, can't do this. And I have to create threads manually in application (with pool of sessions). Am I right? Tuning number of data sounds fine to me, so I will try method with rule latch too (but I have to read about this, because, I don't know what is it, and I don't want to waste your time ;) But still I don't know how to use StatefulSessions to do this... Summarising, there are 3 methods to do, what I want to do (apart of a scalability problem - yet ;) 1.)with StatelessSession for one fact at time and activation group 2.)rule latch - I have to read more about it 3.)with a pool of StatefulSessions that I reuse - but I still don't know how to do it using StatefulSessions Really thanks for help ;) P.S. I use Drools 5 :) ___ 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