From wolfgang.laun at gmail.com Sun Jun 1 05:28:32 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Sun, 1 Jun 2014 11:28:32 +0200 Subject: [rules-users] Question about Fusion pseudoclock In-Reply-To: <538a2f6c.c762e00a.15ff.ffffab6dSMTPIN_ADDED_BROKEN@mx.google.com> References: <538a2f6c.c762e00a.15ff.ffffab6dSMTPIN_ADDED_BROKEN@mx.google.com> Message-ID: This is code that can be used to manipulate the pseudo-clock which is just a pretty face without any works: SessionPseudoClock clock; private void advance( Date eventDate ){ long currentTime = clock.getCurrentTime(); long eventTime = eventDate.getTime(); clock.advanceTime( eventTime - currentTime, TimeUnit.MILLISECONDS ); } Of course, you can use other ways to determine a number of milliseconds for moving the hands of the pseudo-clock. If you use the number of peas in a pot, it'll work just as well, although the data might be closer to 1970. -W On 31/05/2014, Natalia Iglesias de Amunategui wrote: > Hello, > > > > I am implementing temporal rules using drools fusi?n 6.0.1 and the new KIE > services api. I insert facts into the kie session that include some DATE > fields which I later use in the rules. I also insert events using the > pseudoclock, so I guess that means that the timestamp is kept in long > format. > > The consequence is that my temporal rules do not fire at all! I have no > @timestamp annotation in the declare of the event, so Drools internal clock > should be used as timestamp. > > > > I have displayed the value of the pseudoclock getCurrentTime method, and > the output shows a date of 1970: > > > > > > > > I need to understand why the clock.getTime returns dates of 1970, maybe > when > this is solved the rules will fire with the internal event timestamp. > > > > (After that I have tried every possible combination: creating a date or > long > field in the event fact representing the timestamp, converting long to date > and viceversa, but nothing seems to work..). > > > > I enclose here the initialization that I do of the kieContainer and > session: > > > > > > public static void main(final String[] args) { > > try { > > > > // load up the knowledge base > > KieServices ks = KieServices.Factory.get(); > > KieContainer kContainer = > ks.getKieClasspathContainer(); > > > System.out.println(kContainer.verify().getMessages().toString()); > > > > > > // set stream mode as opposite to cloud mode > > KieBaseConfiguration kbconf = > KieServices.Factory.get().newKieBaseConfiguration(); > > kbconf.setOption(EventProcessingOption.STREAM ); > > > > // set clock to pseudo clock to be able to advance it > manually > > KieSessionConfiguration ksconf = > KieServices.Factory.get().newKieSessionConfiguration(); > > ksconf.setOption(ClockTypeOption.get("pseudo")); > > > > > > // returns ksession from kiecontainer as defined in the > kmodule.xml file > > KieSession kSession = > kContainer.newKieSession("VAPSession", ksconf); > > > > > > // Insert test patients and related classes, dates are > in long format to match pseudoclock > > final Patient p1 = new Patient( "MrJones", 45, 1, > true,false,false,35.0, > > 5000,"None","Localized > Infiltrates","Yes","None","S.Aureus",245,false, false, 0, > > true,new > SimpleDateFormat("yyyy-MM-dd").parse("2014-05-31").getTime(),"", > > new > SimpleDateFormat("yyyy-MM-dd").parse("2014-05-31").getTime(),false,false,fal > se,false); > > kSession.insert( p1 ); > > > > > > // Insert test patients and related classes, dates are > long format > > > > final Patient p2 = new Patient( "MissDaisy", 90, 1, > true,false,true,37.0, > > 5000,"Purulent","Diffuse or Patchy > Infiltrates","None","Heavy","S.Aureus",235,false, false, 0, > > true,new > SimpleDateFormat("yyyy-MM-dd").parse("2014-05-31").getTime(),"", > > new > SimpleDateFormat("yyyy-MM-dd").parse("2014-05-31").getTime(),false,false,tru > e,false); > > > > kSession.insert( p2 ); > > > > // define and get a reference to the entry point > > EntryPoint nursingStream = kSession.getEntryPoint( > "NursingStream" ); > > > > // define session clock > > SessionPseudoClock clock = kSession.getSessionClock(); > > > > // insert events > > // then, while inserting events, advance the clock as > necessary: > > > > clock.advanceTime(24, TimeUnit.HOURS); > > CPIScore cpiScore1 = new CPIScore( > p1,"diagnosis",7,ToDate(clock.getCurrentTime()) ); > > nursingStream.insert( cpiScore1 ); > > System.out.println(cpiScore1.getcpiScoreDate()); > > > > // day 2 > > clock.advanceTime( 24, TimeUnit.HOURS ); > > cpiScore1 = new CPIScore( > p1,"follow-up",5,ToDate(clock.getCurrentTime()) ); > > nursingStream.insert( cpiScore1 ); > > System.out.println(cpiScore1.getcpiScoreDate()); > > > > // day 3 > > clock.advanceTime( 24, TimeUnit.HOURS ); > > cpiScore1 = new CPIScore( > p1,"follow-up",5,ToDate(clock.getCurrentTime()) ); > > nursingStream.insert( cpiScore1 ); > > System.out.println(cpiScore1.getcpiScoreDate()); > > > > > > The fact classes have now long fields to represent Dates (I changed to see > if that made a difference, it didn't). The event class has such a long > field > that can be defined as @timestamp but I rather prefer to use the internal > event timestamp managed by Drools. > > So in my .DRL file I'd like to have: > > > > declare CPIScore > > @role(event) > > end > > > > In my rules I compare the patient hospitalization date (defined as Date and > later as Long in the fact class) with a stream of events , and I expect > drools to extract the correct timestamp from the event. This can't happen > if > 1970 is the pseudoclock date. > > > > Please advice as about how to proceed, I'm a bit lost at this point. > > > > Thanks in advance > > Natalia > > > > > > --- > Este mensaje no contiene virus ni malware porque la protecci?n de avast! > Antivirus est? activa. > http://www.avast.com > From matteo.mortari at gmail.com Sun Jun 1 05:46:43 2014 From: matteo.mortari at gmail.com (Matteo Mortari) Date: Sun, 1 Jun 2014 11:46:43 +0200 Subject: [rules-users] "Cannot find KieModule" with kieServices.newKieContainer() with LATEST or RELEASE instead of explicit version number (eg: 0.0.1) In-Reply-To: <1401094868343-4029682.post@n3.nabble.com> References: <1401094868343-4029682.post@n3.nabble.com> Message-ID: Hi Ganesh, the issue DROOLS-419 was closed as non-Drools related, it was pointed as Maven related, and although this does not provide solution per-se, I have to agree with Drools team, the scenario I described was complex and the issue seems due to Maven. Fortunately, as I have influence in changing the difficult integration scenario I'm facing, I solved this currently by running mvn install:install-file , so the correct kie module jar of the rules is present in the local .m2 repo. With this activity done separately, my Drools application find the kie module jar of the version I want already in the .m2 repo, and it works fine. However, while this solved for the Drools application, I just actually shuffled the complexity around in the scenario, so I'm looking as a next step for a simpler way in achieving this automatically. My suggestion to you would be same as in any complex integration scenario: 1. try to simplify scenario - I noticed Drools team updated documentation with also some cheat sheets for deployment, maybe something there or in the example can guide you 2. if you cannot simplify, try change approach - possibly you find a workaround as I did. Finally, look out for the new release because possibly they solve your issues by side effects. Hope this helps, Ciao On Mon, May 26, 2014 at 11:01 AM, ganeshneelekani wrote: > Hi tari, > > Did this issue get solved. i am facing the same issue with drools and > maven, > Let me know your suggestions. > > > Thanks, > Ganesh Neelelkani > > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/rules-users-Cannot-find-KieModule-with-kieServices-newKieContainer-with-LATEST-or-RELEASE-instead-of-tp4027941p4029682.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140601/e508f300/attachment.html From ganeshneelekani at gmail.com Mon Jun 2 01:10:56 2014 From: ganeshneelekani at gmail.com (ganeshneelekani) Date: Sun, 1 Jun 2014 22:10:56 -0700 (PDT) Subject: [rules-users] "Cannot find KieModule" with kieServices.newKieContainer() with LATEST or RELEASE instead of explicit version number (eg: 0.0.1) In-Reply-To: References: <1401094868343-4029682.post@n3.nabble.com> Message-ID: Hi Tari, I thanks for your information. On Sun, Jun 1, 2014 at 3:18 PM, tari-manga [via Drools] < ml-node+s46999n4029798h59 at n3.nabble.com> wrote: > Hi Ganesh, > the issue DROOLS-419 was closed as non-Drools related, it was pointed as > Maven related, and although this does not provide solution per-se, I have > to agree with Drools team, the scenario I described was complex and the > issue seems due to Maven. > > Fortunately, as I have influence in changing the difficult integration > scenario I'm facing, I solved this currently by running mvn > install:install-file , so the correct kie module jar of the rules is > present in the local .m2 repo. With this activity done separately, my > Drools application find the kie module jar of the version I want already in > the .m2 repo, and it works fine. > > However, while this solved for the Drools application, I just actually > shuffled the complexity around in the scenario, so I'm looking as a next > step for a simpler way in achieving this automatically. > > > My suggestion to you would be same as in any complex integration scenario: > 1. try to simplify scenario - I noticed Drools team updated documentation > with also some cheat sheets for deployment, maybe something there or in the > example can guide you > 2. if you cannot simplify, try change approach - possibly you find a > workaround as I did. > > Finally, look out for the new release because possibly they solve your > issues by side effects. > > Hope this helps, > Ciao > > > > On Mon, May 26, 2014 at 11:01 AM, ganeshneelekani <[hidden email] > > wrote: > >> Hi tari, >> >> Did this issue get solved. i am facing the same issue with drools and >> maven, >> Let me know your suggestions. >> >> >> Thanks, >> Ganesh Neelelkani >> >> >> >> >> -- >> View this message in context: >> http://drools.46999.n3.nabble.com/rules-users-Cannot-find-KieModule-with-kieServices-newKieContainer-with-LATEST-or-RELEASE-instead-of-tp4027941p4029682.html >> Sent from the Drools: User forum mailing list archive at Nabble.com. >> _______________________________________________ >> rules-users mailing list >> [hidden email] >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > > _______________________________________________ > rules-users mailing list > [hidden email] > https://lists.jboss.org/mailman/listinfo/rules-users > > ------------------------------ > If you reply to this email, your message will be added to the discussion > below: > > http://drools.46999.n3.nabble.com/rules-users-Cannot-find-KieModule-with-kieServices-newKieContainer-with-LATEST-or-RELEASE-instead-of-tp4027941p4029798.html > To unsubscribe from [rules-users] "Cannot find KieModule" with > kieServices.newKieContainer() with LATEST or RELEASE instead of explicit > version number (eg: 0.0.1), click here > > . > NAML > > -- Thanking you. ---------------------------------------------------------------------- With regards. Ganesh N Neelekani ph - +91 7829108302 -- View this message in context: http://drools.46999.n3.nabble.com/rules-users-Cannot-find-KieModule-with-kieServices-newKieContainer-with-LATEST-or-RELEASE-instead-of-tp4027941p4029801.html Sent from the Drools: User forum mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140601/540ab78f/attachment-0001.html From h.peter at mailbox.hu Mon Jun 2 03:40:01 2014 From: h.peter at mailbox.hu (=?UTF-8?B?UMOpdGVyIEdlcmdlbHksIEhvcnbDoXRo?=) Date: Mon, 2 Jun 2014 09:40:01 +0200 Subject: [rules-users] Rules storage without Guvnor? Message-ID: Hello All, We are evaluating Drools for our use case and would have a question for storing rules files. We are in a relatively constrained environment, where getting Guvnor up and running does not seems to be a valid option. Since we would only need the core repository functionality so that we can separate rule deployment from application deployments (and none of the advanced features like online editing etc), I think it would make more sense to have a light-weight alternative for storing the rule files. Being able to pick up rules from an NFS share of from a database CLOB field would be perfectly sufficient for us. I have worked with JBPM4 quite a lot, where the core engine contained support for versioned storage of the process definitions in the database itself [1]. Is there any similar feature in Drools, where the rules can be deployed to e.g. a database or any other repository solution, (without using Guvnor)? I haven't found too much details on this topic, but for me it seems that the only approach would be to have some custom logic, which programmatically checks for rule updates and re-creates the whole knowledgebase on any update. I am wondering whether there is any more sophisticated solution in Drools where at least update checking/rule reconfiguration could be delegated to the engine. Any inputs are appreciated. Thanks, Peter [1] http://docs.jboss.com/jbpm/v4/javadocs/org/jbpm/api/RepositoryService.html -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140602/674f7b87/attachment.html From michael.anstis at gmail.com Mon Jun 2 04:19:51 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Mon, 2 Jun 2014 09:19:51 +0100 Subject: [rules-users] Rules storage without Guvnor? In-Reply-To: References: Message-ID: What version are you considering (the reply differs for each). Sent on the move On 2 Jun 2014 08:40, "P?ter Gergely, Horv?th" wrote: > Hello All, > > We are evaluating Drools for our use case and would have a question for > storing rules files. We are in a relatively constrained environment, where > getting Guvnor up and running does not seems to be a valid option. Since we > would only need the core repository functionality so that we can separate > rule deployment from application deployments (and none of the advanced > features like online editing etc), I think it would make more sense to have > a light-weight alternative for storing the rule files. > > Being able to pick up rules from an NFS share of from a database CLOB > field would be perfectly sufficient for us. I have worked with JBPM4 quite > a lot, where the core engine contained support for versioned storage of the > process definitions in the database itself [1]. > > Is there any similar feature in Drools, where the rules can be deployed to > e.g. a database or any other repository solution, (without using Guvnor)? I > haven't found too much details on this topic, but for me it seems that the > only approach would be to have some custom logic, which programmatically > checks for rule updates and re-creates the whole knowledgebase on any > update. I am wondering whether there is any more sophisticated solution in > Drools where at least update checking/rule reconfiguration could be > delegated to the engine. > > Any inputs are appreciated. > > Thanks, > Peter > > [1] > http://docs.jboss.com/jbpm/v4/javadocs/org/jbpm/api/RepositoryService.html > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140602/7ddc435e/attachment.html From h.peter at mailbox.hu Mon Jun 2 05:39:38 2014 From: h.peter at mailbox.hu (=?UTF-8?Q?Horv=C3=A1th_P=C3=A9ter_Gergely?=) Date: Mon, 2 Jun 2014 11:39:38 +0200 Subject: [rules-users] Rules storage without Guvnor? In-Reply-To: References: Message-ID: Hi, What do you recommend? :) I think we should go for the latest 6.x series, but theoretically we could also choose 5.x (we are in an early stage). I would guess new features / bug fixes will appear in 6.x first... Cheers, Peter 2014-06-02 10:19 GMT+02:00 Michael Anstis : > What version are you considering (the reply differs for each). > > Sent on the move > On 2 Jun 2014 08:40, "P?ter Gergely, Horv?th" wrote: > >> Hello All, >> >> We are evaluating Drools for our use case and would have a question for >> storing rules files. We are in a relatively constrained environment, where >> getting Guvnor up and running does not seems to be a valid option. Since we >> would only need the core repository functionality so that we can separate >> rule deployment from application deployments (and none of the advanced >> features like online editing etc), I think it would make more sense to have >> a light-weight alternative for storing the rule files. >> >> Being able to pick up rules from an NFS share of from a database CLOB >> field would be perfectly sufficient for us. I have worked with JBPM4 quite >> a lot, where the core engine contained support for versioned storage of the >> process definitions in the database itself [1]. >> >> Is there any similar feature in Drools, where the rules can be deployed >> to e.g. a database or any other repository solution, (without using >> Guvnor)? I haven't found too much details on this topic, but for me it >> seems that the only approach would be to have some custom logic, which >> programmatically checks for rule updates and re-creates the whole >> knowledgebase on any update. I am wondering whether there is any more >> sophisticated solution in Drools where at least update checking/rule >> reconfiguration could be delegated to the engine. >> >> Any inputs are appreciated. >> >> Thanks, >> Peter >> >> [1] >> http://docs.jboss.com/jbpm/v4/javadocs/org/jbpm/api/RepositoryService.html >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140602/78291d5b/attachment.html From dsotty at gmail.com Mon Jun 2 05:54:13 2014 From: dsotty at gmail.com (Davide Sottara) Date: Mon, 02 Jun 2014 10:54:13 +0100 Subject: [rules-users] Abstraction between rules and data model? In-Reply-To: References: <53836491.5070202@gmail.com> <5384CE7D.6070901@gmail.com> Message-ID: <538C49C5.1030203@gmail.com> I can't guarantee a public date.. as a community member, I work on a "best effort" basis... I'll try to do it before the end of the month, though. For now, as a workaround, I would create derived getter/setter pairs that expose the desired computations. A concrete example of what you are trying to do exactly would also be helpful, feel free to contact me privately if you can't share your code here Best Davide On 05/28/2014 10:08 AM, P?ter Gergely, Horv?th wrote: > Thanks for the explanation, I was a bit confused because of the > terminology; "virtual" is not mentioned in the docs. ;) > > Is there any plan for the public release of Trait property binding to > a nested path? We would definitely need something like that in our > environment. Or do you see any way we could hook into the property > look-up mechanism? Based on what I know, I don't see any official > extension point for that. > > My only idea would be using some Java proxy voodoo-magic to wrap > objects before they are inserted to the session, but my gut feeling is > that it would be a way to debug hell... > > What do you think? > > Cheers, > Peter > > > > 2014-05-27 19:42 GMT+02:00 Davide Sottara >: > > Consider that a trait is an interface applied to some class. In > the context of the pair: > A "hard" field is a property (get/set) exposed by the interface > AND the underlying class > A "soft" (or "virtual") field is a property exposed by the > interface BUT NOT by the underlying class > A "hidden" field is a field of the underlying class NOT exposed by > the interface > > Hard and Soft fields can be accessed using the interface, hidden > fields are accessible using the map-like > construct fields[ "fieldName" ]. > > This said, > the mapping is by default done using the property name and (then) > the property type. > However, this mapping can be decoupled using the annotation > @Alias() on either the class OR the trait. > E.g. > declare Core > name : String @Alias( "any-Id-or-even-an-IRI-here" ) > end > > declare trait SomeTrait > label : String @Alias( "..." ) // if two "aliases" match, > this will be considered a hard field > end > > The "accessor", i.e. the ability to bind a trait property to a > (possibly deeply) nested path is what I'm working > on these days, I have the same requirement from another urgent use > case > > For the time being, you can probably create a "shortcut" accessor > pair in your implementation class, > to execute the complex expression, and @Alias it to the trait field. > > Please let me know if you find any issue/bugs and any feature > request you may have! > Best > Davide > > > > On 05/27/2014 07:57 AM, Horv?th P?ter Gergely wrote: >> Hi Davide, >> >> Drools trait functionality is one of the powerful concepts which >> makes Drools a good candidate for the project. So keep up the >> good work! :) However I'm not sure if its current level of >> flexibility would be sufficient for our use case. I've checked >> the documentation, but haven't really found the term virtual >> field -- could you please elaborate on this? >> >> Do you think we could somehow hook into the evaluation of the >> aliases or the "fields" Map? Sometimes you would need slightly >> more than merely aliasing fields to something else; e.g. >> calculating values for the purpose of rule processing or >> extracting a value from a more complex object tree etc. Citing >> the example -- GoldenCustomer( fields[ "age" ] > 18 ) -- being >> able to get a reference to the target object and the field map >> expression "age" would be quite close to what I imagined. Our >> custom code could then perform the appropriate translation and >> return the requested value, hiding the fact whether "age" is an >> actual field in the Customer object itself/retrieved from an >> encapsulated complex object e.g. replacing expression >> "customer.personalInformation.birthData.age"/calculated on the >> flight. >> >> What do you think? >> >> Cheers, >> Peter >> >> >> >> 2014-05-26 17:58 GMT+02:00 Davide Sottara > >: >> >> We are working on the trait framework for cases like this. >> Essentially, >> it allows to use >> interfaces when writing rules AND to inject the interfaces >> dynamically >> at runtime, >> at the instance level. It relies on transparent proxies which >> wrap the >> data classes >> and implement the required interfaces. A simple field >> aliasing mechanism >> is provided >> (work in progress). For more complex transformations, >> "virtual" fields >> can be added. >> See section 7.7.8 of the manual for more details and let me >> know if it >> can help >> with your use case. >> Best, >> Davide >> >> On 05/26/2014 09:55 AM, Wolfgang Laun wrote: >> > Even a relatively sophisticated transformation would be >> easier to implement >> > and most certainly safer from changes in the unstable >> Drools API than some >> > hook-and-intercept mechanism built into Drools. >> > >> > Notice that violent structural departure of the model the >> BUs see from what >> > you call "persistence model" might make it impossible for >> the BUs to come >> > up with rules that can be transformed to match the other >> model at all; >> > if it is possible, rules might still incur a heavy >> performance penalty. >> > >> > It is (IMHO) a myth that "Rules" is a foolproof way of >> establishing >> > business logic >> > independent from the data model and application environment >> with which >> > this logic should be able to cooperate. As long as >> everything is kept in the >> > abstract (i.e., formulated in terms of mathematics) it will >> look good, but >> > any implementation may throw a spanner in the works, or worse. >> > >> > -W >> > >> > On 26/05/2014, P?ter Gergely, Horv?th > > wrote: >> >> Hi Wolfgang, >> >> >> >> Thank you for your input. You are right that some of the >> cases could simply >> >> be covered by regexp-replace, but I'm afraid, not all of >> them. Interfaces >> >> could also help, but we have a requirement that the >> business rules should >> >> not be tightly coupled to the underlying persistence >> model. (I understand >> >> that some might say this is not ideal, but that is our >> current situation) >> >> >> >> I am wondering whether it is possible to hook into Drools >> engine and >> >> intercept field value reference expression evaluations in >> run time (e.g if >> >> "foo.bars" is used in an expression, we could return >> "foo.barList") ? By >> >> injecting some custom code, we could make the necessary >> decisions and >> >> extract the proper value from an object. Unfortunately >> these parts of >> >> Drools are pretty much undocumented. >> >> >> >> Regards, >> >> Peter >> >> >> >> >> >> >> >> 2014-05-26 13:57 GMT+02:00 Wolfgang Laun >> >: >> >> >> >>> What you describe can be done with /bin/sed. >> >>> >> >>> Notice that the DSL processor doesn't require you to >> translate entire >> >>> patterns; there is a mechanism for translating >> "keywords", which is >> >>> just arbitrary tokens to whatever replacement text. >> >>> >> >>> If a "bar" must be translated to a "barList" in the >> context of a class >> >>> "Foo" but not in any other context, a more sophisticated >> translation >> >>> is required in any case (with /bin/sed still being >> sufficient if >> >>> patterns aren't split across lines). >> >>> >> >>> Some say that good design makes use of Interfaces, which >> leaves room >> >>> for actual implementations being changed as long as the >> interfaces are >> >>> implemented. Here, note that rules can be written against >> interface >> >>> types. >> >>> >> >>> -W >> >>> >> >>> >> >>> On 26/05/2014, P?ter Gergely, Horv?th > > wrote: >> >>>> Hi All, >> >>>> >> >>>> We are evaluating Drools 6 for our use case, and face >> challenges where >> >>>> we >> >>>> would need some ideas from more experienced users of Drools. >> >>>> >> >>>> We have an application with a massive code base and a >> large number of >> >>> model >> >>>> (entity) classes. We are in the process of moving away >> from inherited >> >>>> legacy technologies and refactoring the old code base. >> As a part of >> >>>> this >> >>>> work we would like extract some of the hard-coded >> business logic to >> >>>> external rules, that is why we are looking at Drools as >> a potential >> >>>> solution. >> >>>> >> >>>> What we would like to have is some kind of abstraction >> or mapping >> >>>> between >> >>>> actual entities and rules the business users can define >> so that they do >> >>> not >> >>>> have to know the _exact_ details of the data model >> (field names, >> >>>> precise >> >>>> relations etc). This would be important for us so that >> we can refactor >> >>> the >> >>>> old model classes without affecting business rules; also >> it would make >> >>> life >> >>>> easier for the business users. While IDE support might >> make refactoring >> >>>> easier, we definitely want to have a separation between >> rules and >> >>> entities. >> >>>> Given our situation, writing and maintaining "stable" >> wrapper/adapter >> >>>> classes for the sole purpose of rule processing is out >> of question. I >> >>> have >> >>>> checked the documentation of Drools DSL support and for >> me it seems to >> >>>> be >> >>>> overkill for our use case: we do not really need a >> custom language, but >> >>>> simply an abstraction between rules and the data model >> classes. >> >>>> >> >>>> What I could imagine is a piece of code, (a custom >> property resolver? - >> >>> no >> >>>> sure how it is called) which maps property expressions >> to actual >> >>> properties >> >>>> based on a custom annotation on the entity class or >> something like >> >>>> that, >> >>> so >> >>>> that a rule containing "Foo.bars" expression does not >> have to change >> >>>> even >> >>>> if we decide to rename "Foo.bars" to "Foo.barList" in >> the model >> >>>> classes. >> >>>> (This was just a simple example of a potential use cases) >> >>>> >> >>>> Could you please share your thoughts on this topic and >> point me into >> >>>> the >> >>>> right direction? >> >>>> >> >>>> Thanks, >> >>>> Peter >> >>>> >> >>> _______________________________________________ >> >>> rules-users mailing list >> >>> rules-users at lists.jboss.org >> >> >>> https://lists.jboss.org/mailman/listinfo/rules-users >> >>> >> > _______________________________________________ >> > rules-users mailing list >> > rules-users at lists.jboss.org >> >> > https://lists.jboss.org/mailman/listinfo/rules-users >> > >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> >> >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140602/8d37bf9a/attachment-0001.html From mproctor at codehaus.org Mon Jun 2 08:13:45 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Mon, 2 Jun 2014 13:13:45 +0100 Subject: [rules-users] Rules storage without Guvnor? In-Reply-To: References: Message-ID: <18334696-7E23-47AA-A638-2B90A6CF2F98@codehaus.org> On 2 Jun 2014, at 08:40, P?ter Gergely, Horv?th wrote: > Hello All, > > We are evaluating Drools for our use case and would have a question for storing rules files. We are in a relatively constrained environment, where getting Guvnor up and running does not seems to be a valid option. Since we would only need the core repository functionality so that we can separate rule deployment from application deployments (and none of the advanced features like online editing etc), I think it would make more sense to have a light-weight alternative for storing the rule files. In 6.0 our rules are stored in GIT, it doesn?t get much lighter than that Our UI is easily customisable if you know how, as it?s all modular, and everything is a plugin. So you can hide/disable the parts that you do not want available at run time, although at the moment that requires a rebuild. > > Being able to pick up rules from an NFS share of from a database CLOB field would be perfectly sufficient for us. I have worked with JBPM4 quite a lot, where the core engine contained support for versioned storage of the process definitions in the database itself [1]. I don?t see how this would be better than GIT, and certainly a lot more complicated and heavier. > > Is there any similar feature in Drools, where the rules can be deployed to e.g. a database or any other repository solution, (without using Guvnor)? No, I don?t see what value this would have (simply storing a clob). I could potentially see value in an indexed/exploded rules stored in a DB for refactoring, x-reference, analysis work. But this would be additional to the GIT storage, and not instead of. > I haven't found too much details on this topic, but for me it seems that the only approach would be to have some custom logic, which programmatically checks for rule updates and re-creates the whole knowledgebase on any update. You can use our Maven plugin for this with GIT. You can poll or add a GIT hook. You can look into hudson for automating this. JGIT doesn?t expose hooks right now, so you?d need to use your own GIT (which wouldn?t work with guvnor, although you can GIT-Mirror the two). > I am wondering whether there is any more sophisticated solution in Drools where at least update checking/rule reconfiguration could be delegated to the engine. The best way would be to extend the maven plugin to provide this functionality, but make sure it?s independent of maven too. If you do this right, we can look at integrating it into the main Guvnor codebase. Mark > > Any inputs are appreciated. > > Thanks, > Peter > > [1] http://docs.jboss.com/jbpm/v4/javadocs/org/jbpm/api/RepositoryService.html > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140602/15ae42f1/attachment.html From h.peter at mailbox.hu Mon Jun 2 08:59:20 2014 From: h.peter at mailbox.hu (=?UTF-8?Q?Horv=C3=A1th_P=C3=A9ter_Gergely?=) Date: Mon, 2 Jun 2014 14:59:20 +0200 Subject: [rules-users] Abstraction between rules and data model? In-Reply-To: <538C49C5.1030203@gmail.com> References: <53836491.5070202@gmail.com> <5384CE7D.6070901@gmail.com> <538C49C5.1030203@gmail.com> Message-ID: Hi Davide, Thanks, I just wanted to get a grasp of the time frame we could expect (whether it is a month or half a year etc.) :) A bit more about our use case: we have a *massive* old system, with basically all of the logic embedded into Java. We are in the process of refactoring and moving up-to-date Java technologies. We would like to introduce a rule engine so as to extract logic from the core of the application. Since we need to re-structure the whole back-end and persistence layer, we face a challenge with rules: as the object model changes, the rules have to change also, which simply would not be manageable. (Imagine something really crazy/complex here: 6-8-... levels of object hierarchy, grown most of the time organically during the last 15 years.) Deferring the introduction of the rule engine until the data model classes reach the final, ideal state is not something we can now afford, the rule engine and data model refactoring projects should be done in parallel, without the one paralyzing the other one... Take the following as an example (from the manual). Say, you have Applicant class, with age and name fields: public class Applicant { private String name; private int age; // getters/setters } Then, you could have a simple rule, requiring, that name must be supplied: rule "Supplied a proper name" when Applicant( name == null) $a : Application() then output.println("### RULE MATCH: Invalid application: No name specified!"); $a.setValid( false ); end But there is an issue: every single time you refactor / rename any field in your domain model, the rules are no longer valid. That is why we have a problem: we should start developing rules against a relatively fluid object model. Say Applicant.name is renamed to Applicant.fullName, then the existing rules are no longer valid. That is why I would like to have some sort of abstraction, since the rules do not really need to know the *exact *details of the underlying class. As a demonstration of my idea, I managed to hack together a custom parameterizable operator, that calls the method where the annotation contains the same parameter as in the rule. With this approach, changes to the field names would no longer affect the rules. Again, I have to highlight, I don't think this should necessarily be implemented in the core engine. *What I am looking for is some kind of extension point allowing us to hook into the expression evaluation part of Drools*. (Instead of a custom operator, something, where we can access the object and the expression being resolved so that we can implement our custom logic for returning the value of the expression) The rule now looks like this - note the custom satisfiesRule operation. The "Name of this Applicant" expression now abstracts away the name of the actual field (the second parameter is the operator for the test, please ignore it for now): rule "Supplied a proper name" agenda-group "evaluate-application" auto-focus true when Applicant( this satisfiesRule[ "Name of this Applicant" , "is equal to" ] null ) $a : Application() then output.println("### RULE MATCH: Invalid application: No name specified!"); $a.setValid( false ); end The name is simply mapped by a custom annotation: public class Applicant { private String name; private int age; @MyBusinessExpression("Name of this Applicant") public String getName() { return name; } // getters/setters } I think having a level of abstraction between the rules and the data model would not only be useful for de-coupling, but also can make rule authoring easier for the business users. The custom operator (please see attachment) is a kind of hacky workaround, but demonstrates how something similar could be achieved at run time (without using DSL or any other rule transformation). Please let me know what you think. :) Cheers, Peter 2014-06-02 11:54 GMT+02:00 Davide Sottara : > I can't guarantee a public date.. as a community member, I work on a > "best effort" basis... > I'll try to do it before the end of the month, though. > For now, as a workaround, I would create derived getter/setter pairs that > expose the desired > computations. A concrete example of what you are trying to do exactly > would also be helpful, > feel free to contact me privately if you can't share your code here > Best > Davide > > > On 05/28/2014 10:08 AM, P?ter Gergely, Horv?th wrote: > > Thanks for the explanation, I was a bit confused because of the > terminology; "virtual" is not mentioned in the docs. ;) > > Is there any plan for the public release of Trait property binding to a > nested path? We would definitely need something like that in our > environment. Or do you see any way we could hook into the property look-up > mechanism? Based on what I know, I don't see any official extension point > for that. > > My only idea would be using some Java proxy voodoo-magic to wrap objects > before they are inserted to the session, but my gut feeling is that it > would be a way to debug hell... > > What do you think? > > Cheers, > Peter > > > > 2014-05-27 19:42 GMT+02:00 Davide Sottara : > >> Consider that a trait is an interface applied to some class. In the >> context of the pair: >> A "hard" field is a property (get/set) exposed by the interface AND the >> underlying class >> A "soft" (or "virtual") field is a property exposed by the interface BUT >> NOT by the underlying class >> A "hidden" field is a field of the underlying class NOT exposed by the >> interface >> >> Hard and Soft fields can be accessed using the interface, hidden fields >> are accessible using the map-like >> construct fields[ "fieldName" ]. >> >> This said, >> the mapping is by default done using the property name and (then) the >> property type. >> However, this mapping can be decoupled using the annotation @Alias() on >> either the class OR the trait. >> E.g. >> declare Core >> name : String @Alias( "any-Id-or-even-an-IRI-here" ) >> end >> >> declare trait SomeTrait >> label : String @Alias( "..." ) // if two "aliases" match, this will >> be considered a hard field >> end >> >> The "accessor", i.e. the ability to bind a trait property to a (possibly >> deeply) nested path is what I'm working >> on these days, I have the same requirement from another urgent use case >> >> For the time being, you can probably create a "shortcut" accessor pair in >> your implementation class, >> to execute the complex expression, and @Alias it to the trait field. >> >> Please let me know if you find any issue/bugs and any feature request you >> may have! >> Best >> Davide >> >> >> >> On 05/27/2014 07:57 AM, Horv?th P?ter Gergely wrote: >> >> Hi Davide, >> >> Drools trait functionality is one of the powerful concepts which makes >> Drools a good candidate for the project. So keep up the good work! :) >> However I'm not sure if its current level of flexibility would be >> sufficient for our use case. I've checked the documentation, but haven't >> really found the term virtual field -- could you please elaborate on this? >> >> Do you think we could somehow hook into the evaluation of the aliases >> or the "fields" Map? Sometimes you would need slightly more than merely >> aliasing fields to something else; e.g. calculating values for the purpose >> of rule processing or extracting a value from a more complex object tree >> etc. Citing the example -- GoldenCustomer( fields[ "age" ] > 18 ) -- being >> able to get a reference to the target object and the field map expression >> "age" would be quite close to what I imagined. Our custom code could then >> perform the appropriate translation and return the requested value, hiding >> the fact whether "age" is an actual field in the Customer object >> itself/retrieved from an encapsulated complex object e.g. replacing >> expression "customer.personalInformation.birthData.age"/calculated on the >> flight. >> >> What do you think? >> >> Cheers, >> Peter >> >> >> >> 2014-05-26 17:58 GMT+02:00 Davide Sottara : >> >>> We are working on the trait framework for cases like this. Essentially, >>> it allows to use >>> interfaces when writing rules AND to inject the interfaces dynamically >>> at runtime, >>> at the instance level. It relies on transparent proxies which wrap the >>> data classes >>> and implement the required interfaces. A simple field aliasing mechanism >>> is provided >>> (work in progress). For more complex transformations, "virtual" fields >>> can be added. >>> See section 7.7.8 of the manual for more details and let me know if it >>> can help >>> with your use case. >>> Best, >>> Davide >>> >>> On 05/26/2014 09:55 AM, Wolfgang Laun wrote: >>> > Even a relatively sophisticated transformation would be easier to >>> implement >>> > and most certainly safer from changes in the unstable Drools API than >>> some >>> > hook-and-intercept mechanism built into Drools. >>> > >>> > Notice that violent structural departure of the model the BUs see from >>> what >>> > you call "persistence model" might make it impossible for the BUs to >>> come >>> > up with rules that can be transformed to match the other model at all; >>> > if it is possible, rules might still incur a heavy performance penalty. >>> > >>> > It is (IMHO) a myth that "Rules" is a foolproof way of establishing >>> > business logic >>> > independent from the data model and application environment with which >>> > this logic should be able to cooperate. As long as everything is kept >>> in the >>> > abstract (i.e., formulated in terms of mathematics) it will look >>> good, but >>> > any implementation may throw a spanner in the works, or worse. >>> > >>> > -W >>> > >>> > On 26/05/2014, P?ter Gergely, Horv?th wrote: >>> >> Hi Wolfgang, >>> >> >>> >> Thank you for your input. You are right that some of the cases could >>> simply >>> >> be covered by regexp-replace, but I'm afraid, not all of them. >>> Interfaces >>> >> could also help, but we have a requirement that the business rules >>> should >>> >> not be tightly coupled to the underlying persistence model. (I >>> understand >>> >> that some might say this is not ideal, but that is our current >>> situation) >>> >> >>> >> I am wondering whether it is possible to hook into Drools engine and >>> >> intercept field value reference expression evaluations in run time >>> (e.g if >>> >> "foo.bars" is used in an expression, we could return "foo.barList") ? >>> By >>> >> injecting some custom code, we could make the necessary decisions and >>> >> extract the proper value from an object. Unfortunately these parts of >>> >> Drools are pretty much undocumented. >>> >> >>> >> Regards, >>> >> Peter >>> >> >>> >> >>> >> >>> >> 2014-05-26 13:57 GMT+02:00 Wolfgang Laun : >>> >> >>> >>> What you describe can be done with /bin/sed. >>> >>> >>> >>> Notice that the DSL processor doesn't require you to translate entire >>> >>> patterns; there is a mechanism for translating "keywords", which is >>> >>> just arbitrary tokens to whatever replacement text. >>> >>> >>> >>> If a "bar" must be translated to a "barList" in the context of a >>> class >>> >>> "Foo" but not in any other context, a more sophisticated translation >>> >>> is required in any case (with /bin/sed still being sufficient if >>> >>> patterns aren't split across lines). >>> >>> >>> >>> Some say that good design makes use of Interfaces, which leaves room >>> >>> for actual implementations being changed as long as the interfaces >>> are >>> >>> implemented. Here, note that rules can be written against interface >>> >>> types. >>> >>> >>> >>> -W >>> >>> >>> >>> >>> >>> On 26/05/2014, P?ter Gergely, Horv?th wrote: >>> >>>> Hi All, >>> >>>> >>> >>>> We are evaluating Drools 6 for our use case, and face challenges >>> where >>> >>>> we >>> >>>> would need some ideas from more experienced users of Drools. >>> >>>> >>> >>>> We have an application with a massive code base and a large number >>> of >>> >>> model >>> >>>> (entity) classes. We are in the process of moving away from >>> inherited >>> >>>> legacy technologies and refactoring the old code base. As a part of >>> >>>> this >>> >>>> work we would like extract some of the hard-coded business logic to >>> >>>> external rules, that is why we are looking at Drools as a potential >>> >>>> solution. >>> >>>> >>> >>>> What we would like to have is some kind of abstraction or mapping >>> >>>> between >>> >>>> actual entities and rules the business users can define so that >>> they do >>> >>> not >>> >>>> have to know the _exact_ details of the data model (field names, >>> >>>> precise >>> >>>> relations etc). This would be important for us so that we can >>> refactor >>> >>> the >>> >>>> old model classes without affecting business rules; also it would >>> make >>> >>> life >>> >>>> easier for the business users. While IDE support might make >>> refactoring >>> >>>> easier, we definitely want to have a separation between rules and >>> >>> entities. >>> >>>> Given our situation, writing and maintaining "stable" >>> wrapper/adapter >>> >>>> classes for the sole purpose of rule processing is out of question. >>> I >>> >>> have >>> >>>> checked the documentation of Drools DSL support and for me it seems >>> to >>> >>>> be >>> >>>> overkill for our use case: we do not really need a custom language, >>> but >>> >>>> simply an abstraction between rules and the data model classes. >>> >>>> >>> >>>> What I could imagine is a piece of code, (a custom property >>> resolver? - >>> >>> no >>> >>>> sure how it is called) which maps property expressions to actual >>> >>> properties >>> >>>> based on a custom annotation on the entity class or something like >>> >>>> that, >>> >>> so >>> >>>> that a rule containing "Foo.bars" expression does not have to change >>> >>>> even >>> >>>> if we decide to rename "Foo.bars" to "Foo.barList" in the model >>> >>>> classes. >>> >>>> (This was just a simple example of a potential use cases) >>> >>>> >>> >>>> Could you please share your thoughts on this topic and point me into >>> >>>> the >>> >>>> right direction? >>> >>>> >>> >>>> Thanks, >>> >>>> Peter >>> >>>> >>> >>> _______________________________________________ >>> >>> rules-users mailing list >>> >>> rules-users at lists.jboss.org >>> >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >>> >>> > _______________________________________________ >>> > rules-users mailing list >>> > rules-users at lists.jboss.org >>> > https://lists.jboss.org/mailman/listinfo/rules-users >>> > >>> >>> _______________________________________________ >>> rules-users mailing list >>> rules-users at lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >> >> >> >> _______________________________________________ >> rules-users mailing listrules-users at lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/rules-users >> >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > > > _______________________________________________ > rules-users mailing listrules-users at lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/rules-users > > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140602/dc5fae73/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: BusinessFieldEvaluatorDefinition.java Type: application/octet-stream Size: 8427 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140602/dc5fae73/attachment-0002.obj -------------- next part -------------- A non-text attachment was scrubbed... Name: MyBusinessExpression.java Type: application/octet-stream Size: 328 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140602/dc5fae73/attachment-0003.obj From jmercier at genoscope.cns.fr Mon Jun 2 09:37:04 2014 From: jmercier at genoscope.cns.fr (Mercier Jonathan) Date: Mon, 02 Jun 2014 15:37:04 +0200 Subject: [rules-users] Does generated graph rules is build to respect a disjunctive normal form ? Message-ID: <538C7E00.3010200@genoscope.cns.fr> Hi, We use Drools at this time to explore some possibilities. We have an old system, clips based and with clips rules need to be wrote to a disjunctive normal form because they are no internal processing to transform user rule to a disjunctive normal form. As Drools generate a graph (Phreak) i would like to know if this graph try to represent rules as a disjunctive normal form ? if not i would like to know if we should to use disjunctive normal form to write rules ? It seem disjunctive normal form could allow to do some concurrent computation, i would like to know if drools will use this feature? thanks Regards From mproctor at codehaus.org Mon Jun 2 09:43:18 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Mon, 2 Jun 2014 14:43:18 +0100 Subject: [rules-users] Does generated graph rules is build to respect a disjunctive normal form ? In-Reply-To: <538C7E00.3010200@genoscope.cns.fr> References: <538C7E00.3010200@genoscope.cns.fr> Message-ID: I thought clips did do disjunction normal form? in that all ?or?s are removed from the body of the tree and moved to the root, thus rewriting the logic into separate rules? This docs shows an ?or? rule is the equivalent of disjunction normal form: http://www.csie.ntu.edu.tw/~sylee/courses/clips/bpg/node5.4.3.html We do soothing similar to above, and a few other things. This class applies all our logic transformations, you may add others: https://github.com/droolsjbpm/drools/blob/master/drools-core/src/main/java/org/drools/core/rule/LogicTransformer.java Mark On 2 Jun 2014, at 14:37, Mercier Jonathan wrote: > Hi, > > We use Drools at this time to explore some possibilities. We have an old > system, clips based and with clips rules need to be wrote to a > disjunctive normal form because they are no internal processing to > transform user rule to a disjunctive normal form. > As Drools generate a graph (Phreak) i would like to know if this graph > try to represent rules as a disjunctive normal form ? > if not i would like to know if we should to use disjunctive normal form > to write rules ? > > It seem disjunctive normal form could allow to do some concurrent > computation, i would like to know if drools will use this feature? > > thanks > > Regards > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From jmercier at genoscope.cns.fr Mon Jun 2 09:58:16 2014 From: jmercier at genoscope.cns.fr (Mercier Jonathan) Date: Mon, 02 Jun 2014 15:58:16 +0200 Subject: [rules-users] Does generated graph rules is build to respect a disjunctive normal form ? In-Reply-To: References: <538C7E00.3010200@genoscope.cns.fr> Message-ID: <538C82F8.9090402@genoscope.cns.fr> Le 02/06/2014 15:43, Mark Proctor a ?crit : > I thought clips did do disjunction normal form? in that all ?or?s are removed from the body of the tree and moved to the root, thus rewriting the logic into separate rules? This docs shows an ?or? rule is the equivalent of disjunction normal form: > http://www.csie.ntu.edu.tw/~sylee/courses/clips/bpg/node5.4.3.html > > We do soothing similar to above, and a few other things. This class applies all our logic transformations, you may add others: > https://github.com/droolsjbpm/drools/blob/master/drools-core/src/main/java/org/drools/core/rule/LogicTransformer.java > > Mark > > On 2 Jun 2014, at 14:37, Mercier Jonathan wrote: > >> Hi, >> >> We use Drools at this time to explore some possibilities. We have an old >> system, clips based and with clips rules need to be wrote to a >> disjunctive normal form because they are no internal processing to >> transform user rule to a disjunctive normal form. >> As Drools generate a graph (Phreak) i would like to know if this graph >> try to represent rules as a disjunctive normal form ? >> if not i would like to know if we should to use disjunctive normal form >> to write rules ? >> >> It seem disjunctive normal form could allow to do some concurrent >> computation, i would like to know if drools will use this feature? >> >> thanks >> >> Regards >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users Thanks Mark simple and clear :-) Did you you have somewhere a roadmap ? to know: - when nearly 6.0.2 will come - when concurrent approach wil be add Thanks From mproctor at codehaus.org Mon Jun 2 10:09:46 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Mon, 2 Jun 2014 15:09:46 +0100 Subject: [rules-users] Does generated graph rules is build to respect a disjunctive normal form ? In-Reply-To: <538C82F8.9090402@genoscope.cns.fr> References: <538C7E00.3010200@genoscope.cns.fr> <538C82F8.9090402@genoscope.cns.fr> Message-ID: <00D203D3-8F95-42A7-8042-1B68B1024A46@codehaus.org> On 2 Jun 2014, at 14:58, Mercier Jonathan wrote: > Thanks Mark simple and clear :-) > > Did you you have somewhere a roadmap ? > to know: > - when nearly 6.0.2 will come 6.1 CR should be out this week > - when concurrent approach wil be add Our new algorithm has been designed for parallel evaluations, and I?d be happy to take you through why. However we haven?t yet had the time to actually implement the next stage to make it parallel. I?ll happily mentor anyone who wants to give this a go. http://blog.athico.com/2013/11/rip-rete-time-to-get-phreaky.html The key change to allow parallelisation is that we are goal driven now, instead of data driven. And that we colour the network into ?segments? to isolate the shared areas. mark > > Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140602/08dbd02b/attachment.html From mproctor at codehaus.org Mon Jun 2 10:12:41 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Mon, 2 Jun 2014 15:12:41 +0100 Subject: [rules-users] Abstraction between rules and data model? In-Reply-To: References: <53836491.5070202@gmail.com> <5384CE7D.6070901@gmail.com> <538C49C5.1030203@gmail.com> Message-ID: <773BE05F-D4FC-419F-9D03-EDC9DB7150CC@codehaus.org> On 2 Jun 2014, at 13:59, Horv?th P?ter Gergely wrote: > Hi Davide, > > Thanks, I just wanted to get a grasp of the time frame we could expect (whether it is a month or half a year etc.) :) We haven?t had much feedback on traits, and the system is still in flux. So we cannot give any time frame. At some point there will be a momentum in the number of users, that will allow us to have a degree of confidence in it, but at the moment we?ve had close to zero feedback from users on this functionality. But there is nothing to stop you using this now. The only difference is that we may or may not change it up until the point we call it ?non-experimtal?. It won?t make any difference to the execution stability and bugs. > > A bit more about our use case: we have a massive old system, with basically all of the logic embedded into Java. We are in the process of refactoring and moving up-to-date Java technologies. We would like to introduce a rule engine so as to extract logic from the core of the application. Since we need to re-structure the whole back-end and persistence layer, we face a challenge with rules: as the object model changes, the rules have to change also, which simply would not be manageable. (Imagine something really crazy/complex here: 6-8-... levels of object hierarchy, grown most of the time organically during the last 15 years.) Deferring the introduction of the rule engine until the data model classes reach the final, ideal state is not something we can now afford, the rule engine and data model refactoring projects should be done in parallel, without the one paralyzing the other one... > > Take the following as an example (from the manual). Say, you have Applicant class, with age and name fields: > > public class Applicant { > > private String name; > private int age; > > // getters/setters > } > > Then, you could have a simple rule, requiring, that name must be supplied: > > rule "Supplied a proper name" > when > Applicant( name == null) > $a : Application() > then > output.println("### RULE MATCH: Invalid application: No name specified!"); > > $a.setValid( false ); > > end > > But there is an issue: every single time you refactor / rename any field in your domain model, the rules are no longer valid. That is why we have a problem: we should start developing rules against a relatively fluid object model. Say Applicant.name is renamed to Applicant.fullName, then the existing rules are no longer valid. That is why I would like to have some sort of abstraction, since the rules do not really need to know the exact details of the underlying class. > > As a demonstration of my idea, I managed to hack together a custom parameterizable operator, that calls the method where the annotation contains the same parameter as in the rule. With this approach, changes to the field names would no longer affect the rules. Again, I have to highlight, I don't think this should necessarily be implemented in the core engine. What I am looking for is some kind of extension point allowing us to hook into the expression evaluation part of Drools. (Instead of a custom operator, something, where we can access the object and the expression being resolved so that we can implement our custom logic for returning the value of the expression) > > The rule now looks like this - note the custom satisfiesRule operation. The "Name of this Applicant" expression now abstracts away the name of the actual field (the second parameter is the operator for the test, please ignore it for now): > > rule "Supplied a proper name" > agenda-group "evaluate-application" > auto-focus true > when > Applicant( this satisfiesRule[ "Name of this Applicant" , "is equal to" ] null ) > $a : Application() > then > output.println("### RULE MATCH: Invalid application: No name specified!"); > > $a.setValid( false ); > > end > > The name is simply mapped by a custom annotation: > > public class Applicant { > > private String name; > private int age; > > @MyBusinessExpression("Name of this Applicant") > public String getName() { > return name; > } > // getters/setters > } > > > I think having a level of abstraction between the rules and the data model would not only be useful for de-coupling, but also can make rule authoring easier for the business users. The custom operator (please see attachment) is a kind of hacky workaround, but demonstrates how something similar could be achieved at run time (without using DSL or any other rule transformation). > > Please let me know what you think. :) > > Cheers, > Peter > > > > > > > > > > > 2014-06-02 11:54 GMT+02:00 Davide Sottara : > I can't guarantee a public date.. as a community member, I work on a "best effort" basis... > I'll try to do it before the end of the month, though. > For now, as a workaround, I would create derived getter/setter pairs that expose the desired > computations. A concrete example of what you are trying to do exactly would also be helpful, > feel free to contact me privately if you can't share your code here > Best > Davide > > > On 05/28/2014 10:08 AM, P?ter Gergely, Horv?th wrote: >> Thanks for the explanation, I was a bit confused because of the terminology; "virtual" is not mentioned in the docs. ;) >> >> Is there any plan for the public release of Trait property binding to a nested path? We would definitely need something like that in our environment. Or do you see any way we could hook into the property look-up mechanism? Based on what I know, I don't see any official extension point for that. >> >> My only idea would be using some Java proxy voodoo-magic to wrap objects before they are inserted to the session, but my gut feeling is that it would be a way to debug hell... >> >> What do you think? >> >> Cheers, >> Peter >> >> >> >> 2014-05-27 19:42 GMT+02:00 Davide Sottara : >> Consider that a trait is an interface applied to some class. In the context of the pair: >> A "hard" field is a property (get/set) exposed by the interface AND the underlying class >> A "soft" (or "virtual") field is a property exposed by the interface BUT NOT by the underlying class >> A "hidden" field is a field of the underlying class NOT exposed by the interface >> >> Hard and Soft fields can be accessed using the interface, hidden fields are accessible using the map-like >> construct fields[ "fieldName" ]. >> >> This said, >> the mapping is by default done using the property name and (then) the property type. >> However, this mapping can be decoupled using the annotation @Alias() on either the class OR the trait. >> E.g. >> declare Core >> name : String @Alias( "any-Id-or-even-an-IRI-here" ) >> end >> >> declare trait SomeTrait >> label : String @Alias( "..." ) // if two "aliases" match, this will be considered a hard field >> end >> >> The "accessor", i.e. the ability to bind a trait property to a (possibly deeply) nested path is what I'm working >> on these days, I have the same requirement from another urgent use case >> >> For the time being, you can probably create a "shortcut" accessor pair in your implementation class, >> to execute the complex expression, and @Alias it to the trait field. >> >> Please let me know if you find any issue/bugs and any feature request you may have! >> Best >> Davide >> >> >> >> On 05/27/2014 07:57 AM, Horv?th P?ter Gergely wrote: >>> Hi Davide, >>> >>> Drools trait functionality is one of the powerful concepts which makes Drools a good candidate for the project. So keep up the good work! :) However I'm not sure if its current level of flexibility would be sufficient for our use case. I've checked the documentation, but haven't really found the term virtual field -- could you please elaborate on this? >>> >>> Do you think we could somehow hook into the evaluation of the aliases or the "fields" Map? Sometimes you would need slightly more than merely aliasing fields to something else; e.g. calculating values for the purpose of rule processing or extracting a value from a more complex object tree etc. Citing the example -- GoldenCustomer( fields[ "age" ] > 18 ) -- being able to get a reference to the target object and the field map expression "age" would be quite close to what I imagined. Our custom code could then perform the appropriate translation and return the requested value, hiding the fact whether "age" is an actual field in the Customer object itself/retrieved from an encapsulated complex object e.g. replacing expression "customer.personalInformation.birthData.age"/calculated on the flight. >>> >>> What do you think? >>> >>> Cheers, >>> Peter >>> >>> >>> >>> 2014-05-26 17:58 GMT+02:00 Davide Sottara : >>> We are working on the trait framework for cases like this. Essentially, >>> it allows to use >>> interfaces when writing rules AND to inject the interfaces dynamically >>> at runtime, >>> at the instance level. It relies on transparent proxies which wrap the >>> data classes >>> and implement the required interfaces. A simple field aliasing mechanism >>> is provided >>> (work in progress). For more complex transformations, "virtual" fields >>> can be added. >>> See section 7.7.8 of the manual for more details and let me know if it >>> can help >>> with your use case. >>> Best, >>> Davide >>> >>> On 05/26/2014 09:55 AM, Wolfgang Laun wrote: >>> > Even a relatively sophisticated transformation would be easier to implement >>> > and most certainly safer from changes in the unstable Drools API than some >>> > hook-and-intercept mechanism built into Drools. >>> > >>> > Notice that violent structural departure of the model the BUs see from what >>> > you call "persistence model" might make it impossible for the BUs to come >>> > up with rules that can be transformed to match the other model at all; >>> > if it is possible, rules might still incur a heavy performance penalty. >>> > >>> > It is (IMHO) a myth that "Rules" is a foolproof way of establishing >>> > business logic >>> > independent from the data model and application environment with which >>> > this logic should be able to cooperate. As long as everything is kept in the >>> > abstract (i.e., formulated in terms of mathematics) it will look good, but >>> > any implementation may throw a spanner in the works, or worse. >>> > >>> > -W >>> > >>> > On 26/05/2014, P?ter Gergely, Horv?th wrote: >>> >> Hi Wolfgang, >>> >> >>> >> Thank you for your input. You are right that some of the cases could simply >>> >> be covered by regexp-replace, but I'm afraid, not all of them. Interfaces >>> >> could also help, but we have a requirement that the business rules should >>> >> not be tightly coupled to the underlying persistence model. (I understand >>> >> that some might say this is not ideal, but that is our current situation) >>> >> >>> >> I am wondering whether it is possible to hook into Drools engine and >>> >> intercept field value reference expression evaluations in run time (e.g if >>> >> "foo.bars" is used in an expression, we could return "foo.barList") ? By >>> >> injecting some custom code, we could make the necessary decisions and >>> >> extract the proper value from an object. Unfortunately these parts of >>> >> Drools are pretty much undocumented. >>> >> >>> >> Regards, >>> >> Peter >>> >> >>> >> >>> >> >>> >> 2014-05-26 13:57 GMT+02:00 Wolfgang Laun : >>> >> >>> >>> What you describe can be done with /bin/sed. >>> >>> >>> >>> Notice that the DSL processor doesn't require you to translate entire >>> >>> patterns; there is a mechanism for translating "keywords", which is >>> >>> just arbitrary tokens to whatever replacement text. >>> >>> >>> >>> If a "bar" must be translated to a "barList" in the context of a class >>> >>> "Foo" but not in any other context, a more sophisticated translation >>> >>> is required in any case (with /bin/sed still being sufficient if >>> >>> patterns aren't split across lines). >>> >>> >>> >>> Some say that good design makes use of Interfaces, which leaves room >>> >>> for actual implementations being changed as long as the interfaces are >>> >>> implemented. Here, note that rules can be written against interface >>> >>> types. >>> >>> >>> >>> -W >>> >>> >>> >>> >>> >>> On 26/05/2014, P?ter Gergely, Horv?th wrote: >>> >>>> Hi All, >>> >>>> >>> >>>> We are evaluating Drools 6 for our use case, and face challenges where >>> >>>> we >>> >>>> would need some ideas from more experienced users of Drools. >>> >>>> >>> >>>> We have an application with a massive code base and a large number of >>> >>> model >>> >>>> (entity) classes. We are in the process of moving away from inherited >>> >>>> legacy technologies and refactoring the old code base. As a part of >>> >>>> this >>> >>>> work we would like extract some of the hard-coded business logic to >>> >>>> external rules, that is why we are looking at Drools as a potential >>> >>>> solution. >>> >>>> >>> >>>> What we would like to have is some kind of abstraction or mapping >>> >>>> between >>> >>>> actual entities and rules the business users can define so that they do >>> >>> not >>> >>>> have to know the _exact_ details of the data model (field names, >>> >>>> precise >>> >>>> relations etc). This would be important for us so that we can refactor >>> >>> the >>> >>>> old model classes without affecting business rules; also it would make >>> >>> life >>> >>>> easier for the business users. While IDE support might make refactoring >>> >>>> easier, we definitely want to have a separation between rules and >>> >>> entities. >>> >>>> Given our situation, writing and maintaining "stable" wrapper/adapter >>> >>>> classes for the sole purpose of rule processing is out of question. I >>> >>> have >>> >>>> checked the documentation of Drools DSL support and for me it seems to >>> >>>> be >>> >>>> overkill for our use case: we do not really need a custom language, but >>> >>>> simply an abstraction between rules and the data model classes. >>> >>>> >>> >>>> What I could imagine is a piece of code, (a custom property resolver? - >>> >>> no >>> >>>> sure how it is called) which maps property expressions to actual >>> >>> properties >>> >>>> based on a custom annotation on the entity class or something like >>> >>>> that, >>> >>> so >>> >>>> that a rule containing "Foo.bars" expression does not have to change >>> >>>> even >>> >>>> if we decide to rename "Foo.bars" to "Foo.barList" in the model >>> >>>> classes. >>> >>>> (This was just a simple example of a potential use cases) >>> >>>> >>> >>>> Could you please share your thoughts on this topic and point me into >>> >>>> the >>> >>>> right direction? >>> >>>> >>> >>>> Thanks, >>> >>>> Peter >>> >>>> >>> >>> _______________________________________________ >>> >>> rules-users mailing list >>> >>> rules-users at lists.jboss.org >>> >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >>> >>> > _______________________________________________ >>> > rules-users mailing list >>> > rules-users at lists.jboss.org >>> > https://lists.jboss.org/mailman/listinfo/rules-users >>> > >>> >>> _______________________________________________ >>> rules-users mailing list >>> rules-users at lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >>> >>> >>> _______________________________________________ >>> rules-users mailing list >>> rules-users at lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140602/c9fa8136/attachment-0001.html From shrinath.managuli at aspiresys.com Mon Jun 2 10:33:48 2014 From: shrinath.managuli at aspiresys.com (Shrinath Managuli) Date: Mon, 2 Jun 2014 14:33:48 +0000 Subject: [rules-users] How to refer values from different sheets in drools decision table? Message-ID: <21b623489b83466b9f03c33ac61870d4@HKNPR02MB019.apcprd02.prod.outlook.com> Hi Drools, Requires clarity on referring data in Drools Decision table, Consider a IN case as like below, [cid:image001.png at 01CF7E9C.169B05D0] Here the values for IN case are "F" and "M" are mapped from different sheet using the reference CONCATENATE("""", 'user-gender-datasheet'!C15, """, """, 'user-gender-datasheet'!C16, """"). When the values for IN grows, then Excel sheet references would be not maintainable. Is there another approach available to map the values from different sheet in drools decision table? -Shrinath [Aspire Systems] This e-mail message and any attachments are for the sole use of the intended recipient(s) and may contain proprietary, confidential, trade secret or privileged information. Any unauthorized review, use, disclosure or distribution is prohibited and may be a violation of law. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140602/edb2b2b1/attachment.html -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.png Type: image/png Size: 7216 bytes Desc: image001.png Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140602/edb2b2b1/attachment.png From h.peter at mailbox.hu Mon Jun 2 11:21:11 2014 From: h.peter at mailbox.hu (=?UTF-8?Q?Horv=C3=A1th_P=C3=A9ter_Gergely?=) Date: Mon, 2 Jun 2014 17:21:11 +0200 Subject: [rules-users] Rules storage without Guvnor? In-Reply-To: <18334696-7E23-47AA-A638-2B90A6CF2F98@codehaus.org> References: <18334696-7E23-47AA-A638-2B90A6CF2F98@codehaus.org> Message-ID: Hi Mark, Thank you for your help. Creating a custom build of Guvnor sounds to require quite some effort, I'm not sure whether we should go down that way. Unfortunately, I don't think we will have the option to use Maven based rule deployments at all. In Drools 6, KieScanner seems to be built around Maven; this doesn't suit environments where the application runs on servers without Maven (e.g. no Maven installed, no local Maven repository allowed, access to remote Maven repositories blocked by firewall.) Do you see any way for us to load rule files directly from the file system and still have the automatic change detection? For example, we could push rule files to NFS with CI and let the application detect and pick up changes... Thanks, Peter 2014-06-02 14:13 GMT+02:00 Mark Proctor : > > On 2 Jun 2014, at 08:40, P?ter Gergely, Horv?th > wrote: > > Hello All, > > We are evaluating Drools for our use case and would have a question for > storing rules files. We are in a relatively constrained environment, where > getting Guvnor up and running does not seems to be a valid option. Since we > would only need the core repository functionality so that we can separate > rule deployment from application deployments (and none of the advanced > features like online editing etc), I think it would make more sense to have > a light-weight alternative for storing the rule files. > > In 6.0 our rules are stored in GIT, it doesn?t get much lighter than that > > Our UI is easily customisable if you know how, as it?s all modular, and > everything is a plugin. So you can hide/disable the parts that you do not > want available at run time, although at the moment that requires a rebuild. > > > Being able to pick up rules from an NFS share of from a database CLOB > field would be perfectly sufficient for us. I have worked with JBPM4 quite > a lot, where the core engine contained support for versioned storage of the > process definitions in the database itself [1]. > > I don?t see how this would be better than GIT, and certainly a lot more > complicated and heavier. > > > Is there any similar feature in Drools, where the rules can be deployed to > e.g. a database or any other repository solution, (without using Guvnor)? > > No, I don?t see what value this would have (simply storing a clob). I > could potentially see value in an indexed/exploded rules stored in a DB for > refactoring, x-reference, analysis work. But this would be additional to > the GIT storage, and not instead of. > > I haven't found too much details on this topic, but for me it seems that > the only approach would be to have some custom logic, which > programmatically checks for rule updates and re-creates the whole > knowledgebase on any update. > > You can use our Maven plugin for this with GIT. You can poll or add a GIT > hook. You can look into hudson for automating this. JGIT doesn?t expose > hooks right now, so you?d need to use your own GIT (which wouldn?t work > with guvnor, although you can GIT-Mirror the two). > > I am wondering whether there is any more sophisticated solution in Drools > where at least update checking/rule reconfiguration could be delegated to > the engine. > > The best way would be to extend the maven plugin to provide this > functionality, but make sure it?s independent of maven too. If you do this > right, we can look at integrating it into the main Guvnor codebase. > > Mark > > > Any inputs are appreciated. > > Thanks, > Peter > > [1] > http://docs.jboss.com/jbpm/v4/javadocs/org/jbpm/api/RepositoryService.html > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140602/85c95134/attachment-0001.html From wolfgang.laun at gmail.com Mon Jun 2 12:08:04 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Mon, 2 Jun 2014 18:08:04 +0200 Subject: [rules-users] Abstraction between rules and data model? In-Reply-To: References: <53836491.5070202@gmail.com> <5384CE7D.6070901@gmail.com> <538C49C5.1030203@gmail.com> Message-ID: Perhaps https://engage.redhat.com/forms/rule-design-patterns section 2.5 might be of interest to you. Some of what you've posted seems to deviate towards what is called "overengineering", but of course it may have to be as complicated as it was presented. -W On 02/06/2014, Horv?th P?ter Gergely wrote: > Hi Davide, > > Thanks, I just wanted to get a grasp of the time frame we could expect > (whether it is a month or half a year etc.) :) > > A bit more about our use case: we have a *massive* old system, with > basically all of the logic embedded into Java. We are in the process of > refactoring and moving up-to-date Java technologies. We would like to > introduce a rule engine so as to extract logic from the core of the > application. Since we need to re-structure the whole back-end and > persistence layer, we face a challenge with rules: as the object model > changes, the rules have to change also, which simply would not be > manageable. (Imagine something really crazy/complex here: 6-8-... levels of > object hierarchy, grown most of the time organically during the last 15 > years.) Deferring the introduction of the rule engine until the data model > classes reach the final, ideal state is not something we can now afford, > the rule engine and data model refactoring projects should be done in > parallel, without the one paralyzing the other one... > > Take the following as an example (from the manual). Say, you have Applicant > class, with age and name fields: > > public class Applicant { > > private String name; > private int age; > > // getters/setters > } > > Then, you could have a simple rule, requiring, that name must be supplied: > > rule "Supplied a proper name" > when > Applicant( name == null) > $a : Application() > then > output.println("### RULE MATCH: Invalid application: No name > specified!"); > > $a.setValid( false ); > > end > > But there is an issue: every single time you refactor / rename any field in > your domain model, the rules are no longer valid. That is why we have a > problem: we should start developing rules against a relatively fluid object > model. Say Applicant.name is renamed to Applicant.fullName, then the > existing rules are no longer valid. That is why I would like to have some > sort of abstraction, since the rules do not really need to know the > *exact *details > of the underlying class. > > As a demonstration of my idea, I managed to hack together a custom > parameterizable operator, that calls the method where the annotation > contains the same parameter as in the rule. With this approach, changes to > the field names would no longer affect the rules. Again, I have to > highlight, I don't think this should necessarily be implemented in the core > engine. *What I am looking for is some kind of extension point allowing us > to hook into the expression evaluation part of Drools*. (Instead of a > custom operator, something, where we can access the object and the > expression being resolved so that we can implement our custom logic for > returning the value of the expression) > > The rule now looks like this - note the custom satisfiesRule operation. The > "Name of this Applicant" expression now abstracts away the name of the > actual field (the second parameter is the operator for the test, please > ignore it for now): > > rule "Supplied a proper name" > agenda-group "evaluate-application" > auto-focus true > when > Applicant( this satisfiesRule[ "Name of this Applicant" , "is equal > to" ] null ) > $a : Application() > then > output.println("### RULE MATCH: Invalid application: No name > specified!"); > > $a.setValid( false ); > > end > > The name is simply mapped by a custom annotation: > > public class Applicant { > > private String name; > private int age; > > @MyBusinessExpression("Name of this Applicant") > public String getName() { > return name; > } > // getters/setters > } > > > I think having a level of abstraction between the rules and the data model > would not only be useful for de-coupling, but also can make rule authoring > easier for the business users. The custom operator (please see attachment) > is a kind of hacky workaround, but demonstrates how something similar could > be achieved at run time (without using DSL or any other rule > transformation). > > Please let me know what you think. :) > > Cheers, > Peter > > > > > > > > > > > 2014-06-02 11:54 GMT+02:00 Davide Sottara : > >> I can't guarantee a public date.. as a community member, I work on a >> "best effort" basis... >> I'll try to do it before the end of the month, though. >> For now, as a workaround, I would create derived getter/setter pairs that >> expose the desired >> computations. A concrete example of what you are trying to do exactly >> would also be helpful, >> feel free to contact me privately if you can't share your code here >> Best >> Davide >> >> >> On 05/28/2014 10:08 AM, P?ter Gergely, Horv?th wrote: >> >> Thanks for the explanation, I was a bit confused because of the >> terminology; "virtual" is not mentioned in the docs. ;) >> >> Is there any plan for the public release of Trait property binding to a >> nested path? We would definitely need something like that in our >> environment. Or do you see any way we could hook into the property >> look-up >> mechanism? Based on what I know, I don't see any official extension point >> for that. >> >> My only idea would be using some Java proxy voodoo-magic to wrap objects >> before they are inserted to the session, but my gut feeling is that it >> would be a way to debug hell... >> >> What do you think? >> >> Cheers, >> Peter >> >> >> >> 2014-05-27 19:42 GMT+02:00 Davide Sottara : >> >>> Consider that a trait is an interface applied to some class. In the >>> context of the pair: >>> A "hard" field is a property (get/set) exposed by the interface AND the >>> underlying class >>> A "soft" (or "virtual") field is a property exposed by the interface BUT >>> NOT by the underlying class >>> A "hidden" field is a field of the underlying class NOT exposed by the >>> interface >>> >>> Hard and Soft fields can be accessed using the interface, hidden fields >>> are accessible using the map-like >>> construct fields[ "fieldName" ]. >>> >>> This said, >>> the mapping is by default done using the property name and (then) the >>> property type. >>> However, this mapping can be decoupled using the annotation @Alias() on >>> either the class OR the trait. >>> E.g. >>> declare Core >>> name : String @Alias( "any-Id-or-even-an-IRI-here" ) >>> end >>> >>> declare trait SomeTrait >>> label : String @Alias( "..." ) // if two "aliases" match, this will >>> be considered a hard field >>> end >>> >>> The "accessor", i.e. the ability to bind a trait property to a (possibly >>> deeply) nested path is what I'm working >>> on these days, I have the same requirement from another urgent use case >>> >>> For the time being, you can probably create a "shortcut" accessor pair >>> in >>> your implementation class, >>> to execute the complex expression, and @Alias it to the trait field. >>> >>> Please let me know if you find any issue/bugs and any feature request >>> you >>> may have! >>> Best >>> Davide >>> >>> >>> >>> On 05/27/2014 07:57 AM, Horv?th P?ter Gergely wrote: >>> >>> Hi Davide, >>> >>> Drools trait functionality is one of the powerful concepts which makes >>> Drools a good candidate for the project. So keep up the good work! :) >>> However I'm not sure if its current level of flexibility would be >>> sufficient for our use case. I've checked the documentation, but haven't >>> really found the term virtual field -- could you please elaborate on >>> this? >>> >>> Do you think we could somehow hook into the evaluation of the aliases >>> or the "fields" Map? Sometimes you would need slightly more than merely >>> aliasing fields to something else; e.g. calculating values for the >>> purpose >>> of rule processing or extracting a value from a more complex object tree >>> etc. Citing the example -- GoldenCustomer( fields[ "age" ] > 18 ) -- >>> being >>> able to get a reference to the target object and the field map >>> expression >>> "age" would be quite close to what I imagined. Our custom code could >>> then >>> perform the appropriate translation and return the requested value, >>> hiding >>> the fact whether "age" is an actual field in the Customer object >>> itself/retrieved from an encapsulated complex object e.g. replacing >>> expression "customer.personalInformation.birthData.age"/calculated on >>> the >>> flight. >>> >>> What do you think? >>> >>> Cheers, >>> Peter >>> >>> >>> >>> 2014-05-26 17:58 GMT+02:00 Davide Sottara : >>> >>>> We are working on the trait framework for cases like this. Essentially, >>>> it allows to use >>>> interfaces when writing rules AND to inject the interfaces dynamically >>>> at runtime, >>>> at the instance level. It relies on transparent proxies which wrap the >>>> data classes >>>> and implement the required interfaces. A simple field aliasing >>>> mechanism >>>> is provided >>>> (work in progress). For more complex transformations, "virtual" fields >>>> can be added. >>>> See section 7.7.8 of the manual for more details and let me know if it >>>> can help >>>> with your use case. >>>> Best, >>>> Davide >>>> >>>> On 05/26/2014 09:55 AM, Wolfgang Laun wrote: >>>> > Even a relatively sophisticated transformation would be easier to >>>> implement >>>> > and most certainly safer from changes in the unstable Drools API than >>>> some >>>> > hook-and-intercept mechanism built into Drools. >>>> > >>>> > Notice that violent structural departure of the model the BUs see >>>> > from >>>> what >>>> > you call "persistence model" might make it impossible for the BUs to >>>> come >>>> > up with rules that can be transformed to match the other model at >>>> > all; >>>> > if it is possible, rules might still incur a heavy performance >>>> > penalty. >>>> > >>>> > It is (IMHO) a myth that "Rules" is a foolproof way of establishing >>>> > business logic >>>> > independent from the data model and application environment with >>>> > which >>>> > this logic should be able to cooperate. As long as everything is kept >>>> in the >>>> > abstract (i.e., formulated in terms of mathematics) it will look >>>> good, but >>>> > any implementation may throw a spanner in the works, or worse. >>>> > >>>> > -W >>>> > >>>> > On 26/05/2014, P?ter Gergely, Horv?th wrote: >>>> >> Hi Wolfgang, >>>> >> >>>> >> Thank you for your input. You are right that some of the cases could >>>> simply >>>> >> be covered by regexp-replace, but I'm afraid, not all of them. >>>> Interfaces >>>> >> could also help, but we have a requirement that the business rules >>>> should >>>> >> not be tightly coupled to the underlying persistence model. (I >>>> understand >>>> >> that some might say this is not ideal, but that is our current >>>> situation) >>>> >> >>>> >> I am wondering whether it is possible to hook into Drools engine and >>>> >> intercept field value reference expression evaluations in run time >>>> (e.g if >>>> >> "foo.bars" is used in an expression, we could return "foo.barList") >>>> >> ? >>>> By >>>> >> injecting some custom code, we could make the necessary decisions >>>> >> and >>>> >> extract the proper value from an object. Unfortunately these parts >>>> >> of >>>> >> Drools are pretty much undocumented. >>>> >> >>>> >> Regards, >>>> >> Peter >>>> >> >>>> >> >>>> >> >>>> >> 2014-05-26 13:57 GMT+02:00 Wolfgang Laun : >>>> >> >>>> >>> What you describe can be done with /bin/sed. >>>> >>> >>>> >>> Notice that the DSL processor doesn't require you to translate >>>> >>> entire >>>> >>> patterns; there is a mechanism for translating "keywords", which is >>>> >>> just arbitrary tokens to whatever replacement text. >>>> >>> >>>> >>> If a "bar" must be translated to a "barList" in the context of a >>>> class >>>> >>> "Foo" but not in any other context, a more sophisticated >>>> >>> translation >>>> >>> is required in any case (with /bin/sed still being sufficient if >>>> >>> patterns aren't split across lines). >>>> >>> >>>> >>> Some say that good design makes use of Interfaces, which leaves >>>> >>> room >>>> >>> for actual implementations being changed as long as the interfaces >>>> are >>>> >>> implemented. Here, note that rules can be written against interface >>>> >>> types. >>>> >>> >>>> >>> -W >>>> >>> >>>> >>> >>>> >>> On 26/05/2014, P?ter Gergely, Horv?th wrote: >>>> >>>> Hi All, >>>> >>>> >>>> >>>> We are evaluating Drools 6 for our use case, and face challenges >>>> where >>>> >>>> we >>>> >>>> would need some ideas from more experienced users of Drools. >>>> >>>> >>>> >>>> We have an application with a massive code base and a large number >>>> of >>>> >>> model >>>> >>>> (entity) classes. We are in the process of moving away from >>>> inherited >>>> >>>> legacy technologies and refactoring the old code base. As a part >>>> >>>> of >>>> >>>> this >>>> >>>> work we would like extract some of the hard-coded business logic >>>> >>>> to >>>> >>>> external rules, that is why we are looking at Drools as a >>>> >>>> potential >>>> >>>> solution. >>>> >>>> >>>> >>>> What we would like to have is some kind of abstraction or mapping >>>> >>>> between >>>> >>>> actual entities and rules the business users can define so that >>>> they do >>>> >>> not >>>> >>>> have to know the _exact_ details of the data model (field names, >>>> >>>> precise >>>> >>>> relations etc). This would be important for us so that we can >>>> refactor >>>> >>> the >>>> >>>> old model classes without affecting business rules; also it would >>>> make >>>> >>> life >>>> >>>> easier for the business users. While IDE support might make >>>> refactoring >>>> >>>> easier, we definitely want to have a separation between rules and >>>> >>> entities. >>>> >>>> Given our situation, writing and maintaining "stable" >>>> wrapper/adapter >>>> >>>> classes for the sole purpose of rule processing is out of >>>> >>>> question. >>>> I >>>> >>> have >>>> >>>> checked the documentation of Drools DSL support and for me it >>>> >>>> seems >>>> to >>>> >>>> be >>>> >>>> overkill for our use case: we do not really need a custom >>>> >>>> language, >>>> but >>>> >>>> simply an abstraction between rules and the data model classes. >>>> >>>> >>>> >>>> What I could imagine is a piece of code, (a custom property >>>> resolver? - >>>> >>> no >>>> >>>> sure how it is called) which maps property expressions to actual >>>> >>> properties >>>> >>>> based on a custom annotation on the entity class or something like >>>> >>>> that, >>>> >>> so >>>> >>>> that a rule containing "Foo.bars" expression does not have to >>>> >>>> change >>>> >>>> even >>>> >>>> if we decide to rename "Foo.bars" to "Foo.barList" in the model >>>> >>>> classes. >>>> >>>> (This was just a simple example of a potential use cases) >>>> >>>> >>>> >>>> Could you please share your thoughts on this topic and point me >>>> >>>> into >>>> >>>> the >>>> >>>> right direction? >>>> >>>> >>>> >>>> Thanks, >>>> >>>> Peter >>>> >>>> >>>> >>> _______________________________________________ >>>> >>> rules-users mailing list >>>> >>> rules-users at lists.jboss.org >>>> >>> https://lists.jboss.org/mailman/listinfo/rules-users >>>> >>> >>>> > _______________________________________________ >>>> > rules-users mailing list >>>> > rules-users at lists.jboss.org >>>> > https://lists.jboss.org/mailman/listinfo/rules-users >>>> > >>>> >>>> _______________________________________________ >>>> rules-users mailing list >>>> rules-users at lists.jboss.org >>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>> >>> >>> >>> >>> _______________________________________________ >>> rules-users mailing >>> listrules-users at lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/rules-users >>> >>> >>> >>> _______________________________________________ >>> rules-users mailing list >>> rules-users at lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >> >> >> >> _______________________________________________ >> rules-users mailing >> listrules-users at lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/rules-users >> >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > From vincent.legendre at eurodecision.com Mon Jun 2 13:21:33 2014 From: vincent.legendre at eurodecision.com (Vincent LEGENDRE) Date: Mon, 2 Jun 2014 13:21:33 -0400 (EDT) Subject: [rules-users] Rules storage without Guvnor? In-Reply-To: References: <18334696-7E23-47AA-A638-2B90A6CF2F98@codehaus.org> Message-ID: <1423762223.105464.1401729693885.JavaMail.zimbra@eurodecision.com> Hi Guvnor implements a REST API that can be used to get a big DRL from ressources in a package. Most of time in my company's projects we used this API to get and store DRL files in a production environnement, with some dedicated code (no maven nor web in prod). It is almost as simple as copying files, the REST api is simple to use and works great, with all versions (did not test the 6.0, but I use almost the same code since guvnor 5.2). Guvnor only exists in the "authoring environnement", and rules should be tested before being deployed (via DRL file copying on a NFS, but a BLOB would work too) in the real prod env, which has no Guvnor at all. We have specifc code to load rules into a new session and execute it on our data (loading new rules if he file has changed). This last point does not use latest drools spring integration (with agents etc etc) mainly because I had to do that kind of thing a long time ago when all that stuff did not exist and from there I go on with some code that I can easily change. But it is quite easy to do (not immediate neither) and you won't depend on some drools code that may change over versions if you want to inject some of your tricks in the middle of the process. In my opinion, Guvnor should be used if you need to make your business user to author rules by themselves. As far I understood from your other posts, you have a lot of old java code to port to new java/rules code, but nowhere you mention who will maintain this. If is it only dev guys, you certainly don't need gunvnor at all and deal directly with your favorite IDE and Git with normal source files (DRL, DSRL, XLS, or whatever, there are numbers of code samples in the doc that tells you how to feed a KB with file ressources). ----- Mail original ----- De: "Horv?th P?ter Gergely" ?: "Rules Users List" Envoy?: Lundi 2 Juin 2014 17:21:11 Objet: Re: [rules-users] Rules storage without Guvnor? Hi Mark, Thank you for your help. Creating a custom build of Guvnor sounds to require quite some effort, I'm not sure whether we should go down that way. Unfortunately, I don't think we will have the option to use Maven based rule deployments at all. In Drools 6, KieScanner seems to be built around Maven; this doesn't suit environments where the application runs on servers without Maven (e.g. no Maven installed, no local Maven repository allowed, access to remote Maven repositories blocked by firewall.) Do you see any way for us to load rule files directly from the file system and still have the automatic change detection? For example, we could push rule files to NFS with CI and let the application detect and pick up changes... Thanks, Peter 2014-06-02 14:13 GMT+02:00 Mark Proctor < mproctor at codehaus.org > : On 2 Jun 2014, at 08:40, P?ter Gergely, Horv?th < h.peter at mailbox.hu > wrote:
Hello All, We are evaluating Drools for our use case and would have a question for storing rules files. We are in a relatively constrained environment, where getting Guvnor up and running does not seems to be a valid option. Since we would only need the core repository functionality so that we can separate rule deployment from application deployments (and none of the advanced features like online editing etc), I think it would make more sense to have a light-weight alternative for storing the rule files. In 6.0 our rules are stored in GIT, it doesn?t get much lighter than that Our UI is easily customisable if you know how, as it?s all modular, and everything is a plugin. So you can hide/disable the parts that you do not want available at run time, although at the moment that requires a rebuild.
Being able to pick up rules from an NFS share of from a database CLOB field would be perfectly sufficient for us. I have worked with JBPM4 quite a lot, where the core engine contained support for versioned storage of the process definitions in the database itself [1].
I don?t see how this would be better than GIT, and certainly a lot more complicated and heavier.
Is there any similar feature in Drools, where the rules can be deployed to e.g. a database or any other repository solution, (without using Guvnor)?
No, I don?t see what value this would have (simply storing a clob). I could potentially see value in an indexed/exploded rules stored in a DB for refactoring, x-reference, analysis work. But this would be additional to the GIT storage, and not instead of.
I haven't found too much details on this topic, but for me it seems that the only approach would be to have some custom logic, which programmatically checks for rule updates and re-creates the whole knowledgebase on any update.
You can use our Maven plugin for this with GIT. You can poll or add a GIT hook. You can look into hudson for automating this. JGIT doesn?t expose hooks right now, so you?d need to use your own GIT (which wouldn?t work with guvnor, although you can GIT-Mirror the two).
I am wondering whether there is any more sophisticated solution in Drools where at least update checking/rule reconfiguration could be delegated to the engine.
The best way would be to extend the maven plugin to provide this functionality, but make sure it?s independent of maven too. If you do this right, we can look at integrating it into the main Guvnor codebase. Mark
Any inputs are appreciated. Thanks, Peter [1] http://docs.jboss.com/jbpm/v4/javadocs/org/jbpm/api/RepositoryService.html _______________________________________________ rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________ rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________ rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140602/a7fd3c1b/attachment-0001.html From vincent.legendre at eurodecision.com Mon Jun 2 13:48:39 2014 From: vincent.legendre at eurodecision.com (Vincent LEGENDRE) Date: Mon, 2 Jun 2014 13:48:39 -0400 (EDT) Subject: [rules-users] Abstraction between rules and data model? In-Reply-To: References: <53836491.5070202@gmail.com> <5384CE7D.6070901@gmail.com> <538C49C5.1030203@gmail.com> Message-ID: <64608700.105672.1401731319258.JavaMail.zimbra@eurodecision.com> I have personnaly 2 ways of getting "as far as possible" from refactor problems : - mostly use flat objets, ie some objets that are as DB tables (only simple POJO with foreign keys, no child objects). This way it is easy to get and store used objects (with SQL or JPA frameworks, which has some annotations to map fields with DB columns where you can set your "business translations"). And for writing rules, it could be simpler too (do the join by testing attributes, ie the attributes you want in this particular context ...) - use automatic translation from your old code, if it is possible.... it depends on the corresponding code complexity, but then you can handle most of rules automatically (so changes in data model can be handled massively). But I share Wolfgang's point of view when he says that building rules totally independant of underlying objects is not realistic. You will have refactor painful work if you start too soon on a not enough stable data model. So the real way to avoid too much refactor ... is to spend time at building a stable data model ... (considering that point, rules projects are not that different from standard java projects) -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140602/833fba6a/attachment.html From mproctor at codehaus.org Mon Jun 2 15:55:08 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Mon, 2 Jun 2014 20:55:08 +0100 Subject: [rules-users] Rules storage without Guvnor? In-Reply-To: References: <18334696-7E23-47AA-A638-2B90A6CF2F98@codehaus.org> Message-ID: On 2 Jun 2014, at 16:21, Horv?th P?ter Gergely wrote: > Hi Mark, > > Thank you for your help. Creating a custom build of Guvnor sounds to require quite some effort, I'm not sure whether we should go down that way. > > Unfortunately, I don't think we will have the option to use Maven based rule deployments at all. In Drools 6, KieScanner seems to be built around Maven; this doesn't suit environments where the application runs on servers without Maven (e.g. no Maven installed, no local Maven repository allowed, access to remote Maven repositories blocked by firewall.) > maven is just a JAR like any other JAR. And a Maven repo is just a file system. If you write something or use something else, it?s just going to be creating equivalents. > Do you see any way for us to load rule files directly from the file system and still have the automatic change detection? Use the maven plugin. You don?t need to be maven enterprise to use maven. > For example, we could push rule files to NFS with CI and let the application detect and pick up changes... > > Thanks, > Peter > > > > 2014-06-02 14:13 GMT+02:00 Mark Proctor : > > On 2 Jun 2014, at 08:40, P?ter Gergely, Horv?th wrote: > >> Hello All, >> >> We are evaluating Drools for our use case and would have a question for storing rules files. We are in a relatively constrained environment, where getting Guvnor up and running does not seems to be a valid option. Since we would only need the core repository functionality so that we can separate rule deployment from application deployments (and none of the advanced features like online editing etc), I think it would make more sense to have a light-weight alternative for storing the rule files. > In 6.0 our rules are stored in GIT, it doesn?t get much lighter than that > > Our UI is easily customisable if you know how, as it?s all modular, and everything is a plugin. So you can hide/disable the parts that you do not want available at run time, although at the moment that requires a rebuild. > >> >> Being able to pick up rules from an NFS share of from a database CLOB field would be perfectly sufficient for us. I have worked with JBPM4 quite a lot, where the core engine contained support for versioned storage of the process definitions in the database itself [1]. > I don?t see how this would be better than GIT, and certainly a lot more complicated and heavier. > >> >> Is there any similar feature in Drools, where the rules can be deployed to e.g. a database or any other repository solution, (without using Guvnor)? > No, I don?t see what value this would have (simply storing a clob). I could potentially see value in an indexed/exploded rules stored in a DB for refactoring, x-reference, analysis work. But this would be additional to the GIT storage, and not instead of. > >> I haven't found too much details on this topic, but for me it seems that the only approach would be to have some custom logic, which programmatically checks for rule updates and re-creates the whole knowledgebase on any update. > You can use our Maven plugin for this with GIT. You can poll or add a GIT hook. You can look into hudson for automating this. JGIT doesn?t expose hooks right now, so you?d need to use your own GIT (which wouldn?t work with guvnor, although you can GIT-Mirror the two). >> I am wondering whether there is any more sophisticated solution in Drools where at least update checking/rule reconfiguration could be delegated to the engine. > The best way would be to extend the maven plugin to provide this functionality, but make sure it?s independent of maven too. If you do this right, we can look at integrating it into the main Guvnor codebase. > > Mark >> >> Any inputs are appreciated. >> >> Thanks, >> Peter >> >> [1] http://docs.jboss.com/jbpm/v4/javadocs/org/jbpm/api/RepositoryService.html >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140602/c1743ee3/attachment.html From zahid.ahmed at emirates.com Mon Jun 2 23:47:07 2014 From: zahid.ahmed at emirates.com (Zahid Ahmed) Date: Tue, 3 Jun 2014 03:47:07 +0000 Subject: [rules-users] Drools-6 WB | Why Database is Required for Indexing When GIT repo is available Message-ID: Hi, In Drools-6 documentation its mentioned that, "Everything is now stored as a file, including meta data. The database is only there to provide fast indexing and search. So importing and exporting is all standard Git and external sites, like GitHub, can be used to exchange repositories." (Reference : drools-docs.pdf : 2.3. New and Noteworthy in KIE Workbench 6.0.0) I want to know that why its required to store indexes in database, when we already have a repository with us, indexes could have been saved in the GIT repository itself. If we need database then now we need a license for database also. After reading this I am looking for database configurations in the documentation but I am not able to find it in the documentation. Where to configure it ? In GIT ? or in Workbench ? Regards, Zahid -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140603/06a16e67/attachment.html From michael.anstis at gmail.com Tue Jun 3 02:05:41 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Tue, 3 Jun 2014 07:05:41 +0100 Subject: [rules-users] Drools-6 WB | Why Database is Required for Indexing When GIT repo is available In-Reply-To: References: Message-ID: Indexes are stored in Lucene's "database" which we configure to also be file system based. So the documentation is a little misleading - we don't use nor do you need a classical RDBMS system. Sent on the move On 3 Jun 2014 04:49, "Zahid Ahmed" wrote: > Hi, > > > > In Drools-6 documentation its mentioned that, > > > > *?Everything is now stored as a file, including meta data. The database is > only there to provide fast indexing and search. So importing and exporting > is all standard Git and external sites, like GitHub, can be used to > exchange repositories.? **(Reference : drools-docs.pdf : 2.3. New and > Noteworthy in KIE Workbench 6.0.0)* > > > > I want to know that why its required to store indexes in database, when we > already have a repository with us, indexes could have been saved in the GIT > repository itself. If we need database then now we need a license for > database also. > > > > After reading this I am looking for database configurations in the > documentation but I am not able to find it in the documentation. Where to > configure it ? In GIT ? or in Workbench ? > > > > > > Regards, > > Zahid > > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140603/0f5989d9/attachment-0001.html From michael.anstis at gmail.com Tue Jun 3 03:58:01 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Tue, 3 Jun 2014 08:58:01 +0100 Subject: [rules-users] mvn deploy to workbench fails: Return code is: 405, ReasonPhrase:Method Not Allowed. In-Reply-To: <1401285089801-4029737.post@n3.nabble.com> References: <1401285089801-4029737.post@n3.nabble.com> Message-ID: This is a missing feature - it looks like we're only setup to serve content from the Workbench's Maven repository; not accept new content. Could you please raise a GUVNOR JIRA (https://issues.jboss.org/browse/GUVNOR) requesting this to be provided? Thanks. On 28 May 2014 14:51, jmterrettaz wrote: > Hi > I have installed the Drools Workbench > kie-drools-wb-distribution-wars-6.0.1.Final-jboss-as7.0.war on JBoss EAP > 6.2. When I try to do a mvn deploy to the workbench it fails with "Return > code is: 405, ReasonPhrase:Method Not Allowed." > Here the distributionManagement section of the POM: > > > > guvnor-m2-repo > http://localhost:8080/kie-drools-wb/maven2/ > > > > > I also defined the server as follow in my settings.xml : > > > > guvnor-m2-repo > > > > Authorization > > Basic > xxxoffuscatedxxxxx = > > > > > > > If I give a wrong Authorization value there I get a 401 non authorized, so > I > think the server is correctly configured. > > In wireshark I see that an HTTP PUT call is made and the answer is: > > HTTP/1.1 405 Method Not Allowed > Server: Apache-Coyote/1.1 > Pragma: No-cache > Cache-Control: no-cache > Expires: Thu, 01 Jan 1970 01:00:00 CET > Content-Type: text/html;charset=utf-8 > Content-Length: 1176 > Date: Wed, 28 May 2014 12:00:44 GMT > > JBoss Web/7.2.2.Final-redhat-1 - JBWEB000064: Error > report > JBWEB000065: HTTP Status 405 - HTTP method PUT is not supported by this URL >

*JBWEB000309: type* JBWEB000067: Status > report

*JBWEB000068: message* HTTP method PUT is not supported by > this URL

*JBWEB000069: description* JBWEB000125: The specified > HTTP method is not allowed for the requested resource.


noshade="noshade"> > JBoss Web/7.2.2.Final-redhat-1 > > > in a more readable format: > > JBWEB000065: HTTP Status 405 - HTTP method PUT is not supported by this URL > > JBWEB000309: type JBWEB000067: Status report > JBWEB000068: message HTTP method PUT is not supported by this URL > JBWEB000069: description JBWEB000125: The specified HTTP method is not > allowed for the requested resource. > > JBoss Web/7.2.2.Final-redhat-1 > > Can someone help? Thanks. > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/mvn-deploy-to-workbench-fails-Return-code-is-405-ReasonPhrase-Method-Not-Allowed-tp4029737.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140603/065a31fb/attachment.html From michael.anstis at gmail.com Tue Jun 3 04:01:08 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Tue, 3 Jun 2014 09:01:08 +0100 Subject: [rules-users] About the Quest Of : How to push changes to cloned repo onKie-Workbench In-Reply-To: References: <1386891277333-4027264.post@n3.nabble.com> <1401003416079-4029670.post@n3.nabble.com> Message-ID: If you want to push back to a Workbench's git repository you'll need to clone with ssh://@. The URL can be obtained from the Administration Perspective. I know many others have been able to clone with SSH and push committed changes back to the workbench using this approach successfully. On 25 May 2014 09:04, DonnieDarko wrote: > > > > Hi: > The ori question is here: > > http://drools.46999.n3.nabble.com/How-to-push-changes-to-cloned-repo-on-Kie-Workbench-tp4027264p4029670.html > > It send me this email after I reply it derectly; > But this question confuse me fo a week, So i answer the email for looking > more help quickly,forgive me > > After reading the origin prob, I think the question is > We can clone the project from wb's git server, like > git clone git://10.101.81.72:9418/uf-playground > > Take attention: > 1.we use the git protocol to clone the git project > 2.it do work well > 3.we use git bash to clone the project(whatever u use other tools: git > gui, eclipse egit plugin, svn git merger) > 4.we can add files,we can commit local modified, we can create branches, > but we cannot push the modifies to server/master?we cannot merge branches > to master > 5.i donot think the kie-config-cli is a good enough tool > a.i use the jboss-eap-6 as my appserver,there is a exception about > "address is already used" when i run the kie-config-cli.sh after i deploy > Guvnor in the same machine > b.i meet the same problem about: > lllpcsd at lllpcsd-VirtualBox:~/drools_git_ws/uf-playground$ git push > fatal: Could not read from remote repository. > Please make sure you have the correct access rights > and the repository exists. > > so > 1.this is about how to config Git security cer in Guvnor workbench > 2.we just want to develop projects with git tool, just want to push/merge > codes!!! > 3.i don't get more information from the drools's document > it say: > org.uberfire.nio.git.ssh.cert.dir: Location of the directory .security > where local > certtificates will be stored. Default: working directory > > and then? > and then? > and then? > > we know the .security directory is located $work_dir/.security, > we cannot get enough information about how to config things about Git's > SSH key or security trust :< > > we know the github.com platform will advance us to set the SSH key to do > developing works, > but the Guvnor has no UI function to set this. > > May be I do the wrong thing about clone, > May be I should clone the code with SSH, how to config ssh is always a > problem > May be these are all wrong action about how to use Guvnor correctly > > The drools's document is so powerful and so poor :< > > Help > > ------------------------------ > If you reply to this email, your message will be added to the discussion > below: > > http://drools.46999.n3.nabble.com/How-to-push-changes-to-cloned-repo-on-Kie-Workbench-tp4027264p4029670.html > To unsubscribe from How to push changes to cloned repo on Kie-Workbench, click > here > > . > NAML > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140603/398b1698/attachment.html From h.peter at mailbox.hu Tue Jun 3 04:28:01 2014 From: h.peter at mailbox.hu (=?UTF-8?Q?Horv=C3=A1th_P=C3=A9ter_Gergely?=) Date: Tue, 3 Jun 2014 10:28:01 +0200 Subject: [rules-users] Rules storage without Guvnor? In-Reply-To: References: <18334696-7E23-47AA-A638-2B90A6CF2F98@codehaus.org> Message-ID: Mark, thank you for your input, I really appreciate it. Based on that, my conclusion is the following (please correct me if I am wrong): - we should have a separate Maven project, that contains all of our business rules. - the JAR file built from this project should be installed to a local Maven repository so that KieScanner can pick it up - we can place this local Maven repository to NFS, where it is available for both to our production and build server - the application should be configured to watch the Maven repository on NFS using KieScanner Question is: how should I configure the location of the Maven repository KieScanner scans? Unfortunately none of the supported options for supplying Maven settings would work for us: - The Maven install: $M2_HOME/conf/settings.xml: we do not have Maven installed on production servers - A user's install: ${user.home}/.m2/settings.xml: we do not have access to the server user's environment - Folder location specified by the system propert kie.maven.settings.custom: we do not control the Tomcat servers our application runs on: system properties cannot be changed. Based on what I know, class org.kie.scanner.embedder.MavenSettings [1] is responsible for loading Maven settings. The only way I see to supply a custom location for settings.xml is monkey-patching this class in our project. Do you know any alternative to this? If there is not other solution, I think it would be worth exposing this via the API. What do you think? Peter [1] http://grepcode.com/file_/repo1.maven.org/maven2/org.kie/kie-ci/6.0.1.Final/org/kie/scanner/embedder/MavenSettings.java/?v=source 2014-06-02 21:55 GMT+02:00 Mark Proctor : > > On 2 Jun 2014, at 16:21, Horv?th P?ter Gergely wrote: > > Hi Mark, > > Thank you for your help. Creating a custom build of Guvnor sounds to > require quite some effort, I'm not sure whether we should go down that way. > > Unfortunately, I don't think we will have the option to use Maven based > rule deployments at all. In Drools 6, KieScanner seems to be built around > Maven; this doesn't suit environments where the application runs on servers > without Maven (e.g. no Maven installed, no local Maven repository allowed, > access to remote Maven repositories blocked by firewall.) > > maven is just a JAR like any other JAR. And a Maven repo is just a file > system. If you write something or use something else, it?s just going to be > creating equivalents. > > Do you see any way for us to load rule files directly from the file system > and still have the automatic change detection? > > Use the maven plugin. You don?t need to be maven enterprise to use maven. > > For example, we could push rule files to NFS with CI and let the > application detect and pick up changes... > > Thanks, > Peter > > > > 2014-06-02 14:13 GMT+02:00 Mark Proctor : > >> >> On 2 Jun 2014, at 08:40, P?ter Gergely, Horv?th >> wrote: >> >> Hello All, >> >> We are evaluating Drools for our use case and would have a question for >> storing rules files. We are in a relatively constrained environment, where >> getting Guvnor up and running does not seems to be a valid option. Since we >> would only need the core repository functionality so that we can separate >> rule deployment from application deployments (and none of the advanced >> features like online editing etc), I think it would make more sense to have >> a light-weight alternative for storing the rule files. >> >> In 6.0 our rules are stored in GIT, it doesn?t get much lighter than that >> >> Our UI is easily customisable if you know how, as it?s all modular, and >> everything is a plugin. So you can hide/disable the parts that you do not >> want available at run time, although at the moment that requires a rebuild. >> >> >> Being able to pick up rules from an NFS share of from a database CLOB >> field would be perfectly sufficient for us. I have worked with JBPM4 quite >> a lot, where the core engine contained support for versioned storage of the >> process definitions in the database itself [1]. >> >> I don?t see how this would be better than GIT, and certainly a lot more >> complicated and heavier. >> >> >> Is there any similar feature in Drools, where the rules can be deployed >> to e.g. a database or any other repository solution, (without using >> Guvnor)? >> >> No, I don?t see what value this would have (simply storing a clob). I >> could potentially see value in an indexed/exploded rules stored in a DB for >> refactoring, x-reference, analysis work. But this would be additional to >> the GIT storage, and not instead of. >> >> I haven't found too much details on this topic, but for me it seems that >> the only approach would be to have some custom logic, which >> programmatically checks for rule updates and re-creates the whole >> knowledgebase on any update. >> >> You can use our Maven plugin for this with GIT. You can poll or add a GIT >> hook. You can look into hudson for automating this. JGIT doesn?t expose >> hooks right now, so you?d need to use your own GIT (which wouldn?t work >> with guvnor, although you can GIT-Mirror the two). >> >> I am wondering whether there is any more sophisticated solution in Drools >> where at least update checking/rule reconfiguration could be delegated to >> the engine. >> >> The best way would be to extend the maven plugin to provide this >> functionality, but make sure it?s independent of maven too. If you do this >> right, we can look at integrating it into the main Guvnor codebase. >> >> Mark >> >> >> Any inputs are appreciated. >> >> Thanks, >> Peter >> >> [1] >> http://docs.jboss.com/jbpm/v4/javadocs/org/jbpm/api/RepositoryService.html >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140603/deee7220/attachment-0001.html From mario.fusco at gmail.com Tue Jun 3 05:22:41 2014 From: mario.fusco at gmail.com (Mario Fusco) Date: Tue, 3 Jun 2014 02:22:41 -0700 (PDT) Subject: [rules-users] Compilation errors in Drools examples In-Reply-To: <1401400419622-4029765.post@n3.nabble.com> References: <1389382886927-4027650.post@n3.nabble.com> <1401390116681-4029760.post@n3.nabble.com> <1401396802847-4029763.post@n3.nabble.com> <1401400419622-4029765.post@n3.nabble.com> Message-ID: <1401787361937-4029826.post@n3.nabble.com> Hi, I fixed this issue on master with this commit: https://github.com/droolsjbpm/droolsjbpm-tools/commit/6bc54748e This fix will be also backported to 6.0.x branch asap. Mario -- View this message in context: http://drools.46999.n3.nabble.com/Compilation-errors-in-Drools-examples-tp4027650p4029826.html Sent from the Drools: User forum mailing list archive at Nabble.com. From mm_anuradha at yahoo.co.in Tue Jun 3 07:26:19 2014 From: mm_anuradha at yahoo.co.in (AnuRadha) Date: Tue, 3 Jun 2014 04:26:19 -0700 (PDT) Subject: [rules-users] How to use already saved compiled packages Message-ID: <1401794779607-4029827.post@n3.nabble.com> Hi, We are using Drools 4.0.7 in our Insurance application(policies will be created). We are facing one issue with saved packages at run time. Using Jboss server on deployment all the rules are compiling and the .pkg files storing in a directory folder(eg. C:/Rules). On restart of Jboss server, now using the saved packages from C:/Rules. App is deploying properly, here while creating a new policy everything working fine. But if we go thru already existed policy the app is hanging at setting up facts. On debug one of the fact is 'PolicyImage' which is all the info of the policy will be there, here it is hanging up. But some times taking much time to setup facts. private void setupFacts(StatefulSession session, List facts) { try { List factHandles = new ArrayList(); for(int i=0; i < facts.size(); i++) { factHandles.add(session.insert(facts.get(i))); // here taking much time/hang } } finally { log.info("< setupFacts"); } } Can anybody help what could be the reasonfor this. -- View this message in context: http://drools.46999.n3.nabble.com/How-to-use-already-saved-compiled-packages-tp4029827.html Sent from the Drools: User forum mailing list archive at Nabble.com. From h.peter at mailbox.hu Tue Jun 3 07:53:35 2014 From: h.peter at mailbox.hu (=?UTF-8?B?UMOpdGVyIEdlcmdlbHksIEhvcnbDoXRo?=) Date: Tue, 3 Jun 2014 13:53:35 +0200 Subject: [rules-users] Sharing common rules between KieSession Message-ID: Hi All, We develop a software used by multiple companies. A small part of the rules is slightly different for every single company. We would like to package all of the rules into the application, so the code should - based on environment information - decide, which ones to load (using KieClasspathContainer). KieServices kieServices = KieServices.Factory.get(); KieContainer kContainer = kieServices.getKieClasspathContainer(); KieSession kSession = kContainer.newKieSession("foo-company"); Since ~90% of the rules is the same, I'm wondering what the best approach could be in this situation: duplicating common rules in every KieSession package seems to be a very bad idea. Say I define a set of general rules in* rules.common* package and rules specific to company Foo (*rules.foo*) and Bar (*rules.bar*), is there any way to load and merge the two into a single KieSession? Could I somehow say, "please give me the rules from rules.common and rules.foo"? I know that I could use the low level APIs to load rule files individually, but that is something I would like to avoid. Is there any better solution for this? Thanks, Peter Is there any way to load multiple KieSessions and combine them into one? For example, if there are companies Foo and Bar, could I For the application should -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140603/2f9bb9f6/attachment.html From h.peter at mailbox.hu Tue Jun 3 08:16:15 2014 From: h.peter at mailbox.hu (=?UTF-8?B?UMOpdGVyIEdlcmdlbHksIEhvcnbDoXRo?=) Date: Tue, 3 Jun 2014 14:16:15 +0200 Subject: [rules-users] ruleflow-group vs. agenda-group vs. activation-group ? Message-ID: Hi All, I've been experimenting with agenda-group and ruleflow-group features and I am now a bit confused. The documentation states that agenda-group and ruleflow-group features have been merged, but I'm not sure how this relates to activation groups. ruleflow-groups used to be a rule-flow feature, driven by the .RF file, requiring JBPM engine behind the scenes. Agenda-group work without the presence of JBPM: does it mean we can use the RF file for visualizing the agenda-groups as well? Could someone please shed some light on the differences between these constructs? Which one is the currently recommended approach (when?) for controlling rule execution flow? Thanks, Peter -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140603/6de0eb77/attachment.html From ufos at comcast.net Tue Jun 3 08:27:56 2014 From: ufos at comcast.net (J Rose) Date: Tue, 3 Jun 2014 05:27:56 -0700 (PDT) Subject: [rules-users] Compilation errors in Drools examples In-Reply-To: <1401787361937-4029826.post@n3.nabble.com> References: <1389382886927-4027650.post@n3.nabble.com> <1401390116681-4029760.post@n3.nabble.com> <1401396802847-4029763.post@n3.nabble.com> <1401400419622-4029765.post@n3.nabble.com> <1401787361937-4029826.post@n3.nabble.com> Message-ID: <1401798476626-4029832.post@n3.nabble.com> Thanks so much for responding! -- View this message in context: http://drools.46999.n3.nabble.com/Compilation-errors-in-Drools-examples-tp4027650p4029832.html Sent from the Drools: User forum mailing list archive at Nabble.com. From mproctor at codehaus.org Tue Jun 3 09:38:34 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Tue, 3 Jun 2014 14:38:34 +0100 Subject: [rules-users] ruleflow-group vs. agenda-group vs. activation-group ? In-Reply-To: References: Message-ID: On 3 Jun 2014, at 13:16, P?ter Gergely, Horv?th wrote: > Hi All, > > I've been experimenting with agenda-group and ruleflow-group features and I am now a bit confused. The documentation states that agenda-group and ruleflow-group features have been merged, but I'm not sure how this relates to activation groups. it doesn?t. That is a separate thing, and unchanged. > > ruleflow-groups used to be a rule-flow feature, driven by the .RF file, requiring JBPM engine behind the scenes. Agenda-group work without the presence of JBPM: does it mean we can use the RF file for visualizing the agenda-groups as well? All it means is that the rule flow now calls setFocus() when it reaches a ruleflow-group. > > Could someone please shed some light on the differences between these constructs? Which one is the currently recommended approach (when?) for controlling rule execution flow? So an ruleflow-group and an agenda-group are now the same thing. RuleFlow is an additional thing to orchestrate the calling of the ruleflow/agenda-group. > > Thanks, > Peter > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From unplaced at gmail.com Tue Jun 3 13:33:34 2014 From: unplaced at gmail.com (kenota) Date: Tue, 3 Jun 2014 10:33:34 -0700 (PDT) Subject: [rules-users] Activation-group ignored when working with events in Drools 6 ? Message-ID: <1401816814028-4029834.post@n3.nabble.com> It seems that activation-group rule attribute is ignored when rule works with events (@role(event)). Example rule file: declare LocalEvent @role(event) end rule "Rule1" activation-group "test" when $event : LocalEvent() then System.out.println("I am rule 1 " + $event); end rule "Rule2" activation-group "test" when $event : LocalEvent() then System.out.println("I am rule 2 " + $event); end If i create event and insert it into KieSession both rules are fired, if i remove @role(event) line then only one rule is fired. I am experiencing this behaviour in 6.0.1.Final and 6.1.0.Beta4, but seems like everything is working as expected in 5.5.0.Final. Is that expected behaviour or a bug? -- View this message in context: http://drools.46999.n3.nabble.com/Activation-group-ignored-when-working-with-events-in-Drools-6-tp4029834.html Sent from the Drools: User forum mailing list archive at Nabble.com. From jpsteinmetz at theworkshop.us.com Tue Jun 3 14:10:06 2014 From: jpsteinmetz at theworkshop.us.com (Steinmetz, Jean-Philippe) Date: Tue, 3 Jun 2014 11:10:06 -0700 Subject: [rules-users] Workbench: Error after cloning repository In-Reply-To: References: Message-ID: Does anyone have an idea why I am getting these compilation errors? This is currently blocking me at the moment and I have been able to find a solution. Thanks! On Fri, May 30, 2014 at 10:51 AM, Steinmetz, Jean-Philippe < jpsteinmetz at theworkshop.us.com> wrote: > Okay I was able to disable strict-mode using by defining the > system-property in JBoss. With that and fixing up some of the imports I was > able to reduce the compilation errors shown in the workbench to just a > couple. > > The errors I get now are: > > Error importing : 'com.mycompany.MyClassUtils' > Error importing : 'org.apache.commons.lang3.time.DateUtils' > [ function isEventOnSameDay (line:18): Only a type can be > imported. com.mycompany.MyClassUtils resolves to a package > isEventOnSameDay (line:24): Only a type can be imported. > org.apache.commons.lang3.time.DateUtils resolves to a package > isEventOnSameDay (line:36): DateUtils cannot be resolved > isEventOnSameDay (line:37): DateUtils cannot be resolved > ] > > The MyClassUtils is a class defined in the same project as the DRL files. > Therefore, assuming the workbench is also compiling/loading the java files > in the classloader it should resolve without issue. The DateUtils class is > a maven dependency and I assume should be loaded by the workbench as well? > Why would the compiler see these classes as packages? > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140603/765fd13e/attachment.html From acraigwest at gmail.com Tue Jun 3 14:13:47 2014 From: acraigwest at gmail.com (A. Craig West) Date: Tue, 3 Jun 2014 14:13:47 -0400 Subject: [rules-users] KnowledgeBuilderFactory.newKnowledgeBuilder(KnowledgeBase kbase) throws exception Message-ID: I had some issues getting my codebase to work in Drools 5.6.0 (it worked in 5.5) so I am now trying the legacy api with 6.0.1Final. When I call: KnowledgeBuilderFactory.newKnowledgeBuilder(KnowledgeBase kbase) I get an exception: java.lang.ClassCastException: org.drools.impl.adapters.KnowledgeBaseAdapter cannot be cast to org.drools.core.impl.KnowledgeBaseImpl From michael.anstis at gmail.com Tue Jun 3 14:25:21 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Tue, 3 Jun 2014 19:25:21 +0100 Subject: [rules-users] Workbench: Error after cloning repository In-Reply-To: References: Message-ID: Can you create a repository that you can share to reproduce the problem? Sent on the move On 3 Jun 2014 19:10, "Steinmetz, Jean-Philippe" < jpsteinmetz at theworkshop.us.com> wrote: > Does anyone have an idea why I am getting these compilation errors? This > is currently blocking me at the moment and I have been able to find a > solution. Thanks! > > > On Fri, May 30, 2014 at 10:51 AM, Steinmetz, Jean-Philippe < > jpsteinmetz at theworkshop.us.com> wrote: > >> Okay I was able to disable strict-mode using by defining the >> system-property in JBoss. With that and fixing up some of the imports I was >> able to reduce the compilation errors shown in the workbench to just a >> couple. >> >> The errors I get now are: >> >> Error importing : 'com.mycompany.MyClassUtils' >> Error importing : 'org.apache.commons.lang3.time.DateUtils' >> [ function isEventOnSameDay (line:18): Only a type can be >> imported. com.mycompany.MyClassUtils resolves to a package >> isEventOnSameDay (line:24): Only a type can be imported. >> org.apache.commons.lang3.time.DateUtils resolves to a package >> isEventOnSameDay (line:36): DateUtils cannot be resolved >> isEventOnSameDay (line:37): DateUtils cannot be resolved >> ] >> >> The MyClassUtils is a class defined in the same project as the DRL files. >> Therefore, assuming the workbench is also compiling/loading the java files >> in the classloader it should resolve without issue. The DateUtils class is >> a maven dependency and I assume should be loaded by the workbench as well? >> Why would the compiler see these classes as packages? >> > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140603/ef9d5c93/attachment.html From mproctor at codehaus.org Tue Jun 3 15:36:59 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Tue, 3 Jun 2014 20:36:59 +0100 Subject: [rules-users] Activation-group ignored when working with events in Drools 6 ? In-Reply-To: <1401816814028-4029834.post@n3.nabble.com> References: <1401816814028-4029834.post@n3.nabble.com> Message-ID: <5C58FAD7-F71B-4484-AC5C-803D7AC1C85A@codehaus.org> We?ll look into it, it may already be fixed by this: https://github.com/sotty/drools/commit/15cfe29d946d7e33520c20b4f3a61bedeeab05cc Mark On 3 Jun 2014, at 18:33, kenota wrote: > It seems that activation-group rule attribute is ignored when rule works with > events (@role(event)). Example rule file: > > > declare LocalEvent > @role(event) > end > > rule "Rule1" > activation-group "test" > when > $event : LocalEvent() > then > System.out.println("I am rule 1 " + $event); > end > > rule "Rule2" > activation-group "test" > when > $event : LocalEvent() > then > System.out.println("I am rule 2 " + $event); > end > > > If i create event and insert it into KieSession both rules are fired, if i > remove @role(event) line then only one rule is fired. > > I am experiencing this behaviour in 6.0.1.Final and 6.1.0.Beta4, but seems > like everything is working as expected in 5.5.0.Final. > > Is that expected behaviour or a bug? > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Activation-group-ignored-when-working-with-events-in-Drools-6-tp4029834.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From raojinghai at gmail.com Tue Jun 3 17:25:13 2014 From: raojinghai at gmail.com (rjh) Date: Tue, 3 Jun 2014 14:25:13 -0700 (PDT) Subject: [rules-users] Compilation errors in Drools examples In-Reply-To: <1401787361937-4029826.post@n3.nabble.com> References: <1389382886927-4027650.post@n3.nabble.com> <1401390116681-4029760.post@n3.nabble.com> <1401396802847-4029763.post@n3.nabble.com> <1401400419622-4029765.post@n3.nabble.com> <1401787361937-4029826.post@n3.nabble.com> Message-ID: <1401830713017-4029839.post@n3.nabble.com> Hi Mario, Thanks for fixing the problem. I just installed the plugin, but this time, it stops doing validation. It doesn't report any error in the .drl file, even for obvious syntax errors. Below is the steps I did: 1. git clone https://github.com/droolsjbpm/droolsjbpm-tools.git 2. cd droolsjbpm-tools/ 3. mvn clean install -DskipTests (the build is successfully) 4. Add a local update site to eclipse. The path is droolsjbpm-tools/drools-eclipse/org.drools.updatesite/target/repository/ 5. Install the plugins. The version number seen after installation is: 6.1.0.201406031754 6. Create a new example Drools project. I intentionally made some mistakes, but there is no error message in eclipse editor. However, if I switch to Rete Tree tab, I get the following message: "Rete Tree Build Error! Reason: java.lang.Exception: Unable to parse rules to show RETE view! 2 build errors. " My environment is same as reported in jira. If you need further information, please let me know. Thanks. Jinghai -- View this message in context: http://drools.46999.n3.nabble.com/Compilation-errors-in-Drools-examples-tp4027650p4029839.html Sent from the Drools: User forum mailing list archive at Nabble.com. From nillx87 at hotmail.com Wed Jun 4 04:09:54 2014 From: nillx87 at hotmail.com (nill) Date: Wed, 4 Jun 2014 01:09:54 -0700 (PDT) Subject: [rules-users] Help write rule drools Message-ID: <1401869394411-4029841.post@n3.nabble.com> My structure is composed of 2 classes (Node, Link) class Node { List out; List in; } class Link { Source node; Target node; } they are inserted as facts in working memory. I have to write a rule that will unite for each node joins the links that have the same destination, and if there is then the inverse must also join the latter. eg. A - link1 -> B A - link2 -> B A - link3 -> C C - link4 -> D B - link5 -> A result A - link1 + link2 +link5 -> B A - link3 -> C C - link4 -> D Can anyone help me? -- View this message in context: http://drools.46999.n3.nabble.com/Help-write-rule-drools-tp4029841.html Sent from the Drools: User forum mailing list archive at Nabble.com. From bijkerkrick at hotmail.com Wed Jun 4 05:08:55 2014 From: bijkerkrick at hotmail.com (dBijkoo) Date: Wed, 4 Jun 2014 02:08:55 -0700 (PDT) Subject: [rules-users] After numerous of different approaches I am looking for some help Message-ID: <1401872935608-4029842.post@n3.nabble.com> I'm dealing with the problem and I am looking for some help. I thoroughly studied the documentation and tried several different approaches myself but can't seem to get it working the way i want it to work. Let me start by describing the problem: Observation has a duration which is a multiplication of 5 (minutes), besides this it has one or more required disciplines (explained later). ScheduleBlockPeriod is a period of 5 minutes which is connected to a scheduleBlock ScheduleBlock contains a list of disciplines which can be performed in this block (there can be 1..* scheduleBlocks) Explanation: An observation has to be planned into one or more scheduleBlockPeriod(s) since a observations duration can be bigger then a scheduleBlockPeriods period. I checked out the VRP application and based my model on that. The reason why scheduleBlockPeriod is chained has to do with the amount of periods there are. I will write a custom move at some point which limits the nextScheduleBlockperiod to only select a period which is from the same ScheduleBlock and is right after the current one. Below I added a classdiagram how i would want it to work: After I run a construction heuristic on the program implemented as described in the classdiagram it tells me the solution is uninitialized, which is obvious because it assigns 1 scheduleBlockPeriod to the Observation. Because the duration of the observation is 5 minutes(the same as the duration of a scheduleBlockPeriod). This makes the chained variable nextScheduleBlockPeriod null, which it should be since it is 1 scheduleBlockPeriod "long". So basically im wondering if there is some sort of work around for this or perhaps someone is able to tell me that I am totally modelling it the wrong way. -- View this message in context: http://drools.46999.n3.nabble.com/After-numerous-of-different-approaches-I-am-looking-for-some-help-tp4029842.html Sent from the Drools: User forum mailing list archive at Nabble.com. From mail2stehle at gmail.com Wed Jun 4 05:29:17 2014 From: mail2stehle at gmail.com (SebastianStehle) Date: Wed, 4 Jun 2014 02:29:17 -0700 (PDT) Subject: [rules-users] Fusion, Insert Events with timestamp in the past. Message-ID: <1401874157681-4029843.post@n3.nabble.com> Hi, I am working on an existing drools project. We have a lot of rules with "after" or "not after" relationships. One of the problems I run into is when updating the rules. At the moment a new session will be created and all facts are inserted from the old to the new session. But something does not work in the scenario. To reproduce the problem I made a simple test with the following rule: rule "not after" when $message : DroolsSimulationMessage(value == 1) not (DroolsSimulationMessage(value == 2, this after [1s, 10s] $message)) then end I inserted an event with a timestamp 5 seconds in the past and I expect the rule to be activated 5 seconds after the event was inserted. But in my scenario it does not work, the rule is activated after 10 seconds. This is a very important point to make the current update progress work. Should it work and if not is there a better way to realize rule-updates? Thanks you in advance, Sebastian -- View this message in context: http://drools.46999.n3.nabble.com/Fusion-Insert-Events-with-timestamp-in-the-past-tp4029843.html Sent from the Drools: User forum mailing list archive at Nabble.com. From mail2stehle at gmail.com Wed Jun 4 05:32:11 2014 From: mail2stehle at gmail.com (SebastianStehle) Date: Wed, 4 Jun 2014 02:32:11 -0700 (PDT) Subject: [rules-users] Fusion, Insert Events with timestamp in the past. In-Reply-To: <1401874157681-4029843.post@n3.nabble.com> References: <1401874157681-4029843.post@n3.nabble.com> Message-ID: <1401874331987-4029844.post@n3.nabble.com> I have forgotten to mention that the drools version is 5.5.0.Final, the test is running in stream mode with a realtime clock. -- View this message in context: http://drools.46999.n3.nabble.com/Fusion-Insert-Events-with-timestamp-in-the-past-tp4029843p4029844.html Sent from the Drools: User forum mailing list archive at Nabble.com. From wolfgang.laun at gmail.com Wed Jun 4 05:47:42 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Wed, 4 Jun 2014 11:47:42 +0200 Subject: [rules-users] Help write rule drools In-Reply-To: <1401869394411-4029841.post@n3.nabble.com> References: <1401869394411-4029841.post@n3.nabble.com> Message-ID: How do you want the result? Printed lines on standard output? One for each pair of connected nodes, as you have shown it below "result"? Or collected in another fact? -W On 4 June 2014 10:09, nill wrote: > My structure is composed of 2 classes (Node, Link) > class Node { > List out; > List in; > } > class Link { > Source node; > Target node; > } > > they are inserted as facts in working memory. > > I have to write a rule that will unite for each node joins the links that > have the same destination, and if there is then the inverse must also join > the latter. > > eg. > A - link1 -> B > A - link2 -> B > A - link3 -> C > C - link4 -> D > B - link5 -> A > > result > A - link1 + link2 +link5 -> B > A - link3 -> C > C - link4 -> D > > Can anyone help me? > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Help-write-rule-drools-tp4029841.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From wolfgang.laun at gmail.com Wed Jun 4 05:54:26 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Wed, 4 Jun 2014 11:54:26 +0200 Subject: [rules-users] Fusion, Insert Events with timestamp in the past. In-Reply-To: <1401874331987-4029844.post@n3.nabble.com> References: <1401874157681-4029843.post@n3.nabble.com> <1401874331987-4029844.post@n3.nabble.com> Message-ID: On 4 June 2014 11:32, SebastianStehle wrote: > I have forgotten to mention that the drools version is 5.5.0.Final, the test > is running in stream mode with a realtime clock. That's just the point. In real time, the past is past. For re-living the past with a different set of rules, you should consider using a pseudo-clock. Now time is under the control of the program, and you can replay the past and then slip into "second-hand real-time mode". -W > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Fusion-Insert-Events-with-timestamp-in-the-past-tp4029843p4029844.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From mail2stehle at gmail.com Wed Jun 4 05:59:40 2014 From: mail2stehle at gmail.com (SebastianStehle) Date: Wed, 4 Jun 2014 02:59:40 -0700 (PDT) Subject: [rules-users] Fusion, Insert Events with timestamp in the past. In-Reply-To: References: <1401874157681-4029843.post@n3.nabble.com> <1401874331987-4029844.post@n3.nabble.com> Message-ID: <1401875980649-4029847.post@n3.nabble.com> I see that the update process is not optimal, but can you tell me if my simple example should work or not? We get measurements from sensors. Because of network delay and other intermediate processes the timestamp of the measurements can be some seconds behind the time of the insert. In this case the rules with after would not work correctly as well. I am new to drools, so there is a high chance that I make some mistakes. -- View this message in context: http://drools.46999.n3.nabble.com/Fusion-Insert-Events-with-timestamp-in-the-past-tp4029843p4029847.html Sent from the Drools: User forum mailing list archive at Nabble.com. From nillx87 at hotmail.com Wed Jun 4 06:12:25 2014 From: nillx87 at hotmail.com (nill) Date: Wed, 4 Jun 2014 03:12:25 -0700 (PDT) Subject: [rules-users] Help write rule drools In-Reply-To: References: <1401869394411-4029841.post@n3.nabble.com> Message-ID: <1401876745955-4029848.post@n3.nabble.com> One for each pair of connected nodes. -- View this message in context: http://drools.46999.n3.nabble.com/Help-write-rule-drools-tp4029841p4029848.html Sent from the Drools: User forum mailing list archive at Nabble.com. From dewashish at nirvana-sol.com Wed Jun 4 06:52:39 2014 From: dewashish at nirvana-sol.com (Chaturvedi Dewashish) Date: Wed, 4 Jun 2014 16:22:39 +0530 Subject: [rules-users] Grouping of rule and range check In-Reply-To: References: Message-ID: <050BB768C9644EC48F79112AED3DDDFB@algotech.com> Hi, I have a requirement which is as 1. There are three rules lets say rule1, rule2 and rule3 2. rule1 says there is a person Age < 40 Age >= 20 Then do something 3. rule2 says there is a person Age < 60 Age >= 40 Then do something else 4. rule3 says there is a person Age >= 60 Then do something new Now I am feeding person object as whole as event based from other application. So the requirement in form of test cases is 1. Age = 22 - do something 2. Age = 25 - Nothing as rule1 is already triggered and "do something" done 3. Age = 42 - do something else 4. Age = 45 - Nothing as rule1 is already triggered and "do something else" done 4. Age = 65 - do something new 5. Age = 68 - nothing 6. Age = 25 - do something 7. Age = 45 - do something else Is there any way to do this using the guvnor UI? Thanks and regards, Chaturvedi Dewashish Nirvana Solutions From matteo.mortari at gmail.com Wed Jun 4 07:54:13 2014 From: matteo.mortari at gmail.com (Matteo Mortari) Date: Wed, 4 Jun 2014 13:54:13 +0200 Subject: [rules-users] Fusion, Insert Events with timestamp in the past. In-Reply-To: <1401875980649-4029847.post@n3.nabble.com> References: <1401874157681-4029843.post@n3.nabble.com> <1401874331987-4029844.post@n3.nabble.com> <1401875980649-4029847.post@n3.nabble.com> Message-ID: Hi Sebastian, As per your last email, your use case sounds very similar to my use case scenario and I would second the suggestion from Wolfgang, switch from realtime to pseudoclock may help. I think the thread "[rules-users] Question about Fusion pseudoclock" in the mailing list could help, and in my use case scenario I found the following code example *extremely* valuable because I do mostly same https://github.com/droolsjbpm/droolsjbpm-contributed-experiments/blob/master/twittercbr/src/main/java/org/drools/examples/twittercbr/TwitterCBROffline.java I hope this helps you too. This approach would solve for "network delay issue" but will induce another problem, in case "network" never restores or delay gets outrageous. Ciao MM On 4 Jun 2014 12:00, "SebastianStehle" wrote: > I see that the update process is not optimal, but can you tell me if my > simple example should work or not? > > We get measurements from sensors. Because of network delay and other > intermediate processes the timestamp of the measurements can be some > seconds > behind the time of the insert. In this case the rules with after would not > work correctly as well. > > I am new to drools, so there is a high chance that I make some mistakes. > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Fusion-Insert-Events-with-timestamp-in-the-past-tp4029843p4029847.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140604/d5095f9a/attachment.html From mail2stehle at gmail.com Wed Jun 4 08:07:21 2014 From: mail2stehle at gmail.com (SebastianStehle) Date: Wed, 4 Jun 2014 05:07:21 -0700 (PDT) Subject: [rules-users] Fusion, Insert Events with timestamp in the past. In-Reply-To: References: <1401874157681-4029843.post@n3.nabble.com> <1401874331987-4029844.post@n3.nabble.com> <1401875980649-4029847.post@n3.nabble.com> Message-ID: <1401883641989-4029852.post@n3.nabble.com> Thanks for your answer. We already use the pseudo-clock for running unit tests, but there might be some other problems: 1. If you do not move forward step by step you can miss the exact times when using negative patterns. e.g. in my example you would need to step forward with AdvanceTiem with about 100ms or 1sec or so. 2. We also use timers, this does not work with the pseudo clock as well, same problem like above. In my understand the example should work, if not I dont see what the @timestamp config is for. -- View this message in context: http://drools.46999.n3.nabble.com/Fusion-Insert-Events-with-timestamp-in-the-past-tp4029843p4029852.html Sent from the Drools: User forum mailing list archive at Nabble.com. From bijkerkrick at hotmail.com Wed Jun 4 08:53:30 2014 From: bijkerkrick at hotmail.com (dBijkoo) Date: Wed, 4 Jun 2014 05:53:30 -0700 (PDT) Subject: [rules-users] After numerous of different approaches I am looking for some help In-Reply-To: <1401872935608-4029842.post@n3.nabble.com> References: <1401872935608-4029842.post@n3.nabble.com> Message-ID: <1401886410493-4029853.post@n3.nabble.com> found the problem with the uninitialized solution. I didnt realise the "anchor" shouldn't be a PlanningEntity annotated class. I thought it simply was a PlanningEntity annotated class with next object being null, which would indicate to optaplanner that it would be the end of the linked chain. -- View this message in context: http://drools.46999.n3.nabble.com/After-numerous-of-different-approaches-I-am-looking-for-some-help-tp4029842p4029853.html Sent from the Drools: User forum mailing list archive at Nabble.com. From sushantgoyal25 at yahoo.co.in Wed Jun 4 09:00:18 2014 From: sushantgoyal25 at yahoo.co.in (Sushant Goyal) Date: Wed, 4 Jun 2014 21:00:18 +0800 (SGT) Subject: [rules-users] Monitoring applications using Drools Message-ID: <1401886818.18964.YahooMailNeo@web190503.mail.sg3.yahoo.com> Hi, ? I am trying to understand how Drools can be used to monitor events over a period of time using Sliding Time Windows. I have created a rule to sound an alarm when average temperature read from a sensor is above 25 degrees (threshold) over a time period of 5 minutes. The rule makes of use of the Stream processing mode so that continuous stream of events could be processed. ? Below is how my rule looks like: ? //declare any global variables here globaljava.lang.StringBuilder alertMessage ? // add declaration to change the Fact into an Event declareSensorReading ?????? @role(event) end ? /* Alert when average temperature is above 25 ?? over a time period of 5 minutes */ rule"TemperatureAlarm1" ? ??? when ??????? //conditions ??????? $averageTemp : Number(doubleValue > 25.00)? ??????? ?????????????????? fromaccumulate(SensorReading($temp : temperature) ??????? ????????????????????????? over window:time(5m) fromentry-point "Temperature Reading", average($temp)) ??? then ??????? //actions ?????? ?System.out.println("Fired rule: "+ kcontext.getRule().getName()); ??????? alertMessage.append("Threshold temperature breached!!"+ ??????? ?????????????????? "\nTurn on the Air Conditioner"+ ??????? ?????????????????? "\nAverage temperature over 5 minutes is above 25 ("+ $averageTemp.intValue() + ")\n"); ??????? end ? And below is the snapshot of the fact (SensorReading) which is inserted as an event in the working memory: ? publicclassSensorReading { ? ?????? privatedoubletemperature; ?????? ?????? publicSensorReading(){} ?????? ?????? publicSensorReading(doubletemp){ ????????????? this.temperature= temp; ?????? } ? ?????? // getters and setters???? } ? ? In order to test the rule, I am using Pseudo Clock with Stream processing turned on. I am inserting three SensorReading objects in the working memory with temperature values as (24, 26, 28) after every minute, so that the average of the temperatures is above threshold and the rule is invoked. After the objects are inserted in the working memory, I am deliberately advancing the Pseudo clock by another 1 minute, so that the total time elapsed is 4 minutes. The rule works as expected with the above test setup and prints the average value as 26 on the console. ? However, if I advance the clock by 2 minutes instead of 1 minute after three sensor reading objects have been inserted in the working memory (after every 1 minute interval), the rule gets invoked but the average value gets changed to 27 (26 + 28 / 2 == 27). Looks like the first temperature reading is getting ignored by the rule despite the fact that it falls well within the specified time range of 5 minutes. Below is the snapshot of my test class: ? publicclassTemperatureAlarmTest { ? ?????? staticKnowledgeBase kbase; ?????? staticStatefulKnowledgeSession ksession; ?????? staticKnowledgeRuntimeLogger logger; ?????? staticSessionPseudoClock clock; ? ?????? @BeforeClass ?????? publicstaticvoidsetupKsession() { ????????????? try{ ???????????????????? // load up the knowledge base ???????????????????? kbase= readKnowledgeBase(); ???????????????????? ksession= readKnowldedeSession(kbase); ???????????????????? clock= ksession.getSessionClock(); ? ???????????????????? logger= KnowledgeRuntimeLoggerFactory.newThreadedFileLogger(ksession, "log/Errors", 500); ? ????????????? } catch(Throwable t) { ???????????????????? t.printStackTrace(); ????????????? } ?????? } ? ?????? /** ?????? ?* Create a new Stateful knowledge Session with a pseudo clock from the ?????? ?* knowledge base ?????? ?* ?????? ?* @paramkbase ?????? ?* @return ?????? ?* @throwsException ?????? ?*/ ?????? privatestaticStatefulKnowledgeSession readKnowldedeSession( ???????????????????? KnowledgeBase kbase) throwsException { ? ????????????? // Knowledge Session Configuration ????????????? KnowledgeSessionConfiguration config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(); ????????????? config.setOption(ClockTypeOption.get("pseudo")); ????????????? returnkbase.newStatefulKnowledgeSession(config, null); ? ?????? } ? ?????? @AfterClass ?????? publicstaticvoidcloseKsession() { ????????????? try{ ???????????????????? // load up the knowledge base ???????????????????? logger.close(); ???????????????????? ksession.dispose(); ? ????????????? } catch(Throwable t) { ???????????????????? t.printStackTrace(); ????????????? } ?????? } ?????? ?????? @Test ?????? publicvoidTemperatureAlarm1_Test() { ? ????????????? // Create Temperature list ????????????? ArrayList tempMetrics = newArrayList(); ????????????? doubletemp = 24.00; ? ????????????? while(tempMetrics.size() < 3) { ???????????????????? tempMetrics.add(newSensorReading(temp)); ???????????????????? temp += 2; ????????????? } ????????????? System.out.println("Size of tempMetrics List: "+tempMetrics.size()+"\n"); ????????????? System.out.println("First Temp reading: "+tempMetrics.get(0).getTemperature()); ????????????? System.out.println("Second Temp reading: "+tempMetrics.get(1).getTemperature()); ????????????? System.out.println("Third Temp reading: "+tempMetrics.get(2).getTemperature()+"\n"); ????????????? ????????????? // Separate stream for inserts ????????????? WorkingMemoryEntryPoint temperatureStream = ksession.getWorkingMemoryEntryPoint( "Temperature Reading"); ????????????? ????????????? // Create fact handle list ????????????? ArrayList factHandleList = newArrayList(); ????????????? ? ????????????? // Insert objects into working memory while advancing the clock ????????????? for(inti = 0; i < tempMetrics.size(); i++) { ???????????????????? factHandleList.add(temperatureStream.insert(tempMetrics.get(i))); ???????????????????? clock.advanceTime(1, TimeUnit.MINUTES); ???????????????????? System.out.println("Time advances by 1 minute"); ????????????? } ????????????? System.out.println("Fact Count is: "+temperatureStream.getFactCount()); ????????????? System.out.println("Fact Entry Point is: "+temperatureStream.getEntryPointId()); ????????????? System.out.println("Size of FactHandleList: "+factHandleList.size()+"\n"); ????????????? ????????????? clock.advanceTime(1, TimeUnit.MINUTES);???????? //change in advanced time alters the rule behavior ????????????? ????????????? StringBuilder stringBuilder = newStringBuilder(); ????????????? ksession.setGlobal("alertMessage", stringBuilder); ????????????? ksession.fireAllRules(); ? ????????????? // Remove facts ????????????? for(inti = 0; i < factHandleList.size(); i++) { ???????????????????? temperatureStream.retract(factHandleList.get(i)); ????????????? } ????????????? System.out.println("After Removing facts"); ????????????? System.out.println("Fact Count is: "+temperatureStream.getFactCount()); ????????????? ????????????? String result = stringBuilder.substring(0, 32); ????????????? System.out.println("Alert Message is: \n"+ stringBuilder.toString()); ????????????? assertEquals("Alert Message is: ", "Threshold temperature breached!!", result); ?????? } ?????? ?????? /** ?????? ?* Create the knowledge base with stream processing turned on. ?????? ?* ?????? ?* @return ?????? ?* @throwsException ?????? ?*/ ?????? privatestaticKnowledgeBase readKnowledgeBase() throwsException { ????????????? KnowledgeBuilder kbuilder = KnowledgeBuilderFactory.newKnowledgeBuilder(); ????????????? kbuilder.add(ResourceFactory.newClassPathResource("TemperatureAlarm1.drl"),ResourceType.DRL); ????????????? hasErrors(kbuilder); ????????????? ????????????? // Stream processing turned on ????????????? KnowledgeBaseConfiguration conf = KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); ????????????? conf.setOption(EventProcessingOption.STREAM); ????????????? KnowledgeBase kbase = KnowledgeBaseFactory.newKnowledgeBase(conf); ????????????? hasErrors(kbuilder); ????????????? kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); ? ????????????? returnkbase; ?????? } ? ?????? /** ?????? ?* Report errors if any ?????? ?* ?????? ?* @paramkbuilder ?????? ?* @throwsException ?????? ?*/ ?????? privatestaticvoidhasErrors(KnowledgeBuilder kbuilder) throwsException { ????????????? KnowledgeBuilderErrors errors = kbuilder.getErrors(); ????????????? if(errors.size() > 0) { ???????????????????? for(KnowledgeBuilderError error : errors) { ?????????????????????????? System.err.println(error); ???????????????????? } ???????????????????? thrownewIllegalArgumentException("Could not parse knowledge."); ????????????? } ? ?????? } ? } ? ? Could anyone please help explain this change in the behavior of the rule? ? Regards, Sushant -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140604/8ccb90d1/attachment-0001.html From matteo.mortari at gmail.com Wed Jun 4 09:55:59 2014 From: matteo.mortari at gmail.com (Matteo Mortari) Date: Wed, 4 Jun 2014 15:55:59 +0200 Subject: [rules-users] Fusion, Insert Events with timestamp in the past. In-Reply-To: <1401883641989-4029852.post@n3.nabble.com> References: <1401874157681-4029843.post@n3.nabble.com> <1401874331987-4029844.post@n3.nabble.com> <1401875980649-4029847.post@n3.nabble.com> <1401883641989-4029852.post@n3.nabble.com> Message-ID: Concerning point #1, I'm not sure I understand what you mean, I'm sorry, but might be connected to my last statement about "this approach would solve for "network delay issue" but will induce another problem (...)" Because basically with this approach I personally found that also: a. data is buffered and inserted in chronological order b. pseudoclock is advanced anyway after a "deathwatch" period, normally to activate negative patterns as you mention - thus at the same time discarding data if arriving after the deathwatch already triggered c. pseudoclock is advanced anyway to trigger timers of rules This is the part which gets complex and the reason behind I mentioned I do mostly same as code example linked. In my use case scenario, implementation of deathwatch + advance of pseudoclock anyway, do fit the bill; but of course result may vary depending case by case. Concerning point #2 in my use case timer of rules do work, even if I use pseudoclock. But again, result may differ depending on the rules specification, I suppose. Sorry I cannot be of more help, I thought worthy share my experience anyway because I felt was very similar scenario, and fortunately the system behaves as expected. Ciao MM On Wed, Jun 4, 2014 at 2:07 PM, SebastianStehle wrote: > Thanks for your answer. > > We already use the pseudo-clock for running unit tests, but there might be > some other problems: > > 1. If you do not move forward step by step you can miss the exact times > when > using negative patterns. e.g. in my example you would need to step forward > with AdvanceTiem with about 100ms or 1sec or so. > > 2. We also use timers, this does not work with the pseudo clock as well, > same problem like above. > > In my understand the example should work, if not I dont see what the > @timestamp config is for. > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Fusion-Insert-Events-with-timestamp-in-the-past-tp4029843p4029852.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140604/bf0c3115/attachment.html From matteo.mortari at gmail.com Wed Jun 4 10:00:05 2014 From: matteo.mortari at gmail.com (Matteo Mortari) Date: Wed, 4 Jun 2014 16:00:05 +0200 Subject: [rules-users] Fusion, Insert Events with timestamp in the past. In-Reply-To: References: <1401874157681-4029843.post@n3.nabble.com> <1401874331987-4029844.post@n3.nabble.com> <1401875980649-4029847.post@n3.nabble.com> <1401883641989-4029852.post@n3.nabble.com> Message-ID: Errata Corrige: "Because basically with this approach I personally found that also *you have to*:" I missed the *you have to* bit, sorry. On Wed, Jun 4, 2014 at 3:55 PM, Matteo Mortari wrote: > Concerning point #1, I'm not sure I understand what you mean, I'm sorry, > but might be connected to my last statement about "this approach would > solve for "network delay issue" but will induce another problem (...)" > > Because basically with this approach I personally found that also: > a. data is buffered and inserted in chronological order > b. pseudoclock is advanced anyway after a "deathwatch" period, normally to > activate negative patterns as you mention - thus at the same time > discarding data if arriving after the deathwatch already triggered > c. pseudoclock is advanced anyway to trigger timers of rules > > This is the part which gets complex and the reason behind I mentioned I > do mostly same as code example linked. > > In my use case scenario, implementation of deathwatch + advance of > pseudoclock anyway, do fit the bill; but of course result may vary > depending case by case. > > > Concerning point #2 in my use case timer of rules do work, even if I use > pseudoclock. But again, result may differ depending on the rules > specification, I suppose. > > > Sorry I cannot be of more help, I thought worthy share my experience > anyway because I felt was very similar scenario, and fortunately the system > behaves as expected. > > Ciao > MM > > > On Wed, Jun 4, 2014 at 2:07 PM, SebastianStehle > wrote: > >> Thanks for your answer. >> >> We already use the pseudo-clock for running unit tests, but there might be >> some other problems: >> >> 1. If you do not move forward step by step you can miss the exact times >> when >> using negative patterns. e.g. in my example you would need to step forward >> with AdvanceTiem with about 100ms or 1sec or so. >> >> 2. We also use timers, this does not work with the pseudo clock as well, >> same problem like above. >> >> In my understand the example should work, if not I dont see what the >> @timestamp config is for. >> >> >> >> -- >> View this message in context: >> http://drools.46999.n3.nabble.com/Fusion-Insert-Events-with-timestamp-in-the-past-tp4029843p4029852.html >> Sent from the Drools: User forum mailing list archive at Nabble.com. >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140604/062aa4e9/attachment.html From wolfgang.laun at gmail.com Wed Jun 4 10:28:35 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Wed, 4 Jun 2014 16:28:35 +0200 Subject: [rules-users] Help write rule drools In-Reply-To: <1401876745955-4029848.post@n3.nabble.com> References: <1401869394411-4029841.post@n3.nabble.com> <1401876745955-4029848.post@n3.nabble.com> Message-ID: On 04/06/2014, nill wrote: > One for each pair of connected nodes. One what? Where? With what content? -W > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Help-write-rule-drools-tp4029841p4029848.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From mail2stehle at gmail.com Wed Jun 4 10:32:43 2014 From: mail2stehle at gmail.com (SebastianStehle) Date: Wed, 4 Jun 2014 07:32:43 -0700 (PDT) Subject: [rules-users] Fusion, Insert Events with timestamp in the past. In-Reply-To: References: <1401874157681-4029843.post@n3.nabble.com> <1401874331987-4029844.post@n3.nabble.com> <1401875980649-4029847.post@n3.nabble.com> <1401883641989-4029852.post@n3.nabble.com> Message-ID: <1401892363539-4029858.post@n3.nabble.com> We made another test with the pseudclock where we advanced the time after each measurement. Lets say we have the two measurements, the first at 10am and the second at 11am. Based on the rule before, you would expect that the rule fires at 10:10am because no other event is inserted. But what happens was that the rule is activated at 11am, because the clock has not been advanced in the meantime. This makes totally sense for me, so I thought you might need another thread or so. If you implement it like this (pseudo-code), it works fine: session.insert(first); clock.advanceTime(first.getTime()); while (time < second.getTime()) { clock.advanceTime(100); time.add(100ms); } session.insert(second); clock.advanceTime(second.getTime()); What makes our scenario very complicated is that we mix realtime and pseudo-time a little bit. For example we have timers that trigger at midnight or so (in realtime) and we have measurmenets with a delay of some seconds, where we need a pseudoclock. I have no real idea how this can be realized, but I still wonder, what @timestamp is for, if it cannot combined with the normal clock. -- View this message in context: http://drools.46999.n3.nabble.com/Fusion-Insert-Events-with-timestamp-in-the-past-tp4029843p4029858.html Sent from the Drools: User forum mailing list archive at Nabble.com. From wolfgang.laun at gmail.com Wed Jun 4 10:59:00 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Wed, 4 Jun 2014 16:59:00 +0200 Subject: [rules-users] Fusion, Insert Events with timestamp in the past. In-Reply-To: <1401875980649-4029847.post@n3.nabble.com> References: <1401874157681-4029843.post@n3.nabble.com> <1401874331987-4029844.post@n3.nabble.com> <1401875980649-4029847.post@n3.nabble.com> Message-ID: On 04/06/2014, SebastianStehle wrote: > I see that the update process is not optimal, but can you tell me if my > simple example should work or not? > > We get measurements from sensors. Because of network delay and other > intermediate processes the timestamp of the measurements can be some > seconds > behind the time of the insert. How can this be? t(measurement) < t(insert), which is "before". As long as network delay is uniform for all sources, it doesn't matter. If there are different sensor positions with data being relayed over different links, delays may depend on the source. But in this case, you are up the creek anyway. -W > In this case the rules with after would not > work correctly as well. > > I am new to drools, so there is a high chance that I make some mistakes. > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Fusion-Insert-Events-with-timestamp-in-the-past-tp4029843p4029847.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From mail2stehle at gmail.com Wed Jun 4 11:04:25 2014 From: mail2stehle at gmail.com (SebastianStehle) Date: Wed, 4 Jun 2014 08:04:25 -0700 (PDT) Subject: [rules-users] Fusion, Insert Events with timestamp in the past. In-Reply-To: References: <1401874157681-4029843.post@n3.nabble.com> <1401874331987-4029844.post@n3.nabble.com> <1401875980649-4029847.post@n3.nabble.com> Message-ID: <1401894265969-4029860.post@n3.nabble.com> Yes, t(measurment) < t(insert). The sensors communicate with the server with 3g, which might be slow in some situations. I simplify my question: Can I use @timestamp with realtime-clocks? -- View this message in context: http://drools.46999.n3.nabble.com/Fusion-Insert-Events-with-timestamp-in-the-past-tp4029843p4029860.html Sent from the Drools: User forum mailing list archive at Nabble.com. From wolfgang.laun at gmail.com Wed Jun 4 11:09:13 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Wed, 4 Jun 2014 17:09:13 +0200 Subject: [rules-users] Fusion, Insert Events with timestamp in the past. In-Reply-To: <1401892363539-4029858.post@n3.nabble.com> References: <1401874157681-4029843.post@n3.nabble.com> <1401874331987-4029844.post@n3.nabble.com> <1401875980649-4029847.post@n3.nabble.com> <1401883641989-4029852.post@n3.nabble.com> <1401892363539-4029858.post@n3.nabble.com> Message-ID: On 04/06/2014, SebastianStehle wrote: > We made another test with the pseudclock where we advanced the time after > each measurement. > > Lets say we have the two measurements, the first at 10am and the second at > 11am. Based on the rule before, you would expect that the rule fires at > 10:10am because no other event is inserted. But what happens was that the > rule is activated at 11am, because the clock has not been advanced in the > meantime. This makes totally sense for me, so I thought you might need > another thread or so. Absolutely. > > If you implement it like this (pseudo-code), it works fine: > > session.insert(first); > clock.advanceTime(first.getTime()); > > while (time < second.getTime()) { > clock.advanceTime(100); > time.add(100ms); > } > > session.insert(second); > clock.advanceTime(second.getTime()); Right, this should take care of the timers. > > What makes our scenario very complicated is that we mix realtime and > pseudo-time a little bit. For example we have timers that trigger at > midnight or so (in realtime) and we have measurmenets with a delay of some > seconds, where we need a pseudoclock. I have no real idea how this can be > realized, but I still wonder, what @timestamp is for, if it cannot combined > with the normal clock. The time of measurements is one progress of time, and when you need a midnight event, you should ask one of the measurement providers. If midnight is a more or less arbitrary point in that progress of time, you can use your local clock. There is an European norm that deals with the reliability of networks. If you have to expect delays, you may have to detect them, and decide what counter-action to employ. IIRC, at the start if this thread there was the issue of updating rules. There is the option of changing the rules "on the fly", without creating a new session. And there may be a different approach, deriving "state" from a sequence of events, rather than trying to keep the sequence with its timestamps - but this depends on what the events signify. -W > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Fusion-Insert-Events-with-timestamp-in-the-past-tp4029843p4029858.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From wolfgang.laun at gmail.com Wed Jun 4 11:11:40 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Wed, 4 Jun 2014 17:11:40 +0200 Subject: [rules-users] Fusion, Insert Events with timestamp in the past. In-Reply-To: <1401894265969-4029860.post@n3.nabble.com> References: <1401874157681-4029843.post@n3.nabble.com> <1401874331987-4029844.post@n3.nabble.com> <1401875980649-4029847.post@n3.nabble.com> <1401894265969-4029860.post@n3.nabble.com> Message-ID: A @timestamp is just an increasing sequence of values - it has no other implications. Cloud vs. stream mode determines how these values should be ordered on insertion. -W On 04/06/2014, SebastianStehle wrote: > Yes, t(measurment) < t(insert). The sensors communicate with the server > with > 3g, which might be slow in some situations. > > I simplify my question: Can I use @timestamp with realtime-clocks? > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Fusion-Insert-Events-with-timestamp-in-the-past-tp4029843p4029860.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From wolfgang.laun at gmail.com Wed Jun 4 11:16:32 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Wed, 4 Jun 2014 17:16:32 +0200 Subject: [rules-users] Grouping of rule and range check In-Reply-To: <050BB768C9644EC48F79112AED3DDDFB@algotech.com> References: <050BB768C9644EC48F79112AED3DDDFB@algotech.com> Message-ID: On 04/06/2014, Chaturvedi Dewashish wrote: > Hi, > > I have a requirement which is as > 1. There are three rules lets say rule1, rule2 and rule3 > 2. rule1 says there is a person > Age < 40 > Age >= 20 > Then do something > 3. rule2 says there is a person > Age < 60 > Age >= 40 > Then do something else > 4. rule3 says there is a person > Age >= 60 > Then do something new > > Now I am feeding person object as whole as event based from other > application. > So the requirement in form of test cases is > 1. Age = 22 - do something > 2. Age = 25 - Nothing as rule1 is already triggered and "do something" done Does a person's age increase by three years while your program is running? If the age is for a different person: why should nothing be done for the second person? This doesn't make sense. -W > 3. Age = 42 - do something else > 4. Age = 45 - Nothing as rule1 is already triggered and "do something else" > done > 4. Age = 65 - do something new > 5. Age = 68 - nothing > 6. Age = 25 - do something > 7. Age = 45 - do something else > > Is there any way to do this using the guvnor UI? > > > Thanks and regards, > Chaturvedi Dewashish > Nirvana Solutions > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From natalia.iglesias at casadearriba.net Wed Jun 4 11:21:05 2014 From: natalia.iglesias at casadearriba.net (=?windows-1252?Q?Natalia_C._Iglesias?=) Date: Wed, 4 Jun 2014 17:21:05 +0200 Subject: [rules-users] Grouping of rule and range check In-Reply-To: References: Message-ID: Maybe activation groups is the answer for this problem, only one rule fires within an activation group, even if there are many rules "activated" ?matching the conditions. I had the opposite problem, I had defined an activation-group and rules that should fire , didn't. So I guess this could do it for you Regards ? -----Original message----- To:Rules Users List ; From:Wolfgang Laun Sent:Wed 04-06-2014 17:16 Subject:Re: [rules-users] Grouping of rule and range check On 04/06/2014, Chaturvedi Dewashish wrote: > Hi, > > I have a requirement which is as > 1. There are three rules lets say rule1, rule2 and rule3 > 2. rule1 says there is a person > Age < 40 > Age >= 20 > Then do something > 3. rule2 says there is a person > Age < 60 > Age >= 40 > Then do something else > 4. rule3 says there is a person > Age >= 60 > Then do something new > > Now I am feeding person object as whole as event based from other > application. > So the requirement in form of test cases is > 1. Age = 22 - do something > 2. Age = 25 - Nothing as rule1 is already triggered and "do something" done Does a person's age increase by three years while your program is running? If the age is for a different person: why should nothing be done for the second person? This doesn't make sense. -W > 3. Age = 42 - do something else > 4. Age = 45 - Nothing as rule1 is already triggered and "do something else" > done > 4. Age = 65 - do something new > 5. Age = 68 - nothing > 6. Age = 25 - do something > 7. Age = 45 - do something else > > Is there any way to do this using the guvnor UI? > > > Thanks and regards, > Chaturvedi Dewashish > Nirvana Solutions > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > _______________________________________________ rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140604/f7910c19/attachment.html From wolfgang.laun at gmail.com Wed Jun 4 11:31:03 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Wed, 4 Jun 2014 17:31:03 +0200 Subject: [rules-users] Monitoring applications using Drools In-Reply-To: <1401886818.18964.YahooMailNeo@web190503.mail.sg3.yahoo.com> References: <1401886818.18964.YahooMailNeo@web190503.mail.sg3.yahoo.com> Message-ID: Your code does: insert 1st event delay 1 minute insert 2nd event delay 1 minute insert 3rd event delay 1 minute delay (1 or) 2 minutes fire all rules In the second case, 5 minutes have elapsed since the 1st insert. I don't think that this means "that [the 1st insert] falls well within the specified time range" - it is exactly at the beginning of the window, and I'd expect the window to be an interval open at one end - otherwise events smack on the point in time "separating" two intervals would be in both windows. -W On 04/06/2014, Sushant Goyal wrote: > Hi, > > I am > trying to understand how Drools can be used to monitor events over a period > of > time using Sliding Time Windows. I have created a rule to sound an alarm > when > average temperature read from a sensor is above 25 degrees (threshold) over > a > time period of 5 minutes. The rule makes of use of the Stream processing > mode so > that continuous stream of events could be processed. > > Below > is how my rule looks like: > > //declare any global > variables here > globaljava.lang.StringBuilder alertMessage > > // add declaration to > change the Fact into an Event > declareSensorReading > @role(event) > end > > /* Alert when average > temperature is above 25 > over a time period of 5 minutes */ > rule"TemperatureAlarm1" > > when > //conditions > $averageTemp : Number(doubleValue > > 25.00) > fromaccumulate(SensorReading($temp > : temperature) > over > window:time(5m) fromentry-point "Temperature Reading", average($temp)) > then > //actions > System.out.println("Fired rule: > "+ > kcontext.getRule().getName()); > alertMessage.append("Threshold > temperature breached!!"+ > "\nTurn on the > Air Conditioner"+ > "\nAverage > temperature over 5 minutes is above 25 ("+ $averageTemp.intValue() + ")\n"); > > end > > And below > is the snapshot of the fact (SensorReading) which is inserted as an event in > the working memory: > > publicclassSensorReading { > > privatedoubletemperature; > > publicSensorReading(){} > > publicSensorReading(doubletemp){ > this.temperature= temp; > } > > // getters and setters > } > > > In > order to test the rule, I am using Pseudo Clock with Stream processing > turned > on. I am inserting three SensorReading objects in the working memory with > temperature > values as (24, 26, 28) after every minute, so that the average of the > temperatures is above threshold and the rule is invoked. After the objects > are > inserted in the working memory, I am deliberately advancing the Pseudo clock > by > another 1 minute, so that the total time elapsed is 4 minutes. The rule > works > as expected with the above test setup and prints the average value as 26 on > the > console. > > However, > if I advance the clock by 2 minutes instead of 1 minute after three sensor > reading objects have been inserted in the working memory (after every 1 > minute > interval), the rule gets invoked but the average value gets changed to 27 > (26 + > 28 / 2 == 27). Looks like the first temperature reading is getting ignored > by > the rule despite the fact that it falls well within the specified time range > of > 5 minutes. Below is the snapshot of my test class: > > publicclassTemperatureAlarmTest > { > > staticKnowledgeBase kbase; > staticStatefulKnowledgeSession ksession; > staticKnowledgeRuntimeLogger logger; > staticSessionPseudoClock clock; > > @BeforeClass > publicstaticvoidsetupKsession() { > try{ > // load up the > knowledge base > kbase= readKnowledgeBase(); > ksession= readKnowldedeSession(kbase); > clock= ksession.getSessionClock(); > > logger= > KnowledgeRuntimeLoggerFactory.newThreadedFileLogger(ksession, "log/Errors", > 500); > > } catch(Throwable t) { > t.printStackTrace(); > } > } > > /** > * > Create a new Stateful knowledge Session with a pseudo clock from the > * > knowledge base > * > * @paramkbase > * @return > * @throwsException > */ > privatestaticStatefulKnowledgeSession readKnowldedeSession( > KnowledgeBase kbase) throwsException { > > // Knowledge Session Configuration > KnowledgeSessionConfiguration > config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(); > config.setOption(ClockTypeOption.get("pseudo")); > returnkbase.newStatefulKnowledgeSession(config, null); > > } > > @AfterClass > publicstaticvoidcloseKsession() { > try{ > // load up the > knowledge base > logger.close(); > ksession.dispose(); > > } catch(Throwable t) { > t.printStackTrace(); > } > } > > @Test > publicvoidTemperatureAlarm1_Test() { > > // Create Temperature list > ArrayList > tempMetrics = newArrayList(); > doubletemp = 24.00; > > while(tempMetrics.size() > < 3) { > tempMetrics.add(newSensorReading(temp)); > temp += 2; > } > System.out.println("Size of > tempMetrics List: "+tempMetrics.size()+"\n"); > System.out.println("First Temp > reading: "+tempMetrics.get(0).getTemperature()); > System.out.println("Second Temp > reading: "+tempMetrics.get(1).getTemperature()); > System.out.println("Third Temp > reading: "+tempMetrics.get(2).getTemperature()+"\n"); > > // Separate stream for inserts > WorkingMemoryEntryPoint > temperatureStream = ksession.getWorkingMemoryEntryPoint( "Temperature > Reading"); > > // Create fact handle list > ArrayList > factHandleList = newArrayList(); > > // Insert objects into working > memory while advancing the clock > for(inti = 0; i < > tempMetrics.size(); i++) { > > factHandleList.add(temperatureStream.insert(tempMetrics.get(i))); > clock.advanceTime(1, > TimeUnit.MINUTES); > System.out.println("Time advances > by 1 minute"); > } > System.out.println("Fact Count > is: "+temperatureStream.getFactCount()); > System.out.println("Fact Entry > Point is: "+temperatureStream.getEntryPointId()); > System.out.println("Size of > FactHandleList: "+factHandleList.size()+"\n"); > > clock.advanceTime(1, > TimeUnit.MINUTES); //change in > advanced time alters the rule behavior > > StringBuilder stringBuilder = newStringBuilder(); > ksession.setGlobal("alertMessage", stringBuilder); > ksession.fireAllRules(); > > // Remove facts > for(inti = 0; i < > factHandleList.size(); i++) { > temperatureStream.retract(factHandleList.get(i)); > } > System.out.println("After > Removing facts"); > System.out.println("Fact Count > is: "+temperatureStream.getFactCount()); > > String result = > stringBuilder.substring(0, 32); > System.out.println("Alert Message > is: \n"+ stringBuilder.toString()); > assertEquals("Alert Message > is: ", "Threshold > temperature breached!!", result); > } > > /** > * > Create the knowledge base with stream processing turned on. > * > * @return > * @throwsException > */ > privatestaticKnowledgeBase > readKnowledgeBase() throwsException { > KnowledgeBuilder kbuilder = > KnowledgeBuilderFactory.newKnowledgeBuilder(); > > kbuilder.add(ResourceFactory.newClassPathResource("TemperatureAlarm1.drl"),ResourceType.DRL); > hasErrors(kbuilder); > > // Stream processing turned on > KnowledgeBaseConfiguration conf = > KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); > conf.setOption(EventProcessingOption.STREAM); > KnowledgeBase kbase = > KnowledgeBaseFactory.newKnowledgeBase(conf); > hasErrors(kbuilder); > kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); > > returnkbase; > } > > /** > * > Report errors if any > * > * @paramkbuilder > * @throwsException > */ > privatestaticvoidhasErrors(KnowledgeBuilder kbuilder) throwsException > { > KnowledgeBuilderErrors errors = > kbuilder.getErrors(); > if(errors.size() > 0) { > for(KnowledgeBuilderError error : errors) { > System.err.println(error); > } > thrownewIllegalArgumentException("Could not parse > knowledge."); > } > > } > > } > > > Could > anyone please help explain this change in the behavior of the rule? > > Regards, > Sushant From mail2stehle at gmail.com Wed Jun 4 11:33:38 2014 From: mail2stehle at gmail.com (SebastianStehle) Date: Wed, 4 Jun 2014 08:33:38 -0700 (PDT) Subject: [rules-users] Fusion, Insert Events with timestamp in the past. In-Reply-To: References: <1401874157681-4029843.post@n3.nabble.com> <1401874331987-4029844.post@n3.nabble.com> <1401875980649-4029847.post@n3.nabble.com> <1401894265969-4029860.post@n3.nabble.com> Message-ID: <1401896018639-4029866.post@n3.nabble.com> I am really thankful about your patience. Please do not focus on the network delay so far, there are other processes, which can cause the delay. Perhaps I will find a better solution here, but I would prefer to understand what is happing first. Can you explain me the following examples? 1. First example: LHS: $e: Message (Message(this after [0, 10sec] $e), where Message has an @timestamp 1.1. insert(new Message(NOW().subtract(5sec))); <-- 11am wait(6sec); insert(new Message(NOW())); // NOT Activated 1.2. insert(new Message(NOW().subtract(5sec))); <-- 11am wait(2sec); insert(new Message(NOW())); // Activated at 11:05am 2. First example: LHS: $e: Message not (Message(this after [0, 10sec] $e), where Message has an @timestamp insert(new Message(NOW().subtract(5sec))); <-- 11am // Activated at 11:10am Example 1.1 and 1.2 works as expected and my timestamp is respected but not example 2. Can you give me some hints about the "hot-deployment" for rules? -- View this message in context: http://drools.46999.n3.nabble.com/Fusion-Insert-Events-with-timestamp-in-the-past-tp4029843p4029866.html Sent from the Drools: User forum mailing list archive at Nabble.com. From scerquido at gmail.com Wed Jun 4 12:02:52 2014 From: scerquido at gmail.com (s b) Date: Wed, 4 Jun 2014 18:02:52 +0200 Subject: [rules-users] Fuse ESB & Drools 6 problem Message-ID: I'm testing the drools new version (6.1.0.Beta4) but I have a problem with the Stateful Drools Session. I have deployed in JBoss Fuse ESB the last versi?n of the drools (drools camel, jbpm, spring, etc), I have atached my camel context bundle (It's a maven project). This is my camel-context As you can see it is an scenario where Drools is in an stateful session with persistence configured. The bundle is executed without errors but I want that Drools executes my rules each time that the route is executed ( fireUntilHalt mode but I wasn't able as seems that this command is not availble in a persisted environment ), for this reason I've created a bean with the command: fireAllRules and I use to execute the rules but the problem is that the rules are only executed the first time, only the first time and never in subsequents executions of the route. The persistece seems to work well ( I can see the datamodel created and populated as expeted in the DB ). However if I change to use stateless mode ( no persistence then ), the rules are executed each time that route is executed ( as expected ), and therefore I don?t need the command fireAllRules Questions: Is it possible to have a stateful fireUntilHalt drools session that keeps using the same knowledge session in subsequent camel route executions? If it is not possible, Can I have a stateful ( persisted )drools session and invoke "fireAllRules" whenever I make changes in the knowledge session ( new Facts are inserted )? I've deep dived into the web looking for examples or documentation of this scenario both in Spring and Blueprint. Does anyone of you have any pointers to documentation on the matter? Kind Regards, -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140604/42c2fd5c/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: com.test.drools.spring.rar Type: application/rar Size: 9141 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140604/42c2fd5c/attachment-0001.bin From ch007m at gmail.com Wed Jun 4 12:29:14 2014 From: ch007m at gmail.com (Charles Moulliard) Date: Wed, 4 Jun 2014 18:29:14 +0200 Subject: [rules-users] Fuse ESB & Drools 6 problem In-Reply-To: References: Message-ID: I will have a look to your use case as it is not yet covered and will perhaps require that we modify the kie-camel component On Wed, Jun 4, 2014 at 6:02 PM, s b wrote: > I'm testing the drools new version (6.1.0.Beta4) but I have a problem with > the Stateful Drools Session. > > I have deployed in JBoss Fuse ESB the last versi?n of the drools (drools > camel, jbpm, spring, etc), I have atached my camel context bundle (It's a > maven project). > > This is my camel-context > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:kie="http://drools.org/schema/kie-spring" > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-3.0.xsd > http://drools.org/schema/kie-spring > http://drools.org/schema/kie-spring.xsd > http://camel.apache.org/schema/spring > http://camel.apache.org/schema/spring/camel-spring.xsd"> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> > > value="org.jbpm.persistence.jpa.local"/> > > > class="org.springframework.orm.jpa.JpaTransactionManager"> > > > > class="org.drools.osgi.spring.OsgiKModuleBeanFactoryPostProcessor"/> > > class="com.execute.command.FireAllRules"/> > > > > > > > > > > > > > > > > As you can see it is an scenario where Drools is in an stateful session > with persistence configured. > > The bundle is executed without errors but I want that Drools executes my > rules each time that the route is executed ( fireUntilHalt mode but I > wasn't able as seems that this command is not availble in a persisted > environment ), for this reason I've created a bean with the command: > fireAllRules and I use to execute > the rules but the problem is that the rules are only executed the first > time, only the first time and never in subsequents executions of the route. > > The persistece seems to work well ( I can see the datamodel created and > populated as expeted in the DB ). > > However if I change to use stateless mode ( no persistence then ), the > rules are executed each time that route is executed ( as expected ), and > therefore I don?t need the command fireAllRules > > > > > > Questions: > > Is it possible to have a stateful fireUntilHalt drools session that keeps > using the same knowledge session in subsequent camel route executions? > > If it is not possible, Can I have a stateful ( persisted )drools session > and invoke "fireAllRules" whenever I make changes in the knowledge session > ( new Facts are inserted )? > > I've deep dived into the web looking for examples or documentation of this > scenario both in Spring and Blueprint. Does anyone of you have any pointers > to documentation on the matter? > > Kind Regards, > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -- Charles Moulliard Apache Committer / Architect @RedHat Twitter : @cmoulliard | Blog : http://cmoulliard.github.io -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140604/7b805cfd/attachment.html From nillx87 at hotmail.com Wed Jun 4 12:43:05 2014 From: nillx87 at hotmail.com (nill) Date: Wed, 4 Jun 2014 09:43:05 -0700 (PDT) Subject: [rules-users] Help write rule drools In-Reply-To: References: <1401869394411-4029841.post@n3.nabble.com> <1401876745955-4029848.post@n3.nabble.com> Message-ID: <1401900185560-4029869.post@n3.nabble.com> I try to explain. I have a graph where each node can have only one connection to the other. If I check the presence of n links between two nodes then delete n-1 connections. -- View this message in context: http://drools.46999.n3.nabble.com/Help-write-rule-drools-tp4029841p4029869.html Sent from the Drools: User forum mailing list archive at Nabble.com. From scerquido at gmail.com Wed Jun 4 13:04:47 2014 From: scerquido at gmail.com (Sergio Besada) Date: Wed, 4 Jun 2014 19:04:47 +0200 Subject: [rules-users] Fuse ESB & Drools 6 problem In-Reply-To: References: Message-ID: Thank you in advance. 2014-06-04 18:29 GMT+02:00 Charles Moulliard : > I will have a look to your use case as it is not yet covered and will > perhaps require that we modify the kie-camel component > > > On Wed, Jun 4, 2014 at 6:02 PM, s b wrote: > >> I'm testing the drools new version (6.1.0.Beta4) but I have a problem >> with the Stateful Drools Session. >> >> I have deployed in JBoss Fuse ESB the last versi?n of the drools (drools >> camel, jbpm, spring, etc), I have atached my camel context bundle (It's a >> maven project). >> >> This is my camel-context >> >> >> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >> xmlns:kie="http://drools.org/schema/kie-spring" >> xsi:schemaLocation=" >> http://www.springframework.org/schema/beans >> http://www.springframework.org/schema/beans/spring-beans-3.0.xsd >> http://drools.org/schema/kie-spring >> http://drools.org/schema/kie-spring.xsd >> http://camel.apache.org/schema/spring >> http://camel.apache.org/schema/spring/camel-spring.xsd"> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> > class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> >> >> > value="org.jbpm.persistence.jpa.local"/> >> >> >> > class="org.springframework.orm.jpa.JpaTransactionManager"> >> >> >> >> > class="org.drools.osgi.spring.OsgiKModuleBeanFactoryPostProcessor"/> >> >> > class="com.execute.command.FireAllRules"/> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> >> As you can see it is an scenario where Drools is in an stateful session >> with persistence configured. >> >> The bundle is executed without errors but I want that Drools executes my >> rules each time that the route is executed ( fireUntilHalt mode but I >> wasn't able as seems that this command is not availble in a persisted >> environment ), for this reason I've created a bean with the command: >> fireAllRules and I use to execute >> the rules but the problem is that the rules are only executed the first >> time, only the first time and never in subsequents executions of the route. >> >> The persistece seems to work well ( I can see the datamodel created and >> populated as expeted in the DB ). >> >> However if I change to use stateless mode ( no persistence then ), the >> rules are executed each time that route is executed ( as expected ), and >> therefore I don?t need the command fireAllRules >> >> >> >> >> >> Questions: >> >> Is it possible to have a stateful fireUntilHalt drools session that keeps >> using the same knowledge session in subsequent camel route executions? >> >> If it is not possible, Can I have a stateful ( persisted )drools session >> and invoke "fireAllRules" whenever I make changes in the knowledge session >> ( new Facts are inserted )? >> >> I've deep dived into the web looking for examples or documentation of >> this scenario both in Spring and Blueprint. Does anyone of you have any >> pointers to documentation on the matter? >> >> Kind Regards, >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > > > -- > Charles Moulliard > Apache Committer / Architect @RedHat > Twitter : @cmoulliard | Blog : http://cmoulliard.github.io > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140604/fea1d120/attachment-0001.html From mario.fusco at gmail.com Wed Jun 4 13:26:28 2014 From: mario.fusco at gmail.com (Mario Fusco) Date: Wed, 4 Jun 2014 10:26:28 -0700 (PDT) Subject: [rules-users] Compilation errors in Drools examples In-Reply-To: <1401830713017-4029839.post@n3.nabble.com> References: <1389382886927-4027650.post@n3.nabble.com> <1401390116681-4029760.post@n3.nabble.com> <1401396802847-4029763.post@n3.nabble.com> <1401400419622-4029765.post@n3.nabble.com> <1401787361937-4029826.post@n3.nabble.com> <1401830713017-4029839.post@n3.nabble.com> Message-ID: <1401902788133-4029871.post@n3.nabble.com> Hi Jinghai, I cannot reproduce the last issue you're reporting. Every time I introduce an error both in the java and in the drl code it is reported correctly. Can you be a bit more explicit about this or even better attaching to the jira ticket a simple project reproducing this issue? Thanks, Mario -- View this message in context: http://drools.46999.n3.nabble.com/Compilation-errors-in-Drools-examples-tp4027650p4029871.html Sent from the Drools: User forum mailing list archive at Nabble.com. From wolfgang.laun at gmail.com Wed Jun 4 13:37:29 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Wed, 4 Jun 2014 19:37:29 +0200 Subject: [rules-users] Help write rule drools In-Reply-To: <1401900185560-4029869.post@n3.nabble.com> References: <1401869394411-4029841.post@n3.nabble.com> <1401876745955-4029848.post@n3.nabble.com> <1401900185560-4029869.post@n3.nabble.com> Message-ID: To remove all redundant Link objects and assuming that class Link is declared as class Link { Node source; Node target; } (and not as given in the original post), the rule: rule "kill redundant links" when $l1: Link( $s: source, $t: target ) $l2: Link( this != $l1, source == $s && target == $t || source == $t && target == $s ) $n1: Node( out contains $l2 ) $n2: Node( in contains $l2 ) then retract( $l2 ); modify( $n1 ){ getOut().remove( $l2 ) } modify( $n2 ){ getIn().remove( $l2 ) } end removes all redundant Link facts and updates the out and in fields of the Nodes at either end of these links. -W On 04/06/2014, nill wrote: > I try to explain. I have a graph where each node can have only one > connection > to the other. > If I check the presence of n links between two nodes then delete n-1 > connections. > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Help-write-rule-drools-tp4029841p4029869.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From nillx87 at hotmail.com Wed Jun 4 15:22:05 2014 From: nillx87 at hotmail.com (nill) Date: Wed, 4 Jun 2014 12:22:05 -0700 (PDT) Subject: [rules-users] Help write rule drools In-Reply-To: References: <1401869394411-4029841.post@n3.nabble.com> <1401876745955-4029848.post@n3.nabble.com> <1401900185560-4029869.post@n3.nabble.com> Message-ID: <1401909725108-4029873.post@n3.nabble.com> Thank you very much! -- View this message in context: http://drools.46999.n3.nabble.com/Help-write-rule-drools-tp4029841p4029873.html Sent from the Drools: User forum mailing list archive at Nabble.com. From sushantgoyal25 at yahoo.co.in Wed Jun 4 17:07:54 2014 From: sushantgoyal25 at yahoo.co.in (Sushant Goyal) Date: Thu, 5 Jun 2014 05:07:54 +0800 (SGT) Subject: [rules-users] Monitoring applications using Drools In-Reply-To: References: <1401886818.18964.YahooMailNeo@web190503.mail.sg3.yahoo.com> Message-ID: <1401916074.39835.YahooMailNeo@web190502.mail.sg3.yahoo.com> Thanks for?your response.? I?was?under the assumption that the window time frame begins, the moment first event is inserted into the working memory. Or I am still missing out something here (when you say that the first event is exactly at the beginning of the window)?? If I traverse backwards as below, then definitely the 1st event lies outside the window. ? ? insert 1st event ? delay 1 minute ^? (4 + 1 = 5) ? insert 2nd event ? delay 1 minute? ^ (3 + 1 = 4) ? insert 3rd event ? delay 1 minute???^ (2 + 1 = 3) ? delay 2 minutes ?^?? ? fire all rules ? However, if I start from the 1st event, the possibility where 1st event?lies out of time frame of 5 mins would be if certain amount of time is consumed?while inserting the 1st?event. I tried to check it programmatically to see if there is any time lapsed?during the insertion of the event by printing the clock's current time using clock.getCurrentTime() method before and after inserting the 1st event, however, could not notice any difference. ? But, if I change the time to be advanced by 1 minutes and 59 seconds? (instead of 2 minutes) towards the end after the three events have been inserted, the rule seems to be working fine by considering all the three events for calculating the average. ? I know I am definitely missing out something here as I can see the difference in the behavior of the rule by merely reducing the total delay in time by 1 second (4 min 59 sec instead of 5 minutes) as stated above. But I am not able to figure that out. ? Could you please provide more insight. ? Thanks! On Wednesday, 4 June 2014 9:01 PM, Wolfgang Laun wrote: Your code does: ? insert 1st event ? delay 1 minute ? insert 2nd event ? delay 1 minute ? insert 3rd event ? delay 1 minute ? delay (1 or) 2 minutes ? fire all rules In the second case, 5 minutes have elapsed since the 1st insert. I don't think that this means "that [the 1st insert] falls well within the specified time range" - it is exactly at the beginning of the window, and I'd expect the window to be an interval open at one end - otherwise events smack on the point in time "separating" two intervals would be in both windows. -W On 04/06/2014, Sushant Goyal wrote: > Hi, > > I am > trying to understand how Drools can be used to monitor events over a period > of > time using Sliding Time Windows. I have created a rule to sound an alarm > when > average temperature read from a sensor is above 25 degrees (threshold) over > a > time period of 5 minutes. The rule makes of use of the Stream processing > mode so > that continuous stream of events could be processed. > > Below > is how my rule looks like: > > //declare any global > variables here > globaljava.lang.StringBuilder alertMessage > > // add declaration to > change the Fact into an Event > declareSensorReading >? ? ? ? @role(event) > end > > /* Alert when average > temperature is above 25 >? ? over a time period of 5 minutes */ > rule"TemperatureAlarm1" > >? ? when >? ? ? ? //conditions >? ? ? ? $averageTemp : Number(doubleValue > > 25.00) >? ? ? ? ? ? ? ? ? ? ? ? ? ? fromaccumulate(SensorReading($temp > : temperature) >? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? over > window:time(5m) fromentry-point "Temperature Reading", average($temp)) >? ? then >? ? ? ? //actions >? ? ? ? System.out.println("Fired rule: > "+ > kcontext.getRule().getName()); >? ? ? ? alertMessage.append("Threshold > temperature breached!!"+ >? ? ? ? ? ? ? ? ? ? ? ? ? ? "\nTurn on the > Air Conditioner"+ >? ? ? ? ? ? ? ? ? ? ? ? ? ? "\nAverage > temperature over 5 minutes is above 25 ("+ $averageTemp.intValue() + ")\n"); > > end > > And below > is the snapshot of the fact (SensorReading) which is inserted as an event in > the working memory: > > publicclassSensorReading { > >? ? ? ? privatedoubletemperature; > >? ? ? ? publicSensorReading(){} > >? ? ? ? publicSensorReading(doubletemp){ >? ? ? ? ? ? ? this.temperature= temp; >? ? ? ? } > >? ? ? ? // getters and setters > } > > > In > order to test the rule, I am using Pseudo Clock with Stream processing > turned > on. I am inserting three SensorReading objects in the working memory with > temperature > values as (24, 26, 28) after every minute, so that the average of the > temperatures is above threshold and the rule is invoked. After the objects > are > inserted in the working memory, I am deliberately advancing the Pseudo clock > by > another 1 minute, so that the total time elapsed is 4 minutes. The rule > works > as expected with the above test setup and prints the average value as 26 on > the > console. > > However, > if I advance the clock by 2 minutes instead of 1 minute after three sensor > reading objects have been inserted in the working memory (after every 1 > minute > interval), the rule gets invoked but the average value gets changed to 27 > (26 + > 28 / 2 == 27). Looks like the first temperature reading is getting ignored > by > the rule despite the fact that it falls well within the specified time range > of > 5 minutes. Below is the snapshot of my test class: > > publicclassTemperatureAlarmTest > { > >? ? ? ? staticKnowledgeBase kbase; >? ? ? ? staticStatefulKnowledgeSession ksession; >? ? ? ? staticKnowledgeRuntimeLogger logger; >? ? ? ? staticSessionPseudoClock clock; > >? ? ? ? @BeforeClass >? ? ? ? publicstaticvoidsetupKsession() { >? ? ? ? ? ? ? try{ >? ? ? ? ? ? ? ? ? ? ? // load up the > knowledge base >? ? ? ? ? ? ? ? ? ? ? kbase= readKnowledgeBase(); >? ? ? ? ? ? ? ? ? ? ? ksession= readKnowldedeSession(kbase); >? ? ? ? ? ? ? ? ? ? ? clock= ksession.getSessionClock(); > >? ? ? ? ? ? ? ? ? ? ? logger= > KnowledgeRuntimeLoggerFactory.newThreadedFileLogger(ksession, "log/Errors", > 500); > >? ? ? ? ? ? ? } catch(Throwable t) { >? ? ? ? ? ? ? ? ? ? ? t.printStackTrace(); >? ? ? ? ? ? ? } >? ? ? ? } > >? ? ? ? /** >? ? ? ? * > Create a new Stateful knowledge Session with a pseudo clock from the >? ? ? ? * > knowledge base >? ? ? ? * >? ? ? ? * @paramkbase >? ? ? ? * @return >? ? ? ? * @throwsException >? ? ? ? */ >? ? ? ? privatestaticStatefulKnowledgeSession readKnowldedeSession( >? ? ? ? ? ? ? ? ? ? ? KnowledgeBase kbase) throwsException { > >? ? ? ? ? ? ? // Knowledge Session Configuration >? ? ? ? ? ? ? KnowledgeSessionConfiguration > config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(); >? ? ? ? ? ? ? config.setOption(ClockTypeOption.get("pseudo")); >? ? ? ? ? ? ? returnkbase.newStatefulKnowledgeSession(config, null); > >? ? ? ? } > >? ? ? ? @AfterClass >? ? ? ? publicstaticvoidcloseKsession() { >? ? ? ? ? ? ? try{ >? ? ? ? ? ? ? ? ? ? ? // load up the > knowledge base >? ? ? ? ? ? ? ? ? ? ? logger.close(); >? ? ? ? ? ? ? ? ? ? ? ksession.dispose(); > >? ? ? ? ? ? ? } catch(Throwable t) { >? ? ? ? ? ? ? ? ? ? ? t.printStackTrace(); >? ? ? ? ? ? ? } >? ? ? ? } > >? ? ? ? @Test >? ? ? ? publicvoidTemperatureAlarm1_Test() { > >? ? ? ? ? ? ? // Create Temperature list >? ? ? ? ? ? ? ArrayList > tempMetrics = newArrayList(); >? ? ? ? ? ? ? doubletemp = 24.00; > >? ? ? ? ? ? ? while(tempMetrics.size() > < 3) { >? ? ? ? ? ? ? ? ? ? ? tempMetrics.add(newSensorReading(temp)); >? ? ? ? ? ? ? ? ? ? ? temp += 2; >? ? ? ? ? ? ? } >? ? ? ? ? ? ? System.out.println("Size of > tempMetrics List: "+tempMetrics.size()+"\n"); >? ? ? ? ? ? ? System.out.println("First Temp > reading: "+tempMetrics.get(0).getTemperature()); >? ? ? ? ? ? ? System.out.println("Second Temp > reading: "+tempMetrics.get(1).getTemperature()); >? ? ? ? ? ? ? System.out.println("Third Temp > reading: "+tempMetrics.get(2).getTemperature()+"\n"); > >? ? ? ? ? ? ? // Separate stream for inserts >? ? ? ? ? ? ? WorkingMemoryEntryPoint > temperatureStream = ksession.getWorkingMemoryEntryPoint( "Temperature > Reading"); > >? ? ? ? ? ? ? // Create fact handle list >? ? ? ? ? ? ? ArrayList > factHandleList = newArrayList(); > >? ? ? ? ? ? ? // Insert objects into working > memory while advancing the clock >? ? ? ? ? ? ? for(inti = 0; i < > tempMetrics.size(); i++) { > > factHandleList.add(temperatureStream.insert(tempMetrics.get(i))); >? ? ? ? ? ? ? ? ? ? ? clock.advanceTime(1, > TimeUnit.MINUTES); >? ? ? ? ? ? ? ? ? ? ? System.out.println("Time advances > by 1 minute"); >? ? ? ? ? ? ? } >? ? ? ? ? ? ? System.out.println("Fact Count > is: "+temperatureStream.getFactCount()); >? ? ? ? ? ? ? System.out.println("Fact Entry > Point is: "+temperatureStream.getEntryPointId()); >? ? ? ? ? ? ? System.out.println("Size of > FactHandleList: "+factHandleList.size()+"\n"); > >? ? ? ? ? ? ? clock.advanceTime(1, > TimeUnit.MINUTES);? ? ? ? //change in > advanced time alters the rule behavior > >? ? ? ? ? ? ? StringBuilder stringBuilder = newStringBuilder(); >? ? ? ? ? ? ? ksession.setGlobal("alertMessage", stringBuilder); >? ? ? ? ? ? ? ksession.fireAllRules(); > >? ? ? ? ? ? ? // Remove facts >? ? ? ? ? ? ? for(inti = 0; i < > factHandleList.size(); i++) { >? ? ? ? ? ? ? ? ? ? ? temperatureStream.retract(factHandleList.get(i)); >? ? ? ? ? ? ? } >? ? ? ? ? ? ? System.out.println("After > Removing facts"); >? ? ? ? ? ? ? System.out.println("Fact Count > is: "+temperatureStream.getFactCount()); > >? ? ? ? ? ? ? String result = > stringBuilder.substring(0, 32); >? ? ? ? ? ? ? System.out.println("Alert Message > is: \n"+ stringBuilder.toString()); >? ? ? ? ? ? ? assertEquals("Alert Message > is: ", "Threshold > temperature breached!!", result); >? ? ? ? } > >? ? ? ? /** >? ? ? ? * > Create the knowledge base with stream processing turned on. >? ? ? ? * >? ? ? ? * @return >? ? ? ? * @throwsException >? ? ? ? */ >? ? ? ? privatestaticKnowledgeBase > readKnowledgeBase() throwsException { >? ? ? ? ? ? ? KnowledgeBuilder kbuilder = > KnowledgeBuilderFactory.newKnowledgeBuilder(); > > kbuilder.add(ResourceFactory.newClassPathResource("TemperatureAlarm1.drl"),ResourceType.DRL); >? ? ? ? ? ? ? hasErrors(kbuilder); > >? ? ? ? ? ? ? // Stream processing turned on >? ? ? ? ? ? ? KnowledgeBaseConfiguration conf = > KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); >? ? ? ? ? ? ? conf.setOption(EventProcessingOption.STREAM); >? ? ? ? ? ? ? KnowledgeBase kbase = > KnowledgeBaseFactory.newKnowledgeBase(conf); >? ? ? ? ? ? ? hasErrors(kbuilder); >? ? ? ? ? ? ? kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); > >? ? ? ? ? ? ? returnkbase; >? ? ? ? } > >? ? ? ? /** >? ? ? ? * > Report errors if any >? ? ? ? * >? ? ? ? * @paramkbuilder >? ? ? ? * @throwsException >? ? ? ? */ >? ? ? ? privatestaticvoidhasErrors(KnowledgeBuilder kbuilder) throwsException > { >? ? ? ? ? ? ? KnowledgeBuilderErrors errors = > kbuilder.getErrors(); >? ? ? ? ? ? ? if(errors.size() > 0) { >? ? ? ? ? ? ? ? ? ? ? for(KnowledgeBuilderError error : errors) { >? ? ? ? ? ? ? ? ? ? ? ? ? ? System.err.println(error); >? ? ? ? ? ? ? ? ? ? ? } >? ? ? ? ? ? ? ? ? ? ? thrownewIllegalArgumentException("Could not parse > knowledge."); >? ? ? ? ? ? ? } > >? ? ? ? } > > } > > > Could > anyone please help explain this change in the behavior of the rule? > > Regards, > Sushant -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140605/bf28354d/attachment-0001.html From raojinghai at gmail.com Thu Jun 5 00:25:26 2014 From: raojinghai at gmail.com (raojinghai at gmail.com) Date: Wed, 4 Jun 2014 21:25:26 -0700 Subject: [rules-users] Compilation errors in Drools examples In-Reply-To: <1401902788133-4029871.post@n3.nabble.com> References: <1389382886927-4027650.post@n3.nabble.com> <1401390116681-4029760.post@n3.nabble.com> <1401396802847-4029763.post@n3.nabble.com> <1401400419622-4029765.post@n3.nabble.com> <1401787361937-4029826.post@n3.nabble.com> <1401830713017-4029839.post@n3.nabble.com> <1401902788133-4029871.post@n3.nabble.com> Message-ID: Hi Mario, I am not familiar with Eclipse plugin development so I don't know how I can make it easier for you to reproduce on your side. My project is the simplest drools sample project and I just changed "when" to "when1" in Sample.drl. However, I am almost sure this is caused by the latest commit. I did a git revert to the previous commit (5b7101f13cf6eb6bb3cea37638b0d9d982a6b10b "disabled enforce-plugin-version rule"), and this error can be detected (see attached ScreenShot1.jpg). However, the plugin built with the latest commit can't detect it (ScreenShot2.jpg). I tried to clean/rebuild the project and re-import, but the results are all the same. Please let me know if I can provide more information by any means. Thank you very much. Jinghai On Wed, Jun 4, 2014 at 10:26 AM, Mario Fusco wrote: > Hi Jinghai, > > I cannot reproduce the last issue you're reporting. Every time I introduce > an error both in the java and in the drl code it is reported correctly. > Can you be a bit more explicit about this or even better attaching to the > jira ticket a simple project reproducing this issue? > > Thanks, > Mario > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Compilation-errors-in-Drools-examples-tp4027650p4029871.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140604/c9b070d7/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: ScreenShot1.jpg Type: image/jpeg Size: 163226 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140604/c9b070d7/attachment-0002.jpg -------------- next part -------------- A non-text attachment was scrubbed... Name: ScreenShot2.jpg Type: image/jpeg Size: 157876 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140604/c9b070d7/attachment-0003.jpg From raojinghai at gmail.com Thu Jun 5 00:58:01 2014 From: raojinghai at gmail.com (raojinghai at gmail.com) Date: Wed, 4 Jun 2014 21:58:01 -0700 Subject: [rules-users] Compilation errors in Drools examples In-Reply-To: References: <1389382886927-4027650.post@n3.nabble.com> <1401390116681-4029760.post@n3.nabble.com> <1401396802847-4029763.post@n3.nabble.com> <1401400419622-4029765.post@n3.nabble.com> <1401787361937-4029826.post@n3.nabble.com> <1401830713017-4029839.post@n3.nabble.com> <1401902788133-4029871.post@n3.nabble.com> Message-ID: Hi Mario, I found my issue can be solved by deleting the drools runtime from eclipse and re-add it. Now everything is good. Thank you very much. Jinghai -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140604/eeb7b045/attachment.html From sushantgoyal25 at yahoo.co.in Thu Jun 5 04:09:49 2014 From: sushantgoyal25 at yahoo.co.in (Sushant Goyal) Date: Thu, 5 Jun 2014 16:09:49 +0800 (SGT) Subject: [rules-users] Monitoring applications using Drools In-Reply-To: <1401955526.28558.YahooMailNeo@web190502.mail.sg3.yahoo.com> References: <1401886818.18964.YahooMailNeo@web190503.mail.sg3.yahoo.com> <1401916074.39835.YahooMailNeo@web190502.mail.sg3.yahoo.com> <1401955526.28558.YahooMailNeo@web190502.mail.sg3.yahoo.com> Message-ID: <1401955789.19702.YahooMailNeo@web190503.mail.sg3.yahoo.com> I found one of the explanations on how Sliding Windows operate in Drools while searching for an answer: ?Events are expired from the?time?window?when the clock advances? ? So, in my case if I am inserting events on T0 (insert 1st event), T1 (insert 2nd event), T2 (insert 3rd event) and advancing the clock to T3, T4 and T5; 1st event inserted at T0 is expired from the window. And the rule calculates the average of the last two events (2nd event & 3rd event) falling in the time window. And the output average calculated by the from accumulate function comes to be (26 +28 / 2 == 27) satisfying the contract of average temperature to be above the threshold value of 25. ? Now let?s say I do the below (advancing the clock by 5 minutes after the 3rd insert): ? T0 (insert 1st event) T1 (insert 2st event) T2 (insert 3st event) T3 T4 T5 T6 T7 Fire all rules ? The average calculated by the rule is zero (0) since the three inserted events fall outside the time window of 5 minutes (as expected). But, my rule fires regardless of the fact I have the contract of average temperature to be greater than threshold in my rule : ? $averageTemp : Number(intValue > 25)??? ??????? ??????????????????????? ??????????????? from accumulate(SensorReading($temp : temperature) ??????? ??????????????????????????????????????? ??????????????? over window:time(5m) from entry-point "Temperature Reading", average($temp)) ? As per the drools-fusion documentation, over window : time(X) is used to consider events that happened in the last X units. So, is there something that needs to be changed in my rule implementation? ? One more question here, does over window : time(X) really considers events occurred in the last X units. I tried going further by doing the below: ? T0 (insert 1st event ? Sensor reading is 24) T1 (insert 2st event ? Sensor reading is 26) T2 (insert 3st event ? Sensor reading is 28) T3 T4 T5 T6 T7 (insert event ? Sensor reading is 30) Fire All rules ? With the above test setup, my rule gets invoked twice printing the average of temperatures as (30) and (30). But using over window:time(5m) shouldn?t result in rule being triggered once ? ? Thanks in advance! ? On Thursday, 5 June 2014 1:35 PM, Sushant Goyal wrote: Thanks again for your response Wolfgang. ? I found one of the explanations on how Sliding Windows operate in Drools while searching for an answer: ?Events are expired from the?time?window?when the clock advances? ? So, in my case if I am inserting events on T0 (insert 1st event), T1 (insert 2nd event), T2 (insert 3rd event) and advancing the clock to T3, T4 and T5; 1st event inserted at T0 is expired from the window. And the rule calculates the average of the last two events (2nd event & 3rd event) falling in the time window. And the output average calculated by the from accumulate function comes to be (26 +28 / 2 == 27) satisfying the contract of average temperature to be above the threshold value of 25. ? Now let?s say I do the below (advancing the clock by 5 minutes after the 3rd insert): ? T0 (insert 1st event) T1 (insert 2st event) T2 (insert 3st event) T3 T4 T5 T6 T7 Fire all rules ? The average calculated by the rule is zero (0) since the three inserted events fall outside the time window of 5 minutes (as expected). But, my rule fires regardless of the fact I have the contract of average temperature to be greater than threshold in my rule : ? $averageTemp : Number(intValue > 25)??? ??????? ??????????????????????? ??????????????? from accumulate(SensorReading($temp : temperature) ??????? ??????????????????????????????????????? ??????????????? over window:time(5m) from entry-point "Temperature Reading", average($temp)) ? As per the drools-fusion documentation, over window : time(X) is used to consider events that happened in the last X units. So, is there something that needs to be changed in my rule implementation? ? One more question here, does over window : time(X) really considers events occurred in the last X units. I tried going further by doing the below: ? T0 (insert 1st event ? Sensor reading is 24) T1 (insert 2st event ? Sensor reading is 26) T2 (insert 3st event ? Sensor reading is 28) T3 T4 T5 T6 T7 (insert event ? Sensor reading is 30) Fire All rules ? With the above test setup, my rule gets invoked twice printing the average of temperatures as (30) and (30). But using over window:time(5m) shouldn?t result in rule being triggered once ? ? Thanks in advance! ? On Thursday, 5 June 2014 12:31 PM, Wolfgang Laun wrote: Computations involving intervals where events arrive in real time should not depend on differences of one unit of the smalles unit of time for specifying durations (here: milliseconds). -W On 04/06/2014, Sushant Goyal wrote: > Thanks for your response. > I was under the assumption that the window time frame begins, the moment > first event is inserted into the working memory. Or I am still missing out > something here (when you say that the first event is exactly at the > beginning of the window)?? If I traverse backwards as below, then definitely > the 1st event lies outside the window. > >? insert 1st event >? delay 1 minute ^? (4 + 1 = 5) >? insert 2nd event >? delay 1 minute? ^ (3 + 1 = 4) >? insert 3rd event >? delay 1 minute? ^ (2 + 1 = 3) >? delay 2 minutes? ^ >? fire all rules > > However, if I start from the 1st event, the possibility where 1st event lies > out of time frame of 5 mins would be if certain amount of time is > consumed while inserting the 1st event. I tried to check it programmatically > to see if there is any time lapsed during the insertion of the event by > printing the clock's current time using clock.getCurrentTime() method before > and after inserting the 1st event, however, could not notice any difference. > > But, if I change the time to be advanced by 1 minutes and 59 seconds > (instead of 2 minutes) towards the end after the three events have been > inserted, the rule seems to be working fine by considering all the three > events for calculating the average. > > I know I am definitely missing out something here as I can see the > difference in the behavior of the rule by merely reducing the total delay in > time by 1 second (4 min 59 sec instead of 5 minutes) as stated above. But I > am not able to figure that out. > > Could you please provide more insight. > > Thanks! > > > On Wednesday, 4 June 2014 9:01 PM, Wolfgang Laun > wrote: > > > > Your code does: >? insert 1st event >? delay 1 minute >? insert 2nd event >? delay 1 minute >? insert 3rd event >? delay 1 minute >? delay (1 or) 2 minutes >? fire all rules > > In the second case, 5 minutes have elapsed since the 1st insert. I > don't think that this means "that [the 1st insert] falls well within > the specified time range" - it is exactly at the beginning of the > window, and I'd expect the window to be an interval open at one end - > otherwise events smack on the point in time "separating" two intervals > would be in both windows. > > -W > > > On 04/06/2014, Sushant Goyal wrote: >> Hi, >> >> I am >> trying to understand how Drools can be used to monitor events over a >> period >> of >> time using Sliding Time Windows. I have created a rule to sound an alarm >> when >> average temperature read from a sensor is above 25 degrees (threshold) >> over >> a >> time period of 5 minutes. The rule makes of use of the Stream processing >> mode so >> that continuous stream of events could be processed. >> >> Below >> is how my rule looks like: >> >> //declare any global >> variables here >> globaljava.lang.StringBuilder alertMessage >> >> // add declaration to >> change the Fact into an Event >> declareSensorReading >>? ? ? ? @role(event) >> end >> >> /* Alert when average >> temperature is above 25 >>? ? over a time period of 5 minutes */ >> rule"TemperatureAlarm1" >> >>? ? when >>? ? ? ? //conditions >>? ? ? ? $averageTemp : Number(doubleValue > >> 25.00) >>? ? ? ? ? ? ? ? ? ? ? ? ? ? fromaccumulate(SensorReading($temp >> : temperature) >>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? over >> window:time(5m) fromentry-point "Temperature Reading", average($temp)) >>? ? then >>? ? ? ? //actions >>? ? ? ? System.out.println("Fired rule: >> "+ >> kcontext.getRule().getName()); >>? ? ? ? alertMessage.append("Threshold >> temperature breached!!"+ >>? ? ? ? ? ? ? ? ? ? ? ? ? ? "\nTurn on the >> Air Conditioner"+ >>? ? ? ? ? ? ? ? ? ? ? ? ? ? "\nAverage >> temperature over 5 minutes is above 25 ("+ $averageTemp.intValue() + >> ")\n"); >> >> end >> >> And below >> is the snapshot of the fact (SensorReading) which is inserted as an event >> in >> the working memory: >> >> publicclassSensorReading { >> >>? ? ? ? privatedoubletemperature; >> >>? ? ? ? publicSensorReading(){} >> >>? ? ? ? publicSensorReading(doubletemp){ >>? ? ? ? ? ? ? this.temperature= temp; >>? ? ? ? } >> >>? ? ? ? // getters and setters >> } >> >> >> In >> order to test the rule, I am using Pseudo Clock with Stream processing >> turned >> on. I am inserting three SensorReading objects in the working memory with >> temperature >> values as (24, 26, 28) after every minute, so that the average of the >> temperatures is above threshold and the rule is invoked. After the objects >> are >> inserted in the working memory, I am deliberately advancing the Pseudo >> clock >> by >> another 1 minute, so that the total time elapsed is 4 minutes. The rule >> works >> as expected with the above test setup and prints the average value as 26 >> on >> the >> console. >> >> However, >> if I advance the clock by 2 minutes instead of 1 minute after three sensor >> reading objects have been inserted in the working memory (after every 1 >> minute >> interval), the rule gets invoked but the average value gets changed to 27 >> (26 + >> 28 / 2 == 27). Looks like the first temperature reading is getting ignored >> by >> the rule despite the fact that it falls well within the specified time >> range >> of >> 5 minutes. Below is the snapshot of my test class: >> >> publicclassTemperatureAlarmTest >> { >> >>? ? ? ? staticKnowledgeBase kbase; >>? ? ? ? staticStatefulKnowledgeSession ksession; >>? ? ? ? staticKnowledgeRuntimeLogger logger; >>? ? ? ? staticSessionPseudoClock clock; >> >>? ? ? ? @BeforeClass >>? ? ? ? publicstaticvoidsetupKsession() { >>? ? ? ? ? ? ? try{ >>? ? ? ? ? ? ? ? ? ? ? // load up the >> knowledge base >>? ? ? ? ? ? ? ? ? ? ? kbase= readKnowledgeBase(); >>? ? ? ? ? ? ? ? ? ? ? ksession= readKnowldedeSession(kbase); >>? ? ? ? ? ? ? ? ? ? ? clock= ksession.getSessionClock(); >> >>? ? ? ? ? ? ? ? ? ? ? logger= >> KnowledgeRuntimeLoggerFactory.newThreadedFileLogger(ksession, >> "log/Errors", >> 500); >> >>? ? ? ? ? ? ? } catch(Throwable t) { >>? ? ? ? ? ? ? ? ? ? ? t.printStackTrace(); >>? ? ? ? ? ? ? } >>? ? ? ? } >> >>? ? ? ? /** >>? ? ? ? * >> Create a new Stateful knowledge Session with a pseudo clock from the >>? ? ? ? * >> knowledge base >>? ? ? ? * >>? ? ? ? * @paramkbase >>? ? ? ? * @return >>? ? ? ? * @throwsException >>? ? ? ? */ >>? ? ? ? privatestaticStatefulKnowledgeSession readKnowldedeSession( >>? ? ? ? ? ? ? ? ? ? ? KnowledgeBase kbase) throwsException { >> >>? ? ? ? ? ? ? // Knowledge Session Configuration >>? ? ? ? ? ? ? KnowledgeSessionConfiguration >> config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(); >>? ? ? ? ? ? ? config.setOption(ClockTypeOption.get("pseudo")); >>? ? ? ? ? ? ? returnkbase.newStatefulKnowledgeSession(config, null); >> >>? ? ? ? } >> >>? ? ? ? @AfterClass >>? ? ? ? publicstaticvoidcloseKsession() { >>? ? ? ? ? ? ? try{ >>? ? ? ? ? ? ? ? ? ? ? // load up the >> knowledge base >>? ? ? ? ? ? ? ? ? ? ? logger.close(); >>? ? ? ? ? ? ? ? ? ? ? ksession.dispose(); >> >>? ? ? ? ? ? ? } catch(Throwable t) { >>? ? ? ? ? ? ? ? ? ? ? t.printStackTrace(); >>? ? ? ? ? ? ? } >>? ? ? ? } >> >>? ? ? ? @Test >>? ? ? ? publicvoidTemperatureAlarm1_Test() { >> >>? ? ? ? ? ? ? // Create Temperature list >>? ? ? ? ? ? ? ArrayList >> tempMetrics = newArrayList(); >>? ? ? ? ? ? ? doubletemp = 24.00; >> >>? ? ? ? ? ? ? while(tempMetrics.size() >> < 3) { >>? ? ? ? ? ? ? ? ? ? ? tempMetrics.add(newSensorReading(temp)); >>? ? ? ? ? ? ? ? ? ? ? temp += 2; >>? ? ? ? ? ? ? } >>? ? ? ? ? ? ? System.out.println("Size of >> tempMetrics List: "+tempMetrics.size()+"\n"); >>? ? ? ? ? ? ? System.out.println("First Temp >> reading: "+tempMetrics.get(0).getTemperature()); >>? ? ? ? ? ? ? System.out.println("Second Temp >> reading: "+tempMetrics.get(1).getTemperature()); >>? ? ? ? ? ? ? System.out.println("Third Temp >> reading: "+tempMetrics.get(2).getTemperature()+"\n"); >> >>? ? ? ? ? ? ? // Separate stream for inserts >>? ? ? ? ? ? ? WorkingMemoryEntryPoint >> temperatureStream = ksession.getWorkingMemoryEntryPoint( "Temperature >> Reading"); >> >>? ? ? ? ? ? ? // Create fact handle list >>? ? ? ? ? ? ? ArrayList >> factHandleList = newArrayList(); >> >>? ? ? ? ? ? ? // Insert objects into working >> memory while advancing the clock >>? ? ? ? ? ? ? for(inti = 0; i < >> tempMetrics.size(); i++) { >> >> factHandleList.add(temperatureStream.insert(tempMetrics.get(i))); >>? ? ? ? ? ? ? ? ? ? ? clock.advanceTime(1, >> TimeUnit.MINUTES); >>? ? ? ? ? ? ? ? ? ? ? System.out.println("Time advances >> by 1 minute"); >>? ? ? ? ? ? ? } >>? ? ? ? ? ? ? System.out.println("Fact Count >> is: "+temperatureStream.getFactCount()); >>? ? ? ? ? ? ? System.out.println("Fact Entry >> Point is: "+temperatureStream.getEntryPointId()); >>? ? ? ? ? ? ? System.out.println("Size of >> FactHandleList: "+factHandleList.size()+"\n"); >> >>? ? ? ? ? ? ? clock.advanceTime(1, >> TimeUnit.MINUTES);? ? ? ? //change in >> advanced time alters the rule behavior >> >>? ? ? ? ? ? ? StringBuilder stringBuilder = newStringBuilder(); >>? ? ? ? ? ? ? ksession.setGlobal("alertMessage", stringBuilder); >>? ? ? ? ? ? ? ksession.fireAllRules(); >> >>? ? ? ? ? ? ? // Remove facts >>? ? ? ? ? ? ? for(inti = 0; i < >> factHandleList.size(); i++) { >>? ? ? ? ? ? ? ? ? ? ? temperatureStream.retract(factHandleList.get(i)); >>? ? ? ? ? ? ? } >>? ? ? ? ? ? ? System.out.println("After >> Removing facts"); >>? ? ? ? ? ? ? System.out.println("Fact Count >> is: "+temperatureStream.getFactCount()); >> >>? ? ? ? ? ? ? String result = >> stringBuilder.substring(0, 32); >>? ? ? ? ? ? ? System.out.println("Alert Message >> is: \n"+ stringBuilder.toString()); >>? ? ? ? ? ? ? assertEquals("Alert Message >> is: ", "Threshold >> temperature breached!!", result); >>? ? ? ? } >> >>? ? ? ? /** >>? ? ? ? * >> Create the knowledge base with stream processing turned on. >>? ? ? ? * >>? ? ? ? * @return >>? ? ? ? * @throwsException >>? ? ? ? */ >>? ? ? ? privatestaticKnowledgeBase >> readKnowledgeBase() throwsException { >>? ? ? ? ? ? ? KnowledgeBuilder kbuilder = >> KnowledgeBuilderFactory.newKnowledgeBuilder(); >> >> kbuilder.add(ResourceFactory.newClassPathResource("TemperatureAlarm1.drl"),ResourceType.DRL); >>? ? ? ? ? ? ? hasErrors(kbuilder); >> >>? ? ? ? ? ? ? // Stream processing turned on >>? ? ? ? ? ? ? KnowledgeBaseConfiguration conf = >> KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); >>? ? ? ? ? ? ? conf.setOption(EventProcessingOption.STREAM); >>? ? ? ? ? ? ? KnowledgeBase kbase = >> KnowledgeBaseFactory.newKnowledgeBase(conf); >>? ? ? ? ? ? ? hasErrors(kbuilder); >>? ? ? ? ? ? ? kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); >> >>? ? ? ? ? ? ? returnkbase; >>? ? ? ? } >> >>? ? ? ? /** >>? ? ? ? * >> Report errors if any >>? ? ? ? * >>? ? ? ? * @paramkbuilder >>? ? ? ? * @throwsException >>? ? ? ? */ >>? ? ? ? privatestaticvoidhasErrors(KnowledgeBuilder kbuilder) >> throwsException >> { >>? ? ? ? ? ? ? KnowledgeBuilderErrors errors = >> kbuilder.getErrors(); >>? ? ? ? ? ? ? if(errors.size() > 0) { >>? ? ? ? ? ? ? ? ? ? ? for(KnowledgeBuilderError error : errors) { >>? ? ? ? ? ? ? ? ? ? ? ? ? ? System.err.println(error); >>? ? ? ? ? ? ? ? ? ? ? } >>? ? ? ? ? ? ? ? ? ? ? thrownewIllegalArgumentException("Could not parse >> knowledge."); >>? ? ? ? ? ? ? } >> >>? ? ? ? } >> >> } >> >> >> Could >> anyone please help explain this change in the behavior of the rule? >> >> Regards, >> Sushant -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140605/c0934313/attachment-0001.html From matteo.mortari at gmail.com Thu Jun 5 05:57:49 2014 From: matteo.mortari at gmail.com (Matteo Mortari) Date: Thu, 5 Jun 2014 11:57:49 +0200 Subject: [rules-users] 6.1.0.beta4 and identified a rule pattern inducing memory leaks Message-ID: Ciao, I'm using 6.1.0.beta4 and I identified in my application a rule pattern inducing memory leaks. I try to attach rule, screenshots, and javacode to replicate the issue. IF the rule "After No data received within the last 1 hour Error, now resumed" is included, memory leaks happens, and pretty quickly. IF such rule is commented out, application do manage to keep alive. [>] Question kindly is: is this normal on 6.1.0.beta4, or shall I go ahead and raise a JIRA for this, please? This time I ask in the mailinglist first, just because last time I experienced a similar issue and raised JIRA, but in fact at the end was just another way to replicate a known issue. Thank you in advance Ciao, MM *package* com.acme.drools6test.anotherleak; *import* com.acme.objectmodel.* // we take time is insertion time of SensorReading *declare* SensorReading @role(event) *end* *declare* Alert @role(event) *end* *declare* AlertErrorToken @role(event) @timestamp(ts) ts : *long* *end* *declare* AMap @role(fact) map : java.util.HashMap *end* *query* "AMap" $AMap : AMap() *end* *query* "Alerts" $alert : Alert() *end* *query* "All" $o : Object() *end* *rule* "init AMap" *no-loop* *when* *not* ( AMap() ) *then* AMap t = *new* AMap(); t.setMap( *new* java.util.HashMap() ); *insert*( t ); *end* *rule* "to display a kind of single table that list most recent value" *no-loop* *when* $sr : SensorReading($id : header.id , $value : value) AMap($map : map) *then* $map.put($id, $value); *end* *rule* "No data received within the last 1 minutes Warning" *no-loop* *when* $sr : SensorReading() *not*( SensorReading( *this* != $sr, *this* after[0,1m] $sr ) ) *not*( Alert( sr == $sr, type == AlertType.WARNING ) ) *then* Alert alert = *new* Alert(kcontext.getKieRuntime().getSessionClock().getCurrentTime(), "No data received within the last 1 minutes", AlertType.WARNING, $sr); *insert*(alert); System.out.println("1 minutes Warning insert " + alert); // send WARNING notification *end* *rule* "No data received within the last 1 hour Error" *no-loop* *when* $sr : SensorReading() *not*( SensorReading( *this* != $sr, *this* after[0,1h] $sr ) ) *not*( Alert( sr == $sr, type == AlertType.ERROR ) ) *then* *long* errTs = kcontext.getKieRuntime().getSessionClock().getCurrentTime(); Alert alert = *new* Alert(errTs, "No data received within the last 1 hour", AlertType.ERROR, $sr); *insert*(alert); AlertErrorToken errToken = *new* AlertErrorToken(); errToken.setTs(errTs); *insert*(errToken); System.out.println("last 1 hour Error insert " + alert); // send ERROR notification *end* *rule* "After No data received within the last 1 hour Error, now resumed" *no-loop* *when* $errToken : AlertErrorToken() $errAlert : Alert(*this* coincides $errToken) SensorReading( *this* after $errToken ) *then* *retract*($errToken); System.out.println("now resumed retract " + $errToken); // send INFO resume notification *end* *rule* "Housekeep rule" *salience* -1000 *no-loop* *dialect* "mvel" *when* $last : SensorReading( ) over window:length( 1 ) $earlier : SensorReading( *this* before $last, *this* != $last ) *then* *retract*($earlier); System.out.println("Housekeep : "+$earlier); *end* -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140605/068ff129/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: Java_VisualVM_2014-06-05_11-38-12.png Type: image/png Size: 121616 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140605/068ff129/attachment-0002.png -------------- next part -------------- A non-text attachment was scrubbed... Name: Java_VisualVM_2014-06-05_11-43-06.png Type: image/png Size: 112279 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140605/068ff129/attachment-0003.png -------------- next part -------------- A non-text attachment was scrubbed... Name: 20140604.anotherleak.zip Type: application/zip Size: 6494 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140605/068ff129/attachment-0001.zip From sushantgoyal25 at yahoo.co.in Thu Jun 5 06:28:40 2014 From: sushantgoyal25 at yahoo.co.in (Sushant Goyal) Date: Thu, 5 Jun 2014 18:28:40 +0800 (SGT) Subject: [rules-users] Monitoring applications using Drools In-Reply-To: References: <1401886818.18964.YahooMailNeo@web190503.mail.sg3.yahoo.com> <1401916074.39835.YahooMailNeo@web190502.mail.sg3.yahoo.com> <1401955526.28558.YahooMailNeo@web190502.mail.sg3.yahoo.com> Message-ID: <1401964120.36103.YahooMailNeo@web190505.mail.sg3.yahoo.com> Thanks for? your quick response. I am using 5.3.0 Final version of Drools. Attached are the necessary files (DRL, fact, test class) required to reproduce the effect. Please let me know if any further details are required. Thanks! On Thursday, 5 June 2014 2:23 PM, Wolfgang Laun wrote: On first reading, both observations could be bugs. But it is difficult to assess such situation without knowing the Drools version, without having a complete (but minimal) set of Java and DRL code reproducing the effect. -W On 05/06/2014, Sushant Goyal wrote: > Thanks again for your response Wolfgang. > > I found one of the explanations on how Sliding Windows > operate in Drools while searching for an answer: > "Events are expired > from the time window when the clock advances" > > So, in my case if I am inserting events on T0 (insert 1st event), T1 (insert > 2nd event), T2 (insert 3rd event) and > advancing the clock to T3, T4 and T5; 1st event inserted at T0 is > expired from the window. And the rule calculates the average of the last two > events (2nd event & 3rd event) falling in the time > window. And the output average calculated by the from accumulate function > comes > to be (26 +28 / 2 == 27) satisfying the contract of average temperature to > be above > the threshold value of 25. > > Now let's say I do the below (advancing the clock by 5 > minutes after the 3rd insert): > > T0 (insert 1st event) > T1 (insert 2st event) > T2 (insert 3st event) > T3 > T4 > T5 > T6 > T7 > Fire all rules > > The average calculated by the rule is zero (0) since the > three inserted events fall outside the time window of 5 minutes (as > expected). > But, my rule fires regardless of the fact I have the contract of average > temperature > to be greater than threshold in my rule : > > $averageTemp : Number(intValue >> 25) >? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? from > accumulate(SensorReading($temp : temperature) >? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? over > window:time(5m) from > entry-point "Temperature Reading", average($temp)) > > As per the drools-fusion documentation, over window : time(X) is used to > consider events that happened in > the last X units. So, is there something that needs to be changed in my rule > implementation? > > One more question here, does over window : time(X) really considers events > occurred in the last > X units. I tried going further by doing the below: > > T0 (insert 1st event - Sensor reading is 24) > T1 (insert 2st event - Sensor reading is 26) > T2 (insert 3st event - Sensor reading is 28) > T3 > T4 > T5 > T6 > T7 > (insert event - Sensor reading is 30) > Fire All rules > > With the above test setup, my rule gets invoked twice printing > the average of temperatures as (30) and (30). But using over window:time(5m) > shouldn't result in rule being triggered once ? > > Thanks in advance! > > > > On Thursday, 5 June 2014 12:31 PM, Wolfgang Laun > wrote: > > > > Computations involving intervals where events arrive in real time > should not depend on differences of one unit of the smalles unit of > time for specifying durations (here: milliseconds). > > -W > > > > > On 04/06/2014, Sushant Goyal wrote: >> Thanks for your response. >> I was under the assumption that the window time frame begins, the moment >> first event is inserted into the working memory. Or I am still missing out >> something here (when you say that the first event is exactly at the >> beginning of the window)?? If I traverse backwards as below, then >> definitely >> the 1st event lies outside the window. >> >>? insert 1st event >>? delay 1 minute ^? (4 + 1 = 5) >>? insert 2nd event >>? delay 1 minute? ^ (3 + 1 = 4) >>? insert 3rd event >>? delay 1 minute? ^ (2 + 1 = 3) >>? delay 2 minutes? ^ >>? fire all rules >> >> However, if I start from the 1st event, the possibility where 1st event >> lies >> out of time frame of 5 mins would be if certain amount of time is >> consumed while inserting the 1st event. I tried to check it >> programmatically >> to see if there is any time lapsed during the insertion of the event by >> printing the clock's current time using clock.getCurrentTime() method >> before >> and after inserting the 1st event, however, could not notice any >> difference. >> >> But, if I change the time to be advanced by 1 minutes and 59 seconds >> (instead of 2 minutes) towards the end after the three events have been >> inserted, the rule seems to be working fine by considering all the three >> events for calculating the average. >> >> I know I am definitely missing out something here as I can see the >> difference in the behavior of the rule by merely reducing the total delay >> in >> time by 1 second (4 min 59 sec instead of 5 minutes) as stated above. But >> I >> am not able to figure that out. >> >> Could you please provide more insight. >> >> Thanks! >> >> >> On Wednesday, 4 June 2014 9:01 PM, Wolfgang Laun >> wrote: >> >> >> >> Your code does: >>? insert 1st event >>? delay 1 minute >>? insert 2nd event >>? delay 1 minute >>? insert 3rd event >>? delay 1 minute >>? delay (1 or) 2 minutes >>? fire all rules >> >> In the second case, 5 minutes have elapsed since the 1st insert. I >> don't think that this means "that [the 1st insert] falls well within >> the specified time range" - it is exactly at the beginning of the >> window, and I'd expect the window to be an interval open at one end - >> otherwise events smack on the point in time "separating" two intervals >> would be in both windows. >> >> -W >> >> >> On 04/06/2014, Sushant Goyal wrote: >>> Hi, >>> >>> I am >>> trying to understand how Drools can be used to monitor events over a >>> period >>> of >>> time using Sliding Time Windows. I have created a rule to sound an alarm >>> when >>> average temperature read from a sensor is above 25 degrees (threshold) >>> over >>> a >>> time period of 5 minutes. The rule makes of use of the Stream processing >>> mode so >>> that continuous stream of events could be processed. >>> >>> Below >>> is how my rule looks like: >>> >>> //declare any global >>> variables here >>> globaljava.lang.StringBuilder alertMessage >>> >>> // add declaration to >>> change the Fact into an Event >>> declareSensorReading >>>? ? ? ? @role(event) >>> end >>> >>> /* Alert when average >>> temperature is above 25 >>>? ? over a time period of 5 minutes */ >>> rule"TemperatureAlarm1" >>> >>>? ? when >>>? ? ? ? //conditions >>>? ? ? ? $averageTemp : Number(doubleValue > >>> 25.00) >>>? ? ? ? ? ? ? ? ? ? ? ? ? ? fromaccumulate(SensorReading($temp >>> : temperature) >>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? over >>> window:time(5m) fromentry-point "Temperature Reading", average($temp)) >>>? ? then >>>? ? ? ? //actions >>>? ? ? ? System.out.println("Fired rule: >>> "+ >>> kcontext.getRule().getName()); >>>? ? ? ? alertMessage.append("Threshold >>> temperature breached!!"+ >>>? ? ? ? ? ? ? ? ? ? ? ? ? ? "\nTurn on the >>> Air Conditioner"+ >>>? ? ? ? ? ? ? ? ? ? ? ? ? ? "\nAverage >>> temperature over 5 minutes is above 25 ("+ $averageTemp.intValue() + >>> ")\n"); >>> >>> end >>> >>> And below >>> is the snapshot of the fact (SensorReading) which is inserted as an event >>> in >>> the working memory: >>> >>> publicclassSensorReading { >>> >>>? ? ? ? privatedoubletemperature; >>> >>>? ? ? ? publicSensorReading(){} >>> >>>? ? ? ? publicSensorReading(doubletemp){ >>>? ? ? ? ? ? ? this.temperature= temp; >>>? ? ? ? } >>> >>>? ? ? ? // getters and setters >>> } >>> >>> >>> In >>> order to test the rule, I am using Pseudo Clock with Stream processing >>> turned >>> on. I am inserting three SensorReading objects in the working memory with >>> temperature >>> values as (24, 26, 28) after every minute, so that the average of the >>> temperatures is above threshold and the rule is invoked. After the >>> objects >>> are >>> inserted in the working memory, I am deliberately advancing the Pseudo >>> clock >>> by >>> another 1 minute, so that the total time elapsed is 4 minutes. The rule >>> works >>> as expected with the above test setup and prints the average value as 26 >>> on >>> the >>> console. >>> >>> However, >>> if I advance the clock by 2 minutes instead of 1 minute after three >>> sensor >>> reading objects have been inserted in the working memory (after every 1 >>> minute >>> interval), the rule gets invoked but the average value gets changed to 27 >>> (26 + >>> 28 / 2 == 27). Looks like the first temperature reading is getting >>> ignored >>> by >>> the rule despite the fact that it falls well within the specified time >>> range >>> of >>> 5 minutes. Below is the snapshot of my test class: >>> >>> publicclassTemperatureAlarmTest >>> { >>> >>>? ? ? ? staticKnowledgeBase kbase; >>>? ? ? ? staticStatefulKnowledgeSession ksession; >>>? ? ? ? staticKnowledgeRuntimeLogger logger; >>>? ? ? ? staticSessionPseudoClock clock; >>> >>>? ? ? ? @BeforeClass >>>? ? ? ? publicstaticvoidsetupKsession() { >>>? ? ? ? ? ? ? try{ >>>? ? ? ? ? ? ? ? ? ? ? // load up the >>> knowledge base >>>? ? ? ? ? ? ? ? ? ? ? kbase= readKnowledgeBase(); >>>? ? ? ? ? ? ? ? ? ? ? ksession= readKnowldedeSession(kbase); >>>? ? ? ? ? ? ? ? ? ? ? clock= ksession.getSessionClock(); >>> >>>? ? ? ? ? ? ? ? ? ? ? logger= >>> KnowledgeRuntimeLoggerFactory.newThreadedFileLogger(ksession, >>> "log/Errors", >>> 500); >>> >>>? ? ? ? ? ? ? } catch(Throwable t) { >>>? ? ? ? ? ? ? ? ? ? ? t.printStackTrace(); >>>? ? ? ? ? ? ? } >>>? ? ? ? } >>> >>>? ? ? ? /** >>>? ? ? ? * >>> Create a new Stateful knowledge Session with a pseudo clock from the >>>? ? ? ? * >>> knowledge base >>>? ? ? ? * >>>? ? ? ? * @paramkbase >>>? ? ? ? * @return >>>? ? ? ? * @throwsException >>>? ? ? ? */ >>>? ? ? ? privatestaticStatefulKnowledgeSession readKnowldedeSession( >>>? ? ? ? ? ? ? ? ? ? ? KnowledgeBase kbase) throwsException { >>> >>>? ? ? ? ? ? ? // Knowledge Session Configuration >>>? ? ? ? ? ? ? KnowledgeSessionConfiguration >>> config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(); >>>? ? ? ? ? ? ? config.setOption(ClockTypeOption.get("pseudo")); >>>? ? ? ? ? ? ? returnkbase.newStatefulKnowledgeSession(config, null); >>> >>>? ? ? ? } >>> >>>? ? ? ? @AfterClass >>>? ? ? ? publicstaticvoidcloseKsession() { >>>? ? ? ? ? ? ? try{ >>>? ? ? ? ? ? ? ? ? ? ? // load up the >>> knowledge base >>>? ? ? ? ? ? ? ? ? ? ? logger.close(); >>>? ? ? ? ? ? ? ? ? ? ? ksession.dispose(); >>> >>>? ? ? ? ? ? ? } catch(Throwable t) { >>>? ? ? ? ? ? ? ? ? ? ? t.printStackTrace(); >>>? ? ? ? ? ? ? } >>>? ? ? ? } >>> >>>? ? ? ? @Test >>>? ? ? ? publicvoidTemperatureAlarm1_Test() { >>> >>>? ? ? ? ? ? ? // Create Temperature list >>>? ? ? ? ? ? ? ArrayList >>> tempMetrics = newArrayList(); >>>? ? ? ? ? ? ? doubletemp = 24.00; >>> >>>? ? ? ? ? ? ? while(tempMetrics.size() >>> < 3) { >>>? ? ? ? ? ? ? ? ? ? ? tempMetrics.add(newSensorReading(temp)); >>>? ? ? ? ? ? ? ? ? ? ? temp += 2; >>>? ? ? ? ? ? ? } >>>? ? ? ? ? ? ? System.out.println("Size of >>> tempMetrics List: "+tempMetrics.size()+"\n"); >>>? ? ? ? ? ? ? System.out.println("First Temp >>> reading: "+tempMetrics.get(0).getTemperature()); >>>? ? ? ? ? ? ? System.out.println("Second Temp >>> reading: "+tempMetrics.get(1).getTemperature()); >>>? ? ? ? ? ? ? System.out.println("Third Temp >>> reading: "+tempMetrics.get(2).getTemperature()+"\n"); >>> >>>? ? ? ? ? ? ? // Separate stream for inserts >>>? ? ? ? ? ? ? WorkingMemoryEntryPoint >>> temperatureStream = ksession.getWorkingMemoryEntryPoint( "Temperature >>> Reading"); >>> >>>? ? ? ? ? ? ? // Create fact handle list >>>? ? ? ? ? ? ? ArrayList >>> factHandleList = newArrayList(); >>> >>>? ? ? ? ? ? ? // Insert objects into working >>> memory while advancing the clock >>>? ? ? ? ? ? ? for(inti = 0; i < >>> tempMetrics.size(); i++) { >>> >>> factHandleList.add(temperatureStream.insert(tempMetrics.get(i))); >>>? ? ? ? ? ? ? ? ? ? ? clock.advanceTime(1, >>> TimeUnit.MINUTES); >>>? ? ? ? ? ? ? ? ? ? ? System.out.println("Time advances >>> by 1 minute"); >>>? ? ? ? ? ? ? } >>>? ? ? ? ? ? ? System.out.println("Fact Count >>> is: "+temperatureStream.getFactCount()); >>>? ? ? ? ? ? ? System.out.println("Fact Entry >>> Point is: "+temperatureStream.getEntryPointId()); >>>? ? ? ? ? ? ? System.out.println("Size of >>> FactHandleList: "+factHandleList.size()+"\n"); >>> >>>? ? ? ? ? ? ? clock.advanceTime(1, >>> TimeUnit.MINUTES);? ? ? ? //change in >>> advanced time alters the rule behavior >>> >>>? ? ? ? ? ? ? StringBuilder stringBuilder = newStringBuilder(); >>>? ? ? ? ? ? ? ksession.setGlobal("alertMessage", stringBuilder); >>>? ? ? ? ? ? ? ksession.fireAllRules(); >>> >>>? ? ? ? ? ? ? // Remove facts >>>? ? ? ? ? ? ? for(inti = 0; i < >>> factHandleList.size(); i++) { >>>? ? ? ? ? ? ? ? ? ? ? temperatureStream.retract(factHandleList.get(i)); >>>? ? ? ? ? ? ? } >>>? ? ? ? ? ? ? System.out.println("After >>> Removing facts"); >>>? ? ? ? ? ? ? System.out.println("Fact Count >>> is: "+temperatureStream.getFactCount()); >>> >>>? ? ? ? ? ? ? String result = >>> stringBuilder.substring(0, 32); >>>? ? ? ? ? ? ? System.out.println("Alert Message >>> is: \n"+ stringBuilder.toString()); >>>? ? ? ? ? ? ? assertEquals("Alert Message >>> is: ", "Threshold >>> temperature breached!!", result); >>>? ? ? ? } >>> >>>? ? ? ? /** >>>? ? ? ? * >>> Create the knowledge base with stream processing turned on. >>>? ? ? ? * >>>? ? ? ? * @return >>>? ? ? ? * @throwsException >>>? ? ? ? */ >>>? ? ? ? privatestaticKnowledgeBase >>> readKnowledgeBase() throwsException { >>>? ? ? ? ? ? ? KnowledgeBuilder kbuilder = >>> KnowledgeBuilderFactory.newKnowledgeBuilder(); >>> >>> kbuilder.add(ResourceFactory.newClassPathResource("TemperatureAlarm1.drl"),ResourceType.DRL); >>>? ? ? ? ? ? ? hasErrors(kbuilder); >>> >>>? ? ? ? ? ? ? // Stream processing turned on >>>? ? ? ? ? ? ? KnowledgeBaseConfiguration conf = >>> KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); >>>? ? ? ? ? ? ? conf.setOption(EventProcessingOption.STREAM); >>>? ? ? ? ? ? ? KnowledgeBase kbase = >>> KnowledgeBaseFactory.newKnowledgeBase(conf); >>>? ? ? ? ? ? ? hasErrors(kbuilder); >>> >>> kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); >>> >>>? ? ? ? ? ? ? returnkbase; >>>? ? ? ? } >>> >>>? ? ? ? /** >>>? ? ? ? * >>> Report errors if any >>>? ? ? ? * >>>? ? ? ? * @paramkbuilder >>>? ? ? ? * @throwsException >>>? ? ? ? */ >>>? ? ? ? privatestaticvoidhasErrors(KnowledgeBuilder kbuilder) >>> throwsException >>> { >>>? ? ? ? ? ? ? KnowledgeBuilderErrors errors = >>> kbuilder.getErrors(); >>>? ? ? ? ? ? ? if(errors.size() > 0) { >>>? ? ? ? ? ? ? ? ? ? ? for(KnowledgeBuilderError error : errors) { >>>? ? ? ? ? ? ? ? ? ? ? ? ? ? System.err.println(error); >>>? ? ? ? ? ? ? ? ? ? ? } >>>? ? ? ? ? ? ? ? ? ? ? thrownewIllegalArgumentException("Could not parse >>> knowledge."); >>>? ? ? ? ? ? ? } >>> >>>? ? ? ? } >>> >>> } >>> >>> >>> Could >>> anyone please help explain this change in the behavior of the rule? >>> >>> Regards, >>> Sushant -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140605/22d51b86/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: TemperatureAlarm1.drl Type: application/octet-stream Size: 1040 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140605/22d51b86/attachment-0003.obj -------------- next part -------------- A non-text attachment was scrubbed... Name: TemperatureAlarmTest.java Type: application/octet-stream Size: 6995 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140605/22d51b86/attachment-0004.obj -------------- next part -------------- A non-text attachment was scrubbed... Name: SensorReading.java Type: application/octet-stream Size: 455 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140605/22d51b86/attachment-0005.obj From mario.fusco at gmail.com Thu Jun 5 07:42:00 2014 From: mario.fusco at gmail.com (Mario Fusco) Date: Thu, 5 Jun 2014 04:42:00 -0700 (PDT) Subject: [rules-users] 6.1.0.beta4 and identified a rule pattern inducing memory leaks In-Reply-To: References: Message-ID: <1401968520281-4029881.post@n3.nabble.com> Hi, for sure this is not a known issue, so can you please open a jira and attach your reproducer there? I'll investigate this problem asap. Thanks a lot, Mario -- View this message in context: http://drools.46999.n3.nabble.com/rules-users-6-1-0-beta4-and-identified-a-rule-pattern-inducing-memory-leaks-tp4029879p4029881.html Sent from the Drools: User forum mailing list archive at Nabble.com. From matteo.mortari at gmail.com Thu Jun 5 07:56:00 2014 From: matteo.mortari at gmail.com (Matteo Mortari) Date: Thu, 5 Jun 2014 13:56:00 +0200 Subject: [rules-users] 6.1.0.beta4 and identified a rule pattern inducing memory leaks In-Reply-To: <1401968520281-4029881.post@n3.nabble.com> References: <1401968520281-4029881.post@n3.nabble.com> Message-ID: Ciao Mario, thanks for your early feedback Raised as: https://issues.jboss.org/browse/DROOLS-516 Looking forward looking to comments on this JIRA, then. Ciao Matteo On Thu, Jun 5, 2014 at 1:42 PM, Mario Fusco wrote: > Hi, > > for sure this is not a known issue, so can you please open a jira and > attach > your reproducer there? > I'll investigate this problem asap. > > Thanks a lot, > Mario > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/rules-users-6-1-0-beta4-and-identified-a-rule-pattern-inducing-memory-leaks-tp4029879p4029881.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140605/9ec48f25/attachment.html From sushantgoyal25 at yahoo.co.in Thu Jun 5 08:26:34 2014 From: sushantgoyal25 at yahoo.co.in (Sushant Goyal) Date: Thu, 5 Jun 2014 20:26:34 +0800 (SGT) Subject: [rules-users] Monitoring applications using Drools In-Reply-To: <1401964120.36103.YahooMailNeo@web190505.mail.sg3.yahoo.com> References: <1401886818.18964.YahooMailNeo@web190503.mail.sg3.yahoo.com> <1401916074.39835.YahooMailNeo@web190502.mail.sg3.yahoo.com> <1401955526.28558.YahooMailNeo@web190502.mail.sg3.yahoo.com> <1401964120.36103.YahooMailNeo@web190505.mail.sg3.yahoo.com> Message-ID: <1401971194.20028.YahooMailNeo@web190503.mail.sg3.yahoo.com> Folks, ? I have tried changing my Drools version to 5.5.0.Final and 6.0.1.Final, but there is no change in the rule behavior. So, I assume we can rule out the possibility of version issue. On Thursday, 5 June 2014 4:04 PM, Sushant Goyal wrote: Thanks for? your quick response. I am using 5.3.0 Final version of Drools. Attached are the necessary files (DRL, fact, test class) required to reproduce the effect. Please let me know if any further details are required. Thanks! On Thursday, 5 June 2014 2:23 PM, Wolfgang Laun wrote: On first reading, both observations could be bugs. But it is difficult to assess such situation without knowing the Drools version, without having a complete (but minimal) set of Java and DRL code reproducing the effect. -W On 05/06/2014, Sushant Goyal wrote: > Thanks again for your response Wolfgang. > > I found one of the explanations on how Sliding Windows > operate in Drools while searching for an answer: > "Events are expired > from the time window when the clock advances" > > So, in my case if I am inserting events on T0 (insert 1st event), T1 (insert > 2nd event), T2 (insert 3rd event) and > advancing the clock to T3, T4 and T5; 1st event inserted at T0 is > expired from the window. And the rule calculates the average of the last two > events (2nd event & 3rd event) falling in the time > window. And the output average calculated by the from accumulate function > comes > to be (26 +28 / 2 == 27) satisfying the contract of average temperature to > be above > the threshold value of 25. > > Now let's say I do the below (advancing the clock by 5 > minutes after the 3rd insert): > > T0 (insert 1st event) > T1 (insert 2st event) > T2 (insert 3st event) > T3 > T4 > T5 > T6 > T7 > Fire all rules > > The average calculated by the rule is zero (0) since the > three inserted events fall outside the time window of 5 minutes (as > expected). > But, my rule fires regardless of the fact I have the contract of average > temperature > to be greater than threshold in my rule : > > $averageTemp : Number(intValue >> 25) >? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? from > accumulate(SensorReading($temp : temperature) >? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? over > window:time(5m) from > entry-point "Temperature Reading", average($temp)) > > As per the drools-fusion documentation, over window : time(X) is used to > consider events that happened in > the last X units. So, is there something that needs to be changed in my rule > implementation? > > One more question here, does over window : time(X) really considers events > occurred in the last > X units. I tried going further by doing the below: > > T0 (insert 1st event - Sensor reading is 24) > T1 (insert 2st event - Sensor reading is 26) > T2 (insert 3st event - Sensor reading is 28) > T3 > T4 > T5 > T6 > T7 > (insert event - Sensor reading is 30) > Fire All rules > > With the above test setup, my rule gets invoked twice printing > the average of temperatures as (30) and (30). But using over window:time(5m) > shouldn't result in rule being triggered once ? > > Thanks in advance! > > > > On Thursday, 5 June 2014 12:31 PM, Wolfgang Laun > wrote: > > > > Computations involving intervals where events arrive in real time > should not depend on differences of one unit of the smalles unit of > time for specifying durations (here: milliseconds). > > -W > > > > > On 04/06/2014, Sushant Goyal wrote: >> Thanks for your response. >> I was under the assumption that the window time frame begins, the moment >> first event is inserted into the working memory. Or I am still missing out >> something here (when you say that the first event is exactly at the >> beginning of the window)?? If I traverse backwards as below, then >> definitely >> the 1st event lies outside the window. >> >>? insert 1st event >>? delay 1 minute ^? (4 + 1 = 5) >>? insert 2nd event >>? delay 1 minute? ^ (3 + 1 = 4) >>? insert 3rd event >>? delay 1 minute? ^ (2 + 1 = 3) >>? delay 2 minutes? ^ >>? fire all rules >> >> However, if I start from the 1st event, the possibility where 1st event >> lies >> out of time frame of 5 mins would be if certain amount of time is >> consumed while inserting the 1st event. I tried to check it >> programmatically >> to see if there is any time lapsed during the insertion of the event by >> printing the clock's current time using clock.getCurrentTime() method >> before >> and after inserting the 1st event, however, could not notice any >> difference. >> >> But, if I change the time to be advanced by 1 minutes and 59 seconds >> (instead of 2 minutes) towards the end after the three events have been >> inserted, the rule seems to be working fine by considering all the three >> events for calculating the average. >> >> I know I am definitely missing out something here as I can see the >> difference in the behavior of the rule by merely reducing the total delay >> in >> time by 1 second (4 min 59 sec instead of 5 minutes) as stated above. But >> I >> am not able to figure that out. >> >> Could you please provide more insight. >> >> Thanks! >> >> >> On Wednesday, 4 June 2014 9:01 PM, Wolfgang Laun >> wrote: >> >> >> >> Your code does: >>? insert 1st event >>? delay 1 minute >>? insert 2nd event >>? delay 1 minute >>? insert 3rd event >>? delay 1 minute >>? delay (1 or) 2 minutes >>? fire all rules >> >> In the second case, 5 minutes have elapsed since the 1st insert. I >> don't think that this means "that [the 1st insert] falls well within >> the specified time range" - it is exactly at the beginning of the >> window, and I'd expect the window to be an interval open at one end - >> otherwise events smack on the point in time "separating" two intervals >> would be in both windows. >> >> -W >> >> >> On 04/06/2014, Sushant Goyal wrote: >>> Hi, >>> >>> I am >>> trying to understand how Drools can be used to monitor events over a >>> period >>> of >>> time using Sliding Time Windows. I have created a rule to sound an alarm >>> when >>> average temperature read from a sensor is above 25 degrees (threshold) >>> over >>> a >>> time period of 5 minutes. The rule makes of use of the Stream processing >>> mode so >>> that continuous stream of events could be processed. >>> >>> Below >>> is how my rule looks like: >>> >>> //declare any global >>> variables here >>> globaljava.lang.StringBuilder alertMessage >>> >>> // add declaration to >>> change the Fact into an Event >>> declareSensorReading >>>? ? ? ? @role(event) >>> end >>> >>> /* Alert when average >>> temperature is above 25 >>>? ? over a time period of 5 minutes */ >>> rule"TemperatureAlarm1" >>> >>>? ? when >>>? ? ? ? //conditions >>>? ? ? ? $averageTemp : Number(doubleValue > >>> 25.00) >>>? ? ? ? ? ? ? ? ? ? ? ? ? ? fromaccumulate(SensorReading($temp >>> : temperature) >>>? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? over >>> window:time(5m) fromentry-point "Temperature Reading", average($temp)) >>>? ? then >>>? ? ? ? //actions >>>? ? ? ? System.out.println("Fired rule: >>> "+ >>> kcontext.getRule().getName()); >>>? ? ? ? alertMessage.append("Threshold >>> temperature breached!!"+ >>>? ? ? ? ? ? ? ? ? ? ? ? ? ? "\nTurn on the >>> Air Conditioner"+ >>>? ? ? ? ? ? ? ? ? ? ? ? ? ? "\nAverage >>> temperature over 5 minutes is above 25 ("+ $averageTemp.intValue() + >>> ")\n"); >>> >>> end >>> >>> And below >>> is the snapshot of the fact (SensorReading) which is inserted as an event >>> in >>> the working memory: >>> >>> publicclassSensorReading { >>> >>>? ? ? ? privatedoubletemperature; >>> >>>? ? ? ? publicSensorReading(){} >>> >>>? ? ? ? publicSensorReading(doubletemp){ >>>? ? ? ? ? ? ? this.temperature= temp; >>>? ? ? ? } >>> >>>? ? ? ? // getters and setters >>> } >>> >>> >>> In >>> order to test the rule, I am using Pseudo Clock with Stream processing >>> turned >>> on. I am inserting three SensorReading objects in the working memory with >>> temperature >>> values as (24, 26, 28) after every minute, so that the average of the >>> temperatures is above threshold and the rule is invoked. After the >>> objects >>> are >>> inserted in the working memory, I am deliberately advancing the Pseudo >>> clock >>> by >>> another 1 minute, so that the total time elapsed is 4 minutes. The rule >>> works >>> as expected with the above test setup and prints the average value as 26 >>> on >>> the >>> console. >>> >>> However, >>> if I advance the clock by 2 minutes instead of 1 minute after three >>> sensor >>> reading objects have been inserted in the working memory (after every 1 >>> minute >>> interval), the rule gets invoked but the average value gets changed to 27 >>> (26 + >>> 28 / 2 == 27). Looks like the first temperature reading is getting >>> ignored >>> by >>> the rule despite the fact that it falls well within the specified time >>> range >>> of >>> 5 minutes. Below is the snapshot of my test class: >>> >>> publicclassTemperatureAlarmTest >>> { >>> >>>? ? ? ? staticKnowledgeBase kbase; >>>? ? ? ? staticStatefulKnowledgeSession ksession; >>>? ? ? ? staticKnowledgeRuntimeLogger logger; >>>? ? ? ? staticSessionPseudoClock clock; >>> >>>? ? ? ? @BeforeClass >>>? ? ? ? publicstaticvoidsetupKsession() { >>>? ? ? ? ? ? ? try{ >>>? ? ? ? ? ? ? ? ? ? ? // load up the >>> knowledge base >>>? ? ? ? ? ? ? ? ? ? ? kbase= readKnowledgeBase(); >>>? ? ? ? ? ? ? ? ? ? ? ksession= readKnowldedeSession(kbase); >>>? ? ? ? ? ? ? ? ? ? ? clock= ksession.getSessionClock(); >>> >>>? ? ? ? ? ? ? ? ? ? ? logger= >>> KnowledgeRuntimeLoggerFactory.newThreadedFileLogger(ksession, >>> "log/Errors", >>> 500); >>> >>>? ? ? ? ? ? ? } catch(Throwable t) { >>>? ? ? ? ? ? ? ? ? ? ? t.printStackTrace(); >>>? ? ? ? ? ? ? } >>>? ? ? ? } >>> >>>? ? ? ? /** >>>? ? ? ? * >>> Create a new Stateful knowledge Session with a pseudo clock from the >>>? ? ? ? * >>> knowledge base >>>? ? ? ? * >>>? ? ? ? * @paramkbase >>>? ? ? ? * @return >>>? ? ? ? * @throwsException >>>? ? ? ? */ >>>? ? ? ? privatestaticStatefulKnowledgeSession readKnowldedeSession( >>>? ? ? ? ? ? ? ? ? ? ? KnowledgeBase kbase) throwsException { >>> >>>? ? ? ? ? ? ? // Knowledge Session Configuration >>>? ? ? ? ? ? ? KnowledgeSessionConfiguration >>> config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(); >>>? ? ? ? ? ? ? config.setOption(ClockTypeOption.get("pseudo")); >>>? ? ? ? ? ? ? returnkbase.newStatefulKnowledgeSession(config, null); >>> >>>? ? ? ? } >>> >>>? ? ? ? @AfterClass >>>? ? ? ? publicstaticvoidcloseKsession() { >>>? ? ? ? ? ? ? try{ >>>? ? ? ? ? ? ? ? ? ? ? // load up the >>> knowledge base >>>? ? ? ? ? ? ? ? ? ? ? logger.close(); >>>? ? ? ? ? ? ? ? ? ? ? ksession.dispose(); >>> >>>? ? ? ? ? ? ? } catch(Throwable t) { >>>? ? ? ? ? ? ? ? ? ? ? t.printStackTrace(); >>>? ? ? ? ? ? ? } >>>? ? ? ? } >>> >>>? ? ? ? @Test >>>? ? ? ? publicvoidTemperatureAlarm1_Test() { >>> >>>? ? ? ? ? ? ? // Create Temperature list >>>? ? ? ? ? ? ? ArrayList >>> tempMetrics = newArrayList(); >>>? ? ? ? ? ? ? doubletemp = 24.00; >>> >>>? ? ? ? ? ? ? while(tempMetrics.size() >>> < 3) { >>>? ? ? ? ? ? ? ? ? ? ? tempMetrics.add(newSensorReading(temp)); >>>? ? ? ? ? ? ? ? ? ? ? temp += 2; >>>? ? ? ? ? ? ? } >>>? ? ? ? ? ? ? System.out.println("Size of >>> tempMetrics List: "+tempMetrics.size()+"\n"); >>>? ? ? ? ? ? ? System.out.println("First Temp >>> reading: "+tempMetrics.get(0).getTemperature()); >>>? ? ? ? ? ? ? System.out.println("Second Temp >>> reading: "+tempMetrics.get(1).getTemperature()); >>>? ? ? ? ? ? ? System.out.println("Third Temp >>> reading: "+tempMetrics.get(2).getTemperature()+"\n"); >>> >>>? ? ? ? ? ? ? // Separate stream for inserts >>>? ? ? ? ? ? ? WorkingMemoryEntryPoint >>> temperatureStream = ksession.getWorkingMemoryEntryPoint( "Temperature >>> Reading"); >>> >>>? ? ? ? ? ? ? // Create fact handle list >>>? ? ? ? ? ? ? ArrayList >>> factHandleList = newArrayList(); >>> >>>? ? ? ? ? ? ? // Insert objects into working >>> memory while advancing the clock >>>? ? ? ? ? ? ? for(inti = 0; i < >>> tempMetrics.size(); i++) { >>> >>> factHandleList.add(temperatureStream.insert(tempMetrics.get(i))); >>>? ? ? ? ? ? ? ? ? ? ? clock.advanceTime(1, >>> TimeUnit.MINUTES); >>>? ? ? ? ? ? ? ? ? ? ? System.out.println("Time advances >>> by 1 minute"); >>>? ? ? ? ? ? ? } >>>? ? ? ? ? ? ? System.out.println("Fact Count >>> is: "+temperatureStream.getFactCount()); >>>? ? ? ? ? ? ? System.out.println("Fact Entry >>> Point is: "+temperatureStream.getEntryPointId()); >>>? ? ? ? ? ? ? System.out.println("Size of >>> FactHandleList: "+factHandleList.size()+"\n"); >>> >>>? ? ? ? ? ? ? clock.advanceTime(1, >>> TimeUnit.MINUTES);? ? ? ? //change in >>> advanced time alters the rule behavior >>> >>>? ? ? ? ? ? ? StringBuilder stringBuilder = newStringBuilder(); >>>? ? ? ? ? ? ? ksession.setGlobal("alertMessage", stringBuilder); >>>? ? ? ? ? ? ? ksession.fireAllRules(); >>> >>>? ? ? ? ? ? ? // Remove facts >>>? ? ? ? ? ? ? for(inti = 0; i < >>> factHandleList.size(); i++) { >>>? ? ? ? ? ? ? ? ? ? ? temperatureStream.retract(factHandleList.get(i)); >>>? ? ? ? ? ? ? } >>>? ? ? ? ? ? ? System.out.println("After >>> Removing facts"); >>>? ? ? ? ? ? ? System.out.println("Fact Count >>> is: "+temperatureStream.getFactCount()); >>> >>>? ? ? ? ? ? ? String result = >>> stringBuilder.substring(0, 32); >>>? ? ? ? ? ? ? System.out.println("Alert Message >>> is: \n"+ stringBuilder.toString()); >>>? ? ? ? ? ? ? assertEquals("Alert Message >>> is: ", "Threshold >>> temperature breached!!", result); >>>? ? ? ? } >>> >>>? ? ? ? /** >>>? ? ? ? * >>> Create the knowledge base with stream processing turned on. >>>? ? ? ? * >>>? ? ? ? * @return >>>? ? ? ? * @throwsException >>>? ? ? ? */ >>>? ? ? ? privatestaticKnowledgeBase >>> readKnowledgeBase() throwsException { >>>? ? ? ? ? ? ? KnowledgeBuilder kbuilder = >>> KnowledgeBuilderFactory.newKnowledgeBuilder(); >>> >>> kbuilder.add(ResourceFactory.newClassPathResource("TemperatureAlarm1.drl"),ResourceType.DRL); >>>? ? ? ? ? ? ? hasErrors(kbuilder); >>> >>>? ? ? ? ? ? ? // Stream processing turned on >>>? ? ? ? ? ? ? KnowledgeBaseConfiguration conf = >>> KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); >>>? ? ? ? ? ? ? conf.setOption(EventProcessingOption.STREAM); >>>? ? ? ? ? ? ? KnowledgeBase kbase = >>> KnowledgeBaseFactory.newKnowledgeBase(conf); >>>? ? ? ? ? ? ? hasErrors(kbuilder); >>> >>> kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); >>> >>>? ? ? ? ? ? ? returnkbase; >>>? ? ? ? } >>> >>>? ? ? ? /** >>>? ? ? ? * >>> Report errors if any >>>? ? ? ? * >>>? ? ? ? * @paramkbuilder >>>? ? ? ? * @throwsException >>>? ? ? ? */ >>>? ? ? ? privatestaticvoidhasErrors(KnowledgeBuilder kbuilder) >>> throwsException >>> { >>>? ? ? ? ? ? ? KnowledgeBuilderErrors errors = >>> kbuilder.getErrors(); >>>? ? ? ? ? ? ? if(errors.size() > 0) { >>>? ? ? ? ? ? ? ? ? ? ? for(KnowledgeBuilderError error : errors) { >>>? ? ? ? ? ? ? ? ? ? ? ? ? ? System.err.println(error); >>>? ? ? ? ? ? ? ? ? ? ? } >>>? ? ? ? ? ? ? ? ? ? ? thrownewIllegalArgumentException("Could not parse >>> knowledge."); >>>? ? ? ? ? ? ? } >>> >>>? ? ? ? } >>> >>> } >>> >>> >>> Could >>> anyone please help explain this change in the behavior of the rule? >>> >>> Regards, >>> Sushant _______________________________________________ rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140605/551c20ff/attachment-0001.html From wolfgang.laun at gmail.com Thu Jun 5 11:02:01 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Thu, 5 Jun 2014 17:02:01 +0200 Subject: [rules-users] Monitoring applications using Drools In-Reply-To: <1401971194.20028.YahooMailNeo@web190503.mail.sg3.yahoo.com> References: <1401886818.18964.YahooMailNeo@web190503.mail.sg3.yahoo.com> <1401916074.39835.YahooMailNeo@web190502.mail.sg3.yahoo.com> <1401955526.28558.YahooMailNeo@web190502.mail.sg3.yahoo.com> <1401964120.36103.YahooMailNeo@web190505.mail.sg3.yahoo.com> <1401971194.20028.YahooMailNeo@web190503.mail.sg3.yahoo.com> Message-ID: Running Drools for event processing can be done in several ways, but some of them will not produce the expected results. One good way is to use a real time clock, call fireUntilHalt() in one thread and insert facts (as they arrive) via another thread. Another one, good for tests, is to use a pseudo clock, which should be advanced according to the progress of time, e.g. before inserts. With this approach, it is necessary to fireAllRules() after each insert. Failure to do so will keep activations resulting from an earlier (pseudo-)time and fire it unless facts have changed. But a "change" of the time window in the rule (and the set of facts it had selected at some earlier pseudo-time) does not result in the activation being discarded. Change your code like this: for (int i = 0; i < tempMetrics.size(); i++) { System.out.println("Clock's Time: "+clock.getCurrentTime()); System.out.println("temp reading: " + tempMetrics.get(i).getTemperature() ); factHandleList.add(temperatureStream.insert(tempMetrics.get(i))); ksession.fireAllRules(); clock.advanceTime(1, TimeUnit.MINUTES); } -W On 05/06/2014, Sushant Goyal wrote: > Folks, > > I have tried changing my Drools version to 5.5.0.Final and 6.0.1.Final, > but there is no change in the rule behavior. So, I assume we can rule out > the > possibility of version issue. > > > On Thursday, 5 June 2014 4:04 PM, Sushant Goyal > wrote: > > > > Thanks for your quick > response. > I am using 5.3.0 Final version of Drools. Attached are the > necessary files (DRL, fact, test class) required to reproduce the effect. > Please let me know if any further details are required. > > Thanks! > > > On Thursday, 5 June 2014 2:23 PM, Wolfgang Laun > wrote: > > > > On first reading, both observations could be bugs. But it is difficult to > assess such situation without knowing the Drools version, without > having a complete (but minimal) set of Java and DRL code reproducing > the effect. > > -W > > > On 05/06/2014, Sushant Goyal wrote: >> Thanks again for your response Wolfgang. >> >> I found one of the explanations on how > Sliding Windows >> operate in Drools while searching for an answer: >> "Events are expired >> from the time window when the clock advances" >> >> So, in my case if I am inserting events on T0 (insert 1st event), T1 >> (insert >> 2nd event), T2 (insert 3rd event) and >> advancing the clock to T3, T4 and T5; 1st event inserted at T0 is >> expired from the window. And the rule calculates the average of the last >> two >> events (2nd event & 3rd event) falling in the time >> window. And the output average calculated by the from accumulate function >> comes >> to be (26 +28 / 2 == 27) satisfying the contract of average temperature to >> be above >> the threshold value of 25. >> >> Now let's say I do the below (advancing the clock by 5 >> minutes after the 3rd insert): >> >> T0 (insert 1st event) >> T1 (insert 2st event) >> T2 (insert 3st event) >> T3 >> T4 >> T5 >> T6 >> T7 >> Fire all rules >> >> The average calculated by the rule is zero (0) since the >> three inserted events fall outside the time window of 5 minutes (as >> expected). >> But, my rule fires regardless of the fact I have the contract of average >> temperature >> to be greater than threshold in my rule : >> >> $averageTemp : Number(intValue >>> 25) >> from >> accumulate(SensorReading($temp : temperature) >> over >> window:time(5m) from >> entry-point "Temperature Reading", average($temp)) >> >> As per the drools-fusion documentation, over window : time(X) is used to >> consider events that happened in >> the last X units. So, is there something that needs to be changed in my >> rule >> implementation? >> >> One more question here, does over window : time(X) really considers events >> occurred in the last >> X units. I tried going further by doing the below: >> >> T0 (insert 1st event - Sensor reading is 24) >> T1 (insert 2st event - Sensor reading is 26) >> T2 (insert 3st event - Sensor reading is 28) >> T3 >> T4 >> T5 >> T6 >> T7 >> (insert event - Sensor reading is 30) >> Fire All rules >> >> With the above test setup, my rule gets invoked twice printing >> the average of > temperatures as (30) and (30). But using over window:time(5m) >> shouldn't result in rule being triggered once ? >> >> Thanks in advance! >> >> >> >> On Thursday, 5 June 2014 12:31 PM, Wolfgang Laun >> wrote: >> >> >> >> Computations involving intervals where events arrive in real time >> should not depend on differences of one unit of the smalles > unit of >> time for specifying durations (here: milliseconds). >> >> -W >> >> >> >> >> On 04/06/2014, Sushant Goyal wrote: >>> Thanks for your response. >>> I was under the assumption that the window time frame begins, the moment >>> first event is inserted into the working memory. Or I am still missing >>> out >>> something here (when you say that the first event is > exactly at the >>> beginning of the window)? If I traverse backwards as below, then >>> definitely >>> the 1st event lies outside the window. >>> >>> insert 1st event >>> delay 1 minute ^ (4 + 1 = 5) >>> insert 2nd event >>> delay 1 minute ^ (3 + 1 = 4) >>> insert 3rd event >>> delay 1 minute ^ (2 + 1 = 3) >>> delay 2 minutes ^ >>> fire all rules >>> >>> However, if I start from the 1st event, the possibility where 1st event >>> lies >>> out of time frame of 5 mins would be if certain amount of time is >>> consumed while inserting the 1st event. I tried to check it >>> programmatically >>> to see if there is any time lapsed during the insertion of the event by >>> printing the clock's current time using clock.getCurrentTime() method >>> before >>> and after inserting the 1st event, however, could not notice any >>> difference. >>> >>> But, if I change the > time to be advanced by 1 minutes and 59 seconds >>> (instead of 2 minutes) towards the end after the three events have been >>> inserted, the rule seems to be working fine by considering all the three >>> events for calculating the average. >>> >>> I know I am definitely missing out something here as I can see the >>> difference in the behavior of the rule by merely reducing the total delay >>> in >>> time by 1 second (4 min 59 sec instead of 5 minutes) as stated above. But >>> I >>> am not able to figure that out. >>> >>> Could you please provide more insight. >>> >>> Thanks! >>> >>> >>> On Wednesday, 4 June 2014 9:01 PM, Wolfgang Laun >>> >>> wrote: >>> >>> >>> >>> Your code does: >>> insert 1st event >>> delay 1 minute >>> insert 2nd event >>> delay 1 minute >>> insert 3rd event >>> delay 1 minute >>> delay (1 or) 2 minutes >>> fire all rules >>> >>> In the second case, 5 minutes have elapsed since the 1st insert. I >>> don't think that this means "that [the 1st insert] falls well within >>> the specified time range" - it is exactly at the beginning of the >>> window, and I'd expect the window to be an interval open at one end - >>> otherwise events smack on the point in time "separating" two intervals >>> would be in > both windows. >>> >>> -W >>> >>> >>> On 04/06/2014, Sushant Goyal wrote: >>>> Hi, >>>> >>>> I am >>>> trying to understand how Drools can be used to monitor events over a >>>> period >>>> of >>>> time using Sliding Time Windows. I have created a rule to sound an alarm >>>> > when >>>> average temperature read from a sensor is above 25 degrees (threshold) >>>> over >>>> a >>>> time period of 5 minutes. The rule makes of use of the Stream processing >>>> mode so >>>> that continuous stream of events could be processed. >>>> >>>> Below >>>> is how my rule looks like: >>>> >>>> //declare any global >>>> variables here >>>> globaljava.lang.StringBuilder alertMessage >>>> >>>> // add declaration to >>>> change the Fact into an Event >>>> declareSensorReading >>>> @role(event) >>>> end >>>> >>>> /* Alert when average >>>> temperature is above 25 >>>> over a time period of 5 minutes */ >>>> rule"TemperatureAlarm1" >>>> >>>> when >>>> //conditions >>>> $averageTemp : Number(doubleValue > >>>> 25.00) >>>> fromaccumulate(SensorReading($temp >>>> : temperature) >>>> over >>>> window:time(5m) fromentry-point "Temperature Reading", average($temp)) >>>> then >>>> //actions >>>> System.out.println("Fired rule: >>>> "+ >>>> kcontext.getRule().getName()); >>>> alertMessage.append("Threshold >>>> temperature breached!!"+ >>>> "\nTurn on the >>>> Air Conditioner"+ >>>> "\nAverage >>>> temperature over 5 minutes is above 25 ("+ $averageTemp.intValue() + >>>> ")\n"); >>>> >>>> end >>>> >>>> And below >>>> is the snapshot of the fact (SensorReading) which is inserted as an >>>> event >>>> in >>>> the working memory: >>>> >>>> publicclassSensorReading { >>>> >>>> privatedoubletemperature; >>>> >>>> publicSensorReading(){} >>>> >>>> publicSensorReading(doubletemp){ >>>> > this.temperature= temp; >>>> } >>>> >>>> // getters and setters >>>> } >>>> >>>> >>>> In >>>> order to test the rule, I am using Pseudo Clock with Stream processing >>>> turned >>>> on. I am inserting three SensorReading objects in the working memory >>>> with >>>> temperature >>>> values as (24, 26, 28) after every minute, so that the average of the >>>> > temperatures is above threshold and the rule is invoked. After the >>>> objects >>>> are >>>> inserted in the working memory, I am deliberately advancing the Pseudo >>>> clock >>>> by >>>> another 1 minute, so that the total time elapsed is 4 minutes. The rule >>>> works >>>> as expected with the above test setup and prints the average value as 26 >>>> on >>>> the >>>> console. >>>> >>>> However, >>>> if I advance the clock by 2 minutes instead of 1 minute after three >>>> sensor >>>> reading objects have been inserted in the working memory (after every 1 >>>> minute >>>> interval), the rule gets invoked but the average value gets changed to >>>> 27 >>>> (26 + >>>> 28 / 2 == 27). Looks like the first temperature reading is getting >>>> ignored >>>> by >>>> the rule despite the fact that it falls well within the specified time >>>> range >>>> of >>>> 5 minutes. Below is the snapshot of my test class: >>>> >>>> publicclassTemperatureAlarmTest >>>> { >>>> >>>> staticKnowledgeBase kbase; >>>> staticStatefulKnowledgeSession ksession; >>>> staticKnowledgeRuntimeLogger logger; >>>> staticSessionPseudoClock clock; >>>> >>>> @BeforeClass >>>> publicstaticvoidsetupKsession() > { >>>> try{ >>>> // load up the >>>> knowledge base >>>> kbase= readKnowledgeBase(); >>>> ksession= readKnowldedeSession(kbase); >>>> clock= ksession.getSessionClock(); >>>> >>>> logger= >>>> KnowledgeRuntimeLoggerFactory.newThreadedFileLogger(ksession, >>>> "log/Errors", >>>> 500); >>>> >>>> } catch(Throwable t) { >>>> t.printStackTrace(); >>>> } >>>> } >>>> >>>> /** >>>> * >>>> Create a new Stateful > knowledge Session with a pseudo clock from the >>>> * >>>> knowledge base >>>> * >>>> * @paramkbase >>>> * @return >>>> * @throwsException >>>> */ >>>> privatestaticStatefulKnowledgeSession readKnowldedeSession( >>>> KnowledgeBase kbase) throwsException { >>>> >>>> // Knowledge Session Configuration >>>> KnowledgeSessionConfiguration >>>> config = KnowledgeBaseFactory.newKnowledgeSessionConfiguration(); >>>> config.setOption(ClockTypeOption.get("pseudo")); >>>> returnkbase.newStatefulKnowledgeSession(config, null); >>>> >>>> } >>>> >>>> @AfterClass >>>> > publicstaticvoidcloseKsession() { >>>> try{ >>>> // load up the >>>> knowledge base >>>> logger.close(); >>>> ksession.dispose(); >>>> >>>> } catch(Throwable t) { >>>> t.printStackTrace(); >>>> } >>>> } >>>> >>>> @Test >>>> publicvoidTemperatureAlarm1_Test() { >>>> >>>> // Create Temperature list >>>> ArrayList >>>> tempMetrics = newArrayList(); >>>> doubletemp = 24.00; >>>> >>>> while(tempMetrics.size() >>>> < 3) { >>>> tempMetrics.add(newSensorReading(temp)); >>>> temp += 2; >>>> } >>>> System.out.println("Size of >>>> tempMetrics List: "+tempMetrics.size()+"\n"); >>>> System.out.println("First Temp >>>> reading: > "+tempMetrics.get(0).getTemperature()); >>>> System.out.println("Second Temp >>>> reading: "+tempMetrics.get(1).getTemperature()); >>>> System.out.println("Third Temp >>>> reading: "+tempMetrics.get(2).getTemperature()+"\n"); >>>> >>>> // Separate stream for inserts >>>> WorkingMemoryEntryPoint >>>> temperatureStream = ksession.getWorkingMemoryEntryPoint( "Temperature >>>> Reading"); >>>> >>>> // Create fact handle list >>>> ArrayList >>>> factHandleList = newArrayList(); >>>> >>>> // Insert objects into working >>>> memory while advancing the clock >>>> for(inti = 0; i < >>>> tempMetrics.size(); i++) { >>>> >>>> > factHandleList.add(temperatureStream.insert(tempMetrics.get(i))); >>>> clock.advanceTime(1, >>>> TimeUnit.MINUTES); >>>> System.out.println("Time advances >>>> by 1 minute"); >>>> } >>>> System.out.println("Fact Count >>>> is: "+temperatureStream.getFactCount()); >>>> System.out.println("Fact Entry >>>> Point is: "+temperatureStream.getEntryPointId()); >>>> System.out.println("Size of >>>> FactHandleList: "+factHandleList.size()+"\n"); >>>> >>>> clock.advanceTime(1, >>>> TimeUnit.MINUTES); //change in >>>> advanced time alters the rule behavior >>>> >>>> StringBuilder stringBuilder = newStringBuilder(); >>>> > ksession.setGlobal("alertMessage", stringBuilder); >>>> ksession.fireAllRules(); >>>> >>>> // Remove facts >>>> for(inti = 0; i < >>>> factHandleList.size(); i++) { >>>> temperatureStream.retract(factHandleList.get(i)); >>>> } >>>> System.out.println("After >>>> > Removing facts"); >>>> System.out.println("Fact Count >>>> is: "+temperatureStream.getFactCount()); >>>> >>>> String result = >>>> stringBuilder.substring(0, 32); >>>> System.out.println("Alert Message >>>> is: \n"+ stringBuilder.toString()); >>>> assertEquals("Alert Message >>>> is: ", "Threshold >>>> temperature breached!!", result); >>>> } >>>> >>>> /** >>>> * >>>> Create the knowledge base with stream processing turned on. >>>> * >>>> * @return >>>> * @throwsException >>>> */ >>>> privatestaticKnowledgeBase >>>> readKnowledgeBase() throwsException { >>>> > KnowledgeBuilder kbuilder = >>>> KnowledgeBuilderFactory.newKnowledgeBuilder(); >>>> >>>> kbuilder.add(ResourceFactory.newClassPathResource("TemperatureAlarm1.drl"),ResourceType.DRL); >>>> hasErrors(kbuilder); >>>> >>>> // Stream processing turned on >>>> KnowledgeBaseConfiguration conf = >>>> KnowledgeBaseFactory.newKnowledgeBaseConfiguration(); >>>> > conf.setOption(EventProcessingOption.STREAM); >>>> KnowledgeBase kbase = >>>> KnowledgeBaseFactory.newKnowledgeBase(conf); >>>> hasErrors(kbuilder); >>>> >>>> kbase.addKnowledgePackages(kbuilder.getKnowledgePackages()); >>>> >>>> returnkbase; >>>> } >>>> >>>> /** >>>> * >>>> Report errors if any >>>> * >>>> * @paramkbuilder >>>> * @throwsException >>>> */ >>>> privatestaticvoidhasErrors(KnowledgeBuilder kbuilder) >>>> throwsException >>>> { >>>> KnowledgeBuilderErrors errors = >>>> kbuilder.getErrors(); >>>> if(errors.size() > 0) > { >>>> for(KnowledgeBuilderError error : errors) { >>>> System.err.println(error); >>>> } >>>> thrownewIllegalArgumentException("Could not parse >>>> knowledge."); >>>> } >>>> >>>> } >>>> >>>> } >>>> >>>> >>>> Could >>>> anyone please help explain this change in the behavior of the rule? >>>> >>>> Regards, >>>> Sushant > > > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From gael.weil-jourdan at prestataire.april.com Thu Jun 5 11:48:01 2014 From: gael.weil-jourdan at prestataire.april.com (Gael) Date: Thu, 5 Jun 2014 08:48:01 -0700 (PDT) Subject: [rules-users] Drools slowness in first calls Message-ID: <1401983281486-4029887.post@n3.nabble.com> Hi, We are using Drools for a heavy process and we notice some slowness during the first calls to kbases (containing about 1500 rules each) using StatefulKnowledgeSession. Even if the kbase is "loaded", we need to make some "fictive" calls (fire the rules with some facts) until it begins to respond within a reasonable time. It's like we need to warm it up.. Any idea about what Drools does during this time? Is there a way to programmatically launch these processing without the need to have facts ? Thanks in advance and sorry for my english. NB : we use Drools 5.5. Regards, Gael -- View this message in context: http://drools.46999.n3.nabble.com/Drools-slowness-in-first-calls-tp4029887.html Sent from the Drools: User forum mailing list archive at Nabble.com. From mproctor at codehaus.org Thu Jun 5 12:40:00 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Thu, 5 Jun 2014 17:40:00 +0100 Subject: [rules-users] Drools slowness in first calls In-Reply-To: <1401983281486-4029887.post@n3.nabble.com> References: <1401983281486-4029887.post@n3.nabble.com> Message-ID: <02A04AE7-484B-4E1C-B0C2-07C97CD9B549@codehaus.org> On 5 Jun 2014, at 16:48, Gael wrote: > Hi, > > We are using Drools for a heavy process and we notice some slowness during > the first calls to kbases (containing about 1500 rules each) using > StatefulKnowledgeSession. > Even if the kbase is "loaded", we need to make some "fictive" calls (fire > the rules with some facts) until it begins to respond within a reasonable > time. It's like we need to warm it up.. That?s sort of how the JVM works, it takes many thousands of iterations for JIT byte code to kick in. There is also some additional byte code generation we do on the fly to speed things up - you may also be seeing this. > > Any idea about what Drools does during this time? > Is there a way to programmatically launch these processing without the need > to have facts ? Not really, this is how the JVM works, likewise the additional byte code generation we do. In 6.x there is an additional one off cost too, in calculating all the node memories and segments. This also is done ?on the fly?, during the first session. Mark > > Thanks in advance and sorry for my english. > > NB : we use Drools 5.5. > > Regards, > Gael > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Drools-slowness-in-first-calls-tp4029887.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From wolfgang.laun at gmail.com Thu Jun 5 12:43:09 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Thu, 5 Jun 2014 18:43:09 +0200 Subject: [rules-users] Drools slowness in first calls In-Reply-To: <1401983281486-4029887.post@n3.nabble.com> References: <1401983281486-4029887.post@n3.nabble.com> Message-ID: Google: JIT Java -W On 05/06/2014, Gael wrote: > Hi, > > We are using Drools for a heavy process and we notice some slowness during > the first calls to kbases (containing about 1500 rules each) using > StatefulKnowledgeSession. > Even if the kbase is "loaded", we need to make some "fictive" calls (fire > the rules with some facts) until it begins to respond within a reasonable > time. It's like we need to warm it up.. > > Any idea about what Drools does during this time? > Is there a way to programmatically launch these processing without the need > to have facts ? > > Thanks in advance and sorry for my english. > > NB : we use Drools 5.5. > > Regards, > Gael > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Drools-slowness-in-first-calls-tp4029887.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From jpsteinmetz at theworkshop.us.com Thu Jun 5 13:34:42 2014 From: jpsteinmetz at theworkshop.us.com (Steinmetz, Jean-Philippe) Date: Thu, 5 Jun 2014 10:34:42 -0700 Subject: [rules-users] Workbench: Error after cloning repository In-Reply-To: References: Message-ID: I've created a repo on github you can clone to reproduce the issue. It is located at: https://github.com/caskater4/kie-wb-error I thought I had isolated the problem down to the project having specified drools-core as a dependency but when I attempted to create a repo with only that it didn't seem to cause a direct problem. The repo above closely resembles the use case I have which does reproduce the errors I am seeing. On Tue, Jun 3, 2014 at 11:25 AM, Michael Anstis wrote: > Can you create a repository that you can share to reproduce the problem? > > Sent on the move > On 3 Jun 2014 19:10, "Steinmetz, Jean-Philippe" < > jpsteinmetz at theworkshop.us.com> wrote: > >> Does anyone have an idea why I am getting these compilation errors? This >> is currently blocking me at the moment and I have been able to find a >> solution. Thanks! >> >> >> On Fri, May 30, 2014 at 10:51 AM, Steinmetz, Jean-Philippe < >> jpsteinmetz at theworkshop.us.com> wrote: >> >>> Okay I was able to disable strict-mode using by defining the >>> system-property in JBoss. With that and fixing up some of the imports I was >>> able to reduce the compilation errors shown in the workbench to just a >>> couple. >>> >>> The errors I get now are: >>> >>> Error importing : 'com.mycompany.MyClassUtils' >>> Error importing : 'org.apache.commons.lang3.time.DateUtils' >>> [ function isEventOnSameDay (line:18): Only a type can be >>> imported. com.mycompany.MyClassUtils resolves to a package >>> isEventOnSameDay (line:24): Only a type can be imported. >>> org.apache.commons.lang3.time.DateUtils resolves to a package >>> isEventOnSameDay (line:36): DateUtils cannot be resolved >>> isEventOnSameDay (line:37): DateUtils cannot be resolved >>> ] >>> >>> The MyClassUtils is a class defined in the same project as the DRL >>> files. Therefore, assuming the workbench is also compiling/loading the java >>> files in the classloader it should resolve without issue. The DateUtils >>> class is a maven dependency and I assume should be loaded by the workbench >>> as well? Why would the compiler see these classes as packages? >>> >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140605/651e4462/attachment-0001.html From raojinghai at gmail.com Thu Jun 5 18:50:03 2014 From: raojinghai at gmail.com (rjh) Date: Thu, 5 Jun 2014 15:50:03 -0700 (PDT) Subject: [rules-users] Compilation errors in Drools examples In-Reply-To: <1401902788133-4029871.post@n3.nabble.com> References: <1389382886927-4027650.post@n3.nabble.com> <1401390116681-4029760.post@n3.nabble.com> <1401396802847-4029763.post@n3.nabble.com> <1401400419622-4029765.post@n3.nabble.com> <1401787361937-4029826.post@n3.nabble.com> <1401830713017-4029839.post@n3.nabble.com> <1401902788133-4029871.post@n3.nabble.com> Message-ID: <1402008603050-4029892.post@n3.nabble.com> Hi Mario, Although I fixed the no-validation problem by uninstall/reinstall the drools runtime as my last message said, it is not a stable solution. Sometimes it stops to do validation again so I have to repeat the steps. So I look into the code, and find out "oldLoader" is an instance of ContextFinder, but "newLoader" is an instance of URLClassLoader, both are subclass of ClassLoader. So I construct a ContextFinder from newLoader and use it in setContextClassLoader(). This fixes the problem on my side. Now I have both validation and recognition of third party classes. As I said earlier, I know nothing of eclipse plugin development. Please let me know if it makes sense. But anyway, it works with my environment. Below please find diff of my updates. Thank you very much. Jinghai --- a/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/builder/DroolsBuilder.java +++ b/drools-eclipse/org.drools.eclipse/src/main/java/org/drools/eclipse/builder/DroolsBuilder.java @@ -64,6 +64,7 @@ import org.eclipse.core.resources.IncrementalProjectBuilder; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.OperationCanceledException; +import org.eclipse.core.runtime.internal.adaptor.ContextFinder; import org.eclipse.jdt.core.IClasspathEntry; import org.eclipse.jdt.core.IJavaProject; import org.eclipse.jdt.core.JavaCore; @@ -124,8 +125,9 @@ public class DroolsBuilder extends IncrementalProjectBuilder { ClassLoader oldLoader = Thread.currentThread().getContextClassLoader(); ClassLoader newLoader = ProjectClassLoader.getProjectClassLoader( project ); + ContextFinder newContextFinder = new ContextFinder(newLoader); try { - Thread.currentThread().setContextClassLoader( newLoader ); + Thread.currentThread().setContextClassLoader( newContextFinder ); IClasspathEntry[] classpathEntries = project.getRawClasspath(); for ( int i = 0; i < classpathEntries.length; i++ ) { if ( NewDroolsProjectWizard.DROOLS_CLASSPATH_CONTAINER_PATH.equals( classpathEntries[i].getPath().toString() ) ) { -- View this message in context: http://drools.46999.n3.nabble.com/Compilation-errors-in-Drools-examples-tp4027650p4029892.html Sent from the Drools: User forum mailing list archive at Nabble.com. From ganeshneelekani at gmail.com Fri Jun 6 03:24:15 2014 From: ganeshneelekani at gmail.com (ganeshneelekani) Date: Fri, 6 Jun 2014 00:24:15 -0700 (PDT) Subject: [rules-users] rule-flow group in rules Message-ID: <1402039455129-4029893.post@n3.nabble.com> Hi Team, Please follow below code-- In the below code I have 2 ruleflow-group, Is this valid? Can a rule have more than 1 rule-flow group When I executed this it just took lat rule-flow group "hellotest". rule "firstrule" dialect "java" no-loop ruleflow-group "testrule" ruleflow-group "hellotest" when $account:Account( $balance:balance,$id:id) $person:Person($age:age==24) then System.out.println( "firstrule "+$balance+" age is "+$age); end Please clarify me. Thanks, Ganesh Neelekani -- View this message in context: http://drools.46999.n3.nabble.com/rule-flow-group-in-rules-tp4029893.html Sent from the Drools: User forum mailing list archive at Nabble.com. From rabarijaonadomoina at gmail.com Fri Jun 6 04:12:16 2014 From: rabarijaonadomoina at gmail.com (tia) Date: Fri, 6 Jun 2014 01:12:16 -0700 (PDT) Subject: [rules-users] NullPointerException at org.drools.compiler.kie.builder.impl.KieContainerImpl.updateToVersion Message-ID: <1402042336625-4029894.post@n3.nabble.com> Hello, I'm trying to add a new rule on the fly like here: https://github.com/droolsjbpm/drools/blob/master/drools-compiler/src/test/java/org/drools/compiler/integrationtests/IncrementalCompilationTest.java#L158 Here is the method to add a rule, once the KieSession is created and configured: public void addRule(String rule){ KieServices ks= KieServices.Factory.get(); ReleaseId rid= ks.newReleaseId("org.kie", "businessrules", "1.0"); KieFileSystem kfs = ks.newKieFileSystem(); kfs.generateAndWritePomXML(rid); kfs.write("src/main/resources/rule.drl",rule); KieBuilder kb = ks.newKieBuilder(kfs).buildAll(); if( kb.getResults().hasMessages( org.kie.api.builder.Message.Level.ERROR ) ) { for( org.kie.api.builder.Message result : kb.getResults().getMessages() ) { System.err.println(result.getText()); } } InternalKieModule kieModule = (InternalKieModule) ks.getRepository() .getKieModule(rid); byte[] jar = kieModule.getBytes(); Resource jarRes = ks.getResources().newByteArrayResource(jar); ks.getRepository().addKieModule(jarRes); kieContainer.updateToVersion(rid); } But when I'm calling this method, I get the error below: java.lang.NullPointerException at org.drools.core.util.LinkedList.remove(LinkedList.java:168) at org.drools.core.phreak.AddRemoveRule.mergeSegment(AddRemoveRule.java:938) at org.drools.core.phreak.AddRemoveRule.correctSegmentOnSplitOnRemove(AddRemoveRule.java:377) at org.drools.core.phreak.AddRemoveRule.removeRule(AddRemoveRule.java:182) at org.drools.core.reteoo.ReteooBuilder.removeTerminalNode(ReteooBuilder.java:171) at org.drools.core.reteoo.ReteooBuilder.removeRule(ReteooBuilder.java:165) at org.drools.core.reteoo.ReteooRuleBase.removeRule(ReteooRuleBase.java:1406) at org.drools.core.reteoo.ReteooRuleBase.removeObjectsGeneratedFromResource(ReteooRuleBase.java:1652) at org.drools.compiler.compiler.PackageBuilder.removeObjectsGeneratedFromResource(PackageBuilder.java:3898) at org.drools.compiler.kie.builder.impl.KieContainerImpl.updateToVersion(KieContainerImpl.java:114) For the line : "kieContainer.updateToVersion(rid);" But if I'm firing the rules once (kieSession.fireAllRules();) before adding the new rule, I don't get the exception O_o Someone has any idea why ? thanks! -- View this message in context: http://drools.46999.n3.nabble.com/NullPointerException-at-org-drools-compiler-kie-builder-impl-KieContainerImpl-updateToVersion-tp4029894.html Sent from the Drools: User forum mailing list archive at Nabble.com. From ganeshneelekani at gmail.com Fri Jun 6 05:23:46 2014 From: ganeshneelekani at gmail.com (ganeshneelekani) Date: Fri, 6 Jun 2014 02:23:46 -0700 (PDT) Subject: [rules-users] using 2 rule-flow group in rules. In-Reply-To: <1402039455129-4029893.post@n3.nabble.com> References: <1402039455129-4029893.post@n3.nabble.com> Message-ID: <1402046626951-4029895.post@n3.nabble.com> Hi Team, I have done couple of example to check this issue, Any how it does not produce any compile-time or run-time error to make use of 2 rule-flow group in a single rule, But it takes the last rule-flow group and executes. Follow below url to know more. http://stackoverflow.com/questions/22379542/is-it-possible-to-assign-multiple-ruleflow-groups-to-a-rule Thanks, Ganesh Neelekani -- View this message in context: http://drools.46999.n3.nabble.com/rule-flow-group-in-rules-tp4029893p4029895.html Sent from the Drools: User forum mailing list archive at Nabble.com. From mproctor at codehaus.org Fri Jun 6 07:40:09 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Fri, 6 Jun 2014 12:40:09 +0100 Subject: [rules-users] NullPointerException at org.drools.compiler.kie.builder.impl.KieContainerImpl.updateToVersion In-Reply-To: <1402042336625-4029894.post@n3.nabble.com> References: <1402042336625-4029894.post@n3.nabble.com> Message-ID: <1B166479-18C1-4279-974C-8B325F109CB6@codehaus.org> We have a number of add/remove rule tests, could you reproduce your problem, using the same classes and format as outlined in this test class. Ideally adding your reproducer as a single failing test method: https://github.com/droolsjbpm/drools/blob/master/drools-compiler/src/test/java/org/drools/compiler/integrationtests/AddRemoveRulesTest.java Creating JIRA?s and submitting pull requests. http://docs.jboss.org/drools/release/5.6.0.Final/droolsjbpm-introduction-docs/html/gettingstarted.html Mark On 6 Jun 2014, at 09:12, tia wrote: > Hello, > > I'm trying to add a new rule on the fly like here: > https://github.com/droolsjbpm/drools/blob/master/drools-compiler/src/test/java/org/drools/compiler/integrationtests/IncrementalCompilationTest.java#L158 > > Here is the method to add a rule, once the KieSession is created and > configured: > public void addRule(String rule){ > > KieServices ks= KieServices.Factory.get(); > ReleaseId rid= ks.newReleaseId("org.kie", "businessrules", "1.0"); > > KieFileSystem kfs = ks.newKieFileSystem(); > kfs.generateAndWritePomXML(rid); > kfs.write("src/main/resources/rule.drl",rule); > KieBuilder kb = ks.newKieBuilder(kfs).buildAll(); > if( kb.getResults().hasMessages( org.kie.api.builder.Message.Level.ERROR ) > ) { > for( org.kie.api.builder.Message result : kb.getResults().getMessages() ) > { > System.err.println(result.getText()); > } > } > InternalKieModule kieModule = (InternalKieModule) ks.getRepository() > .getKieModule(rid); > byte[] jar = kieModule.getBytes(); > > Resource jarRes = ks.getResources().newByteArrayResource(jar); > ks.getRepository().addKieModule(jarRes); > kieContainer.updateToVersion(rid); > } > > But when I'm calling this method, I get the error below: > java.lang.NullPointerException > at org.drools.core.util.LinkedList.remove(LinkedList.java:168) > at > org.drools.core.phreak.AddRemoveRule.mergeSegment(AddRemoveRule.java:938) > at > org.drools.core.phreak.AddRemoveRule.correctSegmentOnSplitOnRemove(AddRemoveRule.java:377) > at org.drools.core.phreak.AddRemoveRule.removeRule(AddRemoveRule.java:182) > at > org.drools.core.reteoo.ReteooBuilder.removeTerminalNode(ReteooBuilder.java:171) > at org.drools.core.reteoo.ReteooBuilder.removeRule(ReteooBuilder.java:165) > at > org.drools.core.reteoo.ReteooRuleBase.removeRule(ReteooRuleBase.java:1406) > at > org.drools.core.reteoo.ReteooRuleBase.removeObjectsGeneratedFromResource(ReteooRuleBase.java:1652) > at > org.drools.compiler.compiler.PackageBuilder.removeObjectsGeneratedFromResource(PackageBuilder.java:3898) > at > org.drools.compiler.kie.builder.impl.KieContainerImpl.updateToVersion(KieContainerImpl.java:114) > > For the line : "kieContainer.updateToVersion(rid);" > > But if I'm firing the rules once (kieSession.fireAllRules();) before adding > the new rule, I don't get the exception O_o > > Someone has any idea why ? > > thanks! > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/NullPointerException-at-org-drools-compiler-kie-builder-impl-KieContainerImpl-updateToVersion-tp4029894.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From bijkerkrick at hotmail.com Fri Jun 6 08:13:39 2014 From: bijkerkrick at hotmail.com (dBijkoo) Date: Fri, 6 Jun 2014 05:13:39 -0700 (PDT) Subject: [rules-users] No such field org.optaplanner.core.config.heuristic.selector.value.chained.SubChainSelectorConfig.entitySelector Message-ID: <1402056819907-4029905.post@n3.nabble.com> when I use this code: model.ScheduleBlockPeriod 2 40 nextScheduleBlockPeriod true I get the following error: /com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$UnknownFieldException: No such field org.optaplanner.core.config.heuristic.selector.value.chained.SubChainSelectorConfig.entitySelector ---- Debugging information ---- field : entitySelector class : org.optaplanner.core.config.heuristic.selector.value.chained.SubChainSelectorConfig required-type : org.optaplanner.core.config.heuristic.selector.value.chained.SubChainSelectorConfig converter-type : com.thoughtworks.xstream.converters.reflection.ReflectionConverter line number : 57 class[1] : org.optaplanner.core.config.heuristic.selector.move.generic.chained.SubChainChangeMoveSelectorConfig class[2] : org.optaplanner.core.config.heuristic.selector.move.composite.CartesianProductMoveSelectorConfig class[3] : org.optaplanner.core.config.localsearch.LocalSearchSolverPhaseConfig class[4] : org.optaplanner.core.config.solver.SolverConfig version : 1.4.7 ------------------------------- at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.handleUnknownField(AbstractReflectionConverter.java:495) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:351) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257) at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:474) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:406) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257) at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:377) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257) at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:377) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257) at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:377) at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257) at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134) at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32) at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1185) at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1169) at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1040) at org.optaplanner.core.config.solver.XmlSolverFactory.configure(XmlSolverFactory.java:84) at org.optaplanner.core.config.solver.XmlSolverFactory.configure(XmlSolverFactory.java:74) at org.optaplanner.core.config.solver.XmlSolverFactory.configure(XmlSolverFactory.java:67) at org.optaplanner.core.config.solver.XmlSolverFactory.(XmlSolverFactory.java:51) at AgendaTest.before(AgendaTest.java:29) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.junit.runner.JUnitCore.run(JUnitCore.java:157) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74) at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211) at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)/ Even though it is besides naming the same xml code as it shows on the website here: http://docs.jboss.org/drools/release/6.0.1.Final/optaplanner-docs/html_single/index.html#subChainChangeMoveSelector My goal is to select a specific chained variable from a planningEntity -- View this message in context: http://drools.46999.n3.nabble.com/No-such-field-org-optaplanner-core-config-heuristic-selector-value-chained-SubChainSelectorConfig-enr-tp4029905.html Sent from the Drools: User forum mailing list archive at Nabble.com. From bijkerkrick at hotmail.com Fri Jun 6 10:09:11 2014 From: bijkerkrick at hotmail.com (dBijkoo) Date: Fri, 6 Jun 2014 07:09:11 -0700 (PDT) Subject: [rules-users] No such field org.optaplanner.core.config.heuristic.selector.value.chained.SubChainSelectorConfig.entitySelector In-Reply-To: <1402056819907-4029905.post@n3.nabble.com> References: <1402056819907-4029905.post@n3.nabble.com> Message-ID: <1402063751547-4029906.post@n3.nabble.com> After searching through the library I found the problem. It should be * model.ScheduleBlockPeriod* nextScheduleBlockPeriod 2 40 true instead of the following, which is suggested in the documentation: * model.ScheduleBlockPeriod * 2 40 nextScheduleBlockPeriod true This should be changed here: http://docs.jboss.org/drools/release/6.0.1.Final/optaplanner-docs/html_single/index.html#subChainChangeMoveSelector and at the subChainSwapMoveSelector chapter to avoid others running into the same problem!! -- View this message in context: http://drools.46999.n3.nabble.com/No-such-field-org-optaplanner-core-config-heuristic-selector-value-chained-SubChainSelectorConfig-enr-tp4029905p4029906.html Sent from the Drools: User forum mailing list archive at Nabble.com. From ge0ffrey.spam at gmail.com Fri Jun 6 10:15:33 2014 From: ge0ffrey.spam at gmail.com (Geoffrey De Smet) Date: Fri, 06 Jun 2014 16:15:33 +0200 Subject: [rules-users] No such field org.optaplanner.core.config.heuristic.selector.value.chained.SubChainSelectorConfig.entitySelector In-Reply-To: <1402056819907-4029905.post@n3.nabble.com> References: <1402056819907-4029905.post@n3.nabble.com> Message-ID: <5391CD05.8080906@gmail.com> On 06-06-14 14:13, dBijkoo wrote: > when I use this code: > > > doesn't supports an element, only a element. See https://github.com/droolsjbpm/optaplanner/blob/master/optaplanner-core/src/main/java/org/optaplanner/core/config/heuristic/selector/value/chained/SubChainSelectorConfig.java#L38-38 but does supports a , which is probably what you want to do: model.ScheduleBlockPeriod 2 ... See https://github.com/droolsjbpm/optaplanner/blob/master/optaplanner-core/src/main/java/org/optaplanner/core/config/heuristic/selector/move/generic/chained/SubChainChangeMoveSelectorConfig.java#L36-36 > model.ScheduleBlockPeriod > > > 2 > 40 > > > nextScheduleBlockPeriod > > > true > > > > I get the following error: > /com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$UnknownFieldException: > No such field > org.optaplanner.core.config.heuristic.selector.value.chained.SubChainSelectorConfig.entitySelector > ---- Debugging information ---- > field : entitySelector > class : > org.optaplanner.core.config.heuristic.selector.value.chained.SubChainSelectorConfig > required-type : > org.optaplanner.core.config.heuristic.selector.value.chained.SubChainSelectorConfig > converter-type : > com.thoughtworks.xstream.converters.reflection.ReflectionConverter > line number : 57 > class[1] : > org.optaplanner.core.config.heuristic.selector.move.generic.chained.SubChainChangeMoveSelectorConfig > class[2] : > org.optaplanner.core.config.heuristic.selector.move.composite.CartesianProductMoveSelectorConfig > class[3] : > org.optaplanner.core.config.localsearch.LocalSearchSolverPhaseConfig > class[4] : org.optaplanner.core.config.solver.SolverConfig > version : 1.4.7 > ------------------------------- > at > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.handleUnknownField(AbstractReflectionConverter.java:495) > at > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:351) > at > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) > at > com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) > at > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:474) > at > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:406) > at > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) > at > com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) > at > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:377) > at > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) > at > com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) > at > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:377) > at > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) > at > com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) > at > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:377) > at > com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) > at > com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) > at > com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134) > at > com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32) > at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1185) > at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1169) > at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1040) > at > org.optaplanner.core.config.solver.XmlSolverFactory.configure(XmlSolverFactory.java:84) > at > org.optaplanner.core.config.solver.XmlSolverFactory.configure(XmlSolverFactory.java:74) > at > org.optaplanner.core.config.solver.XmlSolverFactory.configure(XmlSolverFactory.java:67) > at > org.optaplanner.core.config.solver.XmlSolverFactory.(XmlSolverFactory.java:51) > at AgendaTest.before(AgendaTest.java:29) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at > org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) > at > org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) > at > org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) > at > org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27) > at > org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) > at > org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) > at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) > at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) > at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) > at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) > at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) > at org.junit.runners.ParentRunner.run(ParentRunner.java:236) > at org.junit.runner.JUnitCore.run(JUnitCore.java:157) > at > com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74) > at > com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211) > at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)/ > > Even though it is besides naming the same xml code as it shows on the > website here: > http://docs.jboss.org/drools/release/6.0.1.Final/optaplanner-docs/html_single/index.html#subChainChangeMoveSelector > > My goal is to select a specific chained variable from a planningEntity > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/No-such-field-org-optaplanner-core-config-heuristic-selector-value-chained-SubChainSelectorConfig-enr-tp4029905.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From ge0ffrey.spam at gmail.com Fri Jun 6 10:25:15 2014 From: ge0ffrey.spam at gmail.com (Geoffrey De Smet) Date: Fri, 06 Jun 2014 16:25:15 +0200 Subject: [rules-users] No such field org.optaplanner.core.config.heuristic.selector.value.chained.SubChainSelectorConfig.entitySelector In-Reply-To: <5391CD05.8080906@gmail.com> References: <1402056819907-4029905.post@n3.nabble.com> <5391CD05.8080906@gmail.com> Message-ID: The docs were wrong. Docs fixed for 6.1.0.CR1: http://github.com/droolsjbpm/optaplanner/commit/496ef134b On 06-06-14 16:15, Geoffrey De Smet wrote: > On 06-06-14 14:13, dBijkoo wrote: >> when I use this code: >> >> >> > doesn't supports an element, > only a element. > > See > https://github.com/droolsjbpm/optaplanner/blob/master/optaplanner-core/src/main/java/org/optaplanner/core/config/heuristic/selector/value/chained/SubChainSelectorConfig.java#L38-38 > > but does supports a , which is > probably what you want to do: > > > model.ScheduleBlockPeriod > > 2 > ... > > > See > https://github.com/droolsjbpm/optaplanner/blob/master/optaplanner-core/src/main/java/org/optaplanner/core/config/heuristic/selector/move/generic/chained/SubChainChangeMoveSelectorConfig.java#L36-36 > > >> model.ScheduleBlockPeriod >> >> >> 2 >> 40 >> >> >> nextScheduleBlockPeriod >> >> >> true >> >> >> >> I get the following error: >> /com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter$UnknownFieldException: >> No such field >> org.optaplanner.core.config.heuristic.selector.value.chained.SubChainSelectorConfig.entitySelector >> ---- Debugging information ---- >> field : entitySelector >> class : >> org.optaplanner.core.config.heuristic.selector.value.chained.SubChainSelectorConfig >> required-type : >> org.optaplanner.core.config.heuristic.selector.value.chained.SubChainSelectorConfig >> converter-type : >> com.thoughtworks.xstream.converters.reflection.ReflectionConverter >> line number : 57 >> class[1] : >> org.optaplanner.core.config.heuristic.selector.move.generic.chained.SubChainChangeMoveSelectorConfig >> class[2] : >> org.optaplanner.core.config.heuristic.selector.move.composite.CartesianProductMoveSelectorConfig >> class[3] : >> org.optaplanner.core.config.localsearch.LocalSearchSolverPhaseConfig >> class[4] : org.optaplanner.core.config.solver.SolverConfig >> version : 1.4.7 >> ------------------------------- >> at >> com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.handleUnknownField(AbstractReflectionConverter.java:495) >> at >> com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:351) >> at >> com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257) >> at >> com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) >> at >> com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) >> at >> com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) >> at >> com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:474) >> at >> com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:406) >> at >> com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257) >> at >> com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) >> at >> com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) >> at >> com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) >> at >> com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) >> at >> com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:377) >> at >> com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257) >> at >> com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) >> at >> com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) >> at >> com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) >> at >> com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) >> at >> com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:377) >> at >> com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257) >> at >> com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) >> at >> com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) >> at >> com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) >> at >> com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) >> at >> com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:377) >> at >> com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:257) >> at >> com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72) >> at >> com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65) >> at >> com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66) >> at >> com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50) >> at >> com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134) >> at >> com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32) >> at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1185) >> at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1169) >> at com.thoughtworks.xstream.XStream.fromXML(XStream.java:1040) >> at >> org.optaplanner.core.config.solver.XmlSolverFactory.configure(XmlSolverFactory.java:84) >> at >> org.optaplanner.core.config.solver.XmlSolverFactory.configure(XmlSolverFactory.java:74) >> at >> org.optaplanner.core.config.solver.XmlSolverFactory.configure(XmlSolverFactory.java:67) >> at >> org.optaplanner.core.config.solver.XmlSolverFactory.(XmlSolverFactory.java:51) >> at AgendaTest.before(AgendaTest.java:29) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> at >> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >> at >> org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) >> at >> org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) >> at >> org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) >> at >> org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:27) >> at >> org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) >> at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76) >> at >> org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50) >> at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) >> at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) >> at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) >> at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) >> at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) >> at org.junit.runners.ParentRunner.run(ParentRunner.java:236) >> at org.junit.runner.JUnitCore.run(JUnitCore.java:157) >> at >> com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:74) >> at >> com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:211) >> at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67) >> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >> at >> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)/ >> >> Even though it is besides naming the same xml code as it shows on the >> website here: >> http://docs.jboss.org/drools/release/6.0.1.Final/optaplanner-docs/html_single/index.html#subChainChangeMoveSelector >> >> My goal is to select a specific chained variable from a planningEntity >> >> >> >> -- >> View this message in context: http://drools.46999.n3.nabble.com/No-such-field-org-optaplanner-core-config-heuristic-selector-value-chained-SubChainSelectorConfig-enr-tp4029905.html >> Sent from the Drools: User forum mailing list archive at Nabble.com. >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From ge0ffrey.spam at gmail.com Fri Jun 6 10:25:59 2014 From: ge0ffrey.spam at gmail.com (Geoffrey De Smet) Date: Fri, 06 Jun 2014 16:25:59 +0200 Subject: [rules-users] No such field org.optaplanner.core.config.heuristic.selector.value.chained.SubChainSelectorConfig.entitySelector In-Reply-To: <1402063751547-4029906.post@n3.nabble.com> References: <1402056819907-4029905.post@n3.nabble.com> <1402063751547-4029906.post@n3.nabble.com> Message-ID: On 06-06-14 16:09, dBijkoo wrote: > This should be changed here: > http://docs.jboss.org/drools/release/6.0.1.Final/optaplanner-docs/html_single/index.html#subChainChangeMoveSelector > and at the subChainSwapMoveSelector chapter to avoid others running into the > same problem!! Done, thanks for reporting :) From clickthex at yahoo.com Fri Jun 6 11:25:40 2014 From: clickthex at yahoo.com (SrjTx) Date: Fri, 6 Jun 2014 08:25:40 -0700 (PDT) Subject: [rules-users] 6.0.1.F Duplicate rule error when I rename or copy a guided rule Message-ID: <1402068340254-4029910.post@n3.nabble.com> The renamed rule or the copy has the original rule name in the source - which you can't change. Is there a fix for this already in git hub? -- View this message in context: http://drools.46999.n3.nabble.com/6-0-1-F-Duplicate-rule-error-when-I-rename-or-copy-a-guided-rule-tp4029910.html Sent from the Drools: User forum mailing list archive at Nabble.com. From dewashish at nirvana-sol.com Fri Jun 6 11:46:10 2014 From: dewashish at nirvana-sol.com (Chaturvedi Dewashish) Date: Fri, 6 Jun 2014 21:16:10 +0530 Subject: [rules-users] Grouping of rule and range check References: Message-ID: Hi, I have a requirement which is as 1. There are three rules lets say rule1, rule2 and rule3 2. rule1 says there is a person Age < 40 Age >= 20 Then do something 3. rule2 says there is a person Age < 60 Age >= 40 Then do something else 4. rule3 says there is a person Age >= 60 Then do something new Now I am feeding person object as whole as event based from other application. So the requirement in form of test cases is 1. Age = 22 - do something 2. Age = 25 - Nothing as rule1 is already triggered and "do something" done 3. Age = 42 - do something else 4. Age = 45 - Nothing as rule1 is already triggered and "do something else" done 4. Age = 65 - do something new 5. Age = 68 - nothing 6. Age = 25 - do something 7. Age = 45 - do something else Is there any way to do this using the guvnor UI? Thanks and regards, Chaturvedi Dewashish Nirvana Solutions From wolfgang.laun at gmail.com Fri Jun 6 12:06:15 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Fri, 6 Jun 2014 18:06:15 +0200 Subject: [rules-users] Grouping of rule and range check In-Reply-To: References: Message-ID: Are these seven (or eight) different objects of class Person? -W On 06/06/2014, Chaturvedi Dewashish wrote: > Hi, > > I have a requirement which is as > 1. There are three rules lets say rule1, rule2 and rule3 > 2. rule1 says there is a person > Age < 40 > Age >= 20 > Then do something > 3. rule2 says there is a person > Age < 60 > Age >= 40 > Then do something else > 4. rule3 says there is a person > Age >= 60 > Then do something new > > Now I am feeding person object as whole as event based from other > application. > So the requirement in form of test cases is > 1. Age = 22 - do something > 2. Age = 25 - Nothing as rule1 is already triggered and "do something" done > 3. Age = 42 - do something else > 4. Age = 45 - Nothing as rule1 is already triggered and "do something else" > done > 4. Age = 65 - do something new > 5. Age = 68 - nothing > 6. Age = 25 - do something > 7. Age = 45 - do something else > > Is there any way to do this using the guvnor UI? > > > Thanks and regards, > Chaturvedi Dewashish > Nirvana Solutions > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From clickthex at yahoo.com Fri Jun 6 15:36:48 2014 From: clickthex at yahoo.com (SrjTx) Date: Fri, 6 Jun 2014 12:36:48 -0700 (PDT) Subject: [rules-users] 6.0.1.F Enumerations that hit class that access DB don't update as expected Message-ID: <1402083407972-4029913.post@n3.nabble.com> I have a class xyz that accesses a DB to populate the dropdown: 'mybean.q1' : (new QueryThins()).getList("FOO", "BAR") This works, except that when the backing store changes, the dropdown don't update even if you leave and re-enter the editor. I have a workaround below. I there a fix for this on github? I have been searching github checkins by cloning and doing "git search" within eclipse, but didn't find anything. Are there any other ways to search commits that might be a better approach? workaround 1. Edit the Integration.enumeration file. - Click the [Add enum] to create a blank entry at the bottom of the list - Click [-] to delete that enum - Save 2. Close Any Rules that are open. 3. Reopen a Rule. The Dropdown will be refreshed. Next time through, delete the blank entry so the .enumeration is dirty. -- View this message in context: http://drools.46999.n3.nabble.com/6-0-1-F-Enumerations-that-hit-class-that-access-DB-don-t-update-as-expected-tp4029913.html Sent from the Drools: User forum mailing list archive at Nabble.com. From rkgupta75 at gmail.com Sat Jun 7 12:34:30 2014 From: rkgupta75 at gmail.com (rgupta12) Date: Sat, 7 Jun 2014 09:34:30 -0700 (PDT) Subject: [rules-users] Simple Ruleflow exits after first set of rules execute, will not continue even to a script task that prints a message? Message-ID: <1402158870080-4029918.post@n3.nabble.com> I have a simple ruleflow (jbpm flow) with two nodes, after the rules fire in the first node, it simply will not move to the next node, I think the below describes the problem, but I still do not understand it **** It appears that the txm.commit() statement in SingleSessionCommandService.execute() method which is invoked for startProcess command somehow leads to removeEventListener(String type, EvenListener listener) which results in the removal of the RuleSetNodeInstance callback of first rule group, therefore, workflow exits at first rule group when fireAllRules is called. -- View this message in context: http://drools.46999.n3.nabble.com/Simple-Ruleflow-exits-after-first-set-of-rules-execute-will-not-continue-even-to-a-script-task-that--tp4029918.html Sent from the Drools: User forum mailing list archive at Nabble.com. From zahid.ahmed at emirates.com Sun Jun 8 06:06:20 2014 From: zahid.ahmed at emirates.com (Zahid Ahmed) Date: Sun, 8 Jun 2014 10:06:20 +0000 Subject: [rules-users] =?windows-1252?q?Drools_Workbench_-_Cloning_a_local?= =?windows-1252?q?_Repo_Gives_=93Invalid_remote=3A_origin=94?= Message-ID: Hi, I am trying to clone a repo in Drools WorkBench and getting the following error, "Can't clone repository. java.lang.RuntimeException:Invalid remote: origin" The repository which I am cloning, resides in my local machine. D:/Servers/Drools-6-Deployment/repo/repoA.git Following are the inputs I am providing to WorkBench clone Wizard, "Repository Name = repoCloned" "Organizational Unit = inTech" "GIT URL = file:///D:/Servers/Drools-6-Deployment/repo/repoA.git" "User Name = " (Currently I am giving my github account cred. What to give in user name?) "Password = " (Currently I am giving my github account cred. What to give as password?) Question 1 Why am I getting remote origin error when I am cloning from a local GIT repository ? Question 2 Kindly let me know what to give as User Name and Password when I am cloning from an existing GIT repo in my local filesystem ? Regards, Zahid Ahmed -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140608/ef3428c0/attachment.html From michael.anstis at gmail.com Sun Jun 8 06:36:22 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Sun, 8 Jun 2014 11:36:22 +0100 Subject: [rules-users] =?utf-8?q?Drools_Workbench_-_Cloning_a_local_Repo_G?= =?utf-8?b?aXZlcyDigJxJbnZhbGlkIHJlbW90ZTogb3JpZ2lu4oCd?= In-Reply-To: References: Message-ID: You won't need a user id or password. The remote origin error message is thrown by the underlying jgit library we use. Any repository that is cloned is considered a "remote" in git terms. The fact that it's on your local machine makes no difference in git terms. Sent on the move On 8 Jun 2014 11:07, "Zahid Ahmed" wrote: > Hi, > > > > I am trying to clone a repo in Drools WorkBench and getting the following > error, > > > > *"Can't clone repository. java.lang.RuntimeException:Invalid remote: > origin"* > > > > The repository which I am cloning, *resides in my local machine*. > D:/Servers/Drools-6-Deployment/repo/repoA.git > > > > Following are the inputs I am providing to WorkBench clone Wizard, > > > > "Repository Name = repoCloned" "Organizational Unit = inTech" > > "GIT URL = > file:///D:/Servers/Drools-6-Deployment/repo/repoA.git" > > "User Name = " (Currently I am giving my github > account cred. What to give in user name?) > > "Password = " (Currently I am giving my github > account cred. What to give as password?) > > > > *Question 1* > > Why am I getting remote origin error when I am cloning from a local GIT > repository ? > > > > *Question 2* > > Kindly let me know what to give as User Name and Password when I am > cloning from an existing GIT repo in my local filesystem ? > > > > > > > > Regards, > > Zahid Ahmed > > > > > > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140608/4eda5d1a/attachment.html From zahid.ahmed at emirates.com Sun Jun 8 06:57:00 2014 From: zahid.ahmed at emirates.com (Zahid Ahmed) Date: Sun, 8 Jun 2014 10:57:00 +0000 Subject: [rules-users] =?utf-8?q?Drools_Workbench_-_Cloning_a_local_Repo_G?= =?utf-8?b?aXZlcyDigJxJbnZhbGlkIHJlbW90ZTogb3JpZ2lu4oCd?= In-Reply-To: References: Message-ID: @Michael Due to this error it?s not cloning it. Below is the architecture in which I am deploying the Workbench. Two Workbench instances, one central GIT repo and One central Maven Repo (Details as below) My architecture for Drools deployment is we will deploy two Drools Workbench instances. We will create one central GIT repository, REPO-A.git, which will be cloned by both the instances, REPO-A-Cloned-1, REPO-A-Cloned-2. If any file is committed in instance A, REPO-A-Cloned-1, should also appear in instance B, REPO-A-Cloned-2, and that asset should also appear in central repo, REPO-A. Regards, Zahid From: rules-users-bounces at lists.jboss.org [mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Michael Anstis Sent: 08 June 2014 14:36 To: Rules Users List Subject: Re: [rules-users] Drools Workbench - Cloning a local Repo Gives ?Invalid remote: origin? You won't need a user id or password. The remote origin error message is thrown by the underlying jgit library we use. Any repository that is cloned is considered a "remote" in git terms. The fact that it's on your local machine makes no difference in git terms. Sent on the move On 8 Jun 2014 11:07, "Zahid Ahmed" > wrote: Hi, I am trying to clone a repo in Drools WorkBench and getting the following error, "Can't clone repository. java.lang.RuntimeException:Invalid remote: origin" The repository which I am cloning, resides in my local machine. D:/Servers/Drools-6-Deployment/repo/repoA.git Following are the inputs I am providing to WorkBench clone Wizard, "Repository Name = repoCloned" "Organizational Unit = inTech" "GIT URL = file:///D:/Servers/Drools-6-Deployment/repo/repoA.git" "User Name = " (Currently I am giving my github account cred. What to give in user name?) "Password = " (Currently I am giving my github account cred. What to give as password?) Question 1 Why am I getting remote origin error when I am cloning from a local GIT repository ? Question 2 Kindly let me know what to give as User Name and Password when I am cloning from an existing GIT repo in my local filesystem ? Regards, Zahid Ahmed _______________________________________________ rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140608/780ca66a/attachment-0001.html From vdesai at merkleinc.com Mon Jun 9 13:13:29 2014 From: vdesai at merkleinc.com (vdesai) Date: Mon, 9 Jun 2014 10:13:29 -0700 (PDT) Subject: [rules-users] Drools Pluggin Syntax Check Message-ID: <1402334009813-4029927.post@n3.nabble.com> I have installed Drools Pluggin in Eclipse and have installed pluggin - JBoss Drools Core and related ones. However, it doesnt complain/error about errors in the typo or bracket issues for trules. is there anything i am missing or needs to install other features which will validate Drools files as good as Java Class for syntax. The Pluggin/Features should validate all brackets, typo erros, reference java classes and all dependencies. Appreciate the input. -- View this message in context: http://drools.46999.n3.nabble.com/Drools-Pluggin-Syntax-Check-tp4029927.html Sent from the Drools: User forum mailing list archive at Nabble.com. From raojinghai at gmail.com Mon Jun 9 13:29:35 2014 From: raojinghai at gmail.com (raojinghai at gmail.com) Date: Mon, 9 Jun 2014 10:29:35 -0700 Subject: [rules-users] Drools Pluggin Syntax Check In-Reply-To: <1402334009813-4029927.post@n3.nabble.com> References: <1402334009813-4029927.post@n3.nabble.com> Message-ID: Have you converted the project to drool project. You can check .project file in your project and see if droolsbuilder is there. If not, you can convert it by Configure -> Convert to Drools Project. On Mon, Jun 9, 2014 at 10:13 AM, vdesai wrote: > I have installed Drools Pluggin in Eclipse and have installed pluggin - > JBoss Drools Core and related ones. > > However, it doesnt complain/error about errors in the typo or bracket > issues > for trules. is there anything i am missing or needs to install other > features which will validate Drools files as good as Java Class for syntax. > > The Pluggin/Features should validate all brackets, typo erros, reference > java classes and all dependencies. > > Appreciate the input. > > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Drools-Pluggin-Syntax-Check-tp4029927.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140609/97fd6568/attachment.html From vdesai at merkleinc.com Mon Jun 9 14:10:34 2014 From: vdesai at merkleinc.com (vdesai) Date: Mon, 9 Jun 2014 11:10:34 -0700 (PDT) Subject: [rules-users] Drools Pluggin Syntax Check In-Reply-To: References: <1402334009813-4029927.post@n3.nabble.com> Message-ID: <1402337434724-4029929.post@n3.nabble.com> Thanks .. i missed on converting ..its working now. -- View this message in context: http://drools.46999.n3.nabble.com/Drools-Pluggin-Syntax-Check-tp4029927p4029929.html Sent from the Drools: User forum mailing list archive at Nabble.com. From jonathan.labin at gmail.com Mon Jun 9 14:52:29 2014 From: jonathan.labin at gmail.com (jonathan.labin) Date: Mon, 9 Jun 2014 11:52:29 -0700 (PDT) Subject: [rules-users] Parallel / Distributed Optaplanner Message-ID: <1402339949816-4029930.post@n3.nabble.com> I know that this topic has come up before. At various times there were responses indicating that it was being considered at some level within the project(s). How has that played out? Was there progress or has the idea been put on the back-burner? Was something discovered that seems to make the idea not worth pursuing? I'm contemplating doing some investigating of my own to attempt to leverage additional hardware in a distributed way for our application. But I didn't want to end up re-discovering things or try things that have already proved to be a dead end by an effort ongoing within the project. Any insight you could share? -- View this message in context: http://drools.46999.n3.nabble.com/Parallel-Distributed-Optaplanner-tp4029930.html Sent from the Drools: User forum mailing list archive at Nabble.com. From jplaberge at magenta.ca Mon Jun 9 22:18:41 2014 From: jplaberge at magenta.ca (moonbeam) Date: Mon, 9 Jun 2014 19:18:41 -0700 (PDT) Subject: [rules-users] =?utf-8?q?How_can_we_make_the_=E2=80=98over_window?= =?utf-8?q?=3Atime=E2=80=99_parameter_being_configurable=3F?= Message-ID: <1402366721822-4029932.post@n3.nabble.com> How can we make the ?over window:time? parameter being configurable? Something similar to the following rule (that does not compile at all). See the $windowTime variable. declare TemperatureThreshold windowTime : String = "30s" max : long = 70 end declare SensorReading @role( event ) temperature : String = "40" end rule "Sound the alarm in case temperature rises above threshold" when TemperatureThreshold( $max : max, $windowTime : windowTime ) Number( doubleValue > $max ) from accumulate( SensorReading( $temp : temperature ) over window:time( $windowTime ), average( $temp ) ) then // sound the alarm end -- View this message in context: http://drools.46999.n3.nabble.com/How-can-we-make-the-over-window-time-parameter-being-configurable-tp4029932.html Sent from the Drools: User forum mailing list archive at Nabble.com. From ge0ffrey.spam at gmail.com Tue Jun 10 04:27:09 2014 From: ge0ffrey.spam at gmail.com (Geoffrey De Smet) Date: Tue, 10 Jun 2014 10:27:09 +0200 Subject: [rules-users] Parallel / Distributed Optaplanner In-Reply-To: <1402339949816-4029930.post@n3.nabble.com> References: <1402339949816-4029930.post@n3.nabble.com> Message-ID: <5396C15D.20808@gmail.com> Hi Jonathan, On 09-06-14 20:52, jonathan.labin wrote: > I know that this topic has come up before. At various times there were > responses indicating that it was being considered at some level within the > project(s). > > How has that played out? Was there progress or has the idea been put on the > back-burner? Was something discovered that seems to make the idea not worth > pursuing? It's still on my mind and in the roadmap: https://issues.jboss.org/browse/PLANNER-76 Other issues have currently taken priority (due to customer requests etc). http://www.optaplanner.org/download/releaseNotes/releaseNotes6.1.html In 6.1 (CR1 is being build right now), more preparation for this is in place: everything is now on the selector architecture. The technical challenge is still the same: don't break incremental score calculation while parallelizing OptaPlanner, because incremental score calculation is a far bigger speedup than anything parallelization can bring to the table. The technical design that adheres to this is still the same (last comment on PLANNER-76): Use surrogate entity id's, to allow migrating Move's from 1 workingSolution to another. > > I'm contemplating doing some investigating of my own to attempt to leverage > additional hardware in a distributed way for our application. But I didn't > want to end up re-discovering things or try things that have already proved > to be a dead end by an effort ongoing within the project. Any experiments you do would be interesting for me to observe. Especially if it's user-domain agnostic, I am interested to merge a PR adding this functionality. > > Any insight you could share? Parallelize the method LocalSearchDecider.pickNextStep() :) Replace the LocalSearchDecider instance in DefaultLocalSearchPhase with your own. Extend LocalSearchPhaseConfig to be able to do that. > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Parallel-Distributed-Optaplanner-tp4029930.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From zahid.ahmed at emirates.com Tue Jun 10 04:33:46 2014 From: zahid.ahmed at emirates.com (Zahid Ahmed) Date: Tue, 10 Jun 2014 08:33:46 +0000 Subject: [rules-users] =?utf-8?q?Drools_Workbench_-_Cloning_a_local_Repo_G?= =?utf-8?b?aXZlcyDigJxJbnZhbGlkIHJlbW90ZTogb3JpZ2lu4oCd?= References: Message-ID: @Michael Due to this error it?s not cloning it. Below is the architecture in which I am deploying the Workbench. Two Workbench instances, one central GIT repo and One central Maven Repo (Details as below) My architecture for Drools deployment is we will deploy two Drools Workbench instances. We will create one central GIT repository, REPO-A.git, which will be cloned by both the instances, REPO-A-Cloned-1, REPO-A-Cloned-2. If any file is committed in instance A, REPO-A-Cloned-1, should also appear in instance B, REPO-A-Cloned-2, and that asset should also appear in central repo, REPO-A. Regards, Zahid From: rules-users-bounces at lists.jboss.org [mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Michael Anstis Sent: 08 June 2014 14:36 To: Rules Users List Subject: Re: [rules-users] Drools Workbench - Cloning a local Repo Gives ?Invalid remote: origin? You won't need a user id or password. The remote origin error message is thrown by the underlying jgit library we use. Any repository that is cloned is considered a "remote" in git terms. The fact that it's on your local machine makes no difference in git terms. Sent on the move On 8 Jun 2014 11:07, "Zahid Ahmed" > wrote: Hi, I am trying to clone a repo in Drools WorkBench and getting the following error, "Can't clone repository. java.lang.RuntimeException:Invalid remote: origin" The repository which I am cloning, resides in my local machine. D:/Servers/Drools-6-Deployment/repo/repoA.git Following are the inputs I am providing to WorkBench clone Wizard, "Repository Name = repoCloned" "Organizational Unit = inTech" "GIT URL = file:///D:/Servers/Drools-6-Deployment/repo/repoA.git" "User Name = " (Currently I am giving my github account cred. What to give in user name?) "Password = " (Currently I am giving my github account cred. What to give as password?) Question 1 Why am I getting remote origin error when I am cloning from a local GIT repository ? Question 2 Kindly let me know what to give as User Name and Password when I am cloning from an existing GIT repo in my local filesystem ? Regards, Zahid Ahmed _______________________________________________ rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140610/f15fa77a/attachment-0001.html From michael.anstis at gmail.com Tue Jun 10 05:39:20 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Tue, 10 Jun 2014 10:39:20 +0100 Subject: [rules-users] =?utf-8?q?Drools_Workbench_-_Cloning_a_local_Repo_G?= =?utf-8?b?aXZlcyDigJxJbnZhbGlkIHJlbW90ZTogb3JpZ2lu4oCd?= In-Reply-To: References: Message-ID: I tried with the latest codebase and could clone a repository on my local filesystem without problem (the path needs to be the folder containing the git repository's .git folder). As for your architecture; we don't support what you describe - which appears to be a distributed git installation with automatic synchronization of commits between the two. Changes you make to files within "Drools Workbench installation 1" (using the cloned repository "REPO-A-Cloned-1") will only appear in the clone. You will need to handle a mechanism to push the commits made there to it's origin (i.e. REPO-A) and synchronization to REPO-A-Clone-2. Google returns links to server-side scripts you can run to synchronize different GIT repositories; however you'll probably encounter merge conflicts if a single file was modified in both clones. With kind regards, Mike On 10 June 2014 09:33, Zahid Ahmed wrote: > > > @Michael > > > > Due to this error it?s not cloning it. Below is the architecture in which > I am deploying the Workbench. Two Workbench instances, one central GIT repo > and One central Maven Repo (Details as below) > > > > My architecture for Drools deployment is we will deploy two Drools > Workbench instances. We will create one central GIT repository, REPO-A.git, > which will be cloned by both the instances, REPO-A-Cloned-1, > REPO-A-Cloned-2. If any file is committed in instance A, REPO-A-Cloned-1, > should also appear in instance B, REPO-A-Cloned-2, and that asset should > also appear in central repo, REPO-A. > > > > Regards, > > Zahid > > > > > > > > > > > > *From:* rules-users-bounces at lists.jboss.org [ > mailto:rules-users-bounces at lists.jboss.org > ] *On Behalf Of *Michael Anstis > *Sent:* 08 June 2014 14:36 > *To:* Rules Users List > *Subject:* Re: [rules-users] Drools Workbench - Cloning a local Repo > Gives ?Invalid remote: origin? > > > > You won't need a user id or password. > > The remote origin error message is thrown by the underlying jgit library > we use. > > Any repository that is cloned is considered a "remote" in git terms. The > fact that it's on your local machine makes no difference in git terms. > > Sent on the move > > On 8 Jun 2014 11:07, "Zahid Ahmed" wrote: > > Hi, > > > > I am trying to clone a repo in Drools WorkBench and getting the following > error, > > > > *"Can't clone repository. java.lang.RuntimeException:Invalid remote: > origin"* > > > > The repository which I am cloning, *resides in my local machine*. > D:/Servers/Drools-6-Deployment/repo/repoA.git > > > > Following are the inputs I am providing to WorkBench clone Wizard, > > > > "Repository Name = repoCloned" "Organizational Unit = inTech" > > "GIT URL = > file:///D:/Servers/Drools-6-Deployment/repo/repoA.git" > > "User Name = " (Currently I am giving my github > account cred. What to give in user name?) > > "Password = " (Currently I am giving my github > account cred. What to give as password?) > > > > *Question 1* > > Why am I getting remote origin error when I am cloning from a local GIT > repository ? > > > > *Question 2* > > Kindly let me know what to give as User Name and Password when I am > cloning from an existing GIT repo in my local filesystem ? > > > > > > > > Regards, > > Zahid Ahmed > > > > > > > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140610/eea3f51d/attachment.html From wolfgang.laun at gmail.com Tue Jun 10 08:26:32 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Tue, 10 Jun 2014 14:26:32 +0200 Subject: [rules-users] Are there second-rate fact types? Message-ID: Consider: class Foo { /*...*/ } rule checkFoo when Foo( noSuchField > 0 ) then ... end DRL compilation reports an error (Error: unable to resolve method ...) and identifies rule, line and column, which is fine. Now let's look at: import java.util.ArrayList; rule checkArrayList when ArrayList( noSuchField > 0 ) then ... end The same DRL compiler (checked with 5.5.0 and 6.0.0) accepts this, and there is a nasty exception thrown at runtime. This is inconvenient, since the exception can be thrown by any code inserting an ArrayList object, and the faulty rule isn't identified. Why are certain classes second-rate? -W From dsotty at gmail.com Tue Jun 10 08:45:34 2014 From: dsotty at gmail.com (Davide Sottara) Date: Tue, 10 Jun 2014 13:45:34 +0100 Subject: [rules-users] Are there second-rate fact types? In-Reply-To: References: Message-ID: <5396FDEE.8060604@gmail.com> java.util.Collections (and descendants) are not @typesafe by default, I'll check the reason for that. More generally, if a fact is declared as not @typesafe, the runtime failure should be more graceful. Davide On 06/10/2014 01:26 PM, Wolfgang Laun wrote: > Consider: > > class Foo { /*...*/ } > > rule checkFoo > when > Foo( noSuchField > 0 ) > then ... end > > DRL compilation reports an error (Error: unable to resolve method ...) > and identifies rule, line and column, which is fine. > > Now let's look at: > > import java.util.ArrayList; > rule checkArrayList > when > ArrayList( noSuchField > 0 ) > then ... end > > The same DRL compiler (checked with 5.5.0 and 6.0.0) accepts this, and > there is a nasty exception thrown at runtime. This is inconvenient, > since the exception can be thrown by any code inserting an ArrayList > object, and the faulty rule isn't identified. > > Why are certain classes second-rate? > > -W > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From wolfgang.laun at gmail.com Tue Jun 10 08:52:50 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Tue, 10 Jun 2014 14:52:50 +0200 Subject: [rules-users] Are there second-rate fact types? In-Reply-To: <5396FDEE.8060604@gmail.com> References: <5396FDEE.8060604@gmail.com> Message-ID: On 10/06/2014, Davide Sottara wrote: > java.util.Collections (and descendants) are not @typesafe by default, > I'll check the reason for that. OK. > More generally, if a fact is declared as not @typesafe, the runtime > failure should be more graceful. But (according to you) java.util.Collections is *not* @typesafe, and this runtime failure cannot be called "graceful". Can a java.util.X be declared as @typesafe? If so, how? Is any of this documented anywhere? -W > Davide > > On 06/10/2014 01:26 PM, Wolfgang Laun wrote: >> Consider: >> >> class Foo { /*...*/ } >> >> rule checkFoo >> when >> Foo( noSuchField > 0 ) >> then ... end >> >> DRL compilation reports an error (Error: unable to resolve method ...) >> and identifies rule, line and column, which is fine. >> >> Now let's look at: >> >> import java.util.ArrayList; >> rule checkArrayList >> when >> ArrayList( noSuchField > 0 ) >> then ... end >> >> The same DRL compiler (checked with 5.5.0 and 6.0.0) accepts this, and >> there is a nasty exception thrown at runtime. This is inconvenient, >> since the exception can be thrown by any code inserting an ArrayList >> object, and the faulty rule isn't identified. >> >> Why are certain classes second-rate? >> >> -W >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From mproctor at codehaus.org Tue Jun 10 08:54:14 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Tue, 10 Jun 2014 13:54:14 +0100 Subject: [rules-users] Are there second-rate fact types? In-Reply-To: <5396FDEE.8060604@gmail.com> References: <5396FDEE.8060604@gmail.com> Message-ID: The feature was more important when we didn?t allow casting, but people still wanted to work with Maps and Lists. Map( this[key].age < 30) Collections where defaulted to typefalse(false) Now that we support inline casts, it can be argued that things should always be type safe: Map( this[key]#Person.age < 30 ) It?s hard to change this now, without breaking backwards compatability. The docs don?t say that it?s defaulted to false for collections, only that it?s useful for Collections. Someone want to submit a pull request fix for this? 4.7.2.1.2. @typesafe( ) By default all type declarations are compiled with type safety enabled; @typesafe( false ) provides a means to override this behaviour by permitting a fall-back, to type unsafe evaluation where all constraints are generated as MVEL constraints and executed dynamically. This can be important when dealing with collections that do not have any generics or mixed type collections. 4.7.5. Non Typesafe Classes @typesafe( ) has been added to type declarations. By default all type declarations are compiled with type safety enabled; @typesafe( false ) provides a means to override this behaviour by permitting a fall-back, to type unsafe evaluation where all constraints are generated as MVEL constraints and executed dynamically. This can be important when dealing with collections that do not have any generics or mixed type collections. Mark On 10 Jun 2014, at 13:45, Davide Sottara wrote: > java.util.Collections (and descendants) are not @typesafe by default, > I'll check the reason for that. > More generally, if a fact is declared as not @typesafe, the runtime > failure should be more graceful. > Davide > > On 06/10/2014 01:26 PM, Wolfgang Laun wrote: >> Consider: >> >> class Foo { /*...*/ } >> >> rule checkFoo >> when >> Foo( noSuchField > 0 ) >> then ... end >> >> DRL compilation reports an error (Error: unable to resolve method ...) >> and identifies rule, line and column, which is fine. >> >> Now let's look at: >> >> import java.util.ArrayList; >> rule checkArrayList >> when >> ArrayList( noSuchField > 0 ) >> then ... end >> >> The same DRL compiler (checked with 5.5.0 and 6.0.0) accepts this, and >> there is a nasty exception thrown at runtime. This is inconvenient, >> since the exception can be thrown by any code inserting an ArrayList >> object, and the faulty rule isn't identified. >> >> Why are certain classes second-rate? >> >> -W >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140610/8802a652/attachment-0001.html From dominik.sandjaja at it-motive.de Tue Jun 10 09:01:43 2014 From: dominik.sandjaja at it-motive.de (Sandjaja, Dominik) Date: Tue, 10 Jun 2014 15:01:43 +0200 Subject: [rules-users] Memory leak when deploying to Maven repository? Message-ID: Hello everybody, I use Drools to create rules from an external source and create an artifact from those rule strings, putting it into a local repository. A minimalistic working example can be found at https://github.com/dadadom/MavenMemoryLeakMinimalExample The code, taken from that example, is basically like this: ReleaseId releaseId = new ReleaseIdImpl("some:releaseid:1.0.0-SNAPSHOT"); String rules = "rule \"testrule\ ... "; KieServices kServices = KieServices.Factory.get(); KieFileSystem kfs = kServices.newKieFileSystem(); kfs.write("src/main/resources/someBase/testrule", rules); kfs.generateAndWritePomXML(releaseId); String kmoduleXmlString = ""; kfs.writeKModuleXML(kmoduleXmlString.getBytes()); KieModule kieModule = kServices.newKieBuilder(kfs).getKieModule(); try { File pomFile = new File(System.getProperty("java.io.tmpdir"), "pom.xml"); try (FileOutputStream fos = new FileOutputStream(pomFile)) { fos.write(KieBuilderImpl.generatePomXml(releaseId).getBytes()); fos.flush(); } catch (IOException e) { e.printStackTrace(); } final MavenRepository mavenRepository = MavenRepository.getMavenRepository(); mavenRepository.deployArtifact(releaseId, (InternalKieModule) kieModule, pomFile); When I call this method in a ServletContextListener in a Tomcat Server (version 7 or 8) and undeploy the application afterwards, I get a memory leak. Tomcat tells me that the application has a memory leak: The following web applications were stopped (reloaded, undeployed), but their classes from previous runs are still loaded in memory, thus causing a memory leak (use a profiler to confirm): /mvntest Looking at the memory dump with e.g. JProfiler, I can trace the dangling instances back to an object static INSTANCE of class org.drools.compiler.kie.builder.impl.KieRepositoryImpl So it seems like there is something which I am either missing or which is a bug. I cannot find any .close() or .release() method or something alike on any of the involved objects ... If anyone could give me a hint how to solve this problem, I'd be happy not to litter my memory no more :) Regards and thanks Dominik ........................................................................... mit freundlichen Gr??en / kind regards Dominik Sandjaja Fon: +49 (0) 203 60878 183 Fax: +49 (0) 203 60878 222 e-mail: dominik.sandjaja at it-motive.de it-motive AG Zum Walkm?ller 6 47269 Duisburg info at it-motive.de http://www.it-motive.de .............................................................................. Vorsitzender des Aufsichtsrats: Dr.-Ing. J?rgen Sturm Vorstand: Horst-Dieter Deelmann (Vors.), Matthias Heming, Christoph Tim Klose HRB 9207, Amtsgericht Duisburg -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140610/5de00156/attachment.html From dsotty at gmail.com Tue Jun 10 09:08:02 2014 From: dsotty at gmail.com (Davide Sottara) Date: Tue, 10 Jun 2014 14:08:02 +0100 Subject: [rules-users] Are there second-rate fact types? In-Reply-To: References: <5396FDEE.8060604@gmail.com> Message-ID: <53970332.6090807@gmail.com> In fact what we have now is *NOT* graceful I'll open a JIRA and try to provide a fix On 06/10/2014 01:52 PM, Wolfgang Laun wrote: > On 10/06/2014, Davide Sottara wrote: >> java.util.Collections (and descendants) are not @typesafe by default, >> I'll check the reason for that. > OK. > >> More generally, if a fact is declared as not @typesafe, the runtime >> failure should be more graceful. > But (according to you) java.util.Collections is *not* @typesafe, and > this runtime failure cannot be called "graceful". > > Can a java.util.X be declared as @typesafe? If so, how? Is any of this > documented anywhere? > > -W > >> Davide >> >> On 06/10/2014 01:26 PM, Wolfgang Laun wrote: >>> Consider: >>> >>> class Foo { /*...*/ } >>> >>> rule checkFoo >>> when >>> Foo( noSuchField > 0 ) >>> then ... end >>> >>> DRL compilation reports an error (Error: unable to resolve method ...) >>> and identifies rule, line and column, which is fine. >>> >>> Now let's look at: >>> >>> import java.util.ArrayList; >>> rule checkArrayList >>> when >>> ArrayList( noSuchField > 0 ) >>> then ... end >>> >>> The same DRL compiler (checked with 5.5.0 and 6.0.0) accepts this, and >>> there is a nasty exception thrown at runtime. This is inconvenient, >>> since the exception can be thrown by any code inserting an ArrayList >>> object, and the faulty rule isn't identified. >>> >>> Why are certain classes second-rate? >>> >>> -W >>> _______________________________________________ >>> rules-users mailing list >>> rules-users at lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > . > From wolfgang.laun at gmail.com Tue Jun 10 09:09:54 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Tue, 10 Jun 2014 15:09:54 +0200 Subject: [rules-users] Are there second-rate fact types? In-Reply-To: References: <5396FDEE.8060604@gmail.com> Message-ID: The primary concern is not so much type safety but the absence of the check of the name being defined as a getter or class member. Also, (if I understand the poster correctly) in 5.0.0 the DRL compiler was able to flag a non-existent member in ArrayList. Three cheers to not "breaking backwards compatability". Note that even when you abstain from inserting collections as first-order facts, you'll still need them, e.g., for a "from collect". -W On 10/06/2014, Mark Proctor wrote: > The feature was more important when we didn't allow casting, but people > still wanted to work with Maps and Lists. > Map( this[key].age < 30) > > Collections where defaulted to typefalse(false) > > Now that we support inline casts, it can be argued that things should always > be type safe: > Map( this[key]#Person.age < 30 ) > > It's hard to change this now, without breaking backwards compatability. > > The docs don't say that it's defaulted to false for collections, only that > it's useful for Collections. Someone want to submit a pull request fix for > this? > > 4.7.2.1.2. @typesafe( ) > > By default all type declarations are compiled with type safety enabled; > @typesafe( false ) provides a means to override this behaviour by permitting > a fall-back, to type unsafe evaluation where all constraints are generated > as MVEL constraints and executed dynamically. This can be important when > dealing with collections that do not have any generics or mixed type > collections. > > 4.7.5. Non Typesafe Classes > > @typesafe( ) has been added to type declarations. By default all > type declarations are compiled with type safety enabled; @typesafe( false ) > provides a means to override this behaviour by permitting a fall-back, to > type unsafe evaluation where all constraints are generated as MVEL > constraints and executed dynamically. This can be important when dealing > with collections that do not have any generics or mixed type collections. > > > Mark > > > On 10 Jun 2014, at 13:45, Davide Sottara wrote: > >> java.util.Collections (and descendants) are not @typesafe by default, >> I'll check the reason for that. >> More generally, if a fact is declared as not @typesafe, the runtime >> failure should be more graceful. >> Davide >> >> On 06/10/2014 01:26 PM, Wolfgang Laun wrote: >>> Consider: >>> >>> class Foo { /*...*/ } >>> >>> rule checkFoo >>> when >>> Foo( noSuchField > 0 ) >>> then ... end >>> >>> DRL compilation reports an error (Error: unable to resolve method ...) >>> and identifies rule, line and column, which is fine. >>> >>> Now let's look at: >>> >>> import java.util.ArrayList; >>> rule checkArrayList >>> when >>> ArrayList( noSuchField > 0 ) >>> then ... end >>> >>> The same DRL compiler (checked with 5.5.0 and 6.0.0) accepts this, and >>> there is a nasty exception thrown at runtime. This is inconvenient, >>> since the exception can be thrown by any code inserting an ArrayList >>> object, and the faulty rule isn't identified. >>> >>> Why are certain classes second-rate? >>> >>> -W >>> _______________________________________________ >>> rules-users mailing list >>> rules-users at lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users > > From wolfgang.laun at gmail.com Tue Jun 10 09:18:28 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Tue, 10 Jun 2014 15:18:28 +0200 Subject: [rules-users] Are there second-rate fact types? In-Reply-To: References: <5396FDEE.8060604@gmail.com> Message-ID: But you can do declare ArrayList @typesafe( true ) end which fixes the problem, if not by default :-) Note that the subsection 4.7.2.1.2 explains things from an implementer's point of view, which is pretty much useless, and the wording is rather obscure. -W On 10/06/2014, Wolfgang Laun wrote: > The primary concern is not so much type safety but the absence of > the check of the name being defined as a getter or class member. > > Also, (if I understand the poster correctly) in 5.0.0 the DRL compiler > was able to flag a non-existent member in ArrayList. Three cheers to > not "breaking backwards compatability". > > Note that even when you abstain from inserting collections as > first-order facts, you'll still need them, e.g., for a "from collect". > > -W > > On 10/06/2014, Mark Proctor wrote: >> The feature was more important when we didn't allow casting, but people >> still wanted to work with Maps and Lists. >> Map( this[key].age < 30) >> >> Collections where defaulted to typefalse(false) >> >> Now that we support inline casts, it can be argued that things should >> always >> be type safe: >> Map( this[key]#Person.age < 30 ) >> >> It's hard to change this now, without breaking backwards compatability. >> >> The docs don't say that it's defaulted to false for collections, only >> that >> it's useful for Collections. Someone want to submit a pull request fix >> for >> this? >> >> 4.7.2.1.2. @typesafe( ) >> >> By default all type declarations are compiled with type safety enabled; >> @typesafe( false ) provides a means to override this behaviour by >> permitting >> a fall-back, to type unsafe evaluation where all constraints are >> generated >> as MVEL constraints and executed dynamically. This can be important when >> dealing with collections that do not have any generics or mixed type >> collections. >> >> 4.7.5. Non Typesafe Classes >> >> @typesafe( ) has been added to type declarations. By default all >> type declarations are compiled with type safety enabled; @typesafe( false >> ) >> provides a means to override this behaviour by permitting a fall-back, to >> type unsafe evaluation where all constraints are generated as MVEL >> constraints and executed dynamically. This can be important when dealing >> with collections that do not have any generics or mixed type collections. >> >> >> Mark >> >> >> On 10 Jun 2014, at 13:45, Davide Sottara wrote: >> >>> java.util.Collections (and descendants) are not @typesafe by default, >>> I'll check the reason for that. >>> More generally, if a fact is declared as not @typesafe, the runtime >>> failure should be more graceful. >>> Davide >>> >>> On 06/10/2014 01:26 PM, Wolfgang Laun wrote: >>>> Consider: >>>> >>>> class Foo { /*...*/ } >>>> >>>> rule checkFoo >>>> when >>>> Foo( noSuchField > 0 ) >>>> then ... end >>>> >>>> DRL compilation reports an error (Error: unable to resolve method ...) >>>> and identifies rule, line and column, which is fine. >>>> >>>> Now let's look at: >>>> >>>> import java.util.ArrayList; >>>> rule checkArrayList >>>> when >>>> ArrayList( noSuchField > 0 ) >>>> then ... end >>>> >>>> The same DRL compiler (checked with 5.5.0 and 6.0.0) accepts this, and >>>> there is a nasty exception thrown at runtime. This is inconvenient, >>>> since the exception can be thrown by any code inserting an ArrayList >>>> object, and the faulty rule isn't identified. >>>> >>>> Why are certain classes second-rate? >>>> >>>> -W >>>> _______________________________________________ >>>> rules-users mailing list >>>> rules-users at lists.jboss.org >>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>> >>> >>> _______________________________________________ >>> rules-users mailing list >>> rules-users at lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >> >> > From rabarijaonadomoina at gmail.com Tue Jun 10 09:53:35 2014 From: rabarijaonadomoina at gmail.com (tia) Date: Tue, 10 Jun 2014 06:53:35 -0700 (PDT) Subject: [rules-users] NullPointerException at org.drools.compiler.kie.builder.impl.KieContainerImpl.updateToVersion In-Reply-To: <1B166479-18C1-4279-974C-8B325F109CB6@codehaus.org> References: <1402042336625-4029894.post@n3.nabble.com> <1B166479-18C1-4279-974C-8B325F109CB6@codehaus.org> Message-ID: <1402408415310-4029954.post@n3.nabble.com> I already tried with a KnowledgeBase as your link suggest and it works well. But as the KnowledgeBase is deprecated, I would like to use the new way implemented in Drools 6. I'm still searching and if I can't find anything, I will submit this issue to Jira. Thanks -- View this message in context: http://drools.46999.n3.nabble.com/NullPointerException-at-org-drools-compiler-kie-builder-impl-KieContainerImpl-updateToVersion-tp4029894p4029954.html Sent from the Drools: User forum mailing list archive at Nabble.com. From mario.fusco at gmail.com Tue Jun 10 11:05:59 2014 From: mario.fusco at gmail.com (Mario Fusco) Date: Tue, 10 Jun 2014 08:05:59 -0700 (PDT) Subject: [rules-users] Memory leak when deploying to Maven repository? In-Reply-To: References: Message-ID: <1402412759558-4029955.post@n3.nabble.com> Hi Dominik, I'm honestly not understanding why you're creating a kieModule and most important why you're deploying it on maven in a ServletContextListener, but I am guessing you're doing this only to demonstrate the problem. Also be aware that for doing so you're using some drools internal API and these API aren't guaranteed to be stable. However every time you build a kieModule or you load it from a maven repo, it is stored in the KieRepository. If you need to remove it from there you can do this explicitly by using the KieRepository.removeKieModule(ReleaseId) method. I hope this helps, Mario -- View this message in context: http://drools.46999.n3.nabble.com/rules-users-Memory-leak-when-deploying-to-Maven-repository-tp4029950p4029955.html Sent from the Drools: User forum mailing list archive at Nabble.com. From acraigwest at gmail.com Tue Jun 10 12:23:09 2014 From: acraigwest at gmail.com (A. Craig West) Date: Tue, 10 Jun 2014 12:23:09 -0400 Subject: [rules-users] NullPointerException at org.drools.compiler.kie.builder.impl.KieContainerImpl.updateToVersion In-Reply-To: <1402042336625-4029894.post@n3.nabble.com> References: <1402042336625-4029894.post@n3.nabble.com> Message-ID: I am doing something similar, and other than a memory leak (which I have managed to track down and submit a patch for) it works pretty well... Try this... (Note that it would possibly be better to build a new ReleaseId every time, but more complicated) It has some code to clean up in case of errors, which seemed to be necessary. private static final String DRL_PATH_PREFIX = "src/main/resources"; private KieServices ks = null; private KieFileSystem kfs = null; private KieContainer kc = null; private KieBuilder kb = null; private ReleaseId snashotReleaseId = null; public boolean initRules(String commonDrl) { ks = KieServices.Factory.get(); kfs = ks.newKieFileSystem(); kb = ks.newKieBuilder(kfs).buildAll(); snapshotReleaseId = ks.getRepository().getDefaultReleasId(); // This is a snapshot release id, so it is ok if it stays the same kfs.generateAndWritePomXML(snapshotReleaseId); kfs.write(String.format(%s/common.drl", DRL_PATH_PREFIX), commonDrl); kb.buildAll(); kc = ks.newKieContainer(snapshotReleaseId); if ( kb.getResults().hasMessages( org.kie.api.builder.Message.Level.ERROR )) { for( org.kie.api.builder.Message result : kb.getResults().getMessages() ) { System.err.println("DRL error " + message.getText() + " in path: " + message.getPath() + " on line: " + message.getLine() + " column: " + message.getColumn()); } return false; } } private String getRulePath(String uniqueRuleId) { return String.format("%s/rule_%s.drl", DRL_PATH_PREFIX, uniqueRuleId); } private java.util.List buildIncremental(String path) { java.util.Set paths = new java.util.HashSet(); paths.add(path); return buildIncremental(paths, true); } private java.util.Set buildIncremental(java.util.Collection paths, boolean finish) { String[] pathsArray = paths.toArray(new String[0]); java.util.Set failedPaths = new java.util.HashSet(); IncrementalResults results = ((InternalKieBuilder)kBuilder).createFileSet(pathsArray).build(); List addedMessages = results.getAddedMessages(); for (Message message : addedMessages) { if (Message.Level.ERROR == message.getLevel()) { System.err.println("DRL error " + message.getText() + " adding path: " + message.getPath() + " on line: " + message.getLine() + " column: " + message.getColumn()); String failedPath = message.getPath(); if (!failedPath.startsWith(DRL_PATH_PREFIX)) { failedPath = String.format("%s/%s", DRL_PATH_PREFIX, failedPath); } failedPaths.add(failedPath); if (finish) { kfs.delete(failedPath); } } } if (finish && !failedPaths.isEmpty()) { buildIncremental(paths, false); } List removedMessages = results.getRemovedMessages(); for (Message message : removedMessages) { if (Message.Level.ERROR == message.getLevel()) { System.err.println("DRL error " + message.getText() + " removing path: " + message.getPath() + " on line: " + message.getLine() + " column: " + message.getColumn()); String failedPath = message.getPath(); if (!failedPath.startsWith(DRL_PATH_PREFIX)) { failedPath = String.format("%s/%s", DRL_PATH_PREFIX, failedPath); } failedPaths.add(failedPath); } } if (finish) { kc.updateToVersion(snapshotReleaseId); } return failedPaths; } public boolean removeRule(String uniqueRuleId) { String rulePath = getRulePath(uniqueRuleId); kfs.delete(rulePath); return buildIncremental(rulePath).isEmpty(); } public boolean addRule(String uniqueRuleId, String rule){ if (ks == null) { initRules(); } String rulePath = getRulePath(uniqueRuleId); kfs.write(rulePath, rule); return buildIncremental(rulePath).isEmpty(); } On Fri, Jun 6, 2014 at 4:12 AM, tia wrote: > Hello, > > I'm trying to add a new rule on the fly like here: > https://github.com/droolsjbpm/drools/blob/master/drools-compiler/src/test/java/org/drools/compiler/integrationtests/IncrementalCompilationTest.java#L158 > > Here is the method to add a rule, once the KieSession is created and > configured: > public void addRule(String rule){ > > KieServices ks= KieServices.Factory.get(); > ReleaseId rid= ks.newReleaseId("org.kie", "businessrules", "1.0"); > > KieFileSystem kfs = ks.newKieFileSystem(); > kfs.generateAndWritePomXML(rid); > kfs.write("src/main/resources/rule.drl",rule); > KieBuilder kb = ks.newKieBuilder(kfs).buildAll(); > if( kb.getResults().hasMessages( org.kie.api.builder.Message.Level.ERROR ) > ) { > for( org.kie.api.builder.Message result : kb.getResults().getMessages() ) > { > System.err.println(result.getText()); > } > } > InternalKieModule kieModule = (InternalKieModule) ks.getRepository() > .getKieModule(rid); > byte[] jar = kieModule.getBytes(); > > Resource jarRes = ks.getResources().newByteArrayResource(jar); > ks.getRepository().addKieModule(jarRes); > kieContainer.updateToVersion(rid); > } > > But when I'm calling this method, I get the error below: > java.lang.NullPointerException > at org.drools.core.util.LinkedList.remove(LinkedList.java:168) > at > org.drools.core.phreak.AddRemoveRule.mergeSegment(AddRemoveRule.java:938) > at > org.drools.core.phreak.AddRemoveRule.correctSegmentOnSplitOnRemove(AddRemoveRule.java:377) > at org.drools.core.phreak.AddRemoveRule.removeRule(AddRemoveRule.java:182) > at > org.drools.core.reteoo.ReteooBuilder.removeTerminalNode(ReteooBuilder.java:171) > at org.drools.core.reteoo.ReteooBuilder.removeRule(ReteooBuilder.java:165) > at > org.drools.core.reteoo.ReteooRuleBase.removeRule(ReteooRuleBase.java:1406) > at > org.drools.core.reteoo.ReteooRuleBase.removeObjectsGeneratedFromResource(ReteooRuleBase.java:1652) > at > org.drools.compiler.compiler.PackageBuilder.removeObjectsGeneratedFromResource(PackageBuilder.java:3898) > at > org.drools.compiler.kie.builder.impl.KieContainerImpl.updateToVersion(KieContainerImpl.java:114) > > For the line : "kieContainer.updateToVersion(rid);" > > But if I'm firing the rules once (kieSession.fireAllRules();) before adding > the new rule, I don't get the exception O_o > > Someone has any idea why ? > > thanks! > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/NullPointerException-at-org-drools-compiler-kie-builder-impl-KieContainerImpl-updateToVersion-tp4029894.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From graeme.kitchen at axa-travel-insurance.com Tue Jun 10 12:49:04 2014 From: graeme.kitchen at axa-travel-insurance.com (captainrhino) Date: Tue, 10 Jun 2014 09:49:04 -0700 (PDT) Subject: [rules-users] Kie-wb eclipse integration Message-ID: <1402418944056-4029957.post@n3.nabble.com> So I have cretaed a process with kie-wb but how can I edit this process in eclipse please and then upload this process back into kie-wb? -- View this message in context: http://drools.46999.n3.nabble.com/Kie-wb-eclipse-integration-tp4029957.html Sent from the Drools: User forum mailing list archive at Nabble.com. From sravan008 at outlook.com Tue Jun 10 14:58:06 2014 From: sravan008 at outlook.com (sravan k) Date: Wed, 11 Jun 2014 00:28:06 +0530 Subject: [rules-users] Drools-PermissionDeniedException In-Reply-To: References: Message-ID: Hi All , Does any one have idea on this below error ? org.drools.task.service.PermissionDeniedException: User '[User:'XYZ']' was unable to execution operation 'Complete' on task id 3394226 due to no 'current status' matchines we are facing this un-known exception and it is impacting our work very badly :( . Please give me some idea to resolve this error . ---Regards,Sravan. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/2503a184/attachment.html From cparham at biosignia.com Tue Jun 10 22:45:05 2014 From: cparham at biosignia.com (Parham, Clinton) Date: Wed, 11 Jun 2014 02:45:05 +0000 Subject: [rules-users] Can't clone repository NoSuchElementException Message-ID: <5428e245e5ed47f39df09d7f613f280e@SN2PR07MB045.namprd07.prod.outlook.com> Hello, I have Drools 6.0.1 installed on RedHat Linux 5 and running under JBoss EAP 6.1.1. I would like to clone from a local git server running on the same server. But when I do so, I get a "Can't clone repository. java.util.NoSuchElementException" message in the browser. There are no errors in the server.log Why doesn't this work? Here's how I'm running the git daemon: $ git daemon --verbose --export-all --port=9419 --base-path=/home/brms/git/ URL I enter into the Clone Repository dialog: git://localhost:9419/test.git This is how I setup my repo: $ cd /home/brms/git/ $ mkdir test.git $ cd test.git/ $ git init --bare Initialized empty Git repository in /home/brms/git/test.git/ Thanks, Clint ________________________________ The contents contained herein may contain confidential information. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, printing or action taken on the contents is strictly prohibited. If you have received this email in error, please notify the sender immediately and delete this message. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/461779bc/attachment.html From zahid.ahmed at emirates.com Wed Jun 11 00:39:54 2014 From: zahid.ahmed at emirates.com (Zahid Ahmed) Date: Wed, 11 Jun 2014 04:39:54 +0000 Subject: [rules-users] Drools Workbench - VFS Repository Clustering - Workbench Assets Not synched Message-ID: Hi, I am deploying Drools Workbench with VFS Clustering in place. I have followed the steps defined in Drools-6 documentation in section "VFS-CLUSTERING", and the following link. But my repositories are not synching http://mswiderski.blogspot.com.br/2013/06/clustering-in-jbpm-v6.html but getting following Zookeeper exception. NoNode for /jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/df7cda63-979b-47b2-ac9a-f2b218cb188 Attachment List 1. Complete exception trace of zookeeper is pasted at the end. 2. Server logs of both workbench servers is attached in the email. 3. Server un-synched assets screen shot attached. Problem BPMN process created in Workbench-A is not getting Synched with Workbench-B. Following are the screen shots for the difference in project assets. Images attached in "ServerAssets.png" DESIGN [cid:image002.png at 01CF84B6.3C23B0C0] Helix Commands Startup and Cluster Setup 1. helix-core-0.6.3\bin>helix-admin.bat --zkSvr localhost:2199 --addCluster jbpm-cluster 2. helix-core-0.6.3\bin>helix-admin.bat --zkSvr localhost:2199 --addNode jbpm-cluster nodeOne:11 3. helix-core-0.6.3\bin>helix-admin.bat --zkSvr localhost:2199 --addNode jbpm-cluster nodeTwo:22 4. helix-core-0.6.3\bin>helix-admin.bat --zkSvr localhost:2199 --addResource jbpm-cluster vfs-repo 1 LeaderStandby AUTO_REBALANCE 5. helix-core-0.6.3\bin>helix-admin.bat --zkSvr localhost:2199 --rebalance jbpm-cluster vfs-repo 2 6. helix-core-0.6.3\bin>run-helix-controller.bat --zkSvr localhost:2199 --cluster jbpm-cluster 2>&1 > /tmp/controller.log & ZooKeeper Setup Changes done only in zoo.conf 1. dataDir = /zooDir/zookeeper (Not sure where this directory gets created as I could not find it in $zookeeper_home/) 2. clientPort = 2199 Work-Bench A Configuration: Standalone.xml Work-Bench B Configuration: Standalone.xml Zookeeper Exception Trace: 2014-06-10 13:58:32,572 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250008 type:setData cxid:0x253 zxid:0x24b txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/56d2d3ac-126e-4ed2-aeaf-4a4 bfd91d80f Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/56d2d3ac-126e-4ed2-aeaf-4a4bfd91d80f 2014-06-10 13:59:03,859 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x38c zxid:0x267 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/dea6167c-ca2c-4f5d-85aa-5fc 65703e5be Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/dea6167c-ca2c-4f5d-85aa-5fc65703e5be 2014-06-10 13:59:06,911 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x3ed zxid:0x281 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/b58e5ff9-235a-4a12-b159-ee1 c9fbc01cc Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/b58e5ff9-235a-4a12-b159-ee1c9fbc01cc 2014-06-10 13:59:09,618 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x44c zxid:0x29b txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/71ba364e-21c1-4ee2-8383-4cb 5d15d339e Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/71ba364e-21c1-4ee2-8383-4cb5d15d339e 2014-06-10 13:59:23,720 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x4ab zxid:0x2b5 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/7d5f0c9c-ee69-4061-94e6-12a cf045a77b Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/7d5f0c9c-ee69-4061-94e6-12acf045a77b 2014-06-10 13:59:25,252 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x4c2 zxid:0x2b9 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/cc24bd9a-5297-4bc1-85f5-31f 6639de8e6 Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/cc24bd9a-5297-4bc1-85f5-31f6639de8e6 2014-06-10 13:59:25,982 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x4d9 zxid:0x2bd txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/337e84c8-06e9-4023-87c5-b48 26ec5ddb1 Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/337e84c8-06e9-4023-87c5-b4826ec5ddb1 2014-06-10 13:59:40,762 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x53c zxid:0x2d7 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/1eeac27e-5e48-43b9-bba5-98b ce0b89015 Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/1eeac27e-5e48-43b9-bba5-98bce0b89015 2014-06-10 13:59:41,775 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x59b zxid:0x2f1 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/7611f66a-993d-4652-8b07-011 e5bdcea60 Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/7611f66a-993d-4652-8b07-011e5bdcea60 2014-06-10 13:59:43,681 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x5d4 zxid:0x301 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/55991bef-61cb-4011-a8f1-f28 d47c67c53 Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/55991bef-61cb-4011-a8f1-f28d47c67c53 2014-06-10 14:00:04,689 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250008 type:setData cxid:0x332 zxid:0x311 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/65d0518e-1853-4373-a455-02d 1699930cc Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/65d0518e-1853-4373-a455-02d1699930cc 2014-06-10 14:00:06,542 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250008 type:setData cxid:0x391 zxid:0x32b txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/87131701-cf41-4c2f-8de4-54c 599da0f03 Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/87131701-cf41-4c2f-8de4-54c599da0f03 2014-06-10 14:17:39,329 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250008 type:setData cxid:0x401 zxid:0x367 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/aeb3757b-4560-4dca-b78c-6be 24eb514dc Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/aeb3757b-4560-4dca-b78c-6be24eb514dc Regards, Zahid Ahmed -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/b85f4320/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.png Type: image/png Size: 17529 bytes Desc: image002.png Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140611/b85f4320/attachment-0002.png -------------- next part -------------- A non-text attachment was scrubbed... Name: ZooKeeper.log Type: application/octet-stream Size: 46562 bytes Desc: ZooKeeper.log Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140611/b85f4320/attachment-0001.obj -------------- next part -------------- A non-text attachment was scrubbed... Name: ServerAssets.png Type: image/png Size: 160845 bytes Desc: ServerAssets.png Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140611/b85f4320/attachment-0003.png -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: WorkBench-A-Log.txt Url: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/b85f4320/attachment-0002.txt -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: WorkBench-B-Log.txt Url: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/b85f4320/attachment-0003.txt From aitzkowi at cisco.com Wed Jun 11 01:51:02 2014 From: aitzkowi at cisco.com (Aliza Itzkowitz (Silver) (aitzkowi)) Date: Wed, 11 Jun 2014 05:51:02 +0000 Subject: [rules-users] drools leaving a backgroud thread Message-ID: <6ED825987C83854A99864B3D636C531C47644713@xmb-aln-x03.cisco.com> Hi, I have a Java servlet running on Tomcat7 which runs multiple drools knowledge bases with a session associated to each one. I am using drools version 6.1.0.Beta3 When tomcat shuts-down I am seeing this message in the log: Jun 10, 2014 6:39:36 PM org.apache.catalina.loader.WebappClassLoader checkThreadLocalMapForLeaks SEVERE: The web application [/MyRulesServlet-1.0-SNAPSHOT] created a ThreadLocal with key of type [org.drools.core.common.UpgradableReentrantReadWriteLock$1] (value [org.drools.core.common.UpgradableReentrantReadWriteLock$1 at 5c0bf171]) and a value of type [org.drools.core.common.UpgradableReentrantReadWriteLock.LockRequestCounter] (value [org.drools.core.common.UpgradableReentrantReadWriteLock$LockRequestCounter at 141860ed]) but failed to remove it when the web application was stopped. Threads are going to be renewed over time to try and avoid a probable memory leak. It seems I am not performing a proper cleanup of resources on shutdown. I am calling kSession.dispose() for all the sessions I have, but apparently this is not enough. What else do I need to do to get rid of this background thread? Thanks, Aliza -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/cf384c29/attachment.html From p.thomson.es at gmail.com Wed Jun 11 03:30:24 2014 From: p.thomson.es at gmail.com (Neb) Date: Wed, 11 Jun 2014 00:30:24 -0700 (PDT) Subject: [rules-users] Drools Planner: Vehicle routing problems In-Reply-To: References: <1330096144248-3772797.post@n3.nabble.com> <1330097169263-3772841.post@n3.nabble.com> <1330336003845-3780139.post@n3.nabble.com> <1330340855910-3780331.post@n3.nabble.com> <1401411911695-4029766.post@n3.nabble.com> Message-ID: <1402471824583-4029962.post@n3.nabble.com> Thanks Geoffrey I have managed to get it working by manually changing some values in the latitude and longitude elements in the xml file. What I am struggling with is generating an xml file with my own data in each element. do you have any tips on how to create this xml to drive the vehicle routing solution. I have tried in c# but I cant get the nodes and attributes in the right order. Many thanks -- View this message in context: http://drools.46999.n3.nabble.com/Drools-Planner-Vehicle-routing-problems-tp3772797p4029962.html Sent from the Drools: User forum mailing list archive at Nabble.com. From reddy.lakshmi at gmail.com Wed Jun 11 03:56:51 2014 From: reddy.lakshmi at gmail.com (LaKhI ReDdY!!!!!!!!!!!) Date: Wed, 11 Jun 2014 13:26:51 +0530 Subject: [rules-users] Error while importing repository from Guvnor 5.1.1 to 5.3.3.Final Message-ID: Hi, I am trying to import the whole repository from 5.1.1 to 5.3.3.Final version.I am getting the below attached error while importing.Please find the attached file for error details. We have added new functionality(Rule request) in 5.1.1 and using it for quite some. Now we want to migrate to 5.3.3.Final and we want to drop the additional functionality(Rule Request) which we have added earlier in 5.1.1 version. The repository which we have currently contains the Rule request details also, does this causes problem in importing to Guvnor 5.3.3.Final? Regards, Lakshmi Reddy -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/790e0083/attachment-0001.html -------------- next part -------------- Clearing rules repository ERROR 11-06 12:09:39,412 (RulesRepository.java:importRulesRepositoryFromStream:1323) no matching property definition found for {http://www.jboss.o rg/drools-repository/1.0}description javax.jcr.nodetype.ConstraintViolationException: no matching property definition found for {http://www.jboss.org/drools-repository/1.0}description at org.apache.jackrabbit.core.nodetype.EffectiveNodeType.getApplicablePropertyDef(EffectiveNodeType.java:822) at org.apache.jackrabbit.core.xml.PropInfo.getApplicablePropertyDef(PropInfo.java:127) at org.apache.jackrabbit.core.xml.WorkspaceImporter.processProperty(WorkspaceImporter.java:415) at org.apache.jackrabbit.core.xml.WorkspaceImporter.startNode(WorkspaceImporter.java:629) at org.apache.jackrabbit.core.xml.SysViewImportHandler.processNode(SysViewImportHandler.java:94) at org.apache.jackrabbit.core.xml.SysViewImportHandler.startElement(SysViewImportHandler.java:134) at org.apache.jackrabbit.core.xml.ImportHandler.startElement(ImportHandler.java:169) at org.apache.jackrabbit.commons.xml.DefaultContentHandler.startElement(DefaultContentHandler.java:161) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:133) at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:173) at javax.xml.parsers.SAXParser.parse(SAXParser.java:395) at org.apache.jackrabbit.commons.xml.ParsingContentHandler.parse(ParsingContentHandler.java:62) at org.apache.jackrabbit.commons.AbstractWorkspace.importXML(AbstractWorkspace.java:54) at org.drools.repository.RulesRepository.importRulesRepositoryFromStream(RulesRepository.java:1309) at org.drools.guvnor.server.files.FileManagerUtils.importRulesRepository(FileManagerUtils.java:260) 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:32) 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.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:77) 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.security.SecurityInterceptor.aroundInvoke(SecurityInterceptor.java:163) 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:185) at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:103) at org.drools.guvnor.server.files.FileManagerUtils_$$_javassist_seam_8.importRulesRepository(FileManagerUtils_$$_javassist_seam_8.java) at org.drools.guvnor.server.files.RepositoryBackupServlet.processImportRepository(RepositoryBackupServlet.java:199) at org.drools.guvnor.server.files.RepositoryBackupServlet.access$300(RepositoryBackupServlet.java:41) at org.drools.guvnor.server.files.RepositoryBackupServlet$1.execute(RepositoryBackupServlet.java:100) at org.drools.guvnor.server.files.RepositoryServlet.doAuthorizedAction(RepositoryServlet.java:75) at org.drools.guvnor.server.files.RepositoryBackupServlet.doPost(RepositoryBackupServlet.java:68) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at org.jboss.seam.web.ContextFilter$1.process(ContextFilter.java:42) at org.jboss.seam.servlet.ContextualHttpServletRequest.run(ContextualHttpServletRequest.java:65) at org.jboss.seam.web.ContextFilter.doFilter(ContextFilter.java:37) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) ERROR 11-06 12:09:39,446 (RepositoryServlet.java:doAuthorizedAction:77) Repository error when importing from stream. org.drools.repository.RulesRepositoryException: Repository error when importing from stream. at org.drools.repository.RulesRepository.importRulesRepositoryFromStream(RulesRepository.java:1325) at org.drools.guvnor.server.files.FileManagerUtils.importRulesRepository(FileManagerUtils.java:260) 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:32) 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.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:77) 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.security.SecurityInterceptor.aroundInvoke(SecurityInterceptor.java:163) 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:185) at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:103) at org.drools.guvnor.server.files.FileManagerUtils_$$_javassist_seam_8.importRulesRepository(FileManagerUtils_$$_javassist_seam_8.java) at org.drools.guvnor.server.files.RepositoryBackupServlet.processImportRepository(RepositoryBackupServlet.java:199) at org.drools.guvnor.server.files.RepositoryBackupServlet.access$300(RepositoryBackupServlet.java:41) at org.drools.guvnor.server.files.RepositoryBackupServlet$1.execute(RepositoryBackupServlet.java:100) at org.drools.guvnor.server.files.RepositoryServlet.doAuthorizedAction(RepositoryServlet.java:75) at org.drools.guvnor.server.files.RepositoryBackupServlet.doPost(RepositoryBackupServlet.java:68) at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227) at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125) at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:301) at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at org.jboss.seam.web.ContextFilter$1.process(ContextFilter.java:42) at org.jboss.seam.servlet.ContextualHttpServletRequest.run(ContextualHttpServletRequest.java:65) at org.jboss.seam.web.ContextFilter.doFilter(ContextFilter.java:37) at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3730) at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3696) at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120) at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2273) at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2179) at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1490) at weblogic.work.ExecuteThread.execute(ExecuteThread.java:256) at weblogic.work.ExecuteThread.run(ExecuteThread.java:221) Caused by: javax.jcr.nodetype.ConstraintViolationException: no matching property definition found for {http://www.jboss.org/drools-repository/1.0}desc ription at org.apache.jackrabbit.core.nodetype.EffectiveNodeType.getApplicablePropertyDef(EffectiveNodeType.java:822) at org.apache.jackrabbit.core.xml.PropInfo.getApplicablePropertyDef(PropInfo.java:127) at org.apache.jackrabbit.core.xml.WorkspaceImporter.processProperty(WorkspaceImporter.java:415) at org.apache.jackrabbit.core.xml.WorkspaceImporter.startNode(WorkspaceImporter.java:629) at org.apache.jackrabbit.core.xml.SysViewImportHandler.processNode(SysViewImportHandler.java:94) at org.apache.jackrabbit.core.xml.SysViewImportHandler.startElement(SysViewImportHandler.java:134) at org.apache.jackrabbit.core.xml.ImportHandler.startElement(ImportHandler.java:169) at org.apache.jackrabbit.commons.xml.DefaultContentHandler.startElement(DefaultContentHandler.java:161) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:501) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:400) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2756) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:648) at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:140) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:511) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522) at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:133) at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:173) at javax.xml.parsers.SAXParser.parse(SAXParser.java:395) at org.apache.jackrabbit.commons.xml.ParsingContentHandler.parse(ParsingContentHandler.java:62) at org.apache.jackrabbit.commons.AbstractWorkspace.importXML(AbstractWorkspace.java:54) at org.drools.repository.RulesRepository.importRulesRepositoryFromStream(RulesRepository.java:1309) ... 45 more <[ServletContext at 872389192[app:guvnor-webapp-5.3.3.Final module:guvnor-webapp-5.3.3.Final.w ar path:/guvnor-webapp-5.3.3.Final spec-version:2.5]] Root cause of ServletException. org.drools.repository.RulesRepositoryException: Repository error when importing from stream. at org.drools.repository.RulesRepository.importRulesRepositoryFromStream(RulesRepository.java:1325) at org.drools.guvnor.server.files.FileManagerUtils.importRulesRepository(FileManagerUtils.java:260) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) Truncated. see log file for complete stacktrace Caused By: javax.jcr.nodetype.ConstraintViolationException: no matching property definition found for {http://www.jboss.org/drools-repository/1.0}desc ription at org.apache.jackrabbit.core.nodetype.EffectiveNodeType.getApplicablePropertyDef(EffectiveNodeType.java:822) at org.apache.jackrabbit.core.xml.PropInfo.getApplicablePropertyDef(PropInfo.java:127) at org.apache.jackrabbit.core.xml.WorkspaceImporter.processProperty(WorkspaceImporter.java:415) at org.apache.jackrabbit.core.xml.WorkspaceImporter.startNode(WorkspaceImporter.java:629) at org.apache.jackrabbit.core.xml.SysViewImportHandler.processNode(SysViewImportHandler.java:94) Truncated. see log file for complete stacktrace > From michael.anstis at gmail.com Wed Jun 11 04:26:13 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Wed, 11 Jun 2014 09:26:13 +0100 Subject: [rules-users] Error while importing repository from Guvnor 5.1.1 to 5.3.3.Final In-Reply-To: References: Message-ID: You're probably going to struggle finding support for migrating Guvnor 5.1 to 5.3 in the community. If you have a support subscription with Red Hat you can probably request assistance through your customer support network. See http://blog.athico.com/2011/04/drools-jbpm-community-versus-product.html On 11 June 2014 08:56, LaKhI ReDdY!!!!!!!!!!! wrote: > Hi, > > I am trying to import the whole repository from 5.1.1 to 5.3.3.Final > version.I am getting the below attached error while importing.Please find > the attached file for error details. > > We have added new functionality(Rule request) in 5.1.1 and using it for > quite some. Now we want to migrate to 5.3.3.Final and we want to drop the > additional functionality(Rule Request) which we have added earlier in 5.1.1 > version. > > The repository which we have currently contains the Rule request details > also, does this causes problem in importing to Guvnor 5.3.3.Final? > > > Regards, > Lakshmi Reddy > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/a9c2d4c7/attachment.html From matteo.mortari at gmail.com Wed Jun 11 04:32:33 2014 From: matteo.mortari at gmail.com (Matteo Mortari) Date: Wed, 11 Jun 2014 10:32:33 +0200 Subject: [rules-users] =?utf-8?q?How_can_we_make_the_=E2=80=98over_window?= =?utf-8?q?=3Atime=E2=80=99_parameter_being_configurable=3F?= In-Reply-To: <1402366721822-4029932.post@n3.nabble.com> References: <1402366721822-4029932.post@n3.nabble.com> Message-ID: Hi, I'm quite intrigued by this question also myself, I would like to know more about what you mean by "configurable" ? For instance you can have the window 'declared' declare window SensorReading30s SensorReading() over window:time(30s) from entry-point DEFAULT end and also use this custom window name in the accumulate rule. Do you mean by "configurable" , known at runtime and varying? A solution I can think of in that case, a specific rule with the housekeeping style; but I'm quite worried about performance issues may arise. Just my 2c, hope maybe helps? On Tue, Jun 10, 2014 at 4:18 AM, moonbeam wrote: > How can we make the ?over window:time? parameter being configurable? > > Something similar to the following rule (that does not compile at all). > See > the $windowTime variable. > > > declare TemperatureThreshold > windowTime : String = "30s" > max : long = 70 > end > > declare SensorReading > @role( event ) > temperature : String = "40" > end > > rule "Sound the alarm in case temperature rises above threshold" > when > TemperatureThreshold( $max : max, $windowTime : windowTime ) > Number( doubleValue > $max ) from accumulate( > SensorReading( $temp : temperature ) over window:time( $windowTime ), > average( $temp ) ) > then > // sound the alarm > end > > > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/How-can-we-make-the-over-window-time-parameter-being-configurable-tp4029932.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/476bc9e7/attachment.html From brachi.w at sapiens.com Wed Jun 11 04:35:14 2014 From: brachi.w at sapiens.com (brachi) Date: Wed, 11 Jun 2014 01:35:14 -0700 (PDT) Subject: [rules-users] Adding eval on rule cause it to run in infinite loop Message-ID: <1402475714280-4029966.post@n3.nabble.com> for this Drools Fact Type: /* declare DvFacts0 @propertyReactive IsNUMERIC: Double condIsNUMERIC: Double end*/ I have this rule: /*rule "1" salience -1 agenda-group "agenda1" when $condIsNUMERIC: DvFacts0(eval(condIsNUMERIC == null ) ) $conclusion: DvFacts0( ) then modify($conclusion){setIsNUMERIC(1.0)}; end*/ the rule hit just one time without the eval clause, adding the eval cause this rule to run in infinite loop. have an idea? put attention that I add @propertyReactive on the DVFacts0 to avoid this. -- View this message in context: http://drools.46999.n3.nabble.com/Adding-eval-on-rule-cause-it-to-run-in-infinite-loop-tp4029966.html Sent from the Drools: User forum mailing list archive at Nabble.com. From dominik.sandjaja at it-motive.de Wed Jun 11 04:46:38 2014 From: dominik.sandjaja at it-motive.de (Sandjaja, Dominik) Date: Wed, 11 Jun 2014 10:46:38 +0200 Subject: [rules-users] Memory leak when deploying to Maven repository? In-Reply-To: <1402412759558-4029955.post@n3.nabble.com> References: <1402412759558-4029955.post@n3.nabble.com> Message-ID: Hello, our scenario is like this: >From our customer, we get an Excel file which contains something rule-like which we convert into actual Drools rule strings. Those, we want to deploy in our local Maven repository (the one being used by Drools/KIE/Maven) as an actual artifact. This allows us later, to create new rules with KIE-WB, which are then deployed into the same repository, but with a higher artifact version. The actual application can then initially, when it doesn't have a connection to KIE-WB, use the rules created from the Excel sheet. In a second step, it can later get a more current rule artifact from the KIE-WB repository. This is why we create an actual artifact out of the Excel sheet. That process takes a while, so we do it in the startup listener. As far as I understand it and as far as I could see it on the filesystem, when I build a KieModule programmatically, it is not persisted anywhere and it is lost on restart of the system. That is why I wanted to explicitly persist it with the Aether facilities, as depicted in my previous post. If I do not do that and if I then check at startup if the artifact version does exist, I get back a "false" and it is created again - which takes quite some time. This is the reason why I want to store my created artifact in the local, persistent repository. Am I getting something wrong? Is the artifact already stored somewhere? I hope my intentions are a bit clearer now ... Thanks in advance! Dominik -----Urspr?ngliche Nachricht----- Von: rules-users-bounces at lists.jboss.org [mailto:rules-users-bounces at lists.jboss.org] Im Auftrag von Mario Fusco Gesendet: Dienstag, 10. Juni 2014 17:06 An: rules-users at lists.jboss.org Betreff: Re: [rules-users] Memory leak when deploying to Maven repository? Hi Dominik, I'm honestly not understanding why you're creating a kieModule and most important why you're deploying it on maven in a ServletContextListener, but I am guessing you're doing this only to demonstrate the problem. Also be aware that for doing so you're using some drools internal API and these API aren't guaranteed to be stable. However every time you build a kieModule or you load it from a maven repo, it is stored in the KieRepository. If you need to remove it from there you can do this explicitly by using the KieRepository.removeKieModule(ReleaseId) method. I hope this helps, Mario -- View this message in context: http://drools.46999.n3.nabble.com/rules-users-Memory-leak-when-deploying-to-Maven-repository-tp4029950p4029955.html Sent from the Drools: User forum mailing list archive at Nabble.com. _______________________________________________ rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ????????????????????????? mit freundlichen Gr??en / kind regards Dominik Sandjaja Fon: +49 (0) 203 60878 183 Fax: +49 (0) 203 60878 222 e-mail: dominik.sandjaja at it-motive.de it-motive AG Zum Walkm?ller 6 47269 Duisburg info at it-motive.de http://www.it-motive.de ?????????????????????????? Vorsitzender des Aufsichtsrats: Dr.-Ing. J?rgen Sturm Vorstand: Horst-Dieter Deelmann (Vors.), Matthias Heming, Christoph Tim Klose HRB 9207, Amtsgericht Duisburg From chiddu at gmail.com Wed Jun 11 04:52:09 2014 From: chiddu at gmail.com (Chidambaran Subramanian) Date: Wed, 11 Jun 2014 14:22:09 +0530 Subject: [rules-users] Adding eval on rule cause it to run in infinite loop In-Reply-To: <1402475714280-4029966.post@n3.nabble.com> References: <1402475714280-4029966.post@n3.nabble.com> Message-ID: Add no-loop true on the line after the "rule" directive. rule "1" no-loop true Regards Chiddu On Wed, Jun 11, 2014 at 2:05 PM, brachi wrote: > for this Drools Fact Type: > > /* > declare DvFacts0 > @propertyReactive > IsNUMERIC: Double > condIsNUMERIC: Double > end*/ > > I have this rule: > > /*rule "1" > > salience -1 > agenda-group "agenda1" > when > $condIsNUMERIC: DvFacts0(eval(condIsNUMERIC == null ) ) > $conclusion: DvFacts0( ) > then > modify($conclusion){setIsNUMERIC(1.0)}; > end*/ > > the rule hit just one time without the eval clause, adding the eval cause > this rule to run in infinite loop. > have an idea? > put attention that I add @propertyReactive on the DVFacts0 to avoid this. > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Adding-eval-on-rule-cause-it-to-run-in-infinite-loop-tp4029966.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/a2be7155/attachment.html From wolfgang.laun at gmail.com Wed Jun 11 05:26:29 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Wed, 11 Jun 2014 11:26:29 +0200 Subject: [rules-users] How can we make the 'over window:time' parameter being configurable? In-Reply-To: References: <1402366721822-4029932.post@n3.nabble.com> Message-ID: It requires a little work (and the timestamp should be an event attribute) to write rules to select facts being in a dynamic window, but it can be done. -W On 11/06/2014, Matteo Mortari wrote: > Hi, > I'm quite intrigued by this question also myself, I would like to know more > about what you mean by "configurable" ? > > For instance you can have the window 'declared' > > declare window SensorReading30s > SensorReading() over window:time(30s) from entry-point DEFAULT > end > > and also use this custom window name in the accumulate rule. > > Do you mean by "configurable" , known at runtime and varying? > > A solution I can think of in that case, a specific rule with the > housekeeping style; but I'm quite worried about performance issues may > arise. > > Just my 2c, hope maybe helps? > > > On Tue, Jun 10, 2014 at 4:18 AM, moonbeam wrote: > >> How can we make the 'over window:time' parameter being configurable? >> >> Something similar to the following rule (that does not compile at all). >> See >> the $windowTime variable. >> >> >> declare TemperatureThreshold >> windowTime : String = "30s" >> max : long = 70 >> end >> >> declare SensorReading >> @role( event ) >> temperature : String = "40" >> end >> >> rule "Sound the alarm in case temperature rises above threshold" >> when >> TemperatureThreshold( $max : max, $windowTime : windowTime ) >> Number( doubleValue > $max ) from accumulate( >> SensorReading( $temp : temperature ) over window:time( $windowTime ), >> average( $temp ) ) >> then >> // sound the alarm >> end >> >> >> >> >> >> -- >> View this message in context: >> http://drools.46999.n3.nabble.com/How-can-we-make-the-over-window-time-parameter-being-configurable-tp4029932.html >> Sent from the Drools: User forum mailing list archive at Nabble.com. >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users > From wolfgang.laun at gmail.com Wed Jun 11 05:31:22 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Wed, 11 Jun 2014 11:31:22 +0200 Subject: [rules-users] Adding eval on rule cause it to run in infinite loop In-Reply-To: <1402475714280-4029966.post@n3.nabble.com> References: <1402475714280-4029966.post@n3.nabble.com> Message-ID: Wrapping a constraint into "eval" (for which there's absolutely no need) hides the visibility of the attribute condIsNUMERIC to the "observer" that would avoid the reactivation. -W On 11/06/2014, brachi wrote: > for this Drools Fact Type: > > /* > declare DvFacts0 > @propertyReactive > IsNUMERIC: Double > condIsNUMERIC: Double > end*/ > > I have this rule: > > /*rule "1" > salience -1 > agenda-group "agenda1" > when > $condIsNUMERIC: DvFacts0(eval(condIsNUMERIC == null ) ) > $conclusion: DvFacts0( ) > then > modify($conclusion){setIsNUMERIC(1.0)}; > end*/ > > the rule hit just one time without the eval clause, adding the eval cause > this rule to run in infinite loop. > have an idea? > put attention that I add @propertyReactive on the DVFacts0 to avoid this. > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Adding-eval-on-rule-cause-it-to-run-in-infinite-loop-tp4029966.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From brachi.w at sapiens.com Wed Jun 11 05:40:45 2014 From: brachi.w at sapiens.com (brachi) Date: Wed, 11 Jun 2014 02:40:45 -0700 (PDT) Subject: [rules-users] Adding eval on rule cause it to run in infinite loop In-Reply-To: References: <1402475714280-4029966.post@n3.nabble.com> Message-ID: <1402479645472-4029971.post@n3.nabble.com> so, will "no-loop" help? is eval also override this attribute? -- View this message in context: http://drools.46999.n3.nabble.com/Adding-eval-on-rule-cause-it-to-run-in-infinite-loop-tp4029966p4029971.html Sent from the Drools: User forum mailing list archive at Nabble.com. From sravan008 at outlook.com Wed Jun 11 05:49:50 2014 From: sravan008 at outlook.com (sravan k) Date: Wed, 11 Jun 2014 15:19:50 +0530 Subject: [rules-users] Drools-PermissionDeniedException In-Reply-To: References: , Message-ID: Guys , please respond to my query !! ---Regards,Sravan. From: sravan008 at outlook.com To: rules-users at lists.jboss.org Subject: Drools-PermissionDeniedException Date: Wed, 11 Jun 2014 00:28:06 +0530 Hi All , Does any one have idea on this below error ? org.drools.task.service.PermissionDeniedException: User '[User:'XYZ']' was unable to execution operation 'Complete' on task id 3394226 due to no 'current status' matchines we are facing this un-known exception and it is impacting our work very badly :( . Please give me some idea to resolve this error . ---Regards,Sravan. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/8cc830e9/attachment.html From zahid.ahmed at emirates.com Wed Jun 11 05:52:43 2014 From: zahid.ahmed at emirates.com (Zahid Ahmed) Date: Wed, 11 Jun 2014 09:52:43 +0000 Subject: [rules-users] Drools6 VFS Clustering what to mention in VFS-REPO Message-ID: Hi, I need to know, what the vfs-repo in below command refers to ? Is it referring to .niogit helix-admin.bat --zkSvr localhost:2199 --addResource kie-cluster vfs-repo 1 LeaderStandby AUTO_REBALANCE regards, Zahid -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/16f87eee/attachment.html From zahid.ahmed at emirates.com Wed Jun 11 06:53:56 2014 From: zahid.ahmed at emirates.com (Zahid Ahmed) Date: Wed, 11 Jun 2014 10:53:56 +0000 Subject: [rules-users] Drools Workbench - VFS Repository Clustering - Workbench Assets Not synched Message-ID: Hi, Getting following error in console of server B when making any change in Workbench server A 14:44:19,780 ERROR [org.apache.helix.messaging.handling.HelixTask] (pool-18-thread-21) Exception while executing a message. java.lang.NullPointerException msgId: 939154ed-eedb-493f-a803-83883764276a type: USER_DEFINE_MSG: java.lang.NullPointerException at org.uberfire.metadata.io.IOServiceIndexedImpl.setupWatchService(IOServiceIndexedImpl.java:168) [uberfire-metadata-commons-io-0.3.1.Final.jar:0.3.1.Final] at org.uberfire.metadata.io.IOServiceIndexedImpl.getFileSystem(IOServiceIndexedImpl.java:126) [uberfire-metadata-commons-io-0.3.1.Final.jar:0.3.1.Final] at org.uberfire.io.impl.cluster.IOServiceClusterImpl$SyncFileSystemMessageHandler.handleMessage(IOServiceClusterImpl.java:919) [uberfire-io-0.3.1.Final.jar:0.3.1.Final] at org.uberfire.io.impl.cluster.helix.ClusterServiceHelix$MessageHandlerResolverWrapper$1$1.handleMessage(ClusterServiceHelix.java:289) [uberfire-io-0.3.1.Final.jar:0.3.1.Final] at org.apache.helix.messaging.handling.HelixTask.call(HelixTask.java:93) [helix-core-0.6.2-incubating.jar:0.6.2-incubating] at org.apache.helix.messaging.handling.HelixTask.call(HelixTask.java:50) [helix-core-0.6.2-incubating.jar:0.6.2-incubating] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [rt.jar:1.7.0_25] at java.util.concurrent.FutureTask.run(FutureTask.java:166) [rt.jar:1.7.0_25] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_25] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_25] at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25] 14:44:20,506 ERROR [org.apache.helix.messaging.handling.HelixTask] (pool-18-thread-21) Message execution failed. msgId: 939154ed-eedb-493f-a803-83883764276a, errorMsg: null 14:44:20,985 INFO [org.apache.helix.messaging.handling.HelixTaskExecutor] (pool-18-thread-21) message finished: 939154ed-eedb-493f-a803-83883764276a, took 1260 14:44:20,995 INFO [org.apache.helix.manager.zk.CallbackHandler] (ZkClient-EventThread-117-localhost:2199) 117 START:INVOKE /brms-cluster/INSTANCES/nodeTwo_22/MESSAGES listener:org.apache.helix.messaging.handling.HelixTaskExecutor Regards, Zahid Ahmed -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/1d77f903/attachment.html From zahid.ahmed at emirates.com Wed Jun 11 07:06:45 2014 From: zahid.ahmed at emirates.com (Zahid Ahmed) Date: Wed, 11 Jun 2014 11:06:45 +0000 Subject: [rules-users] Workbench and GIT Repo High Availability In-Reply-To: References: Message-ID: Hi Alexandre, Thanks for your response. I am facing an issue in clustering, following the Drools guide. That I have posted in the following thread. Kindly have a look at it and let me know if I am doing/missing something. http://drools.46999.n3.nabble.com/rules-users-Drools-Workbench-VFS-Repository-Clustering-Workbench-Assets-Not-synched-td4029960.html Regards,? Zahid Ahmed From dsotty at gmail.com Wed Jun 11 07:25:44 2014 From: dsotty at gmail.com (Davide Sottara) Date: Wed, 11 Jun 2014 12:25:44 +0100 Subject: [rules-users] Adding eval on rule cause it to run in infinite loop In-Reply-To: <1402479645472-4029971.post@n3.nabble.com> References: <1402475714280-4029966.post@n3.nabble.com> <1402479645472-4029971.post@n3.nabble.com> Message-ID: <53983CB8.3000606@gmail.com> The whole point of @propertyReactive is to avoid no-loop where possible. What Wolfgang was trying to say is that there is no need to use the eval: just write DvFacts0( condIsNUMERIC == null ) and the @propertyReactivity will work Davide On 06/11/2014 10:40 AM, brachi wrote: > so, will "no-loop" help? > is eval also override this attribute? > > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Adding-eval-on-rule-cause-it-to-run-in-infinite-loop-tp4029966p4029971.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From rabarijaonadomoina at gmail.com Wed Jun 11 07:29:21 2014 From: rabarijaonadomoina at gmail.com (tia) Date: Wed, 11 Jun 2014 04:29:21 -0700 (PDT) Subject: [rules-users] NullPointerException at org.drools.compiler.kie.builder.impl.KieContainerImpl.updateToVersion In-Reply-To: References: <1402042336625-4029894.post@n3.nabble.com> Message-ID: <1402486161697-4029978.post@n3.nabble.com> I tried with your code, there is no error but my new rule is not taken in account I surely missed something and I'm looking at it. Thanks for your reply. -- View this message in context: http://drools.46999.n3.nabble.com/NullPointerException-at-org-drools-compiler-kie-builder-impl-KieContainerImpl-updateToVersion-tp4029894p4029978.html Sent from the Drools: User forum mailing list archive at Nabble.com. From brachi.w at sapiens.com Wed Jun 11 07:34:11 2014 From: brachi.w at sapiens.com (brachi) Date: Wed, 11 Jun 2014 04:34:11 -0700 (PDT) Subject: [rules-users] Adding eval on rule cause it to run in infinite loop In-Reply-To: <53983CB8.3000606@gmail.com> References: <1402475714280-4029966.post@n3.nabble.com> <1402479645472-4029971.post@n3.nabble.com> <53983CB8.3000606@gmail.com> Message-ID: <1402486451759-4029979.post@n3.nabble.com> I need the eval. I have some rules that doesn't hit correctly, just if I put eval around the condition. but eval makes the rules to run in an infinite loop. -- View this message in context: http://drools.46999.n3.nabble.com/Adding-eval-on-rule-cause-it-to-run-in-infinite-loop-tp4029966p4029979.html Sent from the Drools: User forum mailing list archive at Nabble.com. From dsotty at gmail.com Wed Jun 11 07:39:40 2014 From: dsotty at gmail.com (Davide Sottara) Date: Wed, 11 Jun 2014 12:39:40 +0100 Subject: [rules-users] Adding eval on rule cause it to run in infinite loop In-Reply-To: <1402486451759-4029979.post@n3.nabble.com> References: <1402475714280-4029966.post@n3.nabble.com> <1402479645472-4029971.post@n3.nabble.com> <53983CB8.3000606@gmail.com> <1402486451759-4029979.post@n3.nabble.com> Message-ID: <53983FFC.3090704@gmail.com> Could you please show the conditions for which you need the eval? And which version are you using? As far as I know, eval is rewritten and removed internally in latest versions, so there shouldn't be a difference. On 06/11/2014 12:34 PM, brachi wrote: > I need the eval. > I have some rules that doesn't hit correctly, just if I put eval around the > condition. > but eval makes the rules to run in an infinite loop. > > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Adding-eval-on-rule-cause-it-to-run-in-infinite-loop-tp4029966p4029979.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From chiddu at gmail.com Wed Jun 11 07:45:19 2014 From: chiddu at gmail.com (Chidambaran Subramanian) Date: Wed, 11 Jun 2014 17:15:19 +0530 Subject: [rules-users] Adding eval on rule cause it to run in infinite loop In-Reply-To: <53983FFC.3090704@gmail.com> References: <1402475714280-4029966.post@n3.nabble.com> <1402479645472-4029971.post@n3.nabble.com> <53983CB8.3000606@gmail.com> <1402486451759-4029979.post@n3.nabble.com> <53983FFC.3090704@gmail.com> Message-ID: What is the issue in using the no-loop directive? Regards Chiddu On Wed, Jun 11, 2014 at 5:09 PM, Davide Sottara wrote: > Could you please show the conditions for which you need the eval? > And which version are you using? As far as I know, eval is rewritten and > removed internally in latest versions, so there shouldn't be a difference. > > > On 06/11/2014 12:34 PM, brachi wrote: > > I need the eval. > > I have some rules that doesn't hit correctly, just if I put eval around > the > > condition. > > but eval makes the rules to run in an infinite loop. > > > > > > > > > > -- > > View this message in context: > http://drools.46999.n3.nabble.com/Adding-eval-on-rule-cause-it-to-run-in-infinite-loop-tp4029966p4029979.html > > Sent from the Drools: User forum mailing list archive at Nabble.com. > > _______________________________________________ > > rules-users mailing list > > rules-users at lists.jboss.org > > https://lists.jboss.org/mailman/listinfo/rules-users > > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/d07ec3eb/attachment.html From jplaberge at magenta.ca Wed Jun 11 08:02:45 2014 From: jplaberge at magenta.ca (moonbeam) Date: Wed, 11 Jun 2014 05:02:45 -0700 (PDT) Subject: [rules-users] =?utf-8?q?How_can_we_make_the_=E2=80=98over_window?= =?utf-8?q?=3Atime=E2=80=99_parameter_being_configurable=3F?= In-Reply-To: References: <1402366721822-4029932.post@n3.nabble.com> Message-ID: <1402488165513-4029982.post@n3.nabble.com> By 'configurable', I mean 'user defined' instead of 'programmer defined'. I know, I can write (and it will work): rule "Sound the alarm in case temperature rises above threshold" when TemperatureThreshold( $max : max ) Number( doubleValue > $max ) from accumulate( SensorReading( $temp : temperature ) over window:time( 30s ), average( $temp ) ) then // sound the alarm End In this manner, the threshold ($max) is ?user defined?. Just need to inject a TemperatureThreshold fact with user?s preferred 'max' value. But the 'window:time' is hardcoded forever. I would prefer injecting TemperatureThreshold fact containing a second parameter (windowTime) that could be decide at 'inject time'. That gives a rule similar to the one I had posted originally. But, unfortunately this way, the rule does not compile at all. Passing a variable (like $windowTime) to 'window:time' does not seems to be syntax acceptable. -- View this message in context: http://drools.46999.n3.nabble.com/How-can-we-make-the-over-window-time-parameter-being-configurable-tp4029932p4029982.html Sent from the Drools: User forum mailing list archive at Nabble.com. From wolfgang.laun at gmail.com Wed Jun 11 08:18:51 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Wed, 11 Jun 2014 14:18:51 +0200 Subject: [rules-users] Adding eval on rule cause it to run in infinite loop In-Reply-To: References: <1402475714280-4029966.post@n3.nabble.com> <1402479645472-4029971.post@n3.nabble.com> <53983CB8.3000606@gmail.com> <1402486451759-4029979.post@n3.nabble.com> <53983FFC.3090704@gmail.com> Message-ID: On 11/06/2014, Chidambaran Subramanian wrote: > What is the issue in using the no-loop directive? Expert manual, Subsection "Fine grained property change listeners" -W > > Regards > Chiddu > > > On Wed, Jun 11, 2014 at 5:09 PM, Davide Sottara wrote: > >> Could you please show the conditions for which you need the eval? >> And which version are you using? As far as I know, eval is rewritten and >> removed internally in latest versions, so there shouldn't be a >> difference. >> >> >> On 06/11/2014 12:34 PM, brachi wrote: >> > I need the eval. >> > I have some rules that doesn't hit correctly, just if I put eval around >> the >> > condition. >> > but eval makes the rules to run in an infinite loop. >> > >> > >> > >> > >> > -- >> > View this message in context: >> http://drools.46999.n3.nabble.com/Adding-eval-on-rule-cause-it-to-run-in-infinite-loop-tp4029966p4029979.html >> > Sent from the Drools: User forum mailing list archive at Nabble.com. >> > _______________________________________________ >> > rules-users mailing list >> > rules-users at lists.jboss.org >> > https://lists.jboss.org/mailman/listinfo/rules-users >> > >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > From brachi.w at sapiens.com Wed Jun 11 08:53:58 2014 From: brachi.w at sapiens.com (brachi) Date: Wed, 11 Jun 2014 05:53:58 -0700 (PDT) Subject: [rules-users] Adding eval on rule cause it to run in infinite loop In-Reply-To: References: <1402475714280-4029966.post@n3.nabble.com> <1402479645472-4029971.post@n3.nabble.com> <53983CB8.3000606@gmail.com> <1402486451759-4029979.post@n3.nabble.com> <53983FFC.3090704@gmail.com> Message-ID: <1402491238581-4029984.post@n3.nabble.com> example of rule that doesn't work without eval: /* rule "1" salience -1 agenda-group "agenda1" when $conclusion: supportFT() then if($conclusion.getValue()==null){ modify($conclusion) { setValue(new ArrayList())}; } $conclusion.getValue().add("supportedValue"); modify($conclusion) { setValue($conclusion.getValue()) }; end rule "2" salience -2 agenda-group "agenda2" when supportFT(Operators.containsAny(value,new String[]{"supportedValue","otherValue"})) $conclusion: ConclusionFt() then modify($conclusion){setValue("success")}; end*/ rule "2" doesn't hit, works only with eval in rule "2". in this example I can add eval, because the Fact Types model is different, so the rule doesn't reevaluated. because I had this case, I decided to add eval for all constraints, but unfortunately I had an infinite loop. -- View this message in context: http://drools.46999.n3.nabble.com/Adding-eval-on-rule-cause-it-to-run-in-infinite-loop-tp4029966p4029984.html Sent from the Drools: User forum mailing list archive at Nabble.com. From brachi.w at sapiens.com Wed Jun 11 09:01:17 2014 From: brachi.w at sapiens.com (brachi) Date: Wed, 11 Jun 2014 06:01:17 -0700 (PDT) Subject: [rules-users] Adding eval on rule cause it to run in infinite loop In-Reply-To: References: <1402475714280-4029966.post@n3.nabble.com> <1402479645472-4029971.post@n3.nabble.com> <53983CB8.3000606@gmail.com> <1402486451759-4029979.post@n3.nabble.com> <53983FFC.3090704@gmail.com> Message-ID: <1402491677289-4029985.post@n3.nabble.com> example of rule that doesn't work without eval: /* rule "1" salience -1 agenda-group "agenda1" when $conclusion: supportFT() then if($conclusion.getValue()==null){ modify($conclusion) { setValue(new ArrayList())}; } $conclusion.getValue().add("supportedValue"); modify($conclusion) { setValue($conclusion.getValue()) }; end rule "2" salience -2 agenda-group "agenda2" when supportFT(Operators.containsAny(value,new String[]{"supportedValue","otherValue"})) $conclusion: ConclusionFt() then modify($conclusion){setValue("success")}; end*/ rule "2" doesn't hit, works only with eval in rule "2". in this example I can add eval, because the Fact Types model is different, so the rule doesn't reevaluated. because I had this case, I decided to add eval for all constraints, but unfortunately I had an infinite loop. -- View this message in context: http://drools.46999.n3.nabble.com/Adding-eval-on-rule-cause-it-to-run-in-infinite-loop-tp4029966p4029985.html Sent from the Drools: User forum mailing list archive at Nabble.com. From wolfgang.laun at gmail.com Wed Jun 11 09:08:55 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Wed, 11 Jun 2014 15:08:55 +0200 Subject: [rules-users] Adding eval on rule cause it to run in infinite loop In-Reply-To: <1402491238581-4029984.post@n3.nabble.com> References: <1402475714280-4029966.post@n3.nabble.com> <1402479645472-4029971.post@n3.nabble.com> <53983CB8.3000606@gmail.com> <1402486451759-4029979.post@n3.nabble.com> <53983FFC.3090704@gmail.com> <1402491238581-4029984.post@n3.nabble.com> Message-ID: On 11/06/2014, brachi wrote: > example of rule that doesn't work without eval: > > /* rule "1" > salience -1 > agenda-group "agenda1" > when > $conclusion: supportFT() Where's the eval? > then > if($conclusion.getValue()==null){ > modify($conclusion) { setValue(new ArrayList())}; > } > $conclusion.getValue().add("supportedValue"); > modify($conclusion) { setValue($conclusion.getValue()) }; You might use a simple update() here. > end > > > rule "2" > salience -2 > agenda-group "agenda2" > when > supportFT(Operators.containsAny(value,new > String[]{"supportedValue","otherValue"})) This can be written using the clearer and cleaner syntax supportFT( value in ("supportedValue","otherValue") ) > $conclusion: ConclusionFt() Moreover, this should contain the constraint $conclusion: ConclusionFt( value != "success" ) > then > modify($conclusion){setValue("success")}; Here, ConclusionFt's attribute value is a simple String, but in that other rule it is set to an ArrayList. -W > end*/ > > rule "2" doesn't hit, works only with eval in rule "2". > in this example I can add eval, because the Fact Types model is different, > so the rule doesn't reevaluated. > because I had this case, I decided to add eval for all constraints, but > unfortunately I had an infinite loop. > > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Adding-eval-on-rule-cause-it-to-run-in-infinite-loop-tp4029966p4029984.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From brachi.w at sapiens.com Wed Jun 11 09:44:52 2014 From: brachi.w at sapiens.com (brachi) Date: Wed, 11 Jun 2014 06:44:52 -0700 (PDT) Subject: [rules-users] Adding eval on rule cause it to run in infinite loop In-Reply-To: References: <1402475714280-4029966.post@n3.nabble.com> <1402479645472-4029971.post@n3.nabble.com> <53983CB8.3000606@gmail.com> <1402486451759-4029979.post@n3.nabble.com> <53983FFC.3090704@gmail.com> Message-ID: <1402494292313-4029987.post@n3.nabble.com> This example describes a case using function in the constraint (Operators.containsAny) and pass a Fact Type that was changed in a previous rule. you are right that I can use the drools operator "IN (...)", but I wanted to use function in the example, because that is the case that rules don't hit. I have a lot of functions in my rules, also for custom operators and also for complex formulas, and I need to cause this rules to hit, just eval helped: /*supportFT( eval(Operators.containsAny(value,new String[]{"supportedValue","otherValue"})))*/ adding / *$conclusion: ConclusionFt( value != "success" ) */ to the rule can avoid the infinite loop... but this solution won't work for all my rules. for example: rule that count something: /* modify($conclusion) { setValue($conclusion.getValue()+1)}*/. to summarize, I have 2 problems: 1. rule doesn't hit. 2. eval solve problem 1, but cause infinite loop. -- View this message in context: http://drools.46999.n3.nabble.com/Adding-eval-on-rule-cause-it-to-run-in-infinite-loop-tp4029966p4029987.html Sent from the Drools: User forum mailing list archive at Nabble.com. From benoit.voisin at igc-erp.com Wed Jun 11 10:09:25 2014 From: benoit.voisin at igc-erp.com (bvoisin) Date: Wed, 11 Jun 2014 07:09:25 -0700 (PDT) Subject: [rules-users] Analysing OutOfMemory, too many RightTuple Message-ID: <1402495765400-4029988.post@n3.nabble.com> Hi all, With my set of rules and data, I get OutOfMemory issues. It works fine with smaller sets of Data. Looking with a HeapDump analyzer, I found that there was thousands of RightTuples. In a previous run, before some rules fixes, I also add tons of JoinNodeLeftTuple's. They seem to come from poorly written rules; unfortunately, I find it quite difficult to find and correct the conditions/rules causing these tons of RightTuple. Is there any analysis option/tool that can give information on the Left Hand Side (tuples and sinks), or is there any BestPractices on how to correct the rules to limit this behavior? I use Drools 6.1.0.Beta4, with Phreak enabled, but had similary issues with 6.0.0 or 6.0.1 Regards, Beno?t -- View this message in context: http://drools.46999.n3.nabble.com/Analysing-OutOfMemory-too-many-RightTuple-tp4029988.html Sent from the Drools: User forum mailing list archive at Nabble.com. From wolfgang.laun at gmail.com Wed Jun 11 10:21:36 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Wed, 11 Jun 2014 16:21:36 +0200 Subject: [rules-users] Analysing OutOfMemory, too many RightTuple In-Reply-To: <1402495765400-4029988.post@n3.nabble.com> References: <1402495765400-4029988.post@n3.nabble.com> Message-ID: Most of the time, a look on a (representative) sample of the rules is enough for some watchers of this list to drop a few pointers. There are some Best Practices, but people tend to come up with new counter-examples ;-) -W On 11/06/2014, bvoisin wrote: > Hi all, > > With my set of rules and data, I get OutOfMemory issues. It works fine with > smaller sets of Data. > > Looking with a HeapDump analyzer, I found that there was thousands of > RightTuples. In a previous run, before some rules fixes, I also add tons of > JoinNodeLeftTuple's. > They seem to come from poorly written rules; unfortunately, I find it quite > difficult to find and correct the conditions/rules causing these tons of > RightTuple. > > Is there any analysis option/tool that can give information on the Left Hand > Side (tuples and sinks), or is there any BestPractices on how to correct the > rules to limit this behavior? > > I use Drools 6.1.0.Beta4, with Phreak enabled, but had similary issues with > 6.0.0 or 6.0.1 > > Regards, > Beno?t > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Analysing-OutOfMemory-too-many-RightTuple-tp4029988.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From benoit.voisin at igc-erp.com Wed Jun 11 10:47:43 2014 From: benoit.voisin at igc-erp.com (bvoisin) Date: Wed, 11 Jun 2014 07:47:43 -0700 (PDT) Subject: [rules-users] Analysing OutOfMemory, too many RightTuple In-Reply-To: References: <1402495765400-4029988.post@n3.nabble.com> Message-ID: <1402498063715-4029991.post@n3.nabble.com> Most of the RightTuple's sinks are AccumulatorNodes. Here is one of the 80 rules that I believe cause my problem. The other 80 rules are similar, but will change in the places I formatted in /italic/. Some information on this rule: * The EvemetierData is the business class. They are 10-100k instances in the VM. * It has a accompaning object EvemetierCalculDHF that store some temporary rules data. In particular, the calculationMode to use for a given field=attribute * The AttributEvemetierDHF is a Meta information class with a dozen instances (one per field to calculate in EvemetierData) in WM. * The UNWRAP_NULL it there to enable Null values to passe the accumulator (an Option would have been clearer) rule "valo_2a_applyCalcMode_evemetiers_som_nivinf_1" salience -1110 when $attDHF:AttributEvemetierDHF() $evCalcDHF:EvemetierCalculDHF(calcModes.get($attDHF.calculationModeKey)=="/som_nivinf_1/") $obj:EvemetierData() from $evCalcDHF.evemetier accumulate ( $src: EvemetierData ( /pere==$obj.niveau, affperiode==$obj.affperiode, typeeve_id==$obj.typeeve_id, dteve==$obj.dteve, suffixe==$obj.suffixe,/ true); $acc1 : sumWithNulls(/DIVIDE($src.getAttributeValue($attDHF.safeGetAttName("valo_2a_applyCalcMode_evemetiers_som_nivinf_1")), $src.getAttributeValue($attDHF.safeGetCoefinterniv("valo_2a_applyCalcMode_evemetiers_som_nivinf_1")))/ ) ); $targetValue:Object(EQUALS(UNWRAP_NULL(this),$obj.getAttributeValue($attDHF.attName))==false) from WRAP_NULL($acc1) then $obj.setAttributeValue($attDHF.getAttName(), UNWRAP_NULL($targetValue)); end -- View this message in context: http://drools.46999.n3.nabble.com/Analysing-OutOfMemory-too-many-RightTuple-tp4029988p4029991.html Sent from the Drools: User forum mailing list archive at Nabble.com. From Kenneth.McArthur at nielsen.com Wed Jun 11 11:42:38 2014 From: Kenneth.McArthur at nielsen.com (McArthur, Kenneth) Date: Wed, 11 Jun 2014 15:42:38 +0000 Subject: [rules-users] drools-examples.zip location? Message-ID: Hi, Reading excellent very helpful document at http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html_single A drools-examples zip is mentioned. Anyone know where it might be? Thanks, Ken -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/d717b4ba/attachment.html From benoit.voisin at igc-erp.com Wed Jun 11 11:44:08 2014 From: benoit.voisin at igc-erp.com (bvoisin) Date: Wed, 11 Jun 2014 08:44:08 -0700 (PDT) Subject: [rules-users] Analysing OutOfMemory, too many RightTuple In-Reply-To: <1402498063715-4029991.post@n3.nabble.com> References: <1402495765400-4029988.post@n3.nabble.com> <1402498063715-4029991.post@n3.nabble.com> Message-ID: <1402501448296-4029993.post@n3.nabble.com> To help me understand what is happening in the WM, I've just made a analysis method (see below), scrutating all the RightTuples from the WM facts and showing some stats on the 5 biggest ones : I call it every 100 matchFired and it shows me info like: Biggest RightTuple types : - EvemetierData: RightTuple/NotNode[niveau == $niveau, suffixe == $suffixe] x *209346* - SuffixeMapDHF: RightTuple/JoinNode[id == $ev.suffixe] x 17610 - EvemetierData: RightTuple/AccumulateNode[this == $obj.father] x 14145 - EvemetierData: RightTuple/AccumulateNode[niveau == $obj.niveau, affperiode == $obj.affperiode, typeeve_id == $obj.typeeve_id, dteve == $obj.dteve, $suffixeMap.toPhaseTOT != null && ( $suffixeMap.toPhaseTOT != null && suffixe == $suffixeMap.toPhaseTOT.id )] x 14145 - EvemetierData: RightTuple/NotNode[niveau == $niveau, suffixe == $suffixe, sources contains $source3] x 11316 I clearly found my suspect N?1. Is there any pre-existing and better written methods to do this kind of research in drools ? Regards, Beno?t Method to be called after each/N match fired or ... It uses Guava for the collections : private void analyzeWorkingMemoryTuples() { Multiset keys = HashMultiset.create(); for(FactHandle handle:kieSession.getFactHandles()) { DefaultFactHandle factHandle = (DefaultFactHandle)handle; String factType=factHandle.getObject().getClass().getSimpleName(); RightTuple rightTuple = factHandle.getFirstRightTuple(); while(rightTuple!=null) { String key = factType + ": RightTuple"; BetaNode sink = (BetaNode)rightTuple.getRightTupleSink(); if (sink!=null) { key+= "/" + sink.getClass().getSimpleName(); key+=Arrays.toString(sink.getConstraints()); } keys.add(key); rightTuple = rightTuple.getHandleNext(); } } ArrayList> entries = Lists.newArrayList(keys.entrySet()); Collections.sort(entries, new Comparator>(){ @Override public int compare(Entry o1, Entry o2) { return -Integer.compare(o1.getCount(), o2.getCount()); } }); String analysis = Joiner.on("\n - ").join(Iterables.limit(entries, 5)); if (!analysis.equals(previousAnalysis)) { logger.info("Biggest RightTuple types :\n - " + analysis); previousAnalysis = analysis; } } -- View this message in context: http://drools.46999.n3.nabble.com/Analysing-OutOfMemory-too-many-RightTuple-tp4029988p4029993.html Sent from the Drools: User forum mailing list archive at Nabble.com. From dsotty at gmail.com Wed Jun 11 13:48:53 2014 From: dsotty at gmail.com (Davide Sottara) Date: Wed, 11 Jun 2014 18:48:53 +0100 Subject: [rules-users] Adding eval on rule cause it to run in infinite loop In-Reply-To: <1402491238581-4029984.post@n3.nabble.com> References: <1402475714280-4029966.post@n3.nabble.com> <1402479645472-4029971.post@n3.nabble.com> <53983CB8.3000606@gmail.com> <1402486451759-4029979.post@n3.nabble.com> <53983FFC.3090704@gmail.com> <1402491238581-4029984.post@n3.nabble.com> Message-ID: <53989685.40503@gmail.com> I think I know what is happening here. I assume your supportFT class is @propertyReactive. (btw, you should follow bean conventions and capitalize class names) Looking at Rule 1, you don't set the value directly, but you do it through a modify. Your rule 2, which checks for the value, uses the function "containsAny" rather than the field direclty as in "value IN (..)". At the moment, the engine has no way to realize that the function involves the field "value" - I'm not even sure it is possible in general - Property reactivity will ignore the update since, from its perspective, none of the fields relevant to the rule has been affected, hence rule 2 will not hit. If you use eval in the constraint, property reactivity is disabled, so the rule WILL fire the first time, but now you are vulnerable to infinite loops, as if you did not have propertyreactive. You may have to use the @watch() annotation explicitly to control which modifies will cause reevaluations and which ones won't (see the manual for this) Adding "eval" everywhere is not a good idea. Best, Davide On 06/11/2014 01:53 PM, brachi wrote: > example of rule that doesn't work without eval: > > /* rule "1" > salience -1 > agenda-group "agenda1" > when > $conclusion: supportFT() > then > if($conclusion.getValue()==null){ > modify($conclusion) { setValue(new ArrayList())}; > } > $conclusion.getValue().add("supportedValue"); > modify($conclusion) { setValue($conclusion.getValue()) }; > end > > > rule "2" > salience -2 > agenda-group "agenda2" > when > supportFT(Operators.containsAny(value,new > String[]{"supportedValue","otherValue"})) > $conclusion: ConclusionFt() > then > modify($conclusion){setValue("success")}; > end*/ > > rule "2" doesn't hit, works only with eval in rule "2". > in this example I can add eval, because the Fact Types model is different, > so the rule doesn't reevaluated. > because I had this case, I decided to add eval for all constraints, but > unfortunately I had an infinite loop. > > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Adding-eval-on-rule-cause-it-to-run-in-infinite-loop-tp4029966p4029984.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From gboro54 at gmail.com Wed Jun 11 13:56:04 2014 From: gboro54 at gmail.com (gboro54) Date: Wed, 11 Jun 2014 10:56:04 -0700 (PDT) Subject: [rules-users] Decision Tables and modify Message-ID: <1402509364563-4029995.post@n3.nabble.com> What is the proper way to do modify in a decision table? I know this is a very generic question but was wondering if anyone has experience with this and could offer insight(I have a couple ways I think will work but they feel a bit hackey) -- View this message in context: http://drools.46999.n3.nabble.com/Decision-Tables-and-modify-tp4029995.html Sent from the Drools: User forum mailing list archive at Nabble.com. From michael.anstis at gmail.com Wed Jun 11 14:05:44 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Wed, 11 Jun 2014 19:05:44 +0100 Subject: [rules-users] Decision Tables and modify In-Reply-To: <1402509364563-4029995.post@n3.nabble.com> References: <1402509364563-4029995.post@n3.nabble.com> Message-ID: At the momemt 6.x only supports "update" columns (select an action and ensure the "update" engine checkbox is ticked). You can work around this, to get modify( x ) {...}, by using a BRL Fragment Action column and use a Free Form DRL Fragment entering the modify syntax. I am modifying Guided Rules, Guided Templates and Guided Decision Tables to generate "modify" syntax instead of "update" at the moment. It will be in 6.1.Final for sure. Did you mean this or the XLS variety? (I'd assume "modify" to already be supported as ACTIONs are free format DRL IIRC). Sent on the move On 11 Jun 2014 18:56, "gboro54" wrote: > What is the proper way to do modify in a decision table? I know this is a > very generic question but was wondering if anyone has experience with this > and could offer insight(I have a couple ways I think will work but they > feel > a bit hackey) > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Decision-Tables-and-modify-tp4029995.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/950f1912/attachment-0001.html From michael.anstis at gmail.com Wed Jun 11 14:06:59 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Wed, 11 Jun 2014 19:06:59 +0100 Subject: [rules-users] Can't clone repository NoSuchElementException In-Reply-To: <5428e245e5ed47f39df09d7f613f280e@SN2PR07MB045.namprd07.prod.outlook.com> References: <5428e245e5ed47f39df09d7f613f280e@SN2PR07MB045.namprd07.prod.outlook.com> Message-ID: Have you tried a non-bare repo? (I don't know if this will solve the issue but IIRC we normally use non-bare when testing). Sent on the move On 11 Jun 2014 03:46, "Parham, Clinton" wrote: > Hello, > > > > I have Drools 6.0.1 installed on RedHat Linux 5 and running under JBoss > EAP 6.1.1. > > > > I would like to clone from a local git server running on the same server. > But when I do so, I get a ?Can't clone repository. > java.util.NoSuchElementException? message in the browser. There are no > errors in the server.log > > > > Why doesn?t this work? > > > > Here?s how I?m running the git daemon: > > $ git daemon --verbose --export-all --port=9419 --base-path=/home/brms/git/ > > > > URL I enter into the Clone Repository dialog: > > git://localhost:9419/test.git > > > > This is how I setup my repo: > > > > $ cd /home/brms/git/ > > $ mkdir test.git > > $ cd test.git/ > > $ git init --bare > > Initialized empty Git repository in /home/brms/git/test.git/ > > > > Thanks, > > Clint > > > > > ------------------------------ > > The contents contained herein may contain confidential information. If you > are not the intended recipient, you are hereby notified that any > disclosure, copying, distribution, printing or action taken on the contents > is strictly prohibited. If you have received this email in error, please > notify the sender immediately and delete this message. > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/e8c20268/attachment.html From gboro54 at gmail.com Wed Jun 11 14:07:34 2014 From: gboro54 at gmail.com (gboro54) Date: Wed, 11 Jun 2014 11:07:34 -0700 (PDT) Subject: [rules-users] Decision Tables and modify In-Reply-To: References: <1402509364563-4029995.post@n3.nabble.com> Message-ID: <1402510054007-4029997.post@n3.nabble.com> Thanks and your assumption is correct manstis wrote > At the momemt 6.x only supports "update" columns (select an action and > ensure the "update" engine checkbox is ticked). > > You can work around this, to get modify( x ) {...}, by using a BRL > Fragment > Action column and use a Free Form DRL Fragment entering the modify syntax. > > I am modifying Guided Rules, Guided Templates and Guided Decision Tables > to > generate "modify" syntax instead of "update" at the moment. > > It will be in 6.1.Final for sure. > > Did you mean this or the XLS variety? (I'd assume "modify" to already be > supported as ACTIONs are free format DRL IIRC). > > Sent on the move > On 11 Jun 2014 18:56, "gboro54" < > gboro54@ > > wrote: > >> What is the proper way to do modify in a decision table? I know this is >> a >> very generic question but was wondering if anyone has experience with >> this >> and could offer insight(I have a couple ways I think will work but they >> feel >> a bit hackey) >> >> >> >> -- >> View this message in context: >> http://drools.46999.n3.nabble.com/Decision-Tables-and-modify-tp4029995.html >> Sent from the Drools: User forum mailing list archive at Nabble.com. >> _______________________________________________ >> rules-users mailing list >> > rules-users at .jboss >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > _______________________________________________ > rules-users mailing list > rules-users at .jboss > https://lists.jboss.org/mailman/listinfo/rules-users -- View this message in context: http://drools.46999.n3.nabble.com/Decision-Tables-and-modify-tp4029995p4029997.html Sent from the Drools: User forum mailing list archive at Nabble.com. From cparham at biosignia.com Wed Jun 11 16:27:48 2014 From: cparham at biosignia.com (Parham, Clinton) Date: Wed, 11 Jun 2014 20:27:48 +0000 Subject: [rules-users] Can't clone repository NoSuchElementException In-Reply-To: References: <5428e245e5ed47f39df09d7f613f280e@SN2PR07MB045.namprd07.prod.outlook.com> Message-ID: <1071da91369f45e1a3a1c0c2cc1b01fb@SN2PR07MB045.namprd07.prod.outlook.com> Hi Michael, Ok, some progress. Here?s what I?ve found: If I first try cloning a bare repo (say I call it ?test?), it fails with ?Can't clone repository. java.util.NoSuchElementException?. So I assume nothing happened? but at the file system level I see the ?test? repo in the drools/brms git folder. It doesn?t show in the BusinessCentral/Guvnor repo list. If I then try again to clone, using ?test? (because I don?t know of the conflict) but pull from a populated repo, it still fails with ?Can't clone repository. java.util.NoSuchElementException?. But this is because ?test? actually exists at the file system level. If I change my Repo Name to something that doesn?t exist in the git folder, it clones just fine. Sounds like a bug that should be reported, yes? Thanks. From: rules-users-bounces at lists.jboss.org [mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Michael Anstis Sent: Wednesday, June 11, 2014 2:07 PM To: Rules Users List Subject: Re: [rules-users] Can't clone repository NoSuchElementException Have you tried a non-bare repo? (I don't know if this will solve the issue but IIRC we normally use non-bare when testing). Sent on the move On 11 Jun 2014 03:46, "Parham, Clinton" > wrote: Hello, I have Drools 6.0.1 installed on RedHat Linux 5 and running under JBoss EAP 6.1.1. I would like to clone from a local git server running on the same server. But when I do so, I get a ?Can't clone repository. java.util.NoSuchElementException? message in the browser. There are no errors in the server.log Why doesn?t this work? Here?s how I?m running the git daemon: $ git daemon --verbose --export-all --port=9419 --base-path=/home/brms/git/ URL I enter into the Clone Repository dialog: git://localhost:9419/test.git This is how I setup my repo: $ cd /home/brms/git/ $ mkdir test.git $ cd test.git/ $ git init --bare Initialized empty Git repository in /home/brms/git/test.git/ Thanks, Clint ________________________________ The contents contained herein may contain confidential information. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, printing or action taken on the contents is strictly prohibited. If you have received this email in error, please notify the sender immediately and delete this message. _______________________________________________ rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ________________________________ The contents contained herein may contain confidential information. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, printing or action taken on the contents is strictly prohibited. If you have received this email in error, please notify the sender immediately and delete this message. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/210e1849/attachment-0001.html From michael.anstis at gmail.com Wed Jun 11 16:35:53 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Wed, 11 Jun 2014 21:35:53 +0100 Subject: [rules-users] Can't clone repository NoSuchElementException In-Reply-To: <1071da91369f45e1a3a1c0c2cc1b01fb@SN2PR07MB045.namprd07.prod.outlook.com> References: <5428e245e5ed47f39df09d7f613f280e@SN2PR07MB045.namprd07.prod.outlook.com> <1071da91369f45e1a3a1c0c2cc1b01fb@SN2PR07MB045.namprd07.prod.outlook.com> Message-ID: If I read your email correctly you're saying cloning a non-bare repository works ok provided it has a unique name? However we should better (a) document a repository cannot be bare if it is to be cloned into the workbench and (b) validate names of new or cloned repositories. If I understand correctly then yes please raise a JIRA for Guvnor. Thanks, Mike Sent on the move On 11 Jun 2014 21:28, "Parham, Clinton" wrote: > Hi Michael, > > > > Ok, some progress. > > > > Here?s what I?ve found: > > > > If I first try cloning a bare repo (say I call it ?test?), it fails with > ?Can't clone repository. java.util.NoSuchElementException?. So I assume > nothing happened? but at the file system level I see the ?test? repo in the > drools/brms git folder. It doesn?t show in the BusinessCentral/Guvnor repo > list. > > > > If I then try again to clone, using ?test? (because I don?t know of the > conflict) but pull from a populated repo, it still fails with ?Can't clone > repository. java.util.NoSuchElementException?. But this is because ?test? > actually exists at the file system level. If I change my Repo Name to > something that doesn?t exist in the git folder, it clones just fine. > > > > Sounds like a bug that should be reported, yes? > > > > Thanks. > > > > *From:* rules-users-bounces at lists.jboss.org [mailto: > rules-users-bounces at lists.jboss.org] *On Behalf Of *Michael Anstis > *Sent:* Wednesday, June 11, 2014 2:07 PM > *To:* Rules Users List > *Subject:* Re: [rules-users] Can't clone repository NoSuchElementException > > > > Have you tried a non-bare repo? (I don't know if this will solve the issue > but IIRC we normally use non-bare when testing). > > Sent on the move > > On 11 Jun 2014 03:46, "Parham, Clinton" wrote: > > Hello, > > > > I have Drools 6.0.1 installed on RedHat Linux 5 and running under JBoss > EAP 6.1.1. > > > > I would like to clone from a local git server running on the same server. > But when I do so, I get a ?Can't clone repository. > java.util.NoSuchElementException? message in the browser. There are no > errors in the server.log > > > > Why doesn?t this work? > > > > Here?s how I?m running the git daemon: > > $ git daemon --verbose --export-all --port=9419 --base-path=/home/brms/git/ > > > > URL I enter into the Clone Repository dialog: > > git://localhost:9419/test.git > > > > This is how I setup my repo: > > > > $ cd /home/brms/git/ > > $ mkdir test.git > > $ cd test.git/ > > $ git init --bare > > Initialized empty Git repository in /home/brms/git/test.git/ > > > > Thanks, > > Clint > > > > > ------------------------------ > > The contents contained herein may contain confidential information. If you > are not the intended recipient, you are hereby notified that any > disclosure, copying, distribution, printing or action taken on the contents > is strictly prohibited. If you have received this email in error, please > notify the sender immediately and delete this message. > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > ------------------------------ > > The contents contained herein may contain confidential information. If you > are not the intended recipient, you are hereby notified that any > disclosure, copying, distribution, printing or action taken on the contents > is strictly prohibited. If you have received this email in error, please > notify the sender immediately and delete this message. > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/75f90e25/attachment.html From jplaberge at magenta.ca Wed Jun 11 18:33:37 2014 From: jplaberge at magenta.ca (moonbeam) Date: Wed, 11 Jun 2014 15:33:37 -0700 (PDT) Subject: [rules-users] drools-examples.zip location? In-Reply-To: References: Message-ID: <1402526017233-4030001.post@n3.nabble.com> https://github.com/droolsjbpm/drools Press the Download zip button on right side -- View this message in context: http://drools.46999.n3.nabble.com/rules-users-drools-examples-zip-location-tp4029992p4030001.html Sent from the Drools: User forum mailing list archive at Nabble.com. From ganeshneelekani at gmail.com Thu Jun 12 03:24:23 2014 From: ganeshneelekani at gmail.com (ganeshneelekani) Date: Thu, 12 Jun 2014 00:24:23 -0700 (PDT) Subject: [rules-users] drools 6 code inner code which serarch kmodule.xml Message-ID: <1402557863245-4030002.post@n3.nabble.com> Hi Team, please follow below code. KieServices ks = KieServices.Factory.get(); KieContainer kContainer = ks.getKieClasspathContainer(); KieSession ksession = kContainer.newKieSession("ksession-rules"); whenever I executed it searched for ksession-rules of kmodule.xml which presnt in the path /resouces/META-INF/kmodule.xml. which of the above code finds that, can any one tell me logic behind it, I want to modify this code according to requirement. Thanks, -- View this message in context: http://drools.46999.n3.nabble.com/drools-6-code-inner-code-which-serarch-kmodule-xml-tp4030002.html Sent from the Drools: User forum mailing list archive at Nabble.com. From wolfgang.laun at gmail.com Thu Jun 12 03:50:30 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Thu, 12 Jun 2014 09:50:30 +0200 Subject: [rules-users] Analysing OutOfMemory, too many RightTuple In-Reply-To: <1402501448296-4029993.post@n3.nabble.com> References: <1402495765400-4029988.post@n3.nabble.com> <1402498063715-4029991.post@n3.nabble.com> <1402501448296-4029993.post@n3.nabble.com> Message-ID: Before I say something, I should know: * If an EvemetierCalculDHF "accompanies" an EvemetierData object: is this a 1:1 relationship or are there several EvemetierData objects tied to a single EvemetierCalculDHF? * Is EvemetierCalculDHF.evemetier a Collection? (Probably "yes" if the answer to the first question is "several". * Why is the (custom) evaluator sumWithNulls used here? One would think that DIVIDE can be written so as never to return null. * The extra CE "Object(...) from WRAP_NULL($acc1)" looks contrived. A constraint on $acc1/sumWithNulls can be written within the accumulate. * Personally, I abhor grappling with null (UN/WRAP_NULL). One should think that it is possible to design objects in a way that avoids null being returned by its getters. (Frequently, it is just a matter of a little extra effort to think up a reasonable default value and write the object initialisation accordingly.) I can say one thing right away: $obj: EvemetierData() from $evCalcDHF.evemetier accumulate ( $src: EvemetierData ( pere == $obj.niveau,... ) The first CE picks out *some* EvemetierData object (from a Collection (?) see Q1). The accumulate collects lots of partially equal EvemetierData objects. Now, if there is more than one EvemetierData in that collection, a similar thing will happen, very likely, over and over again, with the same subset of EvemetierData facts. If a "representative" is required for matching a set of similar facts in an accumulate, it is best practice to pick the representative using a restrictive constraint, e.g., if it has a unique integer id attribute, pick the one with the smallest id. -W On 11/06/2014, bvoisin wrote: > To help me understand what is happening in the WM, I've just made a analysis > method (see below), scrutating all the RightTuples from the WM facts and > showing some stats on the 5 biggest ones : > > I call it every 100 matchFired and it shows me info like: > > Biggest RightTuple types : > - EvemetierData: RightTuple/NotNode[niveau == $niveau, suffixe == $suffixe] > x *209346* > - SuffixeMapDHF: RightTuple/JoinNode[id == $ev.suffixe] x 17610 > - EvemetierData: RightTuple/AccumulateNode[this == $obj.father] x 14145 > - EvemetierData: RightTuple/AccumulateNode[niveau == $obj.niveau, > affperiode == $obj.affperiode, typeeve_id == $obj.typeeve_id, dteve == > $obj.dteve, $suffixeMap.toPhaseTOT != null && ( $suffixeMap.toPhaseTOT != > null && suffixe == $suffixeMap.toPhaseTOT.id )] x 14145 > - EvemetierData: RightTuple/NotNode[niveau == $niveau, suffixe == $suffixe, > sources contains $source3] x 11316 > > I clearly found my suspect N?1. Is there any pre-existing and better written > methods to do this kind of research in drools ? > > Regards, > Beno?t > > Method to be called after each/N match fired or ... It uses Guava for the > collections : > > private void analyzeWorkingMemoryTuples() > { > Multiset keys = HashMultiset.create(); > > for(FactHandle handle:kieSession.getFactHandles()) > { > DefaultFactHandle factHandle = (DefaultFactHandle)handle; > String > factType=factHandle.getObject().getClass().getSimpleName(); > > RightTuple rightTuple = factHandle.getFirstRightTuple(); > while(rightTuple!=null) > { > String key = factType + ": RightTuple"; > BetaNode sink = > (BetaNode)rightTuple.getRightTupleSink(); > if (sink!=null) { > key+= "/" + sink.getClass().getSimpleName(); > key+=Arrays.toString(sink.getConstraints()); > } > keys.add(key); > rightTuple = rightTuple.getHandleNext(); > } > } > > ArrayList> entries = > Lists.newArrayList(keys.entrySet()); > Collections.sort(entries, new > Comparator>(){ > @Override > public int compare(Entry o1, Entry o2) > { > return -Integer.compare(o1.getCount(), o2.getCount()); > } > }); > String analysis = Joiner.on("\n - > ").join(Iterables.limit(entries, 5)); > if (!analysis.equals(previousAnalysis)) > { > logger.info("Biggest RightTuple types :\n - " + analysis); > > previousAnalysis = analysis; > } > } > > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Analysing-OutOfMemory-too-many-RightTuple-tp4029988p4029993.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From ganeshneelekani at gmail.com Thu Jun 12 03:56:49 2014 From: ganeshneelekani at gmail.com (ganeshneelekani) Date: Thu, 12 Jun 2014 00:56:49 -0700 (PDT) Subject: [rules-users] Analysing OutOfMemory, too many RightTuple In-Reply-To: <1402495765400-4029988.post@n3.nabble.com> References: <1402495765400-4029988.post@n3.nabble.com> Message-ID: <1402559809901-4030006.post@n3.nabble.com> Hi, This occurs mainly when if you not executing retract() ot dispose() on particular object. If you have employee as an object , and you are doing a transition using employee object its better to use retract (employee ), which will remove or clear an object. regards Ganesh Neelekani -- View this message in context: http://drools.46999.n3.nabble.com/Analysing-OutOfMemory-too-many-RightTuple-tp4029988p4030006.html Sent from the Drools: User forum mailing list archive at Nabble.com. From ganeshneelekani at gmail.com Thu Jun 12 03:59:55 2014 From: ganeshneelekani at gmail.com (ganeshneelekani) Date: Thu, 12 Jun 2014 00:59:55 -0700 (PDT) Subject: [rules-users] Adding eval on rule cause it to run in infinite loop In-Reply-To: <1402475714280-4029966.post@n3.nabble.com> References: <1402475714280-4029966.post@n3.nabble.com> Message-ID: <1402559995464-4030007.post@n3.nabble.com> Hi, Use lock-on-active "true" in when condition, This will resolve this issue Thanks Ganesh Neelekani -- View this message in context: http://drools.46999.n3.nabble.com/Adding-eval-on-rule-cause-it-to-run-in-infinite-loop-tp4029966p4030007.html Sent from the Drools: User forum mailing list archive at Nabble.com. From tuomas.kallio at vicentum.com Thu Jun 12 04:09:44 2014 From: tuomas.kallio at vicentum.com (Tuomas Kallio) Date: Thu, 12 Jun 2014 01:09:44 -0700 (PDT) Subject: [rules-users] Vehicle routing demo to show score flexibility in OptaPlanner Message-ID: <1402560584221-4030010.post@n3.nabble.com> Hi, I found "Vehicle routing demo to show score flexibility in OptaPlanner" from youtube http://www.youtube.com/watch?v=4hp_Qg1hFgE I did not find this example and source codes from Web, can i download source somewhere? Thanks in advance! -- View this message in context: http://drools.46999.n3.nabble.com/Vehicle-routing-demo-to-show-score-flexibility-in-OptaPlanner-tp4030010.html Sent from the Drools: User forum mailing list archive at Nabble.com. From benoit.voisin at igc-erp.com Thu Jun 12 04:34:11 2014 From: benoit.voisin at igc-erp.com (bvoisin) Date: Thu, 12 Jun 2014 01:34:11 -0700 (PDT) Subject: [rules-users] Analysing OutOfMemory, too many RightTuple In-Reply-To: References: <1402495765400-4029988.post@n3.nabble.com> <1402498063715-4029991.post@n3.nabble.com> <1402501448296-4029993.post@n3.nabble.com> Message-ID: Thanks for your time and answers, and sorry for the incomplete information. There is a 1:1 relationship between EvemetierCalculDHF and EvemetierData objects. The reason for the EvemetierCalculDHF is that we want the EvemetierData structure to be independent from the rules, and therefore needed a declared fact (EvemetierCalculDHF) to type safely store some information. Ideally, we would like to add a trait to the EvemetierData instance, but is it possible on externally managed beans ? => The $evCalcDHF.evemetier returns a single object (and Drools correctly sees it a a single value and uses this value for the $obj). We could have written $obj:EvemetierData(this==$evCalcDHF.evemetier) but this created extra Tuples we want to avoid. And each time the EvemetierData is updated so is the EvemetierCalculDHF ; therefore the modification propagation still works despite the from. A binding variable would (correct me if I'm wrong) have done the same thing but in a possibly clearer way. The "null wrapping" is mostly historical and will be changed to an Option in a near future. We functionally want that null + null = null and that 0+null=0. Similarly null/any should return null. But this is not related to this "too many RightTuple" problem, sorry I did not clean up the rule before sending it over. I did not quite understand your last paragraph on a "representative". Do you have an example I could study ? In a more general way, if I have a LHS with the following conditions: $x: A(someConditions) accumulate ($y:A(someField==$x.somefield); ....) It seems that the Drools engine will create one RightTuple per instance of A (and per rule with a similar accumulate), even if no instance of A matches the someConditions. If I have many instances of A in the WM, is there a way to prevent Drools to create the RightTuples for $y until it has found a valid $x, and therefore create RightTuples only for the A matching someField ? I could use a "from" in the accumulate, but then the engine will not see updates on $y instances and won't recalculate the accumulate. Regards, Beno?t -- View this message in context: http://drools.46999.n3.nabble.com/Analysing-OutOfMemory-too-many-RightTuple-tp4029988p4030011.html Sent from the Drools: User forum mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140612/60026076/attachment.html From benoit.voisin at igc-erp.com Thu Jun 12 04:37:33 2014 From: benoit.voisin at igc-erp.com (bvoisin) Date: Thu, 12 Jun 2014 01:37:33 -0700 (PDT) Subject: [rules-users] Analysing OutOfMemory, too many RightTuple In-Reply-To: <1402559809901-4030006.post@n3.nabble.com> References: <1402495765400-4029988.post@n3.nabble.com> <1402559809901-4030006.post@n3.nabble.com> Message-ID: Hi Ganesh, I'm not sure I understand your answer. My problem is on the network of Tuples that the engine creates on objects in memory. Of course, if I could retract the EvemetierData and have only a limited set the WM memory would be smaller and my problem not one any more, but currently this is not an option. Regards, Beno?t 2014-06-12 9:56 GMT+02:00 ganeshneelekani [via Drools] < ml-node+s46999n4030006h53 at n3.nabble.com>: > Hi, > > This occurs mainly when if you not executing retract() ot dispose() on > particular object. > > If you have employee as an object , and you are doing a transition using > employee object its better to use retract (employee ), which will remove or > clear an object. > > regards > Ganesh Neelekani > > > > > > ------------------------------ > If you reply to this email, your message will be added to the discussion > below: > > http://drools.46999.n3.nabble.com/Analysing-OutOfMemory-too-many-RightTuple-tp4029988p4030006.html > To unsubscribe from Analysing OutOfMemory, too many RightTuple, click > here > > . > NAML > > -- View this message in context: http://drools.46999.n3.nabble.com/Analysing-OutOfMemory-too-many-RightTuple-tp4029988p4030012.html Sent from the Drools: User forum mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140612/24f7823b/attachment.html From ge0ffrey.spam at gmail.com Thu Jun 12 05:50:10 2014 From: ge0ffrey.spam at gmail.com (Geoffrey De Smet) Date: Thu, 12 Jun 2014 11:50:10 +0200 Subject: [rules-users] Drools Planner: Vehicle routing problems In-Reply-To: <1402471824583-4029962.post@n3.nabble.com> References: <1330096144248-3772797.post@n3.nabble.com> <1330097169263-3772841.post@n3.nabble.com> <1330336003845-3780139.post@n3.nabble.com> <1330340855910-3780331.post@n3.nabble.com> <1401411911695-4029766.post@n3.nabble.com> <1402471824583-4029962.post@n3.nabble.com> Message-ID: On 11-06-14 09:30, Neb wrote: > Thanks Geoffrey > > I have managed to get it working by manually changing some values in the > latitude and longitude elements in the xml file. > > What I am struggling with is generating an xml file with my own data in each > element. > > do you have any tips on how to create this xml to drive the vehicle routing > solution. Learn XStream :) http://xstream.codehaus.org/ There are number of nice tutorials there. XStream is independent of OptaPlanner, but they work together nicely. Ask any questions related to the XML format on their mailing list (I am subscribed there too). Alternatively, use JAXB (which works nicely with OptaPlanner too). > I have tried in c# but I cant get the nodes and attributes in the > right order. > > Many thanks > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Drools-Planner-Vehicle-routing-problems-tp3772797p4029962.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From ge0ffrey.spam at gmail.com Thu Jun 12 05:51:44 2014 From: ge0ffrey.spam at gmail.com (Geoffrey De Smet) Date: Thu, 12 Jun 2014 11:51:44 +0200 Subject: [rules-users] Vehicle routing demo to show score flexibility in OptaPlanner In-Reply-To: <1402560584221-4030010.post@n3.nabble.com> References: <1402560584221-4030010.post@n3.nabble.com> Message-ID: See http://docs.jboss.org/drools/release/latest/optaplanner-docs/html_single/index.html#buildFromSource and https://github.com/droolsjbpm/optaplanner/tree/master/optaplanner-examples/src/main/java/org/optaplanner/examples/vehiclerouting On 12-06-14 10:09, Tuomas Kallio wrote: > Hi, > > I found "Vehicle routing demo to show score flexibility in OptaPlanner" from > youtube http://www.youtube.com/watch?v=4hp_Qg1hFgE > > I did not find this example and source codes from Web, can i download source > somewhere? Thanks in advance! > > > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Vehicle-routing-demo-to-show-score-flexibility-in-OptaPlanner-tp4030010.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From ganeshneelekani at gmail.com Thu Jun 12 06:33:09 2014 From: ganeshneelekani at gmail.com (ganeshneelekani) Date: Thu, 12 Jun 2014 03:33:09 -0700 (PDT) Subject: [rules-users] Unknown KieSession name: ksession-rules by using webservice Message-ID: <1402569189825-4030015.post@n3.nabble.com> Hi Team, I am feeling some strange issue, I can run my rules if I use void main(), if I run with same class with @webservice then it says "Unknown KieSession name: ksession-rules" Please find screen shot of programming structure, Do I need to modify if I use webservice -- View this message in context: http://drools.46999.n3.nabble.com/Unknown-KieSession-name-ksession-rules-by-using-webservice-tp4030015.html Sent from the Drools: User forum mailing list archive at Nabble.com. From ganeshneelekani at gmail.com Thu Jun 12 06:34:21 2014 From: ganeshneelekani at gmail.com (ganeshneelekani) Date: Thu, 12 Jun 2014 03:34:21 -0700 (PDT) Subject: [rules-users] "Unknown KieSession name: ksession-rules if we use @webservice Message-ID: <1402569261988-4030016.post@n3.nabble.com> Hi Team, I am feeling some strange issue, I can run my rules if I use void main(), if I run with same class with @webservice then it says "Unknown KieSession name: ksession-rules" Please find screen shot of programming structure, Do I need to modify if I use webservice. -- View this message in context: http://drools.46999.n3.nabble.com/Unknown-KieSession-name-ksession-rules-if-we-use-webservice-tp4030016.html Sent from the Drools: User forum mailing list archive at Nabble.com. From mproctor at codehaus.org Thu Jun 12 07:20:35 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Thu, 12 Jun 2014 12:20:35 +0100 Subject: [rules-users] Adding eval on rule cause it to run in infinite loop In-Reply-To: <53989685.40503@gmail.com> References: <1402475714280-4029966.post@n3.nabble.com> <1402479645472-4029971.post@n3.nabble.com> <53983CB8.3000606@gmail.com> <1402486451759-4029979.post@n3.nabble.com> <53983FFC.3090704@gmail.com> <1402491238581-4029984.post@n3.nabble.com> <53989685.40503@gmail.com> Message-ID: <3CDB9BD5-82B6-42F2-89F5-1405EBCFA662@codehaus.org> Davide is correct, for our analysis to work, the constraint must not be inside an eval, and any constraint that does not start with a field name is internally rewritten as an eval. Mark On 11 Jun 2014, at 18:48, Davide Sottara wrote: > I think I know what is happening here. > I assume your supportFT class is @propertyReactive. > (btw, you should follow bean conventions and capitalize class names) > Looking at Rule 1, you don't set the value directly, but you do it through > a modify. Your rule 2, which checks for the value, uses the function > "containsAny" > rather than the field direclty as in "value IN (..)". > At the moment, the engine has no way to realize that the function > involves the field "value" - I'm not even sure it is possible in general - > Property reactivity will ignore the update since, from its perspective, none > of the fields relevant to the rule has been affected, hence rule 2 will > not hit. > If you use eval in the constraint, property reactivity is disabled, so > the rule > WILL fire the first time, but now you are vulnerable to infinite loops, > as if > you did not have propertyreactive. > You may have to use the @watch() annotation explicitly to control which > modifies will cause reevaluations and which ones won't (see the manual > for this) > Adding "eval" everywhere is not a good idea. > Best, > Davide > > > > > > On 06/11/2014 01:53 PM, brachi wrote: >> example of rule that doesn't work without eval: >> >> /* rule "1" >> salience -1 >> agenda-group "agenda1" >> when >> $conclusion: supportFT() >> then >> if($conclusion.getValue()==null){ >> modify($conclusion) { setValue(new ArrayList())}; >> } >> $conclusion.getValue().add("supportedValue"); >> modify($conclusion) { setValue($conclusion.getValue()) }; >> end >> >> >> rule "2" >> salience -2 >> agenda-group "agenda2" >> when >> supportFT(Operators.containsAny(value,new >> String[]{"supportedValue","otherValue"})) >> $conclusion: ConclusionFt() >> then >> modify($conclusion){setValue("success")}; >> end*/ >> >> rule "2" doesn't hit, works only with eval in rule "2". >> in this example I can add eval, because the Fact Types model is different, >> so the rule doesn't reevaluated. >> because I had this case, I decided to add eval for all constraints, but >> unfortunately I had an infinite loop. >> >> >> >> >> -- >> View this message in context: http://drools.46999.n3.nabble.com/Adding-eval-on-rule-cause-it-to-run-in-infinite-loop-tp4029966p4029984.html >> Sent from the Drools: User forum mailing list archive at Nabble.com. >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From rabarijaonadomoina at gmail.com Thu Jun 12 08:46:22 2014 From: rabarijaonadomoina at gmail.com (tia) Date: Thu, 12 Jun 2014 05:46:22 -0700 (PDT) Subject: [rules-users] NullPointerException at org.drools.compiler.kie.builder.impl.KieContainerImpl.updateToVersion In-Reply-To: <1402486161697-4029978.post@n3.nabble.com> References: <1402042336625-4029894.post@n3.nabble.com> <1402486161697-4029978.post@n3.nabble.com> Message-ID: <1402577182304-4030019.post@n3.nabble.com> Ok, I still don't understand why my new rule is not taken in account... So, I came back to my previous code and I realize that I have the expected results anyway. What I'm doing is: 1- FireAllRules (mandatory call to not have the NullPointerException) 2- Add a new rule 3- FireAllRules again As the session used is the same all along the process, all the expected rules to be triggered are triggered once at step 1 and step 3. So, it's ok -- View this message in context: http://drools.46999.n3.nabble.com/NullPointerException-at-org-drools-compiler-kie-builder-impl-KieContainerImpl-updateToVersion-tp4029894p4030019.html Sent from the Drools: User forum mailing list archive at Nabble.com. From wolfgang.laun at gmail.com Thu Jun 12 09:00:32 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Thu, 12 Jun 2014 15:00:32 +0200 Subject: [rules-users] Analysing OutOfMemory, too many RightTuple In-Reply-To: References: <1402495765400-4029988.post@n3.nabble.com> <1402498063715-4029991.post@n3.nabble.com> <1402501448296-4029993.post@n3.nabble.com> Message-ID: On 12/06/2014, bvoisin wrote: > I did not quite understand your last paragraph on a "representative". Do > you have an example I could study ? Given a set of facts that match some constraints, and you want to accumulate them in some way, this approach appears to achieve it: Foo( $bar: bar == "bar-x", ... ) accumulate( Foo( bar == $bar,... ); ...; ... ) But, obviously, there is more than one such Foo where bar == "bar-x", and hence the first CE matches more than once, while the accumulate may not collect a set that's different each time. Details may vary, of course, but there's no guarantee that each accumulate will be unique. In order to have each set of Foo-facts accumulated only once, some constraint must be exercised on the "trigger" Foo, e.g., making it unique among all the candidates: Foo( $id: id, $bar: bar == "bar-x", ... ) not Foo( id < $id, $bar: bar == "bar-x", ... ) accumulate( Foo( bar == $bar,... ); ...; ... ) Now, this particular accumulation occurs only once. -W From mproctor at codehaus.org Thu Jun 12 09:03:01 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Thu, 12 Jun 2014 14:03:01 +0100 Subject: [rules-users] drools 6 code inner code which serarch kmodule.xml In-Reply-To: <1402557863245-4030002.post@n3.nabble.com> References: <1402557863245-4030002.post@n3.nabble.com> Message-ID: <3402B627-DBF0-4E9D-A75F-408492AE6CBC@codehaus.org> ClasspathKieProject.discoverKieModules. https://github.com/droolsjbpm/drools/blob/master/drools-compiler/src/main/java/org/drools/compiler/kie/builder/impl/ClasspathKieProject.java Mark On 12 Jun 2014, at 08:24, ganeshneelekani wrote: > Hi Team, > > please follow below code. > > KieServices ks = KieServices.Factory.get(); > KieContainer kContainer = ks.getKieClasspathContainer(); > > KieSession ksession = kContainer.newKieSession("ksession-rules"); > > whenever I executed it searched for ksession-rules of kmodule.xml which > presnt in the path /resouces/META-INF/kmodule.xml. > > which of the above code finds that, can any one tell me logic behind it, I > want to modify this code according to requirement. > > Thanks, > > > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/drools-6-code-inner-code-which-serarch-kmodule-xml-tp4030002.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From clickthex at yahoo.com Thu Jun 12 10:55:57 2014 From: clickthex at yahoo.com (SrjTx) Date: Thu, 12 Jun 2014 07:55:57 -0700 (PDT) Subject: [rules-users] 6.0.1.F How to find mapping between GIT checkin and JIRA issue? Message-ID: <1402584957841-4030022.post@n3.nabble.com> If I am looking at the checkin from drools-wb dacd7fb8: BZ1047761 - No way to rename a guided rule using the UI How do I find the description of the defect in the JIRA database? I did a search on the JIRA page https://issues.jboss.org/issues/?jql=text%20~%20%22now%20way%20to%20rename%20a%20guided%20rule%22 But I could not find it. Am I looking in the right place? -- View this message in context: http://drools.46999.n3.nabble.com/6-0-1-F-How-to-find-mapping-between-GIT-checkin-and-JIRA-issue-tp4030022.html Sent from the Drools: User forum mailing list archive at Nabble.com. From benoit.voisin at igc-erp.com Thu Jun 12 12:58:57 2014 From: benoit.voisin at igc-erp.com (bvoisin) Date: Thu, 12 Jun 2014 09:58:57 -0700 (PDT) Subject: [rules-users] Analysing OutOfMemory, too many RightTuple In-Reply-To: References: <1402495765400-4029988.post@n3.nabble.com> <1402498063715-4029991.post@n3.nabble.com> <1402501448296-4029993.post@n3.nabble.com> Message-ID: Thanks I understand now. It is quite clear. In my case however, the accumulated Foo's will be different for each source Foo. The two classes could have been different. A more precise sample conditions would be : $a: A(someConditions) accumulate ($b:B(someField==$a.somefield); ....) My problem being that the Drools engine will create one RightTuple per instance of B (and per rule with a similar accumulate), even if no instance of A matches the someConditions. I will try to add alpha conditions (not related to $a or other CI) to $b, to reduce the number of joinable instances, but it would be great to be able to ask drools to wait for the $a to match before looking for the $b's. Was'nt it something that Phreak enabled ? And about the diagnostic function, listing the most numerous Tuples. Does a similar it exist somewhere? If not do you think it could help others ? It sure helps me finding the related conditions. Regards, Beno?t -- View this message in context: http://drools.46999.n3.nabble.com/Analysing-OutOfMemory-too-many-RightTuple-tp4029988p4030024.html Sent from the Drools: User forum mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140612/767e921b/attachment.html From raojinghai at gmail.com Thu Jun 12 14:03:29 2014 From: raojinghai at gmail.com (rjh) Date: Thu, 12 Jun 2014 11:03:29 -0700 (PDT) Subject: [rules-users] Possible problem in PathMemory Message-ID: <1402596209833-4030026.post@n3.nabble.com> Hello, I developed a system where dynamic salience for some particular rules doesn't rules. However, it is very hard for me to create a simple test case unless I publish the entire rule files. In the system, some rules using dynamic salience work and some don't, but I don't know why. I debugged into the drools-core source code, and found out the following code in branch 6.0.x. (https://github.com/droolsjbpm/drools/blob/6.0.x/drools-core/src/main/java/org/drools/core/reteoo/PathMemory.java) Line 98 - org.drools.core.reteoo.PathMemory::doLinkRule int salience = ( rtn.getRule().getSalience() instanceof MVELSalienceExpression) ? 0 : rtn.getRule().getSalience().getValue(null, rtn.getRule(), wm); Line 113 - org.drools.core.reteoo.PathMemory::doUnlinkRule int salience = ( rtn.getRule().getSalience() instanceof MVELSalienceExpression) ? 0 : rtn.getRule().getSalience().getValue(null, rtn.getRule(), wm); I wonder if this is a bug that put the first value and the second value reversed. At least I fixed my problem after reversing them. Thanks. Jinghai -- View this message in context: http://drools.46999.n3.nabble.com/Possible-problem-in-PathMemory-tp4030026.html Sent from the Drools: User forum mailing list archive at Nabble.com. From raojinghai at gmail.com Thu Jun 12 20:54:50 2014 From: raojinghai at gmail.com (raojinghai at gmail.com) Date: Thu, 12 Jun 2014 17:54:50 -0700 Subject: [rules-users] Possible problem in PathMemory In-Reply-To: <1402596209833-4030026.post@n3.nabble.com> References: <1402596209833-4030026.post@n3.nabble.com> Message-ID: Hi, I recall this email. After trying with more examples, I notice if I reverse the order, the non-dynamic salience will not work. Thanks. Jinghai On Thu, Jun 12, 2014 at 11:03 AM, rjh wrote: > Hello, > > I developed a system where dynamic salience for some particular rules > doesn't rules. However, it is very hard for me to create a simple test case > unless I publish the entire rule files. In the system, some rules using > dynamic salience work and some don't, but I don't know why. > > I debugged into the drools-core source code, and found out the following > code in branch 6.0.x. > ( > https://github.com/droolsjbpm/drools/blob/6.0.x/drools-core/src/main/java/org/drools/core/reteoo/PathMemory.java > ) > > Line 98 - org.drools.core.reteoo.PathMemory::doLinkRule > > int salience = ( rtn.getRule().getSalience() instanceof > MVELSalienceExpression) > ? 0 > : rtn.getRule().getSalience().getValue(null, > rtn.getRule(), wm); > > Line 113 - org.drools.core.reteoo.PathMemory::doUnlinkRule > > int salience = ( rtn.getRule().getSalience() instanceof > MVELSalienceExpression) > ? 0 > : rtn.getRule().getSalience().getValue(null, > rtn.getRule(), wm); > > I wonder if this is a bug that put the first value and the second value > reversed. At least I fixed my problem after reversing them. > > Thanks. > > Jinghai > > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Possible-problem-in-PathMemory-tp4030026.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140612/43ee01ed/attachment.html From cparham at biosignia.com Thu Jun 12 21:34:46 2014 From: cparham at biosignia.com (Parham, Clinton) Date: Fri, 13 Jun 2014 01:34:46 +0000 Subject: [rules-users] Can't clone repository NoSuchElementException In-Reply-To: References: <5428e245e5ed47f39df09d7f613f280e@SN2PR07MB045.namprd07.prod.outlook.com> <1071da91369f45e1a3a1c0c2cc1b01fb@SN2PR07MB045.namprd07.prod.outlook.com> Message-ID: That?s correct. I?ll raise a JIRA. thanks From: rules-users-bounces at lists.jboss.org [mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Michael Anstis Sent: Wednesday, June 11, 2014 4:36 PM To: Rules Users List Subject: Re: [rules-users] Can't clone repository NoSuchElementException If I read your email correctly you're saying cloning a non-bare repository works ok provided it has a unique name? However we should better (a) document a repository cannot be bare if it is to be cloned into the workbench and (b) validate names of new or cloned repositories. If I understand correctly then yes please raise a JIRA for Guvnor. Thanks, Mike Sent on the move On 11 Jun 2014 21:28, "Parham, Clinton" > wrote: Hi Michael, Ok, some progress. Here?s what I?ve found: If I first try cloning a bare repo (say I call it ?test?), it fails with ?Can't clone repository. java.util.NoSuchElementException?. So I assume nothing happened? but at the file system level I see the ?test? repo in the drools/brms git folder. It doesn?t show in the BusinessCentral/Guvnor repo list. If I then try again to clone, using ?test? (because I don?t know of the conflict) but pull from a populated repo, it still fails with ?Can't clone repository. java.util.NoSuchElementException?. But this is because ?test? actually exists at the file system level. If I change my Repo Name to something that doesn?t exist in the git folder, it clones just fine. Sounds like a bug that should be reported, yes? Thanks. From: rules-users-bounces at lists.jboss.org [mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Michael Anstis Sent: Wednesday, June 11, 2014 2:07 PM To: Rules Users List Subject: Re: [rules-users] Can't clone repository NoSuchElementException Have you tried a non-bare repo? (I don't know if this will solve the issue but IIRC we normally use non-bare when testing). Sent on the move On 11 Jun 2014 03:46, "Parham, Clinton" > wrote: Hello, I have Drools 6.0.1 installed on RedHat Linux 5 and running under JBoss EAP 6.1.1. I would like to clone from a local git server running on the same server. But when I do so, I get a ?Can't clone repository. java.util.NoSuchElementException? message in the browser. There are no errors in the server.log Why doesn?t this work? Here?s how I?m running the git daemon: $ git daemon --verbose --export-all --port=9419 --base-path=/home/brms/git/ URL I enter into the Clone Repository dialog: git://localhost:9419/test.git This is how I setup my repo: $ cd /home/brms/git/ $ mkdir test.git $ cd test.git/ $ git init --bare Initialized empty Git repository in /home/brms/git/test.git/ Thanks, Clint ________________________________ The contents contained herein may contain confidential information. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, printing or action taken on the contents is strictly prohibited. If you have received this email in error, please notify the sender immediately and delete this message. _______________________________________________ rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ________________________________ The contents contained herein may contain confidential information. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, printing or action taken on the contents is strictly prohibited. If you have received this email in error, please notify the sender immediately and delete this message. _______________________________________________ rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users ________________________________ The contents contained herein may contain confidential information. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution, printing or action taken on the contents is strictly prohibited. If you have received this email in error, please notify the sender immediately and delete this message. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140613/d6e9b506/attachment-0001.html From ganeshneelekani at gmail.com Fri Jun 13 02:51:05 2014 From: ganeshneelekani at gmail.com (ganeshneelekani) Date: Thu, 12 Jun 2014 23:51:05 -0700 (PDT) Subject: [rules-users] drools 6 code inner code which serarch kmodule.xml In-Reply-To: <3402B627-DBF0-4E9D-A75F-408492AE6CBC@codehaus.org> References: <1402557863245-4030002.post@n3.nabble.com> <3402B627-DBF0-4E9D-A75F-408492AE6CBC@codehaus.org> Message-ID: <1402642265266-4030030.post@n3.nabble.com> Hi Mark, That is very cool!!!! I am able to change the path of kmodule.xml now.!!! Thanks for that, I have one more doubt how newKieSession finds the "ksession-rules" from kmodule.xml. any internal code for that. Let me know KieSession ksession = kContainer.newKieSession("ksession-rules"); Thanks, Ganesh N Neelekani -- View this message in context: http://drools.46999.n3.nabble.com/drools-6-code-inner-code-which-serarch-kmodule-xml-tp4030002p4030030.html Sent from the Drools: User forum mailing list archive at Nabble.com. From sara.didaci at eximia.it Fri Jun 13 06:25:16 2014 From: sara.didaci at eximia.it (Sara Didaci) Date: Fri, 13 Jun 2014 12:25:16 +0200 Subject: [rules-users] Exception when using retract Message-ID: <539AD18C.6080107@eximia.it> Hi i have a problem that seems to me quite similar to this http://drools.46999.n3.nabble.com/rules-users-Exception-when-using-retract-td4023520.html (i cannot reply to this post, don't Know why) In my case exception is java.lang.NullPointerException at ConditionEvaluator9935e5dba4084774a05641a0448cd694.evaluate(Unknown Source) at org.drools.rule.constraint.MvelConstraint.evaluate(MvelConstraint.java:200) at org.drools.rule.constraint.MvelConstraint.isAllowedCachedLeft(MvelConstraint.java:169) at org.drools.common.DoubleBetaConstraints.isAllowedCachedLeft(DoubleBetaConstraints.java:88) at org.drools.reteoo.NotNode.assertLeftTuple(NotNode.java:78) at org.drools.reteoo.CompositeLeftTupleSinkAdapter.doPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:232) at org.drools.reteoo.CompositeLeftTupleSinkAdapter.propagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:89) at org.drools.reteoo.JoinNode.propagateFromLeft(JoinNode.java:107) at org.drools.reteoo.JoinNode.assertLeftTuple(JoinNode.java:95) at org.drools.reteoo.CompositeLeftTupleSinkAdapter.doPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:232) at org.drools.reteoo.CompositeLeftTupleSinkAdapter.createAndPropagateAssertLeftTuple(CompositeLeftTupleSinkAdapter.java:116) at org.drools.reteoo.LeftInputAdapterNode.assertObject(LeftInputAdapterNode.java:154) at org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:497) at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:382) at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:235) at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:240) at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:350) at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:311) at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:903) at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:847) at org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:269) at it.eximia.meerkat.re.core.RuleEngine.executeSession(RuleEngine.java:212) at it.eximia.meerkat.re.core.RuleEngine.run(RuleEngine.java:180) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:662) |#] [#|2014-06-07T04:05:11.418+0200|WARNING|sun-appserver2.1|RuleEngine|_ThreadID=25;_ThreadName=pool-5-thread-1;_RequestID=b189af67-c681-411d-ad8c-44f1ec1646bf;|errore nel Rule Engine Exception executing consequence for rule "temperatura normale" in it.sure.template: java.lang.NullPointerException at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39) at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1297) at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1221) at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1456) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710) at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674) at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230) at it.eximia.meerkat.re.core.RuleEngine.executeSession(RuleEngine.java:215) at it.eximia.meerkat.re.core.RuleEngine.run(RuleEngine.java:180) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) at java.lang.Thread.run(Thread.java:662) Caused by: java.lang.NullPointerException at org.drools.core.util.index.LeftTupleIndexHashTable.remove(LeftTupleIndexHashTable.java:370) at org.drools.reteoo.NotNode.retractLeftTuple(NotNode.java:214) at org.drools.reteoo.CompositeLeftTupleSinkAdapter.doPropagateRetractLeftTuple(CompositeLeftTupleSinkAdapter.java:250) at org.drools.reteoo.CompositeLeftTupleSinkAdapter.propagateRetractRightTuple(CompositeLeftTupleSinkAdapter.java:165) at org.drools.reteoo.JoinNode.retractRightTuple(JoinNode.java:184) at org.drools.reteoo.ObjectTypeNode.retractObject(ObjectTypeNode.java:283) at org.drools.reteoo.EntryPointNode.retractObject(EntryPointNode.java:354) at org.drools.common.NamedEntryPoint.retract(NamedEntryPoint.java:568) at org.drools.base.DefaultKnowledgeHelper.retract(DefaultKnowledgeHelper.java:357) at it.sure.template.Rule_temperatura_normale_53fab538df67455491288390ebd5c29c.defaultConsequence(Rule_temperatura_normale_53fab538df67455491288390ebd5c29c.java:49) at it.sure.template.Rule_temperatura_normale_53fab538df67455491288390ebd5c29cDefaultConsequenceInvokerGenerated.evaluate(Unknown Source) at it.sure.template.Rule_temperatura_normale_53fab538df67455491288390ebd5c29cDefaultConsequenceInvoker.evaluate(Unknown Source) at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1287) ... 16 more |#] i'm using drools 5.5.0 Final here is the rule, (i removed some statements don't seems relevant) rule "temperatura normale" salience -2 when $nowTimestamp : ExecutionTimestamp() $event: ScalarEvent(name == "TEMPERATURE_EVENT", $creation: creationDateTime, $uuid : sensorUUID ) from entry-point "event" not(ScalarEvent(name == "TEMPERATURE_EVENT", creationDateTime.time < $creation.getTime(), sensorUUID == $uuid) from entry-point "event") $sensor: EnvironmentalSensor(sensorUUID == $event.sensorUUID, $sensor.type.keyId == "TEMP_ENV_TYPE", $sensor.assessable == true) $temperature1: Number( floatValue >= Float.valueOf($sensor.getPropertyValue("min")) ) from $event.measure $temperature2: Number( floatValue <= Float.valueOf($sensor.getPropertyValue("max")) ) from $event.measure $sensorInAlarm: SensorInAlarm (sensorUUID == $uuid) then ConcurrentHashMap statusInfo = sensorCache.get($sensor.getId().toString()); SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); long sensorId = $sensor.getId(); Date alarmTimestamp = $event.getCreationDateTime(); String measure = $event.getMeasure() + ""; String alarmType = "TEMPERATURE_OK"; statusInfo.put("eventMeasure", measure); statusInfo.put("eventTimestamp", formatter.format(alarmTimestamp)); $sensorInAlarm.setEventTimestamp(alarmTimestamp); $sensorInAlarm.setEventMeasure(measure); update($sensorInAlarm); sensorCache.update($sensor.getId().toString(), statusInfo); RuleEngineLogger.log(RuleEngineLoggerLevel.INFO, "normale"); retract($event); end The exception does not immediately occur sometimes it takes days before occurs Rule is fire when event TEMPERATURE_EVENT occurs. TEMPERATURE_EVENT is a measure from a thermometer, i have a dispather that simultaneously sends 10 measures (coming from 10 different sensors), then dispatcher stops sending data for few minutes then it sends again new 10 measures, an so on. Same situation for me: When the exception is thrown, it looks like that the event is not removed from the knowledge base (I watch the number of events in the knowledge base -- fact count) I more than 10 rules, fired every 1s Any help would be appreciated Sara -- Eximia Srl Sara Didaci Application Engineer Eximia S.r.l. Via Sassari, 3 09123 Cagliari - Italy Tel +39 070 7966776 Fax +39 070 680904 Mob +39 328 4660322 Email sara.didaci at eximia.it Web www.eximia.it Eximia ? un'azienda certificata ISO 9001 Image Il contenuto di questa e-mail e dei file allegati ? RISERVATO e da considerarsi utilizzabile solamente dalla persona o ente al quale ? indirizzato. Se avete ricevuto questa e-mail per errore, siete pregati di rimandarla al mittente e di eliminarla. (Legge italiana 196/2003). The content of this e-mail and any files is CONFIDENTIAL and intended solely for the use of the individual or entity to whom it is addressed. If you have received this e-mail in error, please return it to the sender and delete it. (Italian Law 196/2003). -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140613/e44005c0/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: logoeximia132x187.png Type: image/png Size: 24990 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140613/e44005c0/attachment-0002.png -------------- next part -------------- A non-text attachment was scrubbed... Name: logo-ancis-orizzontale-148x82.png Type: image/png Size: 8759 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140613/e44005c0/attachment-0003.png From mario.fusco at gmail.com Fri Jun 13 08:09:56 2014 From: mario.fusco at gmail.com (Mario Fusco) Date: Fri, 13 Jun 2014 05:09:56 -0700 (PDT) Subject: [rules-users] Possible problem in PathMemory In-Reply-To: References: <1402596209833-4030026.post@n3.nabble.com> Message-ID: <1402661396513-4030032.post@n3.nabble.com> Hi, I don't think your problem is caused by that. More likely this is caused by the issue reported here https://issues.jboss.org/browse/DROOLS-335 that I fixed with this commit https://github.com/droolsjbpm/drools/commit/f8f721056e36f8e0370c2783875ff0c26ef0629e Can you check if your code base already has that fix? If so please open a new ticket on jira attaching there a reproducer or at least some more detailed instructions on how to reproduce your problem. Otherwise try to get one of the latest builds already including that fix and check if this is enough to solve your problem. Thanks, Mario -- View this message in context: http://drools.46999.n3.nabble.com/Possible-problem-in-PathMemory-tp4030026p4030032.html Sent from the Drools: User forum mailing list archive at Nabble.com. From ganeshneelekani at gmail.com Fri Jun 13 09:01:04 2014 From: ganeshneelekani at gmail.com (ganeshneelekani) Date: Fri, 13 Jun 2014 06:01:04 -0700 (PDT) Subject: [rules-users] interacting drools 6 and clojure Message-ID: <1402664464667-4030033.post@n3.nabble.com> Hi Team, Can we interact drools 6 with clojure. Please suggest me Thanks Ganesh N -- View this message in context: http://drools.46999.n3.nabble.com/interacting-drools-6-and-clojure-tp4030033.html Sent from the Drools: User forum mailing list archive at Nabble.com. From raojinghai at gmail.com Fri Jun 13 14:07:48 2014 From: raojinghai at gmail.com (raojinghai at gmail.com) Date: Fri, 13 Jun 2014 11:07:48 -0700 Subject: [rules-users] Possible problem in PathMemory In-Reply-To: <1402661396513-4030032.post@n3.nabble.com> References: <1402596209833-4030026.post@n3.nabble.com> <1402661396513-4030032.post@n3.nabble.com> Message-ID: Hi Mario, Thanks for your prompt reply. My code base already has the fix and it doesn't fix my problem. I will try to narrow down the problem before submitting a ticket. Thanks. Jinghai On Fri, Jun 13, 2014 at 5:09 AM, Mario Fusco wrote: > Hi, > > I don't think your problem is caused by that. More likely this is caused by > the issue reported here https://issues.jboss.org/browse/DROOLS-335 that I > fixed with this commit > > https://github.com/droolsjbpm/drools/commit/f8f721056e36f8e0370c2783875ff0c26ef0629e > > Can you check if your code base already has that fix? If so please open a > new ticket on jira attaching there a reproducer or at least some more > detailed instructions on how to reproduce your problem. Otherwise try to > get > one of the latest builds already including that fix and check if this is > enough to solve your problem. > > Thanks, > Mario > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Possible-problem-in-PathMemory-tp4030026p4030032.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140613/d6dc5b71/attachment.html From raojinghai at gmail.com Fri Jun 13 19:00:54 2014 From: raojinghai at gmail.com (raojinghai at gmail.com) Date: Fri, 13 Jun 2014 16:00:54 -0700 Subject: [rules-users] Possible problem in PathMemory In-Reply-To: References: <1402596209833-4030026.post@n3.nabble.com> <1402661396513-4030032.post@n3.nabble.com> Message-ID: Hi Mario, I figured out this is a problem with Event and dynamic salience. Suppose we have the following declarations and rules: declare Message @role(event) end rule "rule1" salience RuleSalience.RULE1 when $m : Message() then System.out.println("====================> rule1"); retract($m); RuleSalience.RULE1 = RuleSalience.RULE2 - 1; end rule "rule2" salience RuleSalience.RULE2 when $m : Message() then System.out.println("=====================> rule2"); retract($m); RuleSalience.RULE2 = RuleSalience.RULE1 - 1; end I want when a Message is inserted, either rule1 or rule2 is fired. I also want two rules can fire alternatively. So when one rule is fired, its salience becomes lower. The result is, if I don't declare Message as an Event, it works fine. Otherwise, only rule1 is fired. The problem seems to be at org.drools.core.reteoo.LeftInputAdapterNode::doInsertSegmentMemory(). Because of stream mode, both rules are not inserted StagedLeftTuples. So rule1 and rule2 are not compared based on salience. Because rule1 has a smaller act#, it is always fired first. The attached zip is a test case. If you want mvn clean test, it will fail. However, if you remove the following lines from Sample.drl, the test will succeed. "declare Message @role(event) end" Thanks. Jinghai -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140613/9c848e7b/attachment.html -------------- next part -------------- A non-text attachment was scrubbed... Name: DynamicSalienceAndStreamMode.zip Type: application/zip Size: 7257 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140613/9c848e7b/attachment.zip From michael.anstis at gmail.com Fri Jun 13 19:22:56 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Sat, 14 Jun 2014 00:22:56 +0100 Subject: [rules-users] Possible problem in PathMemory In-Reply-To: References: <1402596209833-4030026.post@n3.nabble.com> <1402661396513-4030032.post@n3.nabble.com> Message-ID: I could be wrong but I thought dynamic salience used facts in working memory and hence your RHS would need to signal changes to the salience variables. Sent on the move On 14 Jun 2014 00:01, wrote: > Hi Mario, > > I figured out this is a problem with Event and dynamic salience. Suppose > we have the following declarations and rules: > > declare Message > @role(event) > end > > rule "rule1" > salience RuleSalience.RULE1 > when > $m : Message() > then > System.out.println("====================> rule1"); > retract($m); > RuleSalience.RULE1 = RuleSalience.RULE2 - 1; > end > > rule "rule2" > salience RuleSalience.RULE2 > when > $m : Message() > then > System.out.println("=====================> rule2"); > retract($m); > RuleSalience.RULE2 = RuleSalience.RULE1 - 1; > end > > I want when a Message is inserted, either rule1 or rule2 is fired. I also > want two rules can fire alternatively. So when one rule is fired, its > salience becomes lower. > > The result is, if I don't declare Message as an Event, it works fine. > Otherwise, only rule1 is fired. > > The problem seems to be at > org.drools.core.reteoo.LeftInputAdapterNode::doInsertSegmentMemory(). > Because of stream mode, both rules are not inserted StagedLeftTuples. So > rule1 and rule2 are not compared based on salience. Because rule1 has a > smaller act#, it is always fired first. > > The attached zip is a test case. If you want mvn clean test, it will fail. > However, if you remove the following lines from Sample.drl, the test will > succeed. > > "declare Message > @role(event) > end" > > Thanks. > > Jinghai > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140614/05393cd2/attachment-0001.html From raojinghai at gmail.com Fri Jun 13 22:00:15 2014 From: raojinghai at gmail.com (raojinghai at gmail.com) Date: Fri, 13 Jun 2014 19:00:15 -0700 Subject: [rules-users] Possible problem in PathMemory In-Reply-To: References: <1402596209833-4030026.post@n3.nabble.com> <1402661396513-4030032.post@n3.nabble.com> Message-ID: Hi Michael, Here I use global static variables to store the dynamic salience values. I tried with facts and the results are all the same. Thanks. Jinghai On Fri, Jun 13, 2014 at 4:22 PM, Michael Anstis wrote: > I could be wrong but I thought dynamic salience used facts in working > memory and hence your RHS would need to signal changes to the salience > variables. > > Sent on the move > On 14 Jun 2014 00:01, wrote: > >> Hi Mario, >> >> I figured out this is a problem with Event and dynamic salience. Suppose >> we have the following declarations and rules: >> >> declare Message >> @role(event) >> end >> >> rule "rule1" >> salience RuleSalience.RULE1 >> when >> $m : Message() >> then >> System.out.println("====================> rule1"); >> retract($m); >> RuleSalience.RULE1 = RuleSalience.RULE2 - 1; >> end >> >> rule "rule2" >> salience RuleSalience.RULE2 >> when >> $m : Message() >> then >> System.out.println("=====================> rule2"); >> retract($m); >> RuleSalience.RULE2 = RuleSalience.RULE1 - 1; >> end >> >> I want when a Message is inserted, either rule1 or rule2 is fired. I also >> want two rules can fire alternatively. So when one rule is fired, its >> salience becomes lower. >> >> The result is, if I don't declare Message as an Event, it works fine. >> Otherwise, only rule1 is fired. >> >> The problem seems to be at >> org.drools.core.reteoo.LeftInputAdapterNode::doInsertSegmentMemory(). >> Because of stream mode, both rules are not inserted StagedLeftTuples. So >> rule1 and rule2 are not compared based on salience. Because rule1 has a >> smaller act#, it is always fired first. >> >> The attached zip is a test case. If you want mvn clean test, it will >> fail. However, if you remove the following lines from Sample.drl, the test >> will succeed. >> >> "declare Message >> @role(event) >> end" >> >> Thanks. >> >> Jinghai >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140613/19b867ba/attachment.html From zahid.ahmed at emirates.com Sun Jun 15 07:43:43 2014 From: zahid.ahmed at emirates.com (Zahid Ahmed) Date: Sun, 15 Jun 2014 11:43:43 +0000 Subject: [rules-users] Drools6 - High Availability Environment not Working Message-ID: Hi, I am deploying Drools6 in our organization and the requirement is, Drools6 Workbench and rules engine should be in High Available environment. I am following the Drools developer guide for deployment but the assets among two workbench servers are not synching. Can anyone guide me what could be wrong. I am simply following the steps provided in the guide. Also installed Zookeeper, Helix as per the guide. Regards, Zahid Ahmed -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140615/b0aacffe/attachment.html From poissy.b at gmail.com Sun Jun 15 13:16:36 2014 From: poissy.b at gmail.com (Poissy.B) Date: Sun, 15 Jun 2014 13:16:36 -0400 Subject: [rules-users] Erratic behaviour of Drools Message-ID: Hello, I am a little bit confused as I don't get what I am doing wrong. Here is my rule: ************************** rule "Exchange Pattern" when $p2: ProcessAdapter() $mainProcess: ProcessAdapter( isMainProcess(), this!=$p2) MessageFlowAdapter ( fromProcess == $mainProcess, toProcess==$p2) MessageFlowAdapter ( fromProcess == $p2, toProcess==$mainProcess) exists ItemAwareElementAdapter( ) from $mainProcess.getReceivedResources($p2) exists ItemAwareElementAdapter( ) from $mainProcess.getGivenResources($p2) then System.out.println("** FOUND EXCHANGE PATTERN betwwen "+$mainProcess.getParticipant().getName()+" AND "+$p2.getParticipant().getName()); System.out.println("Given: "+$mainProcess.getGivenResources($p2)+$mainProcess.getGivenResources($p2).size()); System.out.println("Received: "+$mainProcess.getReceivedResources($p2)+$mainProcess.getReceivedResources($p2).size()); System.out.println("Intersection: "+$mainProcess.intersectGivenAndReceivedResourcesWithProcess($p2)+$mainProcess.intersectGivenAndReceivedResourcesWithProcess($p2).size()); end ************************** This rule is never fired, although I know it should. When I comment out the ONE OF the two "exists" constraints, I get this output: ************************** ** FOUND EXCHANGE PATTERN betwwen Amazon AND Ship.Comp. Given: [Products (ID:DataObjectReference_2)]1 Received: [Products (ID:DataObjectRefeference_GEN7)]1 Intersection: [Products (ID:DataObject_2)]1 ************************** >From the output you can see that the rule should have been fired with the two "exists" constrains as both conditions are met, but it doesn't. I am kind of new to Drools so I may be doing an horrible mistake but google haven't been my friend so far. Any help will be very appreciated! Thanks. Anis -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140615/0a05e983/attachment.html From wolfgang.laun at gmail.com Sun Jun 15 14:06:27 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Sun, 15 Jun 2014 20:06:27 +0200 Subject: [rules-users] Erratic behaviour of Drools In-Reply-To: References: Message-ID: See inline. On 15/06/2014, Poissy.B wrote: > Hello, > > I am a little bit confused as I don't get what I am doing wrong. Here is my > rule: > > ************************** > rule "Exchange Pattern" > when > $p2: ProcessAdapter() > $mainProcess: ProcessAdapter( isMainProcess(), this!=$p2) > MessageFlowAdapter ( fromProcess == $mainProcess, toProcess==$p2) > MessageFlowAdapter ( fromProcess == $p2, toProcess==$mainProcess) > exists ItemAwareElementAdapter( ) from > $mainProcess.getReceivedResources($p2) > exists ItemAwareElementAdapter( ) from > $mainProcess.getGivenResources($p2) > then > System.out.println("** FOUND EXCHANGE PATTERN betwwen > "+$mainProcess.getParticipant().getName()+" AND > "+$p2.getParticipant().getName()); > System.out.println("Given: > "+$mainProcess.getGivenResources($p2)+$mainProcess.getGivenResources($p2).size()); > System.out.println("Received: > "+$mainProcess.getReceivedResources($p2)+$mainProcess.getReceivedResources($p2).size()); > System.out.println("Intersection: > "+$mainProcess.intersectGivenAndReceivedResourcesWithProcess($p2)+$mainProcess.intersectGivenAndReceivedResourcesWithProcess($p2).size()); > end > ************************** > > This rule is never fired, although I know it should. > > When I comment out the ONE OF the two "exists" constraints, I get this > output: Does the rule fire when you comment out either "exists" conditional element, i.e., it doesn't matter which one is removed? Which Drools version are you using? -W > > ************************** > ** FOUND EXCHANGE PATTERN betwwen Amazon AND Ship.Comp. > Given: [Products (ID:DataObjectReference_2)]1 > Received: [Products (ID:DataObjectRefeference_GEN7)]1 > Intersection: [Products (ID:DataObject_2)]1 > ************************** I can't say that a display of fact type "Products" is clearly indicating the presence of an ItemAwareElementAdapter. That said, the rule shouldn't fire even with a single "exists", so I assume this is an interface implemented by Products. > > >From the output you can see that the rule should have been fired with the > two "exists" constrains as both conditions are met, but it doesn't. > I am kind of new to Drools so I may be doing an horrible mistake but google > haven't been my friend so far. Any help will be very appreciated! > > Thanks. > Anis > From poissy.b at gmail.com Sun Jun 15 14:26:42 2014 From: poissy.b at gmail.com (Poissy.B) Date: Sun, 15 Jun 2014 14:26:42 -0400 Subject: [rules-users] Erratic behaviour of Drools In-Reply-To: References: Message-ID: Yes it does fire if I comment either of them, and I get the exact same response. I am using Drools 5.4.0.Final runtime. Actually Products is the name property of an object of type DataObjectReference (wich implements ItemAwareElementAdapter). The point of providing the output was just to show you that the List returned by both getGivenResources() and getReceivedResources() is indeed not empty so the "exists" constraint should have been matched. Thanks! On Sun, Jun 15, 2014 at 2:06 PM, Wolfgang Laun wrote: > See inline. > > On 15/06/2014, Poissy.B wrote: > > Hello, > > > > I am a little bit confused as I don't get what I am doing wrong. Here is > my > > rule: > > > > ************************** > > rule "Exchange Pattern" > > when > > $p2: ProcessAdapter() > > $mainProcess: ProcessAdapter( isMainProcess(), this!=$p2) > > MessageFlowAdapter ( fromProcess == $mainProcess, toProcess==$p2) > > MessageFlowAdapter ( fromProcess == $p2, toProcess==$mainProcess) > > exists ItemAwareElementAdapter( ) from > > $mainProcess.getReceivedResources($p2) > > exists ItemAwareElementAdapter( ) from > > $mainProcess.getGivenResources($p2) > > then > > System.out.println("** FOUND EXCHANGE PATTERN betwwen > > "+$mainProcess.getParticipant().getName()+" AND > > "+$p2.getParticipant().getName()); > > System.out.println("Given: > > > "+$mainProcess.getGivenResources($p2)+$mainProcess.getGivenResources($p2).size()); > > System.out.println("Received: > > > "+$mainProcess.getReceivedResources($p2)+$mainProcess.getReceivedResources($p2).size()); > > System.out.println("Intersection: > > > "+$mainProcess.intersectGivenAndReceivedResourcesWithProcess($p2)+$mainProcess.intersectGivenAndReceivedResourcesWithProcess($p2).size()); > > end > > ************************** > > > > This rule is never fired, although I know it should. > > > > When I comment out the ONE OF the two "exists" constraints, I get this > > output: > > Does the rule fire when you comment out either "exists" conditional > element, > i.e., it doesn't matter which one is removed? > > Which Drools version are you using? > > -W > > > > > ************************** > > ** FOUND EXCHANGE PATTERN betwwen Amazon AND Ship.Comp. > > Given: [Products (ID:DataObjectReference_2)]1 > > Received: [Products (ID:DataObjectRefeference_GEN7)]1 > > Intersection: [Products (ID:DataObject_2)]1 > > ************************** > > I can't say that a display of fact type "Products" is clearly indicating > the > presence of an ItemAwareElementAdapter. That said, the rule shouldn't > fire even with a single "exists", so I assume this is an interface > implemented > by Products. > > > > > >From the output you can see that the rule should have been fired with > the > > two "exists" constrains as both conditions are met, but it doesn't. > > I am kind of new to Drools so I may be doing an horrible mistake but > google > > haven't been my friend so far. Any help will be very appreciated! > > > > Thanks. > > Anis > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140615/aae1b600/attachment-0001.html From wolfgang.laun at gmail.com Sun Jun 15 15:59:00 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Sun, 15 Jun 2014 21:59:00 +0200 Subject: [rules-users] Erratic behaviour of Drools In-Reply-To: References: Message-ID: OK, it's a bug all right. 5.4.0 had some problems. It might be worth trying a later 5.x version. -W On 15/06/2014, Poissy.B wrote: > Yes it does fire if I comment either of them, and I get the exact same > response. > > I am using Drools 5.4.0.Final runtime. > > Actually Products is the name property of an object of type > DataObjectReference (wich implements ItemAwareElementAdapter). The point of > providing the output was just to show you that the > List returned by both getGivenResources() and > getReceivedResources() is indeed not empty so the "exists" constraint > should have been matched. > > Thanks! > > > On Sun, Jun 15, 2014 at 2:06 PM, Wolfgang Laun > wrote: > >> See inline. >> >> On 15/06/2014, Poissy.B wrote: >> > Hello, >> > >> > I am a little bit confused as I don't get what I am doing wrong. Here >> > is >> my >> > rule: >> > >> > ************************** >> > rule "Exchange Pattern" >> > when >> > $p2: ProcessAdapter() >> > $mainProcess: ProcessAdapter( isMainProcess(), this!=$p2) >> > MessageFlowAdapter ( fromProcess == $mainProcess, >> > toProcess==$p2) >> > MessageFlowAdapter ( fromProcess == $p2, >> > toProcess==$mainProcess) >> > exists ItemAwareElementAdapter( ) from >> > $mainProcess.getReceivedResources($p2) >> > exists ItemAwareElementAdapter( ) from >> > $mainProcess.getGivenResources($p2) >> > then >> > System.out.println("** FOUND EXCHANGE PATTERN betwwen >> > "+$mainProcess.getParticipant().getName()+" AND >> > "+$p2.getParticipant().getName()); >> > System.out.println("Given: >> > >> "+$mainProcess.getGivenResources($p2)+$mainProcess.getGivenResources($p2).size()); >> > System.out.println("Received: >> > >> "+$mainProcess.getReceivedResources($p2)+$mainProcess.getReceivedResources($p2).size()); >> > System.out.println("Intersection: >> > >> "+$mainProcess.intersectGivenAndReceivedResourcesWithProcess($p2)+$mainProcess.intersectGivenAndReceivedResourcesWithProcess($p2).size()); >> > end >> > ************************** >> > >> > This rule is never fired, although I know it should. >> > >> > When I comment out the ONE OF the two "exists" constraints, I get this >> > output: >> >> Does the rule fire when you comment out either "exists" conditional >> element, >> i.e., it doesn't matter which one is removed? >> >> Which Drools version are you using? >> >> -W >> >> > >> > ************************** >> > ** FOUND EXCHANGE PATTERN betwwen Amazon AND Ship.Comp. >> > Given: [Products (ID:DataObjectReference_2)]1 >> > Received: [Products (ID:DataObjectRefeference_GEN7)]1 >> > Intersection: [Products (ID:DataObject_2)]1 >> > ************************** >> >> I can't say that a display of fact type "Products" is clearly indicating >> the >> presence of an ItemAwareElementAdapter. That said, the rule shouldn't >> fire even with a single "exists", so I assume this is an interface >> implemented >> by Products. >> >> > >> > >From the output you can see that the rule should have been fired with >> the >> > two "exists" constrains as both conditions are met, but it doesn't. >> > I am kind of new to Drools so I may be doing an horrible mistake but >> google >> > haven't been my friend so far. Any help will be very appreciated! >> > >> > Thanks. >> > Anis >> > >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > From poissy.b at gmail.com Sun Jun 15 17:18:47 2014 From: poissy.b at gmail.com (Poissy.B) Date: Sun, 15 Jun 2014 17:18:47 -0400 Subject: [rules-users] Erratic behaviour of Drools In-Reply-To: References: Message-ID: Thanks Wolfgang. Actually I kind of figured out how to fix it but am not sure why it is fixed. First to explain the context, this erratic rule belongs to a rule flow-group B that is executed right after another group (A). There is actually a rule in A that modifies $mainProcess, more specifically, it adds the actual ItemAwareElements that should be returned by the methods getGivenResources and getReceivedResources. However I did not enclose that in a ?modify? statement. My point was that it is useless to let the WM know as that modification has no influence on group A rules. And I was thinking that it does not even matter for group B rules as I am playing with fact?s internal properties and not the fact per se. (specifically: a HashSet having Set values). I guess I was wrong assuming all this. So my question is: - Do we need to use the modify statement whenever the state of an object from the working memory is changed? (even if the part of the state that changed is not relevant to the reasoner) - In other words, can we sometimes avoid the modify when manipulating facts to prevent the rules from being re-evaluated uselessly? Thanks! On Sun, Jun 15, 2014 at 3:59 PM, Wolfgang Laun wrote: > OK, it's a bug all right. 5.4.0 had some problems. It might be worth > trying a later 5.x version. > -W > > On 15/06/2014, Poissy.B wrote: > > Yes it does fire if I comment either of them, and I get the exact same > > response. > > > > I am using Drools 5.4.0.Final runtime. > > > > Actually Products is the name property of an object of type > > DataObjectReference (wich implements ItemAwareElementAdapter). The point > of > > providing the output was just to show you that the > > List returned by both getGivenResources() and > > getReceivedResources() is indeed not empty so the "exists" constraint > > should have been matched. > > > > Thanks! > > > > > > On Sun, Jun 15, 2014 at 2:06 PM, Wolfgang Laun > > wrote: > > > >> See inline. > >> > >> On 15/06/2014, Poissy.B wrote: > >> > Hello, > >> > > >> > I am a little bit confused as I don't get what I am doing wrong. Here > >> > is > >> my > >> > rule: > >> > > >> > ************************** > >> > rule "Exchange Pattern" > >> > when > >> > $p2: ProcessAdapter() > >> > $mainProcess: ProcessAdapter( isMainProcess(), this!=$p2) > >> > MessageFlowAdapter ( fromProcess == $mainProcess, > >> > toProcess==$p2) > >> > MessageFlowAdapter ( fromProcess == $p2, > >> > toProcess==$mainProcess) > >> > exists ItemAwareElementAdapter( ) from > >> > $mainProcess.getReceivedResources($p2) > >> > exists ItemAwareElementAdapter( ) from > >> > $mainProcess.getGivenResources($p2) > >> > then > >> > System.out.println("** FOUND EXCHANGE PATTERN betwwen > >> > "+$mainProcess.getParticipant().getName()+" AND > >> > "+$p2.getParticipant().getName()); > >> > System.out.println("Given: > >> > > >> > "+$mainProcess.getGivenResources($p2)+$mainProcess.getGivenResources($p2).size()); > >> > System.out.println("Received: > >> > > >> > "+$mainProcess.getReceivedResources($p2)+$mainProcess.getReceivedResources($p2).size()); > >> > System.out.println("Intersection: > >> > > >> > "+$mainProcess.intersectGivenAndReceivedResourcesWithProcess($p2)+$mainProcess.intersectGivenAndReceivedResourcesWithProcess($p2).size()); > >> > end > >> > ************************** > >> > > >> > This rule is never fired, although I know it should. > >> > > >> > When I comment out the ONE OF the two "exists" constraints, I get this > >> > output: > >> > >> Does the rule fire when you comment out either "exists" conditional > >> element, > >> i.e., it doesn't matter which one is removed? > >> > >> Which Drools version are you using? > >> > >> -W > >> > >> > > >> > ************************** > >> > ** FOUND EXCHANGE PATTERN betwwen Amazon AND Ship.Comp. > >> > Given: [Products (ID:DataObjectReference_2)]1 > >> > Received: [Products (ID:DataObjectRefeference_GEN7)]1 > >> > Intersection: [Products (ID:DataObject_2)]1 > >> > ************************** > >> > >> I can't say that a display of fact type "Products" is clearly indicating > >> the > >> presence of an ItemAwareElementAdapter. That said, the rule shouldn't > >> fire even with a single "exists", so I assume this is an interface > >> implemented > >> by Products. > >> > >> > > >> > >From the output you can see that the rule should have been fired with > >> the > >> > two "exists" constrains as both conditions are met, but it doesn't. > >> > I am kind of new to Drools so I may be doing an horrible mistake but > >> google > >> > haven't been my friend so far. Any help will be very appreciated! > >> > > >> > Thanks. > >> > Anis > >> > > >> _______________________________________________ > >> rules-users mailing list > >> rules-users at lists.jboss.org > >> https://lists.jboss.org/mailman/listinfo/rules-users > >> > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140615/56e1f8f6/attachment.html From wolfgang.laun at gmail.com Mon Jun 16 00:05:30 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Mon, 16 Jun 2014 06:05:30 +0200 Subject: [rules-users] Erratic behaviour of Drools In-Reply-To: References: Message-ID: The basic rule is this: If modify is called on a fact it causes reevaluation of all LHSs where facts of that type are used. You may omit modify if the change does not have any effect on the logic, and you may omit it if this particular change should be hidden from the engine. (There's the use case of collecting facts A in a Collection property of fact B with a rule combining a (new) A with a B: clearly, modify of B would cause the rule to fire over and over again, which might be prevented using no-loop - but other occurrences of B might be reevaluated, too.) A more selective reaction to modification is possible using the "property reactive" feature - see the docs. -W On 15/06/2014, Poissy.B wrote: > Thanks Wolfgang. Actually I kind of figured out how to fix it but am not > sure why it is fixed. > > First to explain the context, this erratic rule belongs to a rule > flow-group B that is executed right after another group (A). > > There is actually a rule in A that modifies $mainProcess, more > specifically, it adds the actual ItemAwareElements that should be returned > by the methods getGivenResources and getReceivedResources. However I did > not enclose that in a "modify" statement. My point was that it is useless > to let the WM know as that modification has no influence on group A rules. > And I was thinking that it does not even matter for group B rules as I am > playing with fact's internal properties and not the fact per se. > (specifically: a HashSet having Set values). > > I guess I was wrong assuming all this. So my question is: > - Do we need to use the modify statement whenever the state of an object > from the working memory is changed? (even if the part of the state that > changed is not relevant to the reasoner) > - In other words, can we sometimes avoid the modify when manipulating facts > to prevent the rules from being re-evaluated uselessly? > > Thanks! > > > On Sun, Jun 15, 2014 at 3:59 PM, Wolfgang Laun > wrote: > >> OK, it's a bug all right. 5.4.0 had some problems. It might be worth >> trying a later 5.x version. >> -W >> >> On 15/06/2014, Poissy.B wrote: >> > Yes it does fire if I comment either of them, and I get the exact same >> > response. >> > >> > I am using Drools 5.4.0.Final runtime. >> > >> > Actually Products is the name property of an object of type >> > DataObjectReference (wich implements ItemAwareElementAdapter). The >> > point >> of >> > providing the output was just to show you that the >> > List returned by both getGivenResources() and >> > getReceivedResources() is indeed not empty so the "exists" constraint >> > should have been matched. >> > >> > Thanks! >> > >> > >> > On Sun, Jun 15, 2014 at 2:06 PM, Wolfgang Laun >> > >> > wrote: >> > >> >> See inline. >> >> >> >> On 15/06/2014, Poissy.B wrote: >> >> > Hello, >> >> > >> >> > I am a little bit confused as I don't get what I am doing wrong. >> >> > Here >> >> > is >> >> my >> >> > rule: >> >> > >> >> > ************************** >> >> > rule "Exchange Pattern" >> >> > when >> >> > $p2: ProcessAdapter() >> >> > $mainProcess: ProcessAdapter( isMainProcess(), this!=$p2) >> >> > MessageFlowAdapter ( fromProcess == $mainProcess, >> >> > toProcess==$p2) >> >> > MessageFlowAdapter ( fromProcess == $p2, >> >> > toProcess==$mainProcess) >> >> > exists ItemAwareElementAdapter( ) from >> >> > $mainProcess.getReceivedResources($p2) >> >> > exists ItemAwareElementAdapter( ) from >> >> > $mainProcess.getGivenResources($p2) >> >> > then >> >> > System.out.println("** FOUND EXCHANGE PATTERN betwwen >> >> > "+$mainProcess.getParticipant().getName()+" AND >> >> > "+$p2.getParticipant().getName()); >> >> > System.out.println("Given: >> >> > >> >> >> "+$mainProcess.getGivenResources($p2)+$mainProcess.getGivenResources($p2).size()); >> >> > System.out.println("Received: >> >> > >> >> >> "+$mainProcess.getReceivedResources($p2)+$mainProcess.getReceivedResources($p2).size()); >> >> > System.out.println("Intersection: >> >> > >> >> >> "+$mainProcess.intersectGivenAndReceivedResourcesWithProcess($p2)+$mainProcess.intersectGivenAndReceivedResourcesWithProcess($p2).size()); >> >> > end >> >> > ************************** >> >> > >> >> > This rule is never fired, although I know it should. >> >> > >> >> > When I comment out the ONE OF the two "exists" constraints, I get >> >> > this >> >> > output: >> >> >> >> Does the rule fire when you comment out either "exists" conditional >> >> element, >> >> i.e., it doesn't matter which one is removed? >> >> >> >> Which Drools version are you using? >> >> >> >> -W >> >> >> >> > >> >> > ************************** >> >> > ** FOUND EXCHANGE PATTERN betwwen Amazon AND Ship.Comp. >> >> > Given: [Products (ID:DataObjectReference_2)]1 >> >> > Received: [Products (ID:DataObjectRefeference_GEN7)]1 >> >> > Intersection: [Products (ID:DataObject_2)]1 >> >> > ************************** >> >> >> >> I can't say that a display of fact type "Products" is clearly >> >> indicating >> >> the >> >> presence of an ItemAwareElementAdapter. That said, the rule shouldn't >> >> fire even with a single "exists", so I assume this is an interface >> >> implemented >> >> by Products. >> >> >> >> > >> >> > >From the output you can see that the rule should have been fired >> >> > with >> >> the >> >> > two "exists" constrains as both conditions are met, but it doesn't. >> >> > I am kind of new to Drools so I may be doing an horrible mistake but >> >> google >> >> > haven't been my friend so far. Any help will be very appreciated! >> >> > >> >> > Thanks. >> >> > Anis >> >> > >> >> _______________________________________________ >> >> rules-users mailing list >> >> rules-users at lists.jboss.org >> >> https://lists.jboss.org/mailman/listinfo/rules-users >> >> >> > >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > From poissy.b at gmail.com Mon Jun 16 00:16:48 2014 From: poissy.b at gmail.com (Poissy.B) Date: Mon, 16 Jun 2014 00:16:48 -0400 Subject: [rules-users] Erratic behaviour of Drools In-Reply-To: References: Message-ID: Thanks a lot for your explanations. I think a good rule of thumb for a Drools beginner like myself is to use a modify{} whenever I modify a fact in the working memory and use @PropertyReactive and @watch to tweak performance. Thanks again. On Mon, Jun 16, 2014 at 12:05 AM, Wolfgang Laun wrote: > The basic rule is this: If modify is called on a fact it causes > reevaluation of all LHSs where facts of that type are used. > > You may omit modify if the change does not have any effect on the > logic, and you may omit it if this particular change should be hidden > from the engine. (There's the use case of collecting facts A in a > Collection property of fact B with a rule combining a (new) A with a > B: clearly, modify of B would cause the rule to fire over and over > again, which might be prevented using no-loop - but other occurrences > of B might be reevaluated, too.) > > A more selective reaction to modification is possible using the > "property reactive" feature - see the docs. > > -W > > > > On 15/06/2014, Poissy.B wrote: > > Thanks Wolfgang. Actually I kind of figured out how to fix it but am not > > sure why it is fixed. > > > > First to explain the context, this erratic rule belongs to a rule > > flow-group B that is executed right after another group (A). > > > > There is actually a rule in A that modifies $mainProcess, more > > specifically, it adds the actual ItemAwareElements that should be > returned > > by the methods getGivenResources and getReceivedResources. However I did > > not enclose that in a "modify" statement. My point was that it is useless > > to let the WM know as that modification has no influence on group A > rules. > > And I was thinking that it does not even matter for group B rules as I am > > playing with fact's internal properties and not the fact per se. > > (specifically: a HashSet having Set values). > > > > I guess I was wrong assuming all this. So my question is: > > - Do we need to use the modify statement whenever the state of an object > > from the working memory is changed? (even if the part of the state that > > changed is not relevant to the reasoner) > > - In other words, can we sometimes avoid the modify when manipulating > facts > > to prevent the rules from being re-evaluated uselessly? > > > > Thanks! > > > > > > On Sun, Jun 15, 2014 at 3:59 PM, Wolfgang Laun > > wrote: > > > >> OK, it's a bug all right. 5.4.0 had some problems. It might be worth > >> trying a later 5.x version. > >> -W > >> > >> On 15/06/2014, Poissy.B wrote: > >> > Yes it does fire if I comment either of them, and I get the exact same > >> > response. > >> > > >> > I am using Drools 5.4.0.Final runtime. > >> > > >> > Actually Products is the name property of an object of type > >> > DataObjectReference (wich implements ItemAwareElementAdapter). The > >> > point > >> of > >> > providing the output was just to show you that the > >> > List returned by both getGivenResources() and > >> > getReceivedResources() is indeed not empty so the "exists" constraint > >> > should have been matched. > >> > > >> > Thanks! > >> > > >> > > >> > On Sun, Jun 15, 2014 at 2:06 PM, Wolfgang Laun > >> > > >> > wrote: > >> > > >> >> See inline. > >> >> > >> >> On 15/06/2014, Poissy.B wrote: > >> >> > Hello, > >> >> > > >> >> > I am a little bit confused as I don't get what I am doing wrong. > >> >> > Here > >> >> > is > >> >> my > >> >> > rule: > >> >> > > >> >> > ************************** > >> >> > rule "Exchange Pattern" > >> >> > when > >> >> > $p2: ProcessAdapter() > >> >> > $mainProcess: ProcessAdapter( isMainProcess(), this!=$p2) > >> >> > MessageFlowAdapter ( fromProcess == $mainProcess, > >> >> > toProcess==$p2) > >> >> > MessageFlowAdapter ( fromProcess == $p2, > >> >> > toProcess==$mainProcess) > >> >> > exists ItemAwareElementAdapter( ) from > >> >> > $mainProcess.getReceivedResources($p2) > >> >> > exists ItemAwareElementAdapter( ) from > >> >> > $mainProcess.getGivenResources($p2) > >> >> > then > >> >> > System.out.println("** FOUND EXCHANGE PATTERN betwwen > >> >> > "+$mainProcess.getParticipant().getName()+" AND > >> >> > "+$p2.getParticipant().getName()); > >> >> > System.out.println("Given: > >> >> > > >> >> > >> > "+$mainProcess.getGivenResources($p2)+$mainProcess.getGivenResources($p2).size()); > >> >> > System.out.println("Received: > >> >> > > >> >> > >> > "+$mainProcess.getReceivedResources($p2)+$mainProcess.getReceivedResources($p2).size()); > >> >> > System.out.println("Intersection: > >> >> > > >> >> > >> > "+$mainProcess.intersectGivenAndReceivedResourcesWithProcess($p2)+$mainProcess.intersectGivenAndReceivedResourcesWithProcess($p2).size()); > >> >> > end > >> >> > ************************** > >> >> > > >> >> > This rule is never fired, although I know it should. > >> >> > > >> >> > When I comment out the ONE OF the two "exists" constraints, I get > >> >> > this > >> >> > output: > >> >> > >> >> Does the rule fire when you comment out either "exists" conditional > >> >> element, > >> >> i.e., it doesn't matter which one is removed? > >> >> > >> >> Which Drools version are you using? > >> >> > >> >> -W > >> >> > >> >> > > >> >> > ************************** > >> >> > ** FOUND EXCHANGE PATTERN betwwen Amazon AND Ship.Comp. > >> >> > Given: [Products (ID:DataObjectReference_2)]1 > >> >> > Received: [Products (ID:DataObjectRefeference_GEN7)]1 > >> >> > Intersection: [Products (ID:DataObject_2)]1 > >> >> > ************************** > >> >> > >> >> I can't say that a display of fact type "Products" is clearly > >> >> indicating > >> >> the > >> >> presence of an ItemAwareElementAdapter. That said, the rule shouldn't > >> >> fire even with a single "exists", so I assume this is an interface > >> >> implemented > >> >> by Products. > >> >> > >> >> > > >> >> > >From the output you can see that the rule should have been fired > >> >> > with > >> >> the > >> >> > two "exists" constrains as both conditions are met, but it doesn't. > >> >> > I am kind of new to Drools so I may be doing an horrible mistake > but > >> >> google > >> >> > haven't been my friend so far. Any help will be very appreciated! > >> >> > > >> >> > Thanks. > >> >> > Anis > >> >> > > >> >> _______________________________________________ > >> >> rules-users mailing list > >> >> rules-users at lists.jboss.org > >> >> https://lists.jboss.org/mailman/listinfo/rules-users > >> >> > >> > > >> _______________________________________________ > >> rules-users mailing list > >> rules-users at lists.jboss.org > >> https://lists.jboss.org/mailman/listinfo/rules-users > >> > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140616/8fc28ab3/attachment-0001.html From gravisandeep at gmail.com Mon Jun 16 03:34:37 2014 From: gravisandeep at gmail.com (Ravi) Date: Mon, 16 Jun 2014 13:04:37 +0530 Subject: [rules-users] Drools calculation of a date function References: <1402903707.132719276@apps.rackspace.com> Message-ID: <1D65FFE2-78DF-4275-AF4A-B040E7739517@gmail.com> Hi, > > I am new to drools. I want to write a function that accepts two strings and returns a date. The two strings are one for the payment frequency and the other for the payment day. Following are my requirements: > > 1.If the payment frequency is daily, return current date > 2.If the payment frequency is weekly and the payment day is let's say Monday, and the current day is Monday, then return current date. If the current day is Monday and the payment day is Tuesday, return current date + 1. Likewise, if the payment day is Wednesday, return current date + 2. > 3.If the payment frequency is monthly and payment day is 15, retrieve the current month and current year and return MM-15-YYYY. > Please help me write a function for this. Thank you so much in advance. > From wolfgang.laun at gmail.com Mon Jun 16 04:28:59 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Mon, 16 Jun 2014 10:28:59 +0200 Subject: [rules-users] Drools calculation of a date function In-Reply-To: <1D65FFE2-78DF-4275-AF4A-B040E7739517@gmail.com> References: <1402903707.132719276@apps.rackspace.com> <1D65FFE2-78DF-4275-AF4A-B040E7739517@gmail.com> Message-ID: Simply write a (static) Java function - it can be easily incorporated into DRL code so that you can use it in rules. BTW: This list is not a Programming Service. If you'd like to hire a consultant: there are people on this list that might help you. -W On 16/06/2014, Ravi wrote: > Hi, >> >> I am new to drools. I want to write a function that accepts two strings >> and returns a date. The two strings are one for the payment frequency and >> the other for the payment day. Following are my requirements: >> >> 1.If the payment frequency is daily, return current date >> 2.If the payment frequency is weekly and the payment day is let's say >> Monday, and the current day is Monday, then return current date. If the >> current day is Monday and the payment day is Tuesday, return current date >> + 1. Likewise, if the payment day is Wednesday, return current date + 2. >> 3.If the payment frequency is monthly and payment day is 15, retrieve the >> current month and current year and return MM-15-YYYY. >> Please help me write a function for this. Thank you so much in advance. >> > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From reddy.lakshmi at gmail.com Mon Jun 16 04:52:32 2014 From: reddy.lakshmi at gmail.com (LaKhI ReDdY!!!!!!!!!!!) Date: Mon, 16 Jun 2014 14:22:32 +0530 Subject: [rules-users] Error while importing repository from Guvnor 5.1.1 to 5.3.3.Final In-Reply-To: References: Message-ID: Hi Michael, Thanks for reply me. Do you have any idea about how to get "support subscription" with Red Hat regarding this? If you have any idea, could you please share the details with me. Regards, Lakshmi Reddy On Wed, Jun 11, 2014 at 1:56 PM, Michael Anstis wrote: > You're probably going to struggle finding support for migrating Guvnor 5.1 > to 5.3 in the community. > > If you have a support subscription with Red Hat you can probably request > assistance through your customer support network. > > See > http://blog.athico.com/2011/04/drools-jbpm-community-versus-product.html > > > On 11 June 2014 08:56, LaKhI ReDdY!!!!!!!!!!! > wrote: > >> Hi, >> >> I am trying to import the whole repository from 5.1.1 to 5.3.3.Final >> version.I am getting the below attached error while importing.Please find >> the attached file for error details. >> >> We have added new functionality(Rule request) in 5.1.1 and using it for >> quite some. Now we want to migrate to 5.3.3.Final and we want to drop the >> additional functionality(Rule Request) which we have added earlier in 5.1.1 >> version. >> >> The repository which we have currently contains the Rule request details >> also, does this causes problem in importing to Guvnor 5.3.3.Final? >> >> >> Regards, >> Lakshmi Reddy >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -- Reddy 9008752491 -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140616/6d692d74/attachment.html From michael.anstis at gmail.com Mon Jun 16 04:57:16 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Mon, 16 Jun 2014 09:57:16 +0100 Subject: [rules-users] Error while importing repository from Guvnor 5.1.1 to 5.3.3.Final In-Reply-To: References: Message-ID: You could talk to Prakash Aradhya, the Red Hat BRMS Product Manager. I've cc'ed him on this email. I don't know how much more than I've said; but Prakash should be able to assist further. With kind regards, Mike On 16 June 2014 09:52, LaKhI ReDdY!!!!!!!!!!! wrote: > Hi Michael, > > Thanks for reply me. > Do you have any idea about how to get "support subscription" with Red > Hat regarding this? > If you have any idea, could you please share the details with me. > > > Regards, > Lakshmi Reddy > > > On Wed, Jun 11, 2014 at 1:56 PM, Michael Anstis > wrote: > >> You're probably going to struggle finding support for migrating Guvnor >> 5.1 to 5.3 in the community. >> >> If you have a support subscription with Red Hat you can probably request >> assistance through your customer support network. >> >> See >> http://blog.athico.com/2011/04/drools-jbpm-community-versus-product.html >> >> >> On 11 June 2014 08:56, LaKhI ReDdY!!!!!!!!!!! >> wrote: >> >>> Hi, >>> >>> I am trying to import the whole repository from 5.1.1 to 5.3.3.Final >>> version.I am getting the below attached error while importing.Please find >>> the attached file for error details. >>> >>> We have added new functionality(Rule request) in 5.1.1 and using it for >>> quite some. Now we want to migrate to 5.3.3.Final and we want to drop the >>> additional functionality(Rule Request) which we have added earlier in 5.1.1 >>> version. >>> >>> The repository which we have currently contains the Rule request details >>> also, does this causes problem in importing to Guvnor 5.3.3.Final? >>> >>> >>> Regards, >>> Lakshmi Reddy >>> >>> >>> _______________________________________________ >>> rules-users mailing list >>> rules-users at lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > > > -- > Reddy > 9008752491 > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140616/205e05fb/attachment.html From bijkerkrick at hotmail.com Mon Jun 16 07:46:28 2014 From: bijkerkrick at hotmail.com (dBijkoo) Date: Mon, 16 Jun 2014 04:46:28 -0700 (PDT) Subject: [rules-users] SelectionFilter question Message-ID: <1402919188691-4030063.post@n3.nabble.com> i have a class ChangeMoveFilter which implements SelectionFilter to sort out moves that break hard constraints. In the config it looks like this PHASE *solver.move.ChangeMoveFilter* PHASE However I am getting the impression that the overridden accept function is called before anything changed in the entity. Because the (only) planningvariable of the entity is still null, which would never be able to happen in my understanding. Am i missing something or is the filter move called before anything changes in the given entity? -- View this message in context: http://drools.46999.n3.nabble.com/SelectionFilter-ChangeMove-question-tp4030063.html Sent from the Drools: User forum mailing list archive at Nabble.com. From zahid.ahmed at emirates.com Mon Jun 16 08:15:48 2014 From: zahid.ahmed at emirates.com (706826) Date: Mon, 16 Jun 2014 05:15:48 -0700 (PDT) Subject: [rules-users] Workbench and GIT Repo High Availability In-Reply-To: References: Message-ID: <1402920948688-4030064.post@n3.nabble.com> Hi Alexandre, Does this also means that we need to create ZNodes manually. -- View this message in context: http://drools.46999.n3.nabble.com/rules-users-Workbench-and-GIT-Repo-High-Availability-tp4029538p4030064.html Sent from the Drools: User forum mailing list archive at Nabble.com. From mario.fusco at gmail.com Mon Jun 16 09:42:24 2014 From: mario.fusco at gmail.com (Mario Fusco) Date: Mon, 16 Jun 2014 06:42:24 -0700 (PDT) Subject: [rules-users] Possible problem in PathMemory In-Reply-To: References: <1402596209833-4030026.post@n3.nabble.com> <1402661396513-4030032.post@n3.nabble.com> Message-ID: <1402926144990-4030065.post@n3.nabble.com> Hi Jinghai, I reproduced the problem you reported and pushed a fix for it: https://github.com/droolsjbpm/drools/commit/83f80c83f Your reproducer have been very very helpful. Thanks a lot, Mario -- View this message in context: http://drools.46999.n3.nabble.com/Possible-problem-in-PathMemory-tp4030026p4030065.html Sent from the Drools: User forum mailing list archive at Nabble.com. From raojinghai at gmail.com Mon Jun 16 13:11:52 2014 From: raojinghai at gmail.com (raojinghai at gmail.com) Date: Mon, 16 Jun 2014 10:11:52 -0700 Subject: [rules-users] Possible problem in PathMemory In-Reply-To: <1402926144990-4030065.post@n3.nabble.com> References: <1402596209833-4030026.post@n3.nabble.com> <1402661396513-4030032.post@n3.nabble.com> <1402926144990-4030065.post@n3.nabble.com> Message-ID: Hi Mario, Awesome. Thank you so much for fixing it promptly. Thanks. Jinghai On Mon, Jun 16, 2014 at 6:42 AM, Mario Fusco wrote: > Hi Jinghai, > > I reproduced the problem you reported and pushed a fix for it: > https://github.com/droolsjbpm/drools/commit/83f80c83f > > Your reproducer have been very very helpful. > > Thanks a lot, > Mario > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Possible-problem-in-PathMemory-tp4030026p4030065.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140616/334831eb/attachment-0001.html From mail2stehle at gmail.com Tue Jun 17 04:05:03 2014 From: mail2stehle at gmail.com (SebastianStehle) Date: Tue, 17 Jun 2014 01:05:03 -0700 (PDT) Subject: [rules-users] Fusion, Insert Events with timestamp in the past. In-Reply-To: <1401896018639-4029866.post@n3.nabble.com> References: <1401874157681-4029843.post@n3.nabble.com> <1401874331987-4029844.post@n3.nabble.com> <1401875980649-4029847.post@n3.nabble.com> <1401894265969-4029860.post@n3.nabble.com> <1401896018639-4029866.post@n3.nabble.com> Message-ID: <1402992303987-4030069.post@n3.nabble.com> I realized that there are some mistakes in my previous post with the times: 1. First example: LHS: $e: Message (Message(this after [0, 10sec] $e), where Message has an @timestamp 1.1. insert(new Message(NOW().subtract(5sec))); <-- 11:00:00am wait(6sec); insert(new Message(NOW())); // NOT Activated 1.2. insert(new Message(NOW().subtract(5sec))); <-- 11:00:00am wait(2sec); insert(new Message(NOW())); // Activated at 11:00:05am 2. First example: LHS: $e: Message not (Message(this after [0, 10sec] $e), where Message has an @timestamp insert(new Message(NOW().subtract(5sec))); <-- 11:00:00am // Activated at 11:00:10am Has anybody an idea with example #2 is not working? -- View this message in context: http://drools.46999.n3.nabble.com/Fusion-Insert-Events-with-timestamp-in-the-past-tp4029843p4030069.html Sent from the Drools: User forum mailing list archive at Nabble.com. From shrinath.managuli at aspiresys.com Tue Jun 17 05:00:03 2014 From: shrinath.managuli at aspiresys.com (Shrinath Managuli) Date: Tue, 17 Jun 2014 09:00:03 +0000 Subject: [rules-users] =?windows-1252?q?Need_help_in_understanding_Data_en?= =?windows-1252?q?umeration=92s_drop_down_list_configuration?= Message-ID: <564fb77209fb447c95c602a1d6b85da6@HKNPR02MB019.apcprd02.prod.outlook.com> Hi Drools, Need help in understanding Data enumeration?s drop down list configuration, I had created a simple data enumeration as, [cid:image001.png at 01CF8A37.D4053860] For this, I also created a Customer object with a code field as String at org.kie.example.project1 package. While creating guided rule, I?m unable to view the enumeration as drop down as like below, [cid:image002.png at 01CF8A37.D4053860] I had tried this scenario with JBoss BRMS 6. Please help me to understand on how to populate the drop down using data enumeration. Thanks, srinath [Aspire Systems] This e-mail message and any attachments are for the sole use of the intended recipient(s) and may contain proprietary, confidential, trade secret or privileged information. Any unauthorized review, use, disclosure or distribution is prohibited and may be a violation of law. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140617/9ca906dd/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.png Type: image/png Size: 7364 bytes Desc: image001.png Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140617/9ca906dd/attachment-0002.png -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.png Type: image/png Size: 17931 bytes Desc: image002.png Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140617/9ca906dd/attachment-0003.png From michael.anstis at gmail.com Tue Jun 17 05:13:41 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Tue, 17 Jun 2014 10:13:41 +0100 Subject: [rules-users] =?utf-8?q?Need_help_in_understanding_Data_enumerati?= =?utf-8?q?on=E2=80=99s_drop_down_list_configuration?= In-Reply-To: <564fb77209fb447c95c602a1d6b85da6@HKNPR02MB019.apcprd02.prod.outlook.com> References: <564fb77209fb447c95c602a1d6b85da6@HKNPR02MB019.apcprd02.prod.outlook.com> Message-ID: What happens if you click on the "pencil" next to "equal to" dropdown and select "literal value"? This is when you should see the enum list. On 17 June 2014 10:00, Shrinath Managuli wrote: > Hi Drools, > > > > Need help in understanding Data enumeration?s drop down list configuration, > > > > I had created a simple data enumeration as, > > > > > > For this, I also created a *Customer* object with a *code* field as > String at *org.kie.example.project1* package. > > > > While creating guided rule, I?m unable to view the enumeration as drop > down as like below, > > > > > > I had tried this scenario with JBoss BRMS 6. Please help me to understand > on how to populate the drop down using data enumeration. > > > > Thanks, > > srinath > [image: Aspire Systems] > > This e-mail message and any attachments are for the sole use of the > intended recipient(s) and may contain proprietary, confidential, trade > secret or privileged information. Any unauthorized review, use, disclosure > or distribution is prohibited and may be a violation of law. If you are not > the intended recipient, please contact the sender by reply e-mail and > destroy all copies of the original message. > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140617/42252329/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.png Type: image/png Size: 7364 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140617/42252329/attachment-0002.png -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.png Type: image/png Size: 17931 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140617/42252329/attachment-0003.png From shrinath.managuli at aspiresys.com Tue Jun 17 05:30:51 2014 From: shrinath.managuli at aspiresys.com (Shrinath Managuli) Date: Tue, 17 Jun 2014 09:30:51 +0000 Subject: [rules-users] =?utf-8?q?Need_help_in_understanding_Data_enumerati?= =?utf-8?q?on=E2=80=99s_drop_down_list_configuration?= In-Reply-To: References: <564fb77209fb447c95c602a1d6b85da6@HKNPR02MB019.apcprd02.prod.outlook.com> Message-ID: <7f9a0a875f274b549649c2406c0f8292@HKNPR02MB019.apcprd02.prod.outlook.com> Hi Michael, I?m getting a text box not a drop down like below, [cid:image001.png at 01CF8A3C.9A96D200] -Shrinath From: rules-users-bounces at lists.jboss.org [mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Michael Anstis Sent: 17 June 2014 14:44 To: Rules Users List Subject: Re: [rules-users] Need help in understanding Data enumeration?s drop down list configuration What happens if you click on the "pencil" next to "equal to" dropdown and select "literal value"? This is when you should see the enum list. On 17 June 2014 10:00, Shrinath Managuli > wrote: Hi Drools, Need help in understanding Data enumeration?s drop down list configuration, I had created a simple data enumeration as, [cid:image004.png at 01CF8A3C.EA685290] For this, I also created a Customer object with a code field as String at org.kie.example.project1 package. While creating guided rule, I?m unable to view the enumeration as drop down as like below, [cid:image005.png at 01CF8A3C.EA685290] I had tried this scenario with JBoss BRMS 6. Please help me to understand on how to populate the drop down using data enumeration. Thanks, srinath [Image removed by sender. Aspire Systems] This e-mail message and any attachments are for the sole use of the intended recipient(s) and may contain proprietary, confidential, trade secret or privileged information. Any unauthorized review, use, disclosure or distribution is prohibited and may be a violation of law. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. _______________________________________________ rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users [Aspire Systems] This e-mail message and any attachments are for the sole use of the intended recipient(s) and may contain proprietary, confidential, trade secret or privileged information. Any unauthorized review, use, disclosure or distribution is prohibited and may be a violation of law. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140617/2536ac65/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: ~WRD000.jpg Type: image/jpeg Size: 823 bytes Desc: ~WRD000.jpg Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140617/2536ac65/attachment-0001.jpg -------------- next part -------------- A non-text attachment was scrubbed... Name: image003.png Type: image/png Size: 16334 bytes Desc: image003.png Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140617/2536ac65/attachment-0003.png -------------- next part -------------- A non-text attachment was scrubbed... Name: image004.png Type: image/png Size: 7364 bytes Desc: image004.png Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140617/2536ac65/attachment-0004.png -------------- next part -------------- A non-text attachment was scrubbed... Name: image005.png Type: image/png Size: 17931 bytes Desc: image005.png Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140617/2536ac65/attachment-0005.png From nareshthota005 at gmail.com Tue Jun 17 07:41:50 2014 From: nareshthota005 at gmail.com (naresh.t) Date: Tue, 17 Jun 2014 04:41:50 -0700 (PDT) Subject: [rules-users] Comparing Objects of same class. Message-ID: <1403005309986-4030073.post@n3.nabble.com> HI Team, We came in situation where we need to compare our objects of same class. For example, we have a class like SampleData.java. It has fields like 1) No 2) Student Name 3) DOJ(date of join) Now, we want to write a Rule to get the Student Details like 1) if any 5 students joined in 2 days of span This rule might changed dynamically like for now it is 2 days but in future it may be 1 day or 3 days etc., Please provide any suggestions on this... Thanks & Regards Naresh -- View this message in context: http://drools.46999.n3.nabble.com/Comparing-Objects-of-same-class-tp4030073.html Sent from the Drools: User forum mailing list archive at Nabble.com. From scerquido at gmail.com Tue Jun 17 07:57:57 2014 From: scerquido at gmail.com (Sergio Besada) Date: Tue, 17 Jun 2014 13:57:57 +0200 Subject: [rules-users] Fuse ESB & Drools 6 - Fire-until-halt configuration using persistence Message-ID: Hi, I have seen that in the drools version 6.1.0.Beta4, the command fire-until-halt is developed using persistence but drools doesn't let me test it because this command implement the interface "UnpersistableCommand" so I have eliminated this interface and I have tested this configuration. Surprisingly, Drools works as I expected and doesn't throw any exception, ?Where is the problem in this configuration? Here my camel context PD: I have attached my example , it's a maven project 2014-06-04 19:04 GMT+02:00 Sergio Besada : > Thank you in advance. > > > 2014-06-04 18:29 GMT+02:00 Charles Moulliard : > >> I will have a look to your use case as it is not yet covered and will >> perhaps require that we modify the kie-camel component >> >> >> On Wed, Jun 4, 2014 at 6:02 PM, s b wrote: >> >>> I'm testing the drools new version (6.1.0.Beta4) but I have a problem >>> with the Stateful Drools Session. >>> >>> I have deployed in JBoss Fuse ESB the last versi?n of the drools (drools >>> camel, jbpm, spring, etc), I have atached my camel context bundle (It's a >>> maven project). >>> >>> This is my camel-context >>> >>> >>> >> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>> xmlns:kie="http://drools.org/schema/kie-spring" >>> xsi:schemaLocation=" >>> http://www.springframework.org/schema/beans >>> http://www.springframework.org/schema/beans/spring-beans-3.0.xsd >>> http://drools.org/schema/kie-spring >>> http://drools.org/schema/kie-spring.xsd >>> http://camel.apache.org/schema/spring >>> http://camel.apache.org/schema/spring/camel-spring.xsd"> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >> class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> >>> >>> >> value="org.jbpm.persistence.jpa.local"/> >>> >>> >>> >> class="org.springframework.orm.jpa.JpaTransactionManager"> >>> >>> >>> >>> >> class="org.drools.osgi.spring.OsgiKModuleBeanFactoryPostProcessor"/> >>> >>> >> class="com.execute.command.FireAllRules"/> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> As you can see it is an scenario where Drools is in an stateful session >>> with persistence configured. >>> >>> The bundle is executed without errors but I want that Drools executes my >>> rules each time that the route is executed ( fireUntilHalt mode but I >>> wasn't able as seems that this command is not availble in a persisted >>> environment ), for this reason I've created a bean with the command: >>> fireAllRules and I use to execute >>> the rules but the problem is that the rules are only executed the first >>> time, only the first time and never in subsequents executions of the route. >>> >>> The persistece seems to work well ( I can see the datamodel created >>> and populated as expeted in the DB ). >>> >>> However if I change to use stateless mode ( no persistence then ), the >>> rules are executed each time that route is executed ( as expected ), and >>> therefore I don?t need the command fireAllRules >>> >>> >>> >>> >>> >>> Questions: >>> >>> Is it possible to have a stateful fireUntilHalt drools session that >>> keeps using the same knowledge session in subsequent camel route executions? >>> >>> If it is not possible, Can I have a stateful ( persisted )drools session >>> and invoke "fireAllRules" whenever I make changes in the knowledge session >>> ( new Facts are inserted )? >>> >>> I've deep dived into the web looking for examples or documentation of >>> this scenario both in Spring and Blueprint. Does anyone of you have any >>> pointers to documentation on the matter? >>> >>> Kind Regards, >>> >>> _______________________________________________ >>> rules-users mailing list >>> rules-users at lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >> >> >> >> -- >> Charles Moulliard >> Apache Committer / Architect @RedHat >> Twitter : @cmoulliard | Blog : http://cmoulliard.github.io >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140617/dc5e00f2/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: com.test.drools.spring.rar Type: application/rar Size: 33911 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140617/dc5e00f2/attachment-0001.bin From wolfgang.laun at gmail.com Tue Jun 17 08:01:36 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Tue, 17 Jun 2014 14:01:36 +0200 Subject: [rules-users] Comparing Objects of same class. In-Reply-To: <1403005309986-4030073.post@n3.nabble.com> References: <1403005309986-4030073.post@n3.nabble.com> Message-ID: What have you tried so far? And, please, clarify what you mean by "any 5" in "2 days". For instance: If A, B, C, D, E, F join on 5/24, is this a match? And if G, H, J join additionally on 5/25, is this another match? -W On 17/06/2014, naresh.t wrote: > HI Team, > > We came in situation where we need to compare our objects of same class. > > For example, we have a class like SampleData.java. It has fields like 1) No > 2) Student Name 3) DOJ(date of join) > > Now, we want to write a Rule to get the Student Details like > > 1) if any 5 students joined in 2 days of span > > This rule might changed dynamically like for now it is 2 days but in future > it may be 1 day or 3 days etc., > > Please provide any suggestions on this... > > Thanks & Regards > Naresh > > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Comparing-Objects-of-same-class-tp4030073.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From scerquido at gmail.com Tue Jun 17 08:10:37 2014 From: scerquido at gmail.com (Sergio Besada) Date: Tue, 17 Jun 2014 14:10:37 +0200 Subject: [rules-users] Fuse ESB & Drools 6 - Fire-until-halt configuration using persistence Message-ID: Maybe I'm wrong and I cannot use this configuration because in some case fail 2014-06-17 13:57 GMT+02:00 Sergio Besada : > Hi, > > I have seen that in the drools version 6.1.0.Beta4, the command > fire-until-halt is developed using persistence but drools doesn't let me > test it because this command implement the interface > "UnpersistableCommand" so I have eliminated this interface and I have > tested this configuration. > > Surprisingly, Drools works as I expected and doesn't throw any exception, > ?Where is the problem in this configuration? > > Here my camel context > > > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xmlns:kie="http://drools.org/schema/kie-spring" > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-3.0.xsd > http://drools.org/schema/kie-spring > http://drools.org/schema/kie-spring.xsd > http://camel.apache.org/schema/spring > http://camel.apache.org/schema/spring/camel-spring.xsd"> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> > > value="org.jbpm.persistence.jpa.local"/> > > > class="org.springframework.orm.jpa.JpaTransactionManager"> > > > > class="org.drools.osgi.spring.OsgiKModuleBeanFactoryPostProcessor"/> > > class="com.execute.command.FireAllRules"/> > > class="com.execute.command.FireUntilHalt"/> > > > > > > > > > > > > > > > > > PD: I have attached my example , it's a maven project > > > > > 2014-06-04 19:04 GMT+02:00 Sergio Besada : > >> Thank you in advance. >> >> >> 2014-06-04 18:29 GMT+02:00 Charles Moulliard : >> >>> I will have a look to your use case as it is not yet covered and will >>> perhaps require that we modify the kie-camel component >>> >>> >>> On Wed, Jun 4, 2014 at 6:02 PM, s b wrote: >>> >>>> I'm testing the drools new version (6.1.0.Beta4) but I have a problem >>>> with the Stateful Drools Session. >>>> >>>> I have deployed in JBoss Fuse ESB the last versi?n of the drools >>>> (drools camel, jbpm, spring, etc), I have atached my camel context bundle >>>> (It's a maven project). >>>> >>>> This is my camel-context >>>> >>>> >>>> >>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>>> xmlns:kie="http://drools.org/schema/kie-spring" >>>> xsi:schemaLocation=" >>>> http://www.springframework.org/schema/beans >>>> http://www.springframework.org/schema/beans/spring-beans-3.0.xsd >>>> http://drools.org/schema/kie-spring >>>> http://drools.org/schema/kie-spring.xsd >>>> http://camel.apache.org/schema/spring >>>> http://camel.apache.org/schema/spring/camel-spring.xsd"> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>> class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> >>>> >>>> >>> value="org.jbpm.persistence.jpa.local"/> >>>> >>>> >>>> >>> class="org.springframework.orm.jpa.JpaTransactionManager"> >>>> >>>> >>>> >>>> >>> class="org.drools.osgi.spring.OsgiKModuleBeanFactoryPostProcessor"/> >>>> >>>> >>> class="com.execute.command.FireAllRules"/> >>>> >>>> >>>> >>>> >>>> >>>> >>> id="AgeVerification"/> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> As you can see it is an scenario where Drools is in an stateful session >>>> with persistence configured. >>>> >>>> The bundle is executed without errors but I want that Drools executes >>>> my rules each time that the route is executed ( fireUntilHalt mode but I >>>> wasn't able as seems that this command is not availble in a persisted >>>> environment ), for this reason I've created a bean with the command: >>>> fireAllRules and I use to execute >>>> the rules but the problem is that the rules are only executed the first >>>> time, only the first time and never in subsequents executions of the route. >>>> >>>> The persistece seems to work well ( I can see the datamodel created >>>> and populated as expeted in the DB ). >>>> >>>> However if I change to use stateless mode ( no persistence then ), the >>>> rules are executed each time that route is executed ( as expected ), and >>>> therefore I don?t need the command fireAllRules >>>> >>>> >>>> >>>> >>>> >>>> Questions: >>>> >>>> Is it possible to have a stateful fireUntilHalt drools session that >>>> keeps using the same knowledge session in subsequent camel route executions? >>>> >>>> If it is not possible, Can I have a stateful ( persisted )drools >>>> session and invoke "fireAllRules" whenever I make changes in the knowledge >>>> session ( new Facts are inserted )? >>>> >>>> I've deep dived into the web looking for examples or documentation of >>>> this scenario both in Spring and Blueprint. Does anyone of you have any >>>> pointers to documentation on the matter? >>>> >>>> Kind Regards, >>>> >>>> _______________________________________________ >>>> rules-users mailing list >>>> rules-users at lists.jboss.org >>>> https://lists.jboss.org/mailman/listinfo/rules-users >>>> >>> >>> >>> >>> -- >>> Charles Moulliard >>> Apache Committer / Architect @RedHat >>> Twitter : @cmoulliard | Blog : http://cmoulliard.github.io >>> >>> >>> _______________________________________________ >>> rules-users mailing list >>> rules-users at lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >> >> > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140617/f349d5e2/attachment-0001.html From michael.anstis at gmail.com Tue Jun 17 08:32:22 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Tue, 17 Jun 2014 13:32:22 +0100 Subject: [rules-users] =?utf-8?q?Need_help_in_understanding_Data_enumerati?= =?utf-8?q?on=E2=80=99s_drop_down_list_configuration?= In-Reply-To: <7f9a0a875f274b549649c2406c0f8292@HKNPR02MB019.apcprd02.prod.outlook.com> References: <564fb77209fb447c95c602a1d6b85da6@HKNPR02MB019.apcprd02.prod.outlook.com> <7f9a0a875f274b549649c2406c0f8292@HKNPR02MB019.apcprd02.prod.outlook.com> Message-ID: Hello, "Workbench enums" (i.e. not Java ones) are scoped at the package level and hence should not contain a fully qualified class name. If you amend your definition to simply use "Customer" it should be OK. On 17 June 2014 10:30, Shrinath Managuli wrote: > Hi Michael, > > > > I?m getting a text box not a drop down like below, > > > > [image: cid:image001.png at 01CF8A3C.9A96D200] > > > > -Shrinath > > > > *From:* rules-users-bounces at lists.jboss.org [mailto: > rules-users-bounces at lists.jboss.org] *On Behalf Of *Michael Anstis > *Sent:* 17 June 2014 14:44 > *To:* Rules Users List > *Subject:* Re: [rules-users] Need help in understanding Data > enumeration?s drop down list configuration > > > > What happens if you click on the "pencil" next to "equal to" dropdown and > select "literal value"? > > > > This is when you should see the enum list. > > > > On 17 June 2014 10:00, Shrinath Managuli > wrote: > > Hi Drools, > > > > Need help in understanding Data enumeration?s drop down list configuration, > > > > I had created a simple data enumeration as, > > > > > > For this, I also created a *Customer* object with a *code* field as > String at *org.kie.example.project1* package. > > > > While creating guided rule, I?m unable to view the enumeration as drop > down as like below, > > > > > > I had tried this scenario with JBoss BRMS 6. Please help me to understand > on how to populate the drop down using data enumeration. > > > > Thanks, > > srinath > > [image: Image removed by sender. Aspire Systems] > > This e-mail message and any attachments are for the sole use of the > intended recipient(s) and may contain proprietary, confidential, trade > secret or privileged information. Any unauthorized review, use, disclosure > or distribution is prohibited and may be a violation of law. If you are not > the intended recipient, please contact the sender by reply e-mail and > destroy all copies of the original message. > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > > [image: Aspire Systems] > > This e-mail message and any attachments are for the sole use of the > intended recipient(s) and may contain proprietary, confidential, trade > secret or privileged information. Any unauthorized review, use, disclosure > or distribution is prohibited and may be a violation of law. If you are not > the intended recipient, please contact the sender by reply e-mail and > destroy all copies of the original message. > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140617/fe67f6ef/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: ~WRD000.jpg Type: image/jpeg Size: 823 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140617/fe67f6ef/attachment-0001.jpg -------------- next part -------------- A non-text attachment was scrubbed... Name: image004.png Type: image/png Size: 7364 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140617/fe67f6ef/attachment-0003.png -------------- next part -------------- A non-text attachment was scrubbed... Name: image003.png Type: image/png Size: 16334 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140617/fe67f6ef/attachment-0004.png -------------- next part -------------- A non-text attachment was scrubbed... Name: image005.png Type: image/png Size: 17931 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140617/fe67f6ef/attachment-0005.png From nareshthota005 at gmail.com Tue Jun 17 08:46:41 2014 From: nareshthota005 at gmail.com (naresh.t) Date: Tue, 17 Jun 2014 05:46:41 -0700 (PDT) Subject: [rules-users] Comparing Objects of same class. In-Reply-To: References: <1403005309986-4030073.post@n3.nabble.com> Message-ID: <1403009201386-4030079.post@n3.nabble.com> Hi, more details... lets take a rule like If any 5 students joined in 5 days of span... No Name DOJ 1 A *5/24* 2 B * 5/25* 3 C *5/27* 4 D *5/23* 5 E 5/30 6 F 5/20 7 G 5/15 If we take, A,B,C and D details, these 4 students are joined in <=5 days of span(lowest date :->D:5/23 and highest date :->c:5/27 --> diff is 4 days). If any other student joined in these <=5 days (5/23 to 5/27 ) then we need those all 5 students details. If we take F, A, B and D, these 4 students also joined in <= 5 days...but no.of 5 students condition is missing. As we said we are able to work on static rules like if student joined <=5/23 & !>=5/30 etc. Thanks & Regards Naresh -- View this message in context: http://drools.46999.n3.nabble.com/Comparing-Objects-of-same-class-tp4030073p4030079.html Sent from the Drools: User forum mailing list archive at Nabble.com. From wolfgang.laun at gmail.com Tue Jun 17 11:04:45 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Tue, 17 Jun 2014 17:04:45 +0200 Subject: [rules-users] Comparing Objects of same class. In-Reply-To: <1403009201386-4030079.post@n3.nabble.com> References: <1403005309986-4030073.post@n3.nabble.com> <1403009201386-4030079.post@n3.nabble.com> Message-ID: Let S be the (nonempty) set of all students and d the length of the span of days. There exists a student s0 so that s0.doj is the minimum over all S. Then accumulate and count students x over S so that s0.doj <= x.doj and x.doj < s0.doj + d. If this count exceeds the threshold t: display the students. Finally, remove all students y from S where y.doj = s0.doj. Repeat until S is empty. I don't see any particular reason for doing this in Drools, although it's feasible with just a handful of rules. But it is a ridiculously simply exercise in Java. Does this have any practical value? Students' behaviour is notoriously erratic. Is this for a brand new branch of behavioural psychology?! -W On 17/06/2014, naresh.t wrote: > Hi, > > more details... > > lets take a rule like If any 5 students joined in 5 days of span... > > No Name DOJ > 1 A *5/24* > 2 B * 5/25* > 3 C *5/27* > 4 D *5/23* > 5 E 5/30 > 6 F 5/20 > 7 G 5/15 > > If we take, A,B,C and D details, these 4 students are joined in <=5 days of > span(lowest date :->D:5/23 and highest date :->c:5/27 --> diff is 4 days). > If any other student joined in these <=5 days (5/23 to 5/27 ) then we need > those all 5 students details. > > If we take F, A, B and D, these 4 students also joined in <= 5 days...but > no.of 5 students condition is missing. > > > As we said we are able to work on static rules like if student joined > <=5/23 > & !>=5/30 etc. > > Thanks & Regards > Naresh > > > > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Comparing-Objects-of-same-class-tp4030073p4030079.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From roger at precipicetech.com Tue Jun 17 11:27:29 2014 From: roger at precipicetech.com (rogerL) Date: Tue, 17 Jun 2014 08:27:29 -0700 (PDT) Subject: [rules-users] NPE spring-boot project via a jar Message-ID: <1403018849980-4030081.post@n3.nabble.com> Hi, Running into NPE on application boot up. It appears to be related to a previous topic. I didn't add to it as the last entry appears to veer off topic and didn't want it lost in the wash. http://drools.46999.n3.nabble.com/rules-users-NullPointerException-with-kie-spring-6-0-1-and-Spring-4-0-td4027854.html Using kie-spring-6.1.0.Beta4.jar, spring 4. As per the former topic, the application starts up without issue in IDE env, etc. but fails on jar boot up. The stack is as follows: Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'kiePostProcessor' defined in class path resource [qres/callManager.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.kie.spring.KModuleBeanFactoryPostProcessor]: Constructor threw exception; nested exception is java.lang.NullPointerException at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1076) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1021) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:304) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:300) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1121) at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:682) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:461) at com.s.c.util.ConfigUtility.loadProfileContext(ConfigUtility.java:42) at com.s.c.manager.CallManager.init(CallManager.java:19) at com.s.c.manager.CallManager.main(CallManager.java:46) Caused by: org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.kie.spring.KModuleBeanFactoryPostProcessor]: Constructor threw exception; nested exception is java.lang.NullPointerException at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:164) at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:89) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateBean(AbstractAutowireCapableBeanFactory.java:1069) ... 13 more Caused by: java.lang.NullPointerException at org.kie.spring.KModuleBeanFactoryPostProcessor.initConfigFilePath(KModuleBeanFactoryPostProcessor.java:83) at org.kie.spring.KModuleBeanFactoryPostProcessor.(KModuleBeanFactoryPostProcessor.java:68) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:526) at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:148) ... 15 more -- View this message in context: http://drools.46999.n3.nabble.com/NPE-spring-boot-project-via-a-jar-tp4030081.html Sent from the Drools: User forum mailing list archive at Nabble.com. From gboro54 at gmail.com Tue Jun 17 11:36:00 2014 From: gboro54 at gmail.com (gboro54) Date: Tue, 17 Jun 2014 08:36:00 -0700 (PDT) Subject: [rules-users] 5.6 Decision Table VLookup Message-ID: <1403019360914-4030082.post@n3.nabble.com> Is there a way to have a decision table behave with a vloopup? Basically we have a metadata column which the user can select from a drop down. This then drives the values of the action columns. This works except that instead of the value of the vlookup I see the actual vlookup text(i.e something like VLOOKUP(F11)). Is this possible? -- View this message in context: http://drools.46999.n3.nabble.com/5-6-Decision-Table-VLookup-tp4030082.html Sent from the Drools: User forum mailing list archive at Nabble.com. From michael.anstis at gmail.com Tue Jun 17 12:22:35 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Tue, 17 Jun 2014 17:22:35 +0100 Subject: [rules-users] 5.6 Decision Table VLookup In-Reply-To: <1403019360914-4030082.post@n3.nabble.com> References: <1403019360914-4030082.post@n3.nabble.com> Message-ID: Is the VLOOKUP in the same sheet? I think there are problems with Apache POI resolving formulas across different worksheets (but am guessing based on some other changes we had to make regarding linked workbooks). On 17 June 2014 16:36, gboro54 wrote: > Is there a way to have a decision table behave with a vloopup? Basically we > have a metadata column which the user can select from a drop down. This > then > drives the values of the action columns. This works except that instead of > the value of the vlookup I see the actual vlookup text(i.e something like > VLOOKUP(F11)). > > Is this possible? > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/5-6-Decision-Table-VLookup-tp4030082.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140617/6e7e2d33/attachment.html From gboro54 at gmail.com Tue Jun 17 12:25:30 2014 From: gboro54 at gmail.com (gboro54) Date: Tue, 17 Jun 2014 09:25:30 -0700 (PDT) Subject: [rules-users] 5.6 Decision Table VLookup In-Reply-To: References: <1403019360914-4030082.post@n3.nabble.com> Message-ID: <1403022330863-4030084.post@n3.nabble.com> They are different sheets. Basically we have a our tables on sheet 1 and sheet 2 is populated from an import of data from an external datasource to allow a vlookup of information(so the business user can see the data/and we can maintain it) manstis wrote > Is the VLOOKUP in the same sheet? > > I think there are problems with Apache POI resolving formulas across > different worksheets (but am guessing based on some other changes we had > to > make regarding linked workbooks). > > > On 17 June 2014 16:36, gboro54 < > gboro54@ > > wrote: > >> Is there a way to have a decision table behave with a vloopup? Basically >> we >> have a metadata column which the user can select from a drop down. This >> then >> drives the values of the action columns. This works except that instead >> of >> the value of the vlookup I see the actual vlookup text(i.e something like >> VLOOKUP(F11)). >> >> Is this possible? >> >> >> >> -- >> View this message in context: >> http://drools.46999.n3.nabble.com/5-6-Decision-Table-VLookup-tp4030082.html >> Sent from the Drools: User forum mailing list archive at Nabble.com. >> _______________________________________________ >> rules-users mailing list >> > rules-users at .jboss >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > _______________________________________________ > rules-users mailing list > rules-users at .jboss > https://lists.jboss.org/mailman/listinfo/rules-users -- View this message in context: http://drools.46999.n3.nabble.com/5-6-Decision-Table-VLookup-tp4030082p4030084.html Sent from the Drools: User forum mailing list archive at Nabble.com. From michael.anstis at gmail.com Tue Jun 17 14:03:35 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Tue, 17 Jun 2014 19:03:35 +0100 Subject: [rules-users] 5.6 Decision Table VLookup In-Reply-To: <1403022330863-4030084.post@n3.nabble.com> References: <1403019360914-4030082.post@n3.nabble.com> <1403022330863-4030084.post@n3.nabble.com> Message-ID: That then is indeed a bug. Can you please raise a DROOLS JIRA and attach a unit test demonstrating the problem (preferably please submit your unit test as a Pull Request)? We're always on the look out for community contributions, so if you want to tackle a fix it would be appreciated; otherwise we'll add the JIRA to the list to look at some time. With kind regards, Mike On 17 June 2014 17:25, gboro54 wrote: > They are different sheets. Basically we have a our tables on sheet 1 and > sheet 2 is populated from an import of data from an external datasource to > allow a vlookup of information(so the business user can see the data/and we > can maintain it) > > > manstis wrote > > Is the VLOOKUP in the same sheet? > > > > I think there are problems with Apache POI resolving formulas across > > different worksheets (but am guessing based on some other changes we had > > to > > make regarding linked workbooks). > > > > > > On 17 June 2014 16:36, gboro54 < > > > gboro54@ > > > > wrote: > > > >> Is there a way to have a decision table behave with a vloopup? Basically > >> we > >> have a metadata column which the user can select from a drop down. This > >> then > >> drives the values of the action columns. This works except that instead > >> of > >> the value of the vlookup I see the actual vlookup text(i.e something > like > >> VLOOKUP(F11)). > >> > >> Is this possible? > >> > >> > >> > >> -- > >> View this message in context: > >> > http://drools.46999.n3.nabble.com/5-6-Decision-Table-VLookup-tp4030082.html > >> Sent from the Drools: User forum mailing list archive at Nabble.com. > >> _______________________________________________ > >> rules-users mailing list > >> > > > rules-users at .jboss > > >> https://lists.jboss.org/mailman/listinfo/rules-users > >> > > > > _______________________________________________ > > rules-users mailing list > > > rules-users at .jboss > > > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/5-6-Decision-Table-VLookup-tp4030082p4030084.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140617/4bdefbd8/attachment.html From gboro54 at gmail.com Tue Jun 17 15:51:33 2014 From: gboro54 at gmail.com (gboro54) Date: Tue, 17 Jun 2014 12:51:33 -0700 (PDT) Subject: [rules-users] 5.6 Decision Table VLookup In-Reply-To: References: <1403019360914-4030082.post@n3.nabble.com> <1403022330863-4030084.post@n3.nabble.com> Message-ID: <1403034693037-4030086.post@n3.nabble.com> I will work on a test case and create a defect for it. I will see if I can't get some time to take a look at this myself but will keep you informed about my status on completing this ticket manstis wrote > That then is indeed a bug. > > Can you please raise a DROOLS JIRA and attach a unit test demonstrating > the > problem (preferably please submit your unit test as a Pull Request)? > > We're always on the look out for community contributions, so if you want > to > tackle a fix it would be appreciated; otherwise we'll add the JIRA to the > list to look at some time. > > With kind regards, > > Mike > > > > > On 17 June 2014 17:25, gboro54 < > gboro54@ > > wrote: > >> They are different sheets. Basically we have a our tables on sheet 1 and >> sheet 2 is populated from an import of data from an external datasource >> to >> allow a vlookup of information(so the business user can see the data/and >> we >> can maintain it) >> >> >> manstis wrote >> > Is the VLOOKUP in the same sheet? >> > >> > I think there are problems with Apache POI resolving formulas across >> > different worksheets (but am guessing based on some other changes we >> had >> > to >> > make regarding linked workbooks). >> > >> > >> > On 17 June 2014 16:36, gboro54 < >> >> > gboro54@ >> >> > > wrote: >> > >> >> Is there a way to have a decision table behave with a vloopup? >> Basically >> >> we >> >> have a metadata column which the user can select from a drop down. >> This >> >> then >> >> drives the values of the action columns. This works except that >> instead >> >> of >> >> the value of the vlookup I see the actual vlookup text(i.e something >> like >> >> VLOOKUP(F11)). >> >> >> >> Is this possible? >> >> >> >> >> >> >> >> -- >> >> View this message in context: >> >> >> http://drools.46999.n3.nabble.com/5-6-Decision-Table-VLookup-tp4030082.html >> >> Sent from the Drools: User forum mailing list archive at Nabble.com. >> >> _______________________________________________ >> >> rules-users mailing list >> >> >> >> > rules-users at .jboss >> >> >> https://lists.jboss.org/mailman/listinfo/rules-users >> >> >> > >> > _______________________________________________ >> > rules-users mailing list >> >> > rules-users at .jboss >> >> > https://lists.jboss.org/mailman/listinfo/rules-users >> >> >> >> >> >> -- >> View this message in context: >> http://drools.46999.n3.nabble.com/5-6-Decision-Table-VLookup-tp4030082p4030084.html >> Sent from the Drools: User forum mailing list archive at Nabble.com. >> _______________________________________________ >> rules-users mailing list >> > rules-users at .jboss >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > _______________________________________________ > rules-users mailing list > rules-users at .jboss > https://lists.jboss.org/mailman/listinfo/rules-users -- View this message in context: http://drools.46999.n3.nabble.com/5-6-Decision-Table-VLookup-tp4030082p4030086.html Sent from the Drools: User forum mailing list archive at Nabble.com. From michael.anstis at gmail.com Tue Jun 17 16:14:17 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Tue, 17 Jun 2014 21:14:17 +0100 Subject: [rules-users] 5.6 Decision Table VLookup In-Reply-To: <1403034693037-4030086.post@n3.nabble.com> References: <1403019360914-4030082.post@n3.nabble.com> <1403022330863-4030084.post@n3.nabble.com> <1403034693037-4030086.post@n3.nabble.com> Message-ID: Thank-you Sent on the move On 17 Jun 2014 20:52, "gboro54" wrote: > > I will work on a test case and create a defect for it. I will see if I > can't > get some time to take a look at this myself but will keep you informed > about > my status on completing this ticket > > > manstis wrote > > That then is indeed a bug. > > > > Can you please raise a DROOLS JIRA and attach a unit test demonstrating > > the > > problem (preferably please submit your unit test as a Pull Request)? > > > > We're always on the look out for community contributions, so if you want > > to > > tackle a fix it would be appreciated; otherwise we'll add the JIRA to the > > list to look at some time. > > > > With kind regards, > > > > Mike > > > > > > > > > > On 17 June 2014 17:25, gboro54 < > > > gboro54@ > > > > wrote: > > > >> They are different sheets. Basically we have a our tables on sheet 1 > and > >> sheet 2 is populated from an import of data from an external datasource > >> to > >> allow a vlookup of information(so the business user can see the data/and > >> we > >> can maintain it) > >> > >> > >> manstis wrote > >> > Is the VLOOKUP in the same sheet? > >> > > >> > I think there are problems with Apache POI resolving formulas across > >> > different worksheets (but am guessing based on some other changes we > >> had > >> > to > >> > make regarding linked workbooks). > >> > > >> > > >> > On 17 June 2014 16:36, gboro54 < > >> > >> > gboro54@ > >> > >> > > wrote: > >> > > >> >> Is there a way to have a decision table behave with a vloopup? > >> Basically > >> >> we > >> >> have a metadata column which the user can select from a drop down. > >> This > >> >> then > >> >> drives the values of the action columns. This works except that > >> instead > >> >> of > >> >> the value of the vlookup I see the actual vlookup text(i.e something > >> like > >> >> VLOOKUP(F11)). > >> >> > >> >> Is this possible? > >> >> > >> >> > >> >> > >> >> -- > >> >> View this message in context: > >> >> > >> > http://drools.46999.n3.nabble.com/5-6-Decision-Table-VLookup-tp4030082.html > >> >> Sent from the Drools: User forum mailing list archive at Nabble.com. > >> >> _______________________________________________ > >> >> rules-users mailing list > >> >> > >> > >> > rules-users at .jboss > >> > >> >> https://lists.jboss.org/mailman/listinfo/rules-users > >> >> > >> > > >> > _______________________________________________ > >> > rules-users mailing list > >> > >> > rules-users at .jboss > >> > >> > https://lists.jboss.org/mailman/listinfo/rules-users > >> > >> > >> > >> > >> > >> -- > >> View this message in context: > >> > http://drools.46999.n3.nabble.com/5-6-Decision-Table-VLookup-tp4030082p4030084.html > >> Sent from the Drools: User forum mailing list archive at Nabble.com. > >> _______________________________________________ > >> rules-users mailing list > >> > > > rules-users at .jboss > > >> https://lists.jboss.org/mailman/listinfo/rules-users > >> > > > > _______________________________________________ > > rules-users mailing list > > > rules-users at .jboss > > > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/5-6-Decision-Table-VLookup-tp4030082p4030086.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140617/bcab89a7/attachment.html From nareshthota005 at gmail.com Wed Jun 18 01:58:19 2014 From: nareshthota005 at gmail.com (naresh.t) Date: Tue, 17 Jun 2014 22:58:19 -0700 (PDT) Subject: [rules-users] Comparing Objects of same class. In-Reply-To: References: <1403005309986-4030073.post@n3.nabble.com> <1403009201386-4030079.post@n3.nabble.com> Message-ID: <1403071099678-4030088.post@n3.nabble.com> Dear Wolfgang, Thanks for your patience and understandings. Let me clear our requirement. Actually we are not working any student psychology thing. I thought to simplify the problem in terms of Student example but it is getting complicated. What we are trying to achieve is... We have some RAW logs(windows event logs like login success, login failed, bad user name and password etc., along with date and time) in our DB. We are trying get trend of some particular events like bad user name and password. If these type of events are happening in less span of time, then we will find those user names and do some activity on them. In our existing application, we have achieved this by using java with hard coded inputs. Means we are getting those events, if any 5 events occurred in 3 minutes. Now we are trying to add some dynamism for these type of requirements. We are exploring Drools Rule Engines to check that is it compatible with these type of rules. If you have any other Rule Engines in your mind, please suggest us. Thanks Naresh -- View this message in context: http://drools.46999.n3.nabble.com/Comparing-Objects-of-same-class-tp4030073p4030088.html Sent from the Drools: User forum mailing list archive at Nabble.com. From shrinath.managuli at aspiresys.com Wed Jun 18 02:03:42 2014 From: shrinath.managuli at aspiresys.com (Shrinath Managuli) Date: Wed, 18 Jun 2014 06:03:42 +0000 Subject: [rules-users] =?utf-8?q?Need_help_in_understanding_Data_enumerati?= =?utf-8?q?on=E2=80=99s_drop_down_list_configuration?= In-Reply-To: References: <564fb77209fb447c95c602a1d6b85da6@HKNPR02MB019.apcprd02.prod.outlook.com> <7f9a0a875f274b549649c2406c0f8292@HKNPR02MB019.apcprd02.prod.outlook.com> Message-ID: <92e0cbfdbffe44e0a9739bbb1f1b7b29@HKNPR02MB019.apcprd02.prod.outlook.com> Hi Michael, Thanks, it works as you said. -Shrinath From: rules-users-bounces at lists.jboss.org [mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Michael Anstis Sent: 17 June 2014 18:02 To: Rules Users List Subject: Re: [rules-users] Need help in understanding Data enumeration?s drop down list configuration Hello, "Workbench enums" (i.e. not Java ones) are scoped at the package level and hence should not contain a fully qualified class name. If you amend your definition to simply use "Customer" it should be OK. On 17 June 2014 10:30, Shrinath Managuli > wrote: Hi Michael, I?m getting a text box not a drop down like below, [cid:image001.png at 01CF8A3C.9A96D200] -Shrinath From: rules-users-bounces at lists.jboss.org [mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Michael Anstis Sent: 17 June 2014 14:44 To: Rules Users List Subject: Re: [rules-users] Need help in understanding Data enumeration?s drop down list configuration What happens if you click on the "pencil" next to "equal to" dropdown and select "literal value"? This is when you should see the enum list. On 17 June 2014 10:00, Shrinath Managuli > wrote: Hi Drools, Need help in understanding Data enumeration?s drop down list configuration, I had created a simple data enumeration as, [cid:image002.png at 01CF8AE9.271DA120] For this, I also created a Customer object with a code field as String at org.kie.example.project1 package. While creating guided rule, I?m unable to view the enumeration as drop down as like below, [cid:image003.png at 01CF8AE9.271DA120] I had tried this scenario with JBoss BRMS 6. Please help me to understand on how to populate the drop down using data enumeration. Thanks, srinath [Image removed by sender. Aspire Systems] This e-mail message and any attachments are for the sole use of the intended recipient(s) and may contain proprietary, confidential, trade secret or privileged information. Any unauthorized review, use, disclosure or distribution is prohibited and may be a violation of law. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. _______________________________________________ rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users [Image removed by sender. Aspire Systems] This e-mail message and any attachments are for the sole use of the intended recipient(s) and may contain proprietary, confidential, trade secret or privileged information. Any unauthorized review, use, disclosure or distribution is prohibited and may be a violation of law. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. _______________________________________________ rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users [Aspire Systems] This e-mail message and any attachments are for the sole use of the intended recipient(s) and may contain proprietary, confidential, trade secret or privileged information. Any unauthorized review, use, disclosure or distribution is prohibited and may be a violation of law. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140618/239d2328/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: ~WRD000.jpg Type: image/jpeg Size: 823 bytes Desc: ~WRD000.jpg Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140618/239d2328/attachment-0001.jpg -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.png Type: image/png Size: 16334 bytes Desc: image001.png Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140618/239d2328/attachment-0003.png -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.png Type: image/png Size: 7364 bytes Desc: image002.png Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140618/239d2328/attachment-0004.png -------------- next part -------------- A non-text attachment was scrubbed... Name: image003.png Type: image/png Size: 17931 bytes Desc: image003.png Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140618/239d2328/attachment-0005.png From borris at chaos.org.uk Wed Jun 18 08:31:54 2014 From: borris at chaos.org.uk (Borris) Date: Wed, 18 Jun 2014 05:31:54 -0700 (PDT) Subject: [rules-users] Noob question: graph searching, query, root node for a given node Message-ID: <1403094714183-4030091.post@n3.nabble.com> I'm after a quick bit of help on how to do something that I think should be easy but I can't work out how. I have a Java-side class that essentially is something like declare Datum description: String broader: List narrower: List end These are arranged in a graph. Root nodes have no items in their broader list. I want a query that takes a datum and yields the root nodes for that datum. I think this should look something like query rootDatumsFor( Datum datum, Datum result ) not Datum() from $datum.broader or rootDatumsFor( $datum.broader, $result ) end but I then get confused. When there are no broader items, I am unclear how to assign $datum to $result. And I'm not convinced I'm doing the recursion correctly either. If an experienced Drools author could spend a minute and show me how to do this sensibly, I would be very grateful. -- View this message in context: http://drools.46999.n3.nabble.com/Noob-question-graph-searching-query-root-node-for-a-given-node-tp4030091.html Sent from the Drools: User forum mailing list archive at Nabble.com. From federico.bertola88 at gmail.com Wed Jun 18 11:23:55 2014 From: federico.bertola88 at gmail.com (Federico Bertola) Date: Wed, 18 Jun 2014 17:23:55 +0200 Subject: [rules-users] Problems compiling huge rule base with kie-maven-plugin In-Reply-To: <1402926144990-4030065.post@n3.nabble.com> References: <1402596209833-4030026.post@n3.nabble.com> <1402661396513-4030032.post@n3.nabble.com> <1402926144990-4030065.post@n3.nabble.com> Message-ID: <53A1AF0B.9060302@gmail.com> Hi all, at work we have a huge rule base (>2k rules with an average size of ~2Mib). I've found the building this RB with the latest kie-maven-plugin troublesome at best. I want to share my experience hoping that some Drools developer could help me. I'm using the latest Drools 6.x from the master branch. The first problem I encounterd was that the compilation process retain in memory all the compilation caches until the end. This would lead to a OOM very soon and we can't increase the heap size indefinitely. So the first thing I do was to extract the code from KieModuleMetaInfoBuilder and create a custom builder that would populate a guava cache for every KnowledgeBase compiled. The aforementioned cache would write the bytestreams when the objects get evicted. That worked well and leaded finally to a full compilation. The only problem was the long time one has to wait until completion. Some few rules take up to 30 min. to complete but the majority takes from 5 to 20 secs. So I extended the custom compiler to be multithreaded and finally the compilation time is acceptable again. I also extended the compiler to perform incremental compilations. Now my problem is that the generated kjar is rather huge and when I load it I get an OOM again. Peeking at the code again confirm (if I get this correctly) that all the caches gets loaded altogether, moving the problem to compile time to run time. Is it possible to force the KieContainer to load the caches lazily, based on calls to getKieBase? If not, would it be usefull? I understand that my case is rather on the edge but any help would be appreciated. Thank you very much :) Federico. From mario.fusco at gmail.com Wed Jun 18 11:48:31 2014 From: mario.fusco at gmail.com (Mario Fusco) Date: Wed, 18 Jun 2014 08:48:31 -0700 (PDT) Subject: [rules-users] Problems compiling huge rule base with kie-maven-plugin In-Reply-To: <53A1AF0B.9060302@gmail.com> References: <1402596209833-4030026.post@n3.nabble.com> <1402661396513-4030032.post@n3.nabble.com> <1402926144990-4030065.post@n3.nabble.com> <53A1AF0B.9060302@gmail.com> Message-ID: <1403106511276-4030093.post@n3.nabble.com> Hi Federico, so we have 2 problems here. For what regards the compilation one I'd be curious to see your solution. Could you please open a ticket on our jira and attach it there, or maybe send a pull request on github? As for the runtime, yes probably loading stuff lazier in the KieContainer could alleviate also that problem, but first I'd like to give a look at what you're doing to better understand your use case. Could you also attach a reproducer to that jira ticket? Thanks, Mario -- View this message in context: http://drools.46999.n3.nabble.com/Possible-problem-in-PathMemory-tp4030026p4030093.html Sent from the Drools: User forum mailing list archive at Nabble.com. From mproctor at codehaus.org Wed Jun 18 13:19:35 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Wed, 18 Jun 2014 18:19:35 +0100 Subject: [rules-users] Noob question: graph searching, query, root node for a given node In-Reply-To: <1403094714183-4030091.post@n3.nabble.com> References: <1403094714183-4030091.post@n3.nabble.com> Message-ID: <70B17266-9AAF-4DDD-AC58-3216ACC7CD70@codehaus.org> > I want a query that takes a datum and yields the root nodes for that datum. Do you mean root node or nodes? Surely there can only be one root? Or do you mean you are looking for the leafs? Mark On 18 Jun 2014, at 13:31, Borris wrote: > I'm after a quick bit of help on how to do something that I think should be > easy but I can't work out how. > > I have a Java-side class that essentially is something like > > declare Datum > description: String > broader: List > narrower: List > end > > These are arranged in a graph. Root nodes have no items in their broader > list. I want a query that takes a datum and yields the root nodes for that > datum. I think this should look something like > > query rootDatumsFor( Datum datum, Datum result ) > not Datum() from $datum.broader > or > rootDatumsFor( $datum.broader, $result ) > end > > but I then get confused. When there are no broader items, I am unclear how > to assign $datum to $result. And I'm not convinced I'm doing the recursion > correctly either. > > If an experienced Drools author could spend a minute and show me how to do > this sensibly, I would be very grateful. > > > > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Noob-question-graph-searching-query-root-node-for-a-given-node-tp4030091.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From borris at chaos.org.uk Wed Jun 18 13:44:34 2014 From: borris at chaos.org.uk (Borris) Date: Wed, 18 Jun 2014 10:44:34 -0700 (PDT) Subject: [rules-users] Noob question: graph searching, query, root node for a given node In-Reply-To: <70B17266-9AAF-4DDD-AC58-3216ACC7CD70@codehaus.org> References: <1403094714183-4030091.post@n3.nabble.com> <70B17266-9AAF-4DDD-AC58-3216ACC7CD70@codehaus.org> Message-ID: <1403113474474-4030096.post@n3.nabble.com> Good question. I'm supporting a graph rather than a tree, so theoretically there could be more than one node that has no parents. But in my particular use case I am constraining the data so that there is never more than one root node. So how to find the root node (singular) from an arbitrary node in the graph is my goal. -- View this message in context: http://drools.46999.n3.nabble.com/Noob-question-graph-searching-query-root-node-for-a-given-node-tp4030091p4030096.html Sent from the Drools: User forum mailing list archive at Nabble.com. From borris at chaos.org.uk Wed Jun 18 14:09:32 2014 From: borris at chaos.org.uk (Borris) Date: Wed, 18 Jun 2014 11:09:32 -0700 (PDT) Subject: [rules-users] Noob question: graph searching, query, root node for a given node In-Reply-To: <1403113474474-4030096.post@n3.nabble.com> References: <1403094714183-4030091.post@n3.nabble.com> <70B17266-9AAF-4DDD-AC58-3216ACC7CD70@codehaus.org> <1403113474474-4030096.post@n3.nabble.com> Message-ID: <1403114972495-4030097.post@n3.nabble.com> I guess it's probably useful for me to add that there are multiple such graphs and key part of the operation is which graph a datum belongs to. -- View this message in context: http://drools.46999.n3.nabble.com/Noob-question-graph-searching-query-root-node-for-a-given-node-tp4030091p4030097.html Sent from the Drools: User forum mailing list archive at Nabble.com. From wolfgang.laun at gmail.com Wed Jun 18 14:09:46 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Wed, 18 Jun 2014 20:09:46 +0200 Subject: [rules-users] Noob question: graph searching, query, root node for a given node In-Reply-To: <1403113474474-4030096.post@n3.nabble.com> References: <1403094714183-4030091.post@n3.nabble.com> <70B17266-9AAF-4DDD-AC58-3216ACC7CD70@codehaus.org> <1403113474474-4030096.post@n3.nabble.com> Message-ID: Terms like "root" and "parent" are used with trees. You might call these nodes "nodes with indegree 0". -W On 18/06/2014, Borris wrote: > Good question. I'm supporting a graph rather than a tree, so theoretically > there could be more than one node that has no parents. But in my particular > use case I am constraining the data so that there is never more than one > root node. > > So how to find the root node (singular) from an arbitrary node in the graph > is my goal. > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Noob-question-graph-searching-query-root-node-for-a-given-node-tp4030091p4030096.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From mproctor at codehaus.org Wed Jun 18 14:57:29 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Wed, 18 Jun 2014 19:57:29 +0100 Subject: [rules-users] Noob question: graph searching, query, root node for a given node In-Reply-To: <1403113474474-4030096.post@n3.nabble.com> References: <1403094714183-4030091.post@n3.nabble.com> <70B17266-9AAF-4DDD-AC58-3216ACC7CD70@codehaus.org> <1403113474474-4030096.post@n3.nabble.com> Message-ID: <0515436D-4533-4DB1-8383-57CE5564B48A@codehaus.org> It looks like your graph is not in the WM, so you can just iterate the references. Here is an example of how to do this. @Test public void testGraphIterationToFindLeafs() { String drl = "import " + Datum.class.getCanonicalName() + ";\n" + "import java.util.List;\n" + "query findLeafs(Datum datum, List results)\n" + " ( eval( datum.getChildren().size() == 0 ) and \n" + " eval( results.add ( datum ) ) )\n" + " or \n" + " ( eval( datum.getChildren().size() != 0 ) and \n" + " child : Datum( ) from datum.children and\n" + " findLeafs( child, results; ) ) \n" + "end\n"; System.out.println( drl ); KnowledgeBase knowledgeBase = loadKnowledgeBaseFromString( drl ); StatefulKnowledgeSession ksession = knowledgeBase.newStatefulKnowledgeSession(); List list = new ArrayList(); Datum d1 = new Datum("d1"); Datum d2 = new Datum("d2"); Datum d3 = new Datum("d3"); Datum d4 = new Datum("d4"); Datum d5 = new Datum("d5"); Datum d6 = new Datum("d6"); Datum d7 = new Datum("d7"); d1.getChildren().add( d2 ); d1.getChildren().add( d3 ); d3.getChildren().add( d4 ); d3.getChildren().add( d5 ) ; d5.getChildren().add( d6 ) ; d6.getChildren().add( d7 ) ; ksession.getQueryResults("findLeafs", d1, list); System.out.println( list ); } public static class Datum { private String description; private List children; public Datum(String description) { this.description = description; children = new ArrayList(); } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public List getChildren() { return children; } @Override public String toString() { return "Datum{" + "description='" + description + '\'' + '}'; } } On 18 Jun 2014, at 18:44, Borris wrote: > Good question. I'm supporting a graph rather than a tree, so theoretically > there could be more than one node that has no parents. But in my particular > use case I am constraining the data so that there is never more than one > root node. > > So how to find the root node (singular) from an arbitrary node in the graph > is my goal. > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Noob-question-graph-searching-query-root-node-for-a-given-node-tp4030091p4030096.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140618/e8aae2de/attachment-0001.html From michael1.cis at gmail.com Wed Jun 18 15:30:12 2014 From: michael1.cis at gmail.com (mikedev9000) Date: Wed, 18 Jun 2014 12:30:12 -0700 (PDT) Subject: [rules-users] KieContainer#updateToVersion fails when both versions of a drl file contain an event type declaration for an existing class Message-ID: <1403119812069-4030100.post@n3.nabble.com> I am using the latest drools 6.1.0-SNAPSHOT. I have two jars containing different versions of a KieModule, and they each contain a drl file with an event type declaration for an existing class. If I try to update the container from one version to the other, the call to KieContainer#updateToVersion returns a Results instance that contains errors related to the @timestamp attribute on that event declaration. Here is an example of the error message: "[Message [id=1, level=ERROR, path=r0.drl, line=3, column=0 text=Error creating field accessors for timestamp field 'mytime' for type 'FooEvent']]". The following .patch file can be used to add a unit test to the IncrementalCompilationTest.java file that demonstrates this problem. test_container_update_problem.patch After applying the patch, and running this unit test, I see the following test failure: java.lang.AssertionError: Errors detected on updateToVersion: [Message [id=1, level=ERROR, path=r0.drl, line=3, column=0 text=Error creating field accessors for timestamp field 'mytime' for type 'FooEvent']] at org.junit.Assert.fail(Assert.java:88) at org.junit.Assert.assertTrue(Assert.java:41) at org.junit.Assert.assertFalse(Assert.java:64) at org.drools.compiler.integrationtests.IncrementalCompilationTest.testUpdateWithDeclarationPresent(IncrementalCompilationTest.java:95) This error makes it nearly impossible for me to rely on and use KieContainer#updateToVersion, because I need to allow frequent changes to be made to drl files at run time, and I would prefer not to recreate the KieContainer, and all of its KieBases and KieSessions on every update. Is this a known issue? If so, are there plans to fix it before the 6.1.0.Final release? -- View this message in context: http://drools.46999.n3.nabble.com/KieContainer-updateToVersion-fails-when-both-versions-of-a-drl-file-contain-an-event-type-declaratios-tp4030100.html Sent from the Drools: User forum mailing list archive at Nabble.com. From mproctor at codehaus.org Wed Jun 18 16:16:39 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Wed, 18 Jun 2014 21:16:39 +0100 Subject: [rules-users] KieContainer#updateToVersion fails when both versions of a drl file contain an event type declaration for an existing class In-Reply-To: <1403119812069-4030100.post@n3.nabble.com> References: <1403119812069-4030100.post@n3.nabble.com> Message-ID: Looks like a bug. Please try on 6.1CR1. http://mvnrepository.com/artifact/org.drools If it?s not fixed, and yo want it fixed you?ll need to submit a pull request with a failing unit test: http://docs.jboss.org/drools/release/5.6.0.Final/droolsjbpm-introduction-docs/html/gettingstarted.html You can see unit tests for incremental updates here: https://github.com/droolsjbpm/drools/blob/master/drools-compiler/src/test/java/org/drools/compiler/integrationtests/IncrementalCompilationTest.java Please try and add your unit test to that class, in the same format as the other tests. Mark On 18 Jun 2014, at 20:30, mikedev9000 wrote: > I am using the latest drools 6.1.0-SNAPSHOT. I have two jars containing > different versions of a KieModule, and they each contain a drl file with an > event type declaration for an existing class. If I try to update the > container from one version to the other, the call to > KieContainer#updateToVersion returns a Results instance that contains errors > related to the @timestamp attribute on that event declaration. Here is an > example of the error message: "[Message [id=1, level=ERROR, path=r0.drl, > line=3, column=0 > text=Error creating field accessors for timestamp field 'mytime' for type > 'FooEvent']]". > > The following .patch file can be used to add a unit test to the > IncrementalCompilationTest.java file that demonstrates this problem. > > test_container_update_problem.patch > > > After applying the patch, and running this unit test, I see the following > test failure: > > > java.lang.AssertionError: Errors detected on updateToVersion: [Message > [id=1, level=ERROR, path=r0.drl, line=3, column=0 > text=Error creating field accessors for timestamp field 'mytime' for type > 'FooEvent']] > at org.junit.Assert.fail(Assert.java:88) > at org.junit.Assert.assertTrue(Assert.java:41) > at org.junit.Assert.assertFalse(Assert.java:64) > at > org.drools.compiler.integrationtests.IncrementalCompilationTest.testUpdateWithDeclarationPresent(IncrementalCompilationTest.java:95) > > > > This error makes it nearly impossible for me to rely on and use > KieContainer#updateToVersion, because I need to allow frequent changes to be > made to drl files at run time, and I would prefer not to recreate the > KieContainer, and all of its KieBases and KieSessions on every update. > > Is this a known issue? If so, are there plans to fix it before the > 6.1.0.Final release? > > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/KieContainer-updateToVersion-fails-when-both-versions-of-a-drl-file-contain-an-event-type-declaratios-tp4030100.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From roger at precipicetech.com Wed Jun 18 16:26:57 2014 From: roger at precipicetech.com (rogerL) Date: Wed, 18 Jun 2014 13:26:57 -0700 (PDT) Subject: [rules-users] accumulate function not registered Message-ID: <1403123217207-4030102.post@n3.nabble.com> After upgrade to 6.1.0.CR1 rule compilation is generating a pluggable accumulate function registration error. Partial stack dump: Caused by: java.lang.RuntimeException: Error while creating KieBase[Message [id=1, level=ERROR, path=com/s/c/manager/rules/campaign/priority/prioritize.drl, line=31, column=0 text=Unknown accumulate function: 'topPriority' on rule 'Insert highest priority campaign'. All accumulate functions must be registered before building a resource.], Message [id=2, level=ERROR, path=com/s/c/manager/rules/campaign/priority/prioritize.drl, line=31, column=0 text=Rule Compilation error $tc cannot be resolved to a variable]] The associated rule and accumulate import are: import accumulate com.s.c.util.HighestPriorityCampaignAccumulateFunction topPriority; rule "Insert highest priority campaign" when not TopCampaign() accumulate(TargetCampaigns($list : list, list.size >0), $tc : topPriority( $list ) ) then insert(new TopCampaign($tc)); end Is this syntax no longer correct? -- View this message in context: http://drools.46999.n3.nabble.com/accumulate-function-not-registered-tp4030102.html Sent from the Drools: User forum mailing list archive at Nabble.com. From dsotty at gmail.com Wed Jun 18 16:00:13 2014 From: dsotty at gmail.com (Davide Sottara) Date: Wed, 18 Jun 2014 15:00:13 -0500 Subject: [rules-users] accumulate function not registered In-Reply-To: <1403123217207-4030102.post@n3.nabble.com> References: <1403123217207-4030102.post@n3.nabble.com> Message-ID: <53A1EFCD.6030008@gmail.com> can you please open a jira ticket and possibly add a reproducer? It seems a serious regression, but it would have to be reproduced and fixed in the next few days for this to make it to the final release Thanks! Davide On 06/18/2014 03:26 PM, rogerL wrote: > After upgrade to 6.1.0.CR1 rule compilation is generating a pluggable > accumulate function registration error. > > Partial stack dump: > Caused by: java.lang.RuntimeException: Error while creating KieBase[Message > [id=1, level=ERROR, > path=com/s/c/manager/rules/campaign/priority/prioritize.drl, line=31, > column=0 > text=Unknown accumulate function: 'topPriority' on rule 'Insert highest > priority campaign'. All accumulate functions must be registered before > building a resource.], Message [id=2, level=ERROR, > path=com/s/c/manager/rules/campaign/priority/prioritize.drl, line=31, > column=0 > text=Rule Compilation error $tc cannot be resolved to a variable]] > > The associated rule and accumulate import are: > > import accumulate com.s.c.util.HighestPriorityCampaignAccumulateFunction > topPriority; > > rule "Insert highest priority campaign" > when > not TopCampaign() > accumulate(TargetCampaigns($list : list, list.size >0), $tc : > topPriority( $list ) ) > then > insert(new TopCampaign($tc)); > end > > Is this syntax no longer correct? > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/accumulate-function-not-registered-tp4030102.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From borris at chaos.org.uk Wed Jun 18 18:08:53 2014 From: borris at chaos.org.uk (Borris) Date: Wed, 18 Jun 2014 15:08:53 -0700 (PDT) Subject: [rules-users] Noob question: graph searching, query, root node for a given node In-Reply-To: <0515436D-4533-4DB1-8383-57CE5564B48A@codehaus.org> References: <1403094714183-4030091.post@n3.nabble.com> <70B17266-9AAF-4DDD-AC58-3216ACC7CD70@codehaus.org> <1403113474474-4030096.post@n3.nabble.com> <0515436D-4533-4DB1-8383-57CE5564B48A@codehaus.org> Message-ID: <1403129333092-4030104.post@n3.nabble.com> Thanks Mark. I should probably focus on your observation that my graph is not in the working memory. Let me go and have a thank. Good food to prompt me to think! -- View this message in context: http://drools.46999.n3.nabble.com/Noob-question-graph-searching-query-root-node-for-a-given-node-tp4030091p4030104.html Sent from the Drools: User forum mailing list archive at Nabble.com. From federico.bertola88 at gmail.com Wed Jun 18 18:31:53 2014 From: federico.bertola88 at gmail.com (Federico Bertola) Date: Thu, 19 Jun 2014 00:31:53 +0200 Subject: [rules-users] Problems compiling huge rule base with kie-maven-plugin In-Reply-To: <1403106511276-4030093.post@n3.nabble.com> References: <1402596209833-4030026.post@n3.nabble.com> <1402661396513-4030032.post@n3.nabble.com> <1402926144990-4030065.post@n3.nabble.com> <53A1AF0B.9060302@gmail.com> <1403106511276-4030093.post@n3.nabble.com> Message-ID: <53A21359.3020906@gmail.com> Hi Mario, thanks for the quick reply. Yes I could definitely open a jira and a pull request, just be patient though, as I've to isolate the code from our own. Reproducing the slowdown I experienced would be a little problematic because it depends, I think, entirely on the size (and "shape") of our RB. Thanks again, Federico. On 06/18/2014 05:48 PM, Mario Fusco wrote: > Hi Federico, > > so we have 2 problems here. For what regards the compilation one I'd be > curious to see your solution. Could you please open a ticket on our jira and > attach it there, or maybe send a pull request on github? As for the runtime, > yes probably loading stuff lazier in the KieContainer could alleviate also > that problem, but first I'd like to give a look at what you're doing to > better understand your use case. Could you also attach a reproducer to that > jira ticket? > > Thanks, > Mario > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Possible-problem-in-PathMemory-tp4030026p4030093.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From reddy.lakshmi at gmail.com Thu Jun 19 01:35:08 2014 From: reddy.lakshmi at gmail.com (LaKhI ReDdY!!!!!!!!!!!) Date: Thu, 19 Jun 2014 11:05:08 +0530 Subject: [rules-users] Need BRMS migration tool download zip file location to download Message-ID: Hi , I need to migrate repository from BRMS 5.1.1 to BRMS 6.0.1. In BRMS 6.0.1 Administration And Configuration Guide , i read we can do migrating using data migration tool. I could not able to find where this migration tool download zip available. IF anybody knows, please provide me the path/location/url to download the migration tool zip file? Thanks, Lakshmi Reddy -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140619/e935e771/attachment.html From michael.anstis at gmail.com Thu Jun 19 01:42:28 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Thu, 19 Jun 2014 06:42:28 +0100 Subject: [rules-users] Need BRMS migration tool download zip file location to download In-Reply-To: References: Message-ID: Download the Drools Workbench distribution from the Drools download page on the Drools website. It is in that zip file (jcr2vfs migration). Sent on the move On 19 Jun 2014 06:36, "LaKhI ReDdY!!!!!!!!!!!" wrote: > Hi , > > I need to migrate repository from BRMS 5.1.1 to BRMS 6.0.1. > In BRMS 6.0.1 Administration And Configuration Guide , i read we can do > migrating using data migration tool. > I could not able to find where this migration tool download zip available. > > IF anybody knows, please provide me the path/location/url to download the > migration tool zip file? > > Thanks, > Lakshmi Reddy > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140619/603bd273/attachment.html From zahid.ahmed at emirates.com Thu Jun 19 02:17:59 2014 From: zahid.ahmed at emirates.com (Zahid Ahmed) Date: Thu, 19 Jun 2014 06:17:59 +0000 Subject: [rules-users] Workbench not Working in Resilient Environment Message-ID: Hi, I am trying to setup Drools6 Workbench ion a resilient mode but am unable to sync the assets amongst the resilient members. Kindly have a look at the detailed question posted earlier. Subject in Drools Forum "Drools Workbench | VFS Clustering Error | NoNode for jbpm-cluster" Regards, Zahid Ahmed -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140619/ee5ad1b1/attachment-0001.html From alainbroft at gmail.com Thu Jun 19 09:30:22 2014 From: alainbroft at gmail.com (alainb) Date: Thu, 19 Jun 2014 06:30:22 -0700 (PDT) Subject: [rules-users] Optaplanner - Linking time windows of vendors and the depot Message-ID: <1403184622623-4030113.post@n3.nabble.com> Dear All, I'm trying to model multiple time windows of the same vendor by multiplying the vendors with different time windows and demand. This seems to work. However, I can do the same with the depot but it doesn't represent what I need. I'm using salomon tw example, but i need certain demand to be there in one time window of the depot, and other demand at the other time window of the depot. In other words, I would need to link demand at a time window of a vendor to a specific time window of the depot. Does anyone know if there is any possibility to do this? Or can somebody suggest me some further steps. I would be really thankful. Thank you all in advance, Kind Regards, Alain -- View this message in context: http://drools.46999.n3.nabble.com/Optaplanner-Linking-time-windows-of-vendors-and-the-depot-tp4030113.html Sent from the Drools: User forum mailing list archive at Nabble.com. From wolfgang.laun at gmail.com Thu Jun 19 12:07:59 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Thu, 19 Jun 2014 18:07:59 +0200 Subject: [rules-users] Comparing Objects of same class. In-Reply-To: <1403071099678-4030088.post@n3.nabble.com> References: <1403005309986-4030073.post@n3.nabble.com> <1403009201386-4030079.post@n3.nabble.com> <1403071099678-4030088.post@n3.nabble.com> Message-ID: This is one of the scenarios that can be handled using CEP (Complex Event Processing) - basically rule logic with some extensions to make time based reasoning more convenient. In Drools, you have @event to declare a fact type as an event type, temporal operators to establish temporal relations between events, "windows" to select recently arrived subsets of facts, etc. Much depends on whether you need to handle this in real time or whether it's going to be handled over a bulk of historic data. All my hints on mapping facts to days are useless - you may have to use floating intervals or an approach that's triggered by the first smell of a certain "crime"... -W On 18/06/2014, naresh.t wrote: > Dear Wolfgang, Thanks for your patience and understandings. > > Let me clear our requirement. Actually we are not working any student > psychology thing. I thought to simplify the problem in terms of Student > example but it is getting complicated. > > What we are trying to achieve is... > We have some RAW logs(windows event logs like login success, login failed, > bad user name and password etc., along with date and time) in our DB. > > We are trying get trend of some particular events like bad user name and > password. If these type of events are happening in less span of time, then > we will find those user names and do some activity on them. > > In our existing application, we have achieved this by using java with hard > coded inputs. Means we are getting those events, if any 5 events occurred > in > 3 minutes. > > Now we are trying to add some dynamism for these type of requirements. We > are exploring Drools Rule Engines to check that is it compatible with these > type of rules. If you have any other Rule Engines in your mind, please > suggest us. > > Thanks > Naresh > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Comparing-Objects-of-same-class-tp4030073p4030088.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From roger at precipicetech.com Thu Jun 19 12:41:18 2014 From: roger at precipicetech.com (rogerL) Date: Thu, 19 Jun 2014 09:41:18 -0700 (PDT) Subject: [rules-users] accumulate function not registered In-Reply-To: <53A1EFCD.6030008@gmail.com> References: <1403123217207-4030102.post@n3.nabble.com> <53A1EFCD.6030008@gmail.com> Message-ID: <1403196078650-4030116.post@n3.nabble.com> Did a partial rollback and it resolve the problem. Encountered this issue in effort to get around a spring boot from jar problem. Initially refactored code then upgraded to 6.1.0-CR1. Was at that point the issue arose. On rolling back my refactor (and maintaining the drools 6.1.0-CR1 version) the issue was cleared. A little perplexed on that. Suspect it may have something to do with class loading, but only a guess. Does the location of the .drl (resource) files in the project structure affect the build and boot process? -- View this message in context: http://drools.46999.n3.nabble.com/accumulate-function-not-registered-tp4030102p4030116.html Sent from the Drools: User forum mailing list archive at Nabble.com. From reddy.lakshmi at gmail.com Fri Jun 20 05:34:40 2014 From: reddy.lakshmi at gmail.com (LaKhI ReDdY!!!!!!!!!!!) Date: Fri, 20 Jun 2014 15:04:40 +0530 Subject: [rules-users] Need help in build the war file from the guvnor-6.0.1.Final source code Message-ID: Hi, Need help in build the war file from the guvnor-6.0.1.Final source code. I downloaded the guvnor-6.0.1.Final.zip and extracted it, i see the following folders in it. guvnor-inbox guvnor-m2repo-editor guvnor-project guvnor-services-api guvnor-services-backend guvnor-workset-api guvnor-workingset-clent src I ran the maven command(mvn install -DskipTests=true) in the mail folder guvnor-6.0.1.Final, it ran successfully and generate jar files. I did not find the target to build war in any of the pom.xml files. If anybody knows how to build war from the guvnor-6.0.1.Final source code, please pass me the information. If need to change the any pom.xml please let me know. Regards, Lakshmi Reddy -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140620/2d1800c3/attachment.html From reddy.lakshmi at gmail.com Fri Jun 20 05:36:25 2014 From: reddy.lakshmi at gmail.com (LaKhI ReDdY!!!!!!!!!!!) Date: Fri, 20 Jun 2014 15:06:25 +0530 Subject: [rules-users] Need BRMS migration tool download zip file location to download In-Reply-To: References: Message-ID: Thank you very much Micheal. Regards, Lakshmi reddy On Thu, Jun 19, 2014 at 11:12 AM, Michael Anstis wrote: > Download the Drools Workbench distribution from the Drools download page > on the Drools website. It is in that zip file (jcr2vfs migration). > > Sent on the move > On 19 Jun 2014 06:36, "LaKhI ReDdY!!!!!!!!!!!" > wrote: > >> Hi , >> >> I need to migrate repository from BRMS 5.1.1 to BRMS 6.0.1. >> In BRMS 6.0.1 Administration And Configuration Guide , i read we can do >> migrating using data migration tool. >> I could not able to find where this migration tool download zip available. >> >> IF anybody knows, please provide me the path/location/url to download the >> migration tool zip file? >> >> Thanks, >> Lakshmi Reddy >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140620/5586f231/attachment.html From michael.anstis at gmail.com Fri Jun 20 05:55:09 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Fri, 20 Jun 2014 10:55:09 +0100 Subject: [rules-users] Need help in build the war file from the guvnor-6.0.1.Final source code In-Reply-To: References: Message-ID: Guvnor is only a small component of the Drools Workbench. See http://blog.athico.com/2013/06/goodbye-guvnor-hello-drools-workbench.html If you're looking for the WARs you can use kie-wb-distributions/kie-drools-wb: https://github.com/droolsjbpm/kie-wb-distributions/tree/master/kie-drools-wb kie-wb-distributions WARs are a composition of code for the different screens and editors etc from other modules. If you want to change an editor etc then the source code will be in either guvnor, kie-wb-common or drools-wb (or somewhere else depending on what you want to amend). With kind regards, Mike On 20 June 2014 10:34, LaKhI ReDdY!!!!!!!!!!! wrote: > Hi, > > Need help in build the war file from the guvnor-6.0.1.Final source code. I > downloaded the guvnor-6.0.1.Final.zip and extracted it, i see the following > folders in it. > > guvnor-inbox > guvnor-m2repo-editor > guvnor-project > guvnor-services-api > guvnor-services-backend > guvnor-workset-api > guvnor-workingset-clent > src > > I ran the maven command(mvn install -DskipTests=true) in the mail folder > guvnor-6.0.1.Final, it ran successfully and generate jar files. > I did not find the target to build war in any of the pom.xml files. > > If anybody knows how to build war from the guvnor-6.0.1.Final source > code, please pass me the information. > If need to change the any pom.xml please let me know. > > Regards, > Lakshmi Reddy > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140620/dbd84270/attachment.html From reddy.lakshmi at gmail.com Fri Jun 20 07:09:28 2014 From: reddy.lakshmi at gmail.com (LaKhI ReDdY!!!!!!!!!!!) Date: Fri, 20 Jun 2014 16:39:28 +0530 Subject: [rules-users] Need help in build the war file from the guvnor-6.0.1.Final source code In-Reply-To: References: Message-ID: Hi Micheal, Thanks for reply. I am not sure i am going in right direction.I am new to BRMS and drools. I have deployed the deployment which is presented in the below mentioned zip file. jboss-brms-6.0.1.GA-redhat-4-deployable-generic. Now , I need the source code for the above version so that i can change few chnages like adding single sign on , logo, few other customization and build application to deploy with these changes. Any points on from where can i get the source code for the same?. Thank you. Regards, Lakshmi Reddy On Fri, Jun 20, 2014 at 3:25 PM, Michael Anstis wrote: > Guvnor is only a small component of the Drools Workbench. > > See > http://blog.athico.com/2013/06/goodbye-guvnor-hello-drools-workbench.html > > If you're looking for the WARs you can use > kie-wb-distributions/kie-drools-wb: > https://github.com/droolsjbpm/kie-wb-distributions/tree/master/kie-drools-wb > > kie-wb-distributions WARs are a composition of code for the different > screens and editors etc from other modules. > > If you want to change an editor etc then the source code will be in either > guvnor, kie-wb-common or drools-wb (or somewhere else depending on what you > want to amend). > > With kind regards, > > Mike > > > On 20 June 2014 10:34, LaKhI ReDdY!!!!!!!!!!! > wrote: > >> Hi, >> >> Need help in build the war file from the guvnor-6.0.1.Final source code. >> I downloaded the guvnor-6.0.1.Final.zip and extracted it, i see the >> following folders in it. >> >> guvnor-inbox >> guvnor-m2repo-editor >> guvnor-project >> guvnor-services-api >> guvnor-services-backend >> guvnor-workset-api >> guvnor-workingset-clent >> src >> >> I ran the maven command(mvn install -DskipTests=true) in the mail folder >> guvnor-6.0.1.Final, it ran successfully and generate jar files. >> I did not find the target to build war in any of the pom.xml files. >> >> If anybody knows how to build war from the guvnor-6.0.1.Final source >> code, please pass me the information. >> If need to change the any pom.xml please let me know. >> >> Regards, >> Lakshmi Reddy >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140620/363eb4c5/attachment-0001.html From michael.anstis at gmail.com Fri Jun 20 08:12:45 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Fri, 20 Jun 2014 13:12:45 +0100 Subject: [rules-users] Need help in build the war file from the guvnor-6.0.1.Final source code In-Reply-To: References: Message-ID: Authentication is handled by UberFire. You'll need to clone https://github.com/uberfire/uberfire and look at modifying/re-using one of the authorization classes . I've BCC'ed a colleague who has more knowledge of SSO (I think he's helped others with the same question). The logo can be modified here but you'll need to be more specific about "other customization(s)". On 20 June 2014 12:09, LaKhI ReDdY!!!!!!!!!!! wrote: > Hi Micheal, > > Thanks for reply. > I am not sure i am going in right direction.I am new to BRMS and drools. > I have deployed the deployment which is presented in the below mentioned > zip file. > jboss-brms-6.0.1.GA-redhat-4-deployable-generic. > > Now , I need the source code for the above version so that i can change > few chnages like adding single sign on , logo, few other customization and > build application to deploy with these changes. > > Any points on from where can i get the source code for the same?. > > Thank you. > > > Regards, > Lakshmi Reddy > > > > On Fri, Jun 20, 2014 at 3:25 PM, Michael Anstis > wrote: > >> Guvnor is only a small component of the Drools Workbench. >> >> See >> http://blog.athico.com/2013/06/goodbye-guvnor-hello-drools-workbench.html >> >> If you're looking for the WARs you can use >> kie-wb-distributions/kie-drools-wb: >> https://github.com/droolsjbpm/kie-wb-distributions/tree/master/kie-drools-wb >> >> kie-wb-distributions WARs are a composition of code for the different >> screens and editors etc from other modules. >> >> If you want to change an editor etc then the source code will be in >> either guvnor, kie-wb-common or drools-wb (or somewhere else depending on >> what you want to amend). >> >> With kind regards, >> >> Mike >> >> >> On 20 June 2014 10:34, LaKhI ReDdY!!!!!!!!!!! >> wrote: >> >>> Hi, >>> >>> Need help in build the war file from the guvnor-6.0.1.Final source code. >>> I downloaded the guvnor-6.0.1.Final.zip and extracted it, i see the >>> following folders in it. >>> >>> guvnor-inbox >>> guvnor-m2repo-editor >>> guvnor-project >>> guvnor-services-api >>> guvnor-services-backend >>> guvnor-workset-api >>> guvnor-workingset-clent >>> src >>> >>> I ran the maven command(mvn install -DskipTests=true) in the mail >>> folder guvnor-6.0.1.Final, it ran successfully and generate jar files. >>> I did not find the target to build war in any of the pom.xml files. >>> >>> If anybody knows how to build war from the guvnor-6.0.1.Final source >>> code, please pass me the information. >>> If need to change the any pom.xml please let me know. >>> >>> Regards, >>> Lakshmi Reddy >>> >>> _______________________________________________ >>> rules-users mailing list >>> rules-users at lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >>> >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > > > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140620/ba3d91ea/attachment.html From ge0ffrey.spam at gmail.com Mon Jun 23 03:22:53 2014 From: ge0ffrey.spam at gmail.com (Geoffrey De Smet) Date: Mon, 23 Jun 2014 09:22:53 +0200 Subject: [rules-users] SelectionFilter question In-Reply-To: <1402919188691-4030063.post@n3.nabble.com> References: <1402919188691-4030063.post@n3.nabble.com> Message-ID: On 16-06-14 13:46, dBijkoo wrote: > i have a class ChangeMoveFilter which implements > SelectionFilter to sort out moves that break hard > constraints. > > In the config it looks like this > > > > PHASE > > > *solver.move.ChangeMoveFilter* > > > PHASE > > > > > > However I am getting the impression that the overridden accept function is > called before anything changed in the entity. Because the (only) > planningvariable of the entity is still null, which would never be able to > happen in my understanding. The CH (construction heursistics) start from an uninitialized solution (usually), so all variables start out as null. This means, for example on the cloud balancing example: ChangeMove.getEntity() is NOT null and an instance of Process ((Process) ChangeMove.getEntity()).getComputer() is null ChangeMove.getToPlanningValue() is NOT null and an instance of Computer HTH > > Am i missing something or is the filter move called before anything changes > in the given entity? > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/SelectionFilter-ChangeMove-question-tp4030063.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From ge0ffrey.spam at gmail.com Mon Jun 23 03:26:44 2014 From: ge0ffrey.spam at gmail.com (Geoffrey De Smet) Date: Mon, 23 Jun 2014 09:26:44 +0200 Subject: [rules-users] Optaplanner - Linking time windows of vendors and the depot In-Reply-To: <1403184622623-4030113.post@n3.nabble.com> References: <1403184622623-4030113.post@n3.nabble.com> Message-ID: <53A7D6B4.60704@gmail.com> On 19-06-14 15:30, alainb wrote: > Dear All, > > I'm trying to model multiple time windows of the same vendor by multiplying > the vendors with different time windows and demand. This seems to work. > However, I can do the same with the depot but it doesn't represent what I > need. > > I'm using salomon tw example, but i need certain demand to be there in one > time window of the depot, and other demand at the other time window of the > depot. In other words, I would need to link demand at a time window of a > vendor to a specific time window of the depot. > > Does anyone know if there is any possibility to do this? Or can somebody > suggest me some further steps. I would be really thankful. Not 100% sure what you mean, but I think this might work: Change the ArrivalTimeUpdatingVariableListener as follows: - Introduce a new shadow variable on Vehicle called returnTime. - If the last Customer (= for which nextCustomer == null) in a chain gets a new arrivalTime, also adjust the returnTime of the Vehicle of that chain, such that vehicle.returnTime = lastCustomer.departureTime + travelTime(lastCustomer, depot) > > Thank you all in advance, > > Kind Regards, > Alain > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Optaplanner-Linking-time-windows-of-vendors-and-the-depot-tp4030113.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From bijkerkrick at hotmail.com Mon Jun 23 03:32:47 2014 From: bijkerkrick at hotmail.com (dBijkoo) Date: Mon, 23 Jun 2014 00:32:47 -0700 (PDT) Subject: [rules-users] Strange behaviour with maximumSecondsSpend termination in combination with PlanningVariableListener Message-ID: <1403508767862-4030128.post@n3.nabble.com> When i use the maximumSecondsSpend termination variable in the solverconfig it doesnt always fully process the methods in the PlanningVariableListener. Most of the time it gives me a solution with "semi" done shadow variables but not always. However when i change the termination to require a "scoreAttained" it always gives me a solution with the correct processed shadow variables. Any ideas why this might happen? -- View this message in context: http://drools.46999.n3.nabble.com/Strange-behaviour-with-maximumSecondsSpend-termination-in-combination-with-PlanningVariableListener-tp4030128.html Sent from the Drools: User forum mailing list archive at Nabble.com. From ge0ffrey.spam at gmail.com Mon Jun 23 05:06:09 2014 From: ge0ffrey.spam at gmail.com (Geoffrey De Smet) Date: Mon, 23 Jun 2014 11:06:09 +0200 Subject: [rules-users] Strange behaviour with maximumSecondsSpend termination in combination with PlanningVariableListener In-Reply-To: <1403508767862-4030128.post@n3.nabble.com> References: <1403508767862-4030128.post@n3.nabble.com> Message-ID: On 23-06-14 09:32, dBijkoo wrote: > When i use the maximumSecondsSpend termination variable in the solverconfig > it doesnt always fully process the methods in the > PlanningVariableListener. Most of the time it gives me a solution > with "semi" done shadow variables but not always. > > > However when i change the termination to require a "scoreAttained" it always > gives me a solution with the correct processed shadow variables. > > Any ideas why this might happen? That's impossible. If it does, it's a bug. The VariableListeners should always fire if a variable changed. The terminations are checked between every move scope (and every step scope too of course), and the variable listeners fire in the same move scope as their variable are changed, so again, that's impossible :) Can you can create a reproducer which uses the latest version (6.1.0.CR1) and attach it to a jira issue? https://issues.jboss.org/browse/PLANNER A reproducer is a zip with something that I can run easily locally offline (preferably with as little as complexity as needed and as little data as needed). > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Strange-behaviour-with-maximumSecondsSpend-termination-in-combination-with-PlanningVariableListener-tp4030128.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From wolfgang.laun at gmail.com Mon Jun 23 05:55:16 2014 From: wolfgang.laun at gmail.com (Wolfgang Laun) Date: Mon, 23 Jun 2014 11:55:16 +0200 Subject: [rules-users] unsubscribed from the rules-users mailing list In-Reply-To: References: Message-ID: Friends, this is to let you know that I have done as the subject says. I'd like to thank all that have contributed for their continuing efforts. As for myself: I think that this is a good moment to retire, with my rapidly diminishing capability of understanding what's going on in Guvnor, Optaplanner and other newfangled extensions. Hitting the "delete" button on some incoming email has been the one thing I've managed to do faithfully, and frequently. Thanks again, and it's been *very* nice meeting you. Wolfgang From reddy.lakshmi at gmail.com Mon Jun 23 06:08:02 2014 From: reddy.lakshmi at gmail.com (LaKhI ReDdY!!!!!!!!!!!) Date: Mon, 23 Jun 2014 15:38:02 +0530 Subject: [rules-users] Getting Error while building the war from kie-wb-distributions-master source code Message-ID: Hi , I am trying to run mvn clean install on the kie-wb-distributions-master source code, getting the below error.Please find the attachment for more details on the error. C:\Users\reddyl\RECOSYS\BRMS6\kie-wb\kie-wb-webapp\target\. generated, *org.kie.workbench.FastCompiledKIEWebapp]: Error while executing process. Cannot run program "C:\Program Files\Java\jdk1.6.0_27\jre\bin\java* *": CreateProcess error=206, The filename or extension is too long* could you please let me know any workaround on this issue? Regards, Lakshmi Reddy -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140623/eeeb81e5/attachment-0001.html -------------- next part -------------- [INFO] [INFO] >>> maven-source-plugin:2.1.2:test-jar (test-jar) @ kie-wb-distributions >>> [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (default) @ kie-wb-distributions --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-java-version) @ kie-wb-distributions --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-maven-version) @ kie-wb-distributions --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-plugin-versions) @ kie-wb-distributions --- [INFO] [INFO] --- build-helper-maven-plugin:1.7:parse-version (default) @ kie-wb-distributions --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (no-managed-deps) @ kie-wb-distributions --- [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create-timestamp (get-build-timestamp) @ kie-wb-distributions --- [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create (get-scm-revision) @ kie-wb-distributions --- [INFO] [INFO] <<< maven-source-plugin:2.1.2:test-jar (test-jar) @ kie-wb-distributions <<< [INFO] [INFO] --- maven-source-plugin:2.1.2:test-jar (test-jar) @ kie-wb-distributions --- [INFO] [INFO] --- maven-source-plugin:2.1.2:jar-no-fork (attach-sources) @ kie-wb-distributions --- [INFO] [INFO] --- maven-failsafe-plugin:2.15:integration-test (default) @ kie-wb-distributions --- [INFO] Tests are skipped. [INFO] [INFO] --- maven-install-plugin:2.3.1:install (default-install) @ kie-wb-distributions --- [INFO] Installing C:\Users\reddyl\RECOSYS\BRMS6\pom.xml to C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\kie-wb-distributions\6.2.0-SNAPSH OT\kie-wb-distributions-6.2.0-SNAPSHOT.pom [INFO] Installing C:\Users\reddyl\RECOSYS\BRMS6\target\kie-wb-distributions-6.2.0-SNAPSHOT-tests.jar to C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Fi nal\org\kie\kie-wb-distributions\6.2.0-SNAPSHOT\kie-wb-distributions-6.2.0-SNAPSHOT-tests.jar [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building KIE Config command line interface 6.2.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ kie-config-cli --- [INFO] Deleting C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (default) @ kie-config-cli --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-java-version) @ kie-config-cli --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-maven-version) @ kie-config-cli --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-plugin-versions) @ kie-config-cli --- [INFO] [INFO] --- build-helper-maven-plugin:1.7:parse-version (default) @ kie-config-cli --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (no-managed-deps) @ kie-config-cli --- [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create-timestamp (get-build-timestamp) @ kie-config-cli --- [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create (get-scm-revision) @ kie-config-cli --- [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ kie-config-cli --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 3 resources [INFO] [INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ kie-config-cli --- [INFO] Compiling 33 source files to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\classes [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ kie-config-cli --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\src\test\resources [INFO] [INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ kie-config-cli --- [INFO] No sources to compile [INFO] [INFO] --- maven-surefire-plugin:2.15:test (default-test) @ kie-config-cli --- [INFO] Tests are skipped. [INFO] [INFO] --- maven-dependency-plugin:2.8:copy-dependencies (copy-dependencies) @ kie-config-cli --- [INFO] Copying httpclient-4.2.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\httpclient-4.2.1.jar [INFO] Copying uberfire-client-api-0.4.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\uberfire-client-api-0.4.0-SNAPSHOT.ja r [INFO] Copying protobuf-java-2.5.0.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\protobuf-java-2.5.0.jar [INFO] Copying javassist-3.18.1-GA.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\javassist-3.18.1-GA.jar [INFO] Copying guvnor-project-builder-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\guvnor-project-builder-6.2.0-SNAPS HOT.jar [INFO] Copying freemarker-2.3.19.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\freemarker-2.3.19.jar [INFO] Copying uberfire-metadata-api-0.4.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\uberfire-metadata-api-0.4.0-SNAPSHO T.jar [INFO] Copying errai-ioc-2.4.4.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\errai-ioc-2.4.4.Final.jar [INFO] Copying plexus-utils-3.0.7.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\plexus-utils-3.0.7.jar [INFO] Copying kie-wb-common-services-backend-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\kie-wb-common-services-bac kend-6.2.0-SNAPSHOT.jar [INFO] Copying sisu-inject-bean-2.2.3.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\sisu-inject-bean-2.2.3.jar [INFO] Copying jakarta-regexp-1.4.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\jakarta-regexp-1.4.jar [INFO] Copying aether-impl-1.13.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\aether-impl-1.13.1.jar [INFO] Copying uberfire-api-0.4.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\uberfire-api-0.4.0-SNAPSHOT.jar [INFO] Copying uberfire-io-0.4.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\uberfire-io-0.4.0-SNAPSHOT.jar [INFO] Copying mvel2-2.1.9.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\mvel2-2.1.9.Final.jar [INFO] Copying cal10n-api-0.7.7.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\cal10n-api-0.7.7.jar [INFO] Copying ant-1.8.2.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\ant-1.8.2.jar [INFO] Copying xml-apis-1.3.04.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\xml-apis-1.3.04.jar [INFO] Copying jboss-interceptors-api_1.1_spec-1.0.0.Beta1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\jboss-interceptors-api_1.1_s pec-1.0.0.Beta1.jar [INFO] Copying weld-spi-1.1.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\weld-spi-1.1.Final.jar [INFO] Copying plexus-cipher-1.4.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\plexus-cipher-1.4.jar [INFO] Copying httpcore-4.2.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\httpcore-4.2.1.jar [INFO] Copying commons-io-2.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\commons-io-2.1.jar [INFO] Copying ant-launcher-1.8.2.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\ant-launcher-1.8.2.jar [INFO] Copying commons-httpclient-3.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\commons-httpclient-3.1.jar [INFO] Copying plexus-classworlds-2.4.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\plexus-classworlds-2.4.jar [INFO] Copying jasypt-1.9.0.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\jasypt-1.9.0.jar [INFO] Copying wagon-provider-api-1.0.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\wagon-provider-api-1.0.jar [INFO] Copying uberfire-metadata-commons-io-0.4.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\uberfire-metadata-commons-io -0.4.0-SNAPSHOT.jar [INFO] Copying aether-connector-wagon-1.13.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\aether-connector-wagon-1.13.1.jar [INFO] Copying uberfire-security-server-0.4.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\uberfire-security-server-0.4.0-S NAPSHOT.jar [INFO] Copying jboss-ejb-api_3.1_spec-1.0.2.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\jboss-ejb-api_3.1_spec-1.0.2.Final.ja r [INFO] Copying errai-config-2.4.4.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\errai-config-2.4.4.Final.jar [INFO] Copying solder-logging-3.2.1.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\solder-logging-3.2.1.Final.jar [INFO] Copying maven-settings-builder-3.0.5.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\maven-settings-builder-3.0.5.jar [INFO] Copying guvnor-m2repo-editor-backend-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\guvnor-m2repo-editor-backend -6.2.0-SNAPSHOT.jar [INFO] Copying async-http-client-1.6.5.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\async-http-client-1.6.5.jar [INFO] Copying drools-workbench-models-datamodel-api-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\drools-workbench-mo dels-datamodel-api-6.2.0-SNAPSHOT.jar [INFO] Copying snakeyaml-1.8.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\snakeyaml-1.8.jar [INFO] Copying errai-javax-enterprise-2.4.4.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\errai-javax-enterprise-2.4.4.Final.ja r [INFO] Copying kie-wb-common-services-api-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\kie-wb-common-services-api-6.2 .0-SNAPSHOT.jar [INFO] Copying maven-repository-metadata-3.0.5.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\maven-repository-metadata-3.0.5.jar [INFO] Copying drools-compiler-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\drools-compiler-6.2.0-SNAPSHOT.jar [INFO] Copying jgroups-3.2.13.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\jgroups-3.2.13.Final.jar [INFO] Copying lucene-analyzers-common-4.0.0.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\lucene-analyzers-common-4.0.0.jar [INFO] Copying guvnor-services-backend-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\guvnor-services-backend-6.2.0-SNA PSHOT.jar [INFO] Copying wagon-ahc-1.2.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\wagon-ahc-1.2.1.jar [INFO] Copying guvnor-project-backend-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\guvnor-project-backend-6.2.0-SNAPS HOT.jar [INFO] Copying ecj-4.3.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\ecj-4.3.1.jar [INFO] Copying junit-4.11.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\junit-4.11.jar [INFO] Copying jboss-el-api_2.2_spec-1.0.4.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\jboss-el-api_2.2_spec-1.0.4.Final.jar [INFO] Copying jbpm-kie-services-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\jbpm-kie-services-6.2.0-SNAPSHOT.jar [INFO] Copying xstream-1.4.7.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\xstream-1.4.7.jar [INFO] Copying jsr250-api-1.0.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\jsr250-api-1.0.jar [INFO] Copying logback-classic-1.0.9.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\logback-classic-1.0.9.jar [INFO] Copying el-api-2.2.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\el-api-2.2.jar [INFO] Copying solder-api-3.2.1.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\solder-api-3.2.1.Final.jar [INFO] Copying prettytime-3.0.2.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\prettytime-3.0.2.Final.jar [INFO] Copying uberfire-nio2-jgit-0.4.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\uberfire-nio2-jgit-0.4.0-SNAPSHOT.jar [INFO] Copying commons-codec-1.4.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\commons-codec-1.4.jar [INFO] Copying errai-marshalling-2.4.4.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\errai-marshalling-2.4.4.Final.jar [INFO] Copying sshd-core-0.10.0.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\sshd-core-0.10.0.jar [INFO] Copying mina-core-2.0.4.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\mina-core-2.0.4.jar [INFO] Copying solder-impl-3.2.1.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\solder-impl-3.2.1.Final.jar [INFO] Copying weld-se-core-1.1.21.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\weld-se-core-1.1.21.Final.jar [INFO] Copying weld-core-1.1.21.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\weld-core-1.1.21.Final.jar [INFO] Copying reflections-2.4.4.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\reflections-2.4.4.Final.jar [INFO] Copying maven-artifact-3.0.5.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\maven-artifact-3.0.5.jar [INFO] Copying drools-core-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\drools-core-6.2.0-SNAPSHOT.jar [INFO] Copying guava-13.0.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\guava-13.0.1.jar [INFO] Copying dom4j-1.6.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\dom4j-1.6.1.jar [INFO] Copying JavaEWAH-0.7.9.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\JavaEWAH-0.7.9.jar [INFO] Copying errai-bus-2.4.4.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\errai-bus-2.4.4.Final.jar [INFO] Copying aether-spi-1.13.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\aether-spi-1.13.1.jar [INFO] Copying errai-codegen-2.4.4.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\errai-codegen-2.4.4.Final.jar [INFO] Copying maven-core-3.0.5.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\maven-core-3.0.5.jar [INFO] Copying jsch-0.1.48.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\jsch-0.1.48.jar [INFO] Copying uberfire-server-all-0.4.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\uberfire-server-all-0.4.0-SNAPSHOT.ja r [INFO] Copying antlr-runtime-3.5.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\antlr-runtime-3.5.jar [INFO] Copying uberfire-commons-0.4.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\uberfire-commons-0.4.0-SNAPSHOT.jar [INFO] Copying lucene-queries-4.0.0.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\lucene-queries-4.0.0.jar [INFO] Copying sisu-inject-plexus-2.2.3.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\sisu-inject-plexus-2.2.3.jar [INFO] Copying uberfire-backend-api-0.4.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\uberfire-backend-api-0.4.0-SNAPSHOT. jar [INFO] Copying xmlpull-1.1.3.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\xmlpull-1.1.3.1.jar [INFO] Copying xpp3_min-1.1.4c.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\xpp3_min-1.1.4c.jar [INFO] Copying commons-fileupload-1.3.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\commons-fileupload-1.3.1.jar [INFO] Copying guice-3.0.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\guice-3.0.jar [INFO] Copying commons-logging-1.1.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\commons-logging-1.1.1.jar [INFO] Copying jsoup-1.6.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\jsoup-1.6.1.jar [INFO] Copying commons-lang-2.6.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\commons-lang-2.6.jar [INFO] Copying uberfire-security-api-0.4.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\uberfire-security-api-0.4.0-SNAPSHO T.jar [INFO] Copying uberfire-nio2-model-0.4.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\uberfire-nio2-model-0.4.0-SNAPSHOT.ja r [INFO] Copying kie-api-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\kie-api-6.2.0-SNAPSHOT.jar [INFO] Copying sisu-guice-3.0.3-no_aop.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\sisu-guice-3.0.3-no_aop.jar [INFO] Copying aether-api-1.13.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\aether-api-1.13.1.jar [INFO] Copying uberfire-backend-server-0.4.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\uberfire-backend-server-0.4.0-SNA PSHOT.jar [INFO] Copying netty-3.2.6.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\netty-3.2.6.Final.jar [INFO] Copying guvnor-project-api-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\guvnor-project-api-6.2.0-SNAPSHOT.jar [INFO] Copying plexus-sec-dispatcher-1.3.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\plexus-sec-dispatcher-1.3.jar [INFO] Copying kie-internal-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\kie-internal-6.2.0-SNAPSHOT.jar [INFO] Copying guvnor-services-api-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\guvnor-services-api-6.2.0-SNAPSHOT.ja r [INFO] Copying slf4j-api-1.7.2.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\slf4j-api-1.7.2.jar [INFO] Copying maven-model-3.0.5.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\maven-model-3.0.5.jar [INFO] Copying maven-compat-3.0.5.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\maven-compat-3.0.5.jar [INFO] Copying slf4j-ext-1.7.2.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\slf4j-ext-1.7.2.jar [INFO] Copying lucene-sandbox-4.0.0.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\lucene-sandbox-4.0.0.jar [INFO] Copying aether-util-1.13.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\aether-util-1.13.1.jar [INFO] Copying mockito-all-1.9.5.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\mockito-all-1.9.5.jar [INFO] Copying lucene-codecs-4.0.0.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\lucene-codecs-4.0.0.jar [INFO] Copying aopalliance-1.0.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\aopalliance-1.0.jar [INFO] Copying uberfire-nio2-fs-0.4.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\uberfire-nio2-fs-0.4.0-SNAPSHOT.jar [INFO] Copying plexus-interpolation-1.14.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\plexus-interpolation-1.14.jar [INFO] Copying kie-wb-common-project-explorer-api-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\kie-wb-common-project- explorer-api-6.2.0-SNAPSHOT.jar [INFO] Copying wagon-http-2.0.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\wagon-http-2.0.jar [INFO] Copying kie-ci-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\kie-ci-6.2.0-SNAPSHOT.jar [INFO] Copying logback-core-1.0.9.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\logback-core-1.0.9.jar [INFO] Copying hamcrest-core-1.3.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\hamcrest-core-1.3.jar [INFO] Copying maven-model-builder-3.0.5.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\maven-model-builder-3.0.5.jar [INFO] Copying kie-wb-common-project-explorer-backend-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\kie-wb-common-proj ect-explorer-backend-6.2.0-SNAPSHOT.jar [INFO] Copying uberfire-metadata-backend-lucene-0.4.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\uberfire-metadata-backen d-lucene-0.4.0-SNAPSHOT.jar [INFO] Copying org.eclipse.jgit-3.3.1.201403241930-r.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\org.eclipse.jgit-3.3.1.20140324193 0-r.jar [INFO] Copying uberfire-server-0.4.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\uberfire-server-0.4.0-SNAPSHOT.jar [INFO] Copying errai-codegen-gwt-2.4.4.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\errai-codegen-gwt-2.4.4.Final.jar [INFO] Copying errai-common-2.4.4.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\errai-common-2.4.4.Final.jar [INFO] Copying aether-connector-file-1.13.1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\aether-connector-file-1.13.1.jar [INFO] Copying cdi-api-1.0-SP4.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\cdi-api-1.0-SP4.jar [INFO] Copying guvnor-workingset-api-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\guvnor-workingset-api-6.2.0-SNAPSHO T.jar [INFO] Copying lucene-core-4.0.0.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\lucene-core-4.0.0.jar [INFO] Copying javax.inject-1.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\javax.inject-1.jar [INFO] Copying maven-settings-3.0.5.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\maven-settings-3.0.5.jar [INFO] Copying maven-plugin-api-3.0.5.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\maven-plugin-api-3.0.5.jar [INFO] Copying plexus-component-annotations-1.5.5.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\plexus-component-annotations-1.5.5.ja r [INFO] Copying lucene-queryparser-4.0.0.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\lucene-queryparser-4.0.0.jar [INFO] Copying wagon-http-shared4-2.0.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\wagon-http-shared4-2.0.jar [INFO] Copying maven-aether-provider-3.0.5.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\maven-aether-provider-3.0.5.jar [INFO] Copying weld-api-1.1.Final.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\weld-api-1.1.Final.jar [INFO] Copying uberfire-nio2-api-0.4.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\uberfire-nio2-api-0.4.0-SNAPSHOT.jar [INFO] Copying guvnor-m2repo-editor-api-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\lib\guvnor-m2repo-editor-api-6.2.0-S NAPSHOT.jar [INFO] [INFO] --- maven-jar-plugin:2.3.1:jar (default-jar) @ kie-config-cli --- [INFO] Building jar: C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\kie-config-cli-6.2.0-SNAPSHOT.jar [INFO] [INFO] --- maven-jar-plugin:2.3.1:test-jar (test-jar) @ kie-config-cli --- [WARNING] JAR will be empty - no content was marked for inclusion! [INFO] Building jar: C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\kie-config-cli-6.2.0-SNAPSHOT-tests.jar [INFO] [INFO] >>> maven-source-plugin:2.1.2:jar (jar) @ kie-config-cli >>> [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (default) @ kie-config-cli --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-java-version) @ kie-config-cli --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-maven-version) @ kie-config-cli --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-plugin-versions) @ kie-config-cli --- [INFO] [INFO] --- build-helper-maven-plugin:1.7:parse-version (default) @ kie-config-cli --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (no-managed-deps) @ kie-config-cli --- [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create-timestamp (get-build-timestamp) @ kie-config-cli --- [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create (get-scm-revision) @ kie-config-cli --- [INFO] [INFO] <<< maven-source-plugin:2.1.2:jar (jar) @ kie-config-cli <<< [INFO] [INFO] --- maven-source-plugin:2.1.2:jar (jar) @ kie-config-cli --- [INFO] Building jar: C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\kie-config-cli-6.2.0-SNAPSHOT-sources.jar [INFO] [INFO] >>> maven-source-plugin:2.1.2:test-jar (test-jar) @ kie-config-cli >>> [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (default) @ kie-config-cli --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-java-version) @ kie-config-cli --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-maven-version) @ kie-config-cli --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-plugin-versions) @ kie-config-cli --- [INFO] [INFO] --- build-helper-maven-plugin:1.7:parse-version (default) @ kie-config-cli --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (no-managed-deps) @ kie-config-cli --- [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create-timestamp (get-build-timestamp) @ kie-config-cli --- [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create (get-scm-revision) @ kie-config-cli --- [INFO] [INFO] <<< maven-source-plugin:2.1.2:test-jar (test-jar) @ kie-config-cli <<< [INFO] [INFO] --- maven-source-plugin:2.1.2:test-jar (test-jar) @ kie-config-cli --- [INFO] No sources in project. Archive not created. [INFO] [INFO] --- maven-source-plugin:2.1.2:jar-no-fork (attach-sources) @ kie-config-cli --- [INFO] [INFO] --- maven-assembly-plugin:2.3:single (default) @ kie-config-cli --- [INFO] Reading assembly descriptor: src/main/assembly/assembly-kie-config-cli.xml [INFO] Building zip: C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\kie-config-cli-6.2.0-SNAPSHOT-dist.zip [INFO] [INFO] --- maven-failsafe-plugin:2.15:integration-test (default) @ kie-config-cli --- [INFO] Tests are skipped. [INFO] [INFO] --- maven-install-plugin:2.3.1:install (default-install) @ kie-config-cli --- [INFO] Installing C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\kie-config-cli-6.2.0-SNAPSHOT.jar to C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1 .Final\org\kie\kie-config-cli\6.2.0-SNAPSHOT\kie-config-cli-6.2.0-SNAPSHOT.jar [INFO] Installing C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\pom.xml to C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\kie-config-cli\6.2 .0-SNAPSHOT\kie-config-cli-6.2.0-SNAPSHOT.pom [INFO] Installing C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\kie-config-cli-6.2.0-SNAPSHOT-tests.jar to C:\Users\reddyl\RECOSYS\m2_for_guvnor _6.0.1.Final\org\kie\kie-config-cli\6.2.0-SNAPSHOT\kie-config-cli-6.2.0-SNAPSHOT-tests.jar [INFO] Installing C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\kie-config-cli-6.2.0-SNAPSHOT-sources.jar to C:\Users\reddyl\RECOSYS\m2_for_guvn or_6.0.1.Final\org\kie\kie-config-cli\6.2.0-SNAPSHOT\kie-config-cli-6.2.0-SNAPSHOT-sources.jar [INFO] Installing C:\Users\reddyl\RECOSYS\BRMS6\kie-config-cli\target\kie-config-cli-6.2.0-SNAPSHOT-dist.zip to C:\Users\reddyl\RECOSYS\m2_for_guvnor_ 6.0.1.Final\org\kie\kie-config-cli\6.2.0-SNAPSHOT\kie-config-cli-6.2.0-SNAPSHOT-dist.zip [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building KIE Workbench 6.2.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ kie-wb --- [INFO] Deleting C:\Users\reddyl\RECOSYS\BRMS6\kie-wb\target [INFO] Deleting C:\Users\reddyl\RECOSYS\BRMS6\kie-wb (includes = [.errai/**, .niogit/**], excludes = []) [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (default) @ kie-wb --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-java-version) @ kie-wb --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-maven-version) @ kie-wb --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-plugin-versions) @ kie-wb --- [INFO] [INFO] --- build-helper-maven-plugin:1.7:parse-version (default) @ kie-wb --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (no-managed-deps) @ kie-wb --- [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create-timestamp (get-build-timestamp) @ kie-wb --- [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create (get-scm-revision) @ kie-wb --- [INFO] [INFO] --- maven-resources-plugin:2.6:copy-resources (copy-resources) @ kie-wb --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory C:\Users\reddyl\RECOSYS\BRMS6\kie-wb\target\generated-sources\annotations [INFO] [INFO] --- maven-jar-plugin:2.3.1:test-jar (test-jar) @ kie-wb --- [WARNING] JAR will be empty - no content was marked for inclusion! [INFO] Building jar: C:\Users\reddyl\RECOSYS\BRMS6\kie-wb\target\kie-wb-6.2.0-SNAPSHOT-tests.jar [INFO] [INFO] >>> maven-source-plugin:2.1.2:jar (jar) @ kie-wb >>> [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (default) @ kie-wb --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-java-version) @ kie-wb --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-maven-version) @ kie-wb --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-plugin-versions) @ kie-wb --- [INFO] [INFO] --- build-helper-maven-plugin:1.7:parse-version (default) @ kie-wb --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (no-managed-deps) @ kie-wb --- [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create-timestamp (get-build-timestamp) @ kie-wb --- [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create (get-scm-revision) @ kie-wb --- [INFO] [INFO] <<< maven-source-plugin:2.1.2:jar (jar) @ kie-wb <<< [INFO] [INFO] --- maven-source-plugin:2.1.2:jar (jar) @ kie-wb --- [INFO] [INFO] >>> maven-source-plugin:2.1.2:test-jar (test-jar) @ kie-wb >>> [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (default) @ kie-wb --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-java-version) @ kie-wb --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-maven-version) @ kie-wb --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-plugin-versions) @ kie-wb --- [INFO] [INFO] --- build-helper-maven-plugin:1.7:parse-version (default) @ kie-wb --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (no-managed-deps) @ kie-wb --- [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create-timestamp (get-build-timestamp) @ kie-wb --- [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create (get-scm-revision) @ kie-wb --- [INFO] [INFO] <<< maven-source-plugin:2.1.2:test-jar (test-jar) @ kie-wb <<< [INFO] [INFO] --- maven-source-plugin:2.1.2:test-jar (test-jar) @ kie-wb --- [INFO] [INFO] --- maven-source-plugin:2.1.2:jar-no-fork (attach-sources) @ kie-wb --- [INFO] [INFO] --- maven-failsafe-plugin:2.15:integration-test (default) @ kie-wb --- [INFO] Tests are skipped. [INFO] [INFO] --- maven-install-plugin:2.3.1:install (default-install) @ kie-wb --- [INFO] Installing C:\Users\reddyl\RECOSYS\BRMS6\kie-wb\pom.xml to C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\kie-wb\6.2.0-SNAPSHOT\kie- wb-6.2.0-SNAPSHOT.pom [INFO] Installing C:\Users\reddyl\RECOSYS\BRMS6\kie-wb\target\kie-wb-6.2.0-SNAPSHOT-tests.jar to C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org \kie\kie-wb\6.2.0-SNAPSHOT\kie-wb-6.2.0-SNAPSHOT-tests.jar [INFO] [INFO] ------------------------------------------------------------------------ [INFO] Building KIE Workbench - Webapp 6.2.0-SNAPSHOT [INFO] ------------------------------------------------------------------------ [INFO] [INFO] --- maven-clean-plugin:2.4.1:clean (default-clean) @ kie-wb-webapp --- [INFO] Deleting C:\Users\reddyl\RECOSYS\BRMS6\kie-wb\kie-wb-webapp\target [INFO] Deleting C:\Users\reddyl\RECOSYS\BRMS6\kie-wb\kie-wb-webapp (includes = [.errai/**, .niogit/**], excludes = []) [INFO] [INFO] --- gwt-maven-plugin:2.5.1:clean (gwt-clean) @ kie-wb-webapp --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (default) @ kie-wb-webapp --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-java-version) @ kie-wb-webapp --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-maven-version) @ kie-wb-webapp --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (enforce-plugin-versions) @ kie-wb-webapp --- [INFO] [INFO] --- build-helper-maven-plugin:1.7:parse-version (default) @ kie-wb-webapp --- [INFO] [INFO] --- maven-enforcer-plugin:1.2:enforce (no-managed-deps) @ kie-wb-webapp --- [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create-timestamp (get-build-timestamp) @ kie-wb-webapp --- [INFO] [INFO] --- buildnumber-maven-plugin:1.2:create (get-scm-revision) @ kie-wb-webapp --- [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ kie-wb-webapp --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 22 resources [INFO] Copying 126 resources [INFO] [INFO] --- gwt-maven-plugin:2.5.1:resources (gwt-compile) @ kie-wb-webapp --- [INFO] 17 source files from GWT module org.kie.workbench.FastCompiledKIEWebapp [INFO] [INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ kie-wb-webapp --- [INFO] Compiling 20 source files to C:\Users\reddyl\RECOSYS\BRMS6\kie-wb\kie-wb-webapp\target\classes [INFO] [INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ kie-wb-webapp --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] skip non existing resourceDirectory C:\Users\reddyl\RECOSYS\BRMS6\kie-wb\kie-wb-webapp\src\test\resources [INFO] [INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ kie-wb-webapp --- [INFO] No sources to compile [INFO] [INFO] --- maven-surefire-plugin:2.15:test (default-test) @ kie-wb-webapp --- [INFO] Tests are skipped. [INFO] [INFO] --- maven-resources-plugin:2.6:copy-resources (copy-resources) @ kie-wb-webapp --- [INFO] Using 'UTF-8' encoding to copy filtered resources. [INFO] Copying 3 resources [INFO] [INFO] --- gwt-maven-plugin:2.5.1:compile (gwt-compile) @ kie-wb-webapp --- [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary: [INFO] [INFO] KIE Workbench - Distributions ..................... SUCCESS [4.100s] [INFO] KIE Config command line interface ................. SUCCESS [25.604s] [INFO] KIE Workbench ..................................... SUCCESS [0.394s] [INFO] KIE Workbench - Webapp ............................ FAILURE [56.070s] [INFO] KIE Workbench - Distribution Wars ................. SKIPPED [INFO] KIE Drools Workbench .............................. SKIPPED [INFO] KIE Drools Workbench - Webapp ..................... SKIPPED [INFO] KIE Drools Workbench - Distribution Wars .......... SKIPPED [INFO] KIE Drools Workbench - Distribution ............... SKIPPED [INFO] KIE Tomcat integration ............................ SKIPPED [INFO] ------------------------------------------------------------------------ [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1:30.652s [INFO] Finished at: Mon Jun 23 15:29:04 IST 2014 [INFO] Final Memory: 130M/777M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.codehaus.mojo:gwt-maven-plugin:2.5.1:compile (gwt-compile) on project kie-wb-webapp: Failed to execute command line : [ERROR] [-Xmx2048m, -XX:MaxPermSize=256m, -Xms1024m, -XX:PermSize=128m, -Djetty.custom.sys.classes=bitronix;javax.transaction, -Dorg.kie.demo=true, -D org.kie.clean.onstartup=true, -Dorg.uberfire.nio.git.ssh.enabled=false, -classpath, C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\com\google\gwt\g wt-user\2.5.1\gwt-user-2.5.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\com\google\gwt\gwt-dev\2.5.1\gwt-dev-2.5.1.jar;C:\Users\reddyl\RECO SYS\BRMS6\kie-wb\kie-wb-webapp\target\classes;C:\Users\reddyl\RECOSYS\BRMS6\kie-wb\kie-wb-webapp\src\main\java;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6 .0.1.Final\org\kie\kie-ci\6.2.0-SNAPSHOT\kie-ci-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-core\6.2.0-SNAP SHOT\drools-core-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-compiler\6.2.0-SNAPSHOT\drools-compiler-6.2.0- SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\antlr\antlr-runtime\3.5\antlr-runtime-3.5.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor _6.0.1.Final\org\eclipse\jdt\core\compiler\ecj\4.3.1\ecj-4.3.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\maven\maven-core\3.0.5 \maven-core-3.0.5.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\maven\maven-settings\3.0.5\maven-settings-3.0.5.jar;C:\Users\reddyl \RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\maven\maven-settings-builder\3.0.5\maven-settings-builder-3.0.5.jar;C:\Users\reddyl\RECOSYS\m2_for_guvno r_6.0.1.Final\org\apache\maven\maven-repository-metadata\3.0.5\maven-repository-metadata-3.0.5.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\o rg\apache\maven\maven-artifact\3.0.5\maven-artifact-3.0.5.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\maven\maven-plugin-api\3.0. 5\maven-plugin-api-3.0.5.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\maven\maven-model-builder\3.0.5\maven-model-builder-3.0.5.ja r;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\maven\maven-aether-provider\3.0.5\maven-aether-provider-3.0.5.jar;C:\Users\reddyl\RECOS YS\m2_for_guvnor_6.0.1.Final\org\sonatype\sisu\sisu-inject-plexus\2.2.3\sisu-inject-plexus-2.2.3.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final \org\sonatype\sisu\sisu-inject-bean\2.2.3\sisu-inject-bean-2.2.3.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\sonatype\sisu\sisu-guice\3. 0.3\sisu-guice-3.0.3-no_aop.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\codehaus\plexus\plexus-interpolation\1.14\plexus-interpolation-1 .14.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\codehaus\plexus\plexus-utils\3.0.7\plexus-utils-3.0.7.jar;C:\Users\reddyl\RECOSYS\m2_for _guvnor_6.0.1.Final\org\codehaus\plexus\plexus-classworlds\2.4\plexus-classworlds-2.4.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\codeha us\plexus\plexus-component-annotations\1.5.5\plexus-component-annotations-1.5.5.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\sonatype\ple xus\plexus-sec-dispatcher\1.3\plexus-sec-dispatcher-1.3.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\sonatype\plexus\plexus-cipher\1.4\pl exus-cipher-1.4.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\maven\maven-model\3.0.5\maven-model-3.0.5.jar;C:\Users\reddyl\RECOSYS \m2_for_guvnor_6.0.1.Final\org\apache\maven\maven-compat\3.0.5\maven-compat-3.0.5.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\mav en\wagon\wagon-provider-api\1.0\wagon-provider-api-1.0.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\sonatype\aether\aether-api\1.13.1\aet her-api-1.13.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\sonatype\aether\aether-util\1.13.1\aether-util-1.13.1.jar;C:\Users\reddyl\REC OSYS\m2_for_guvnor_6.0.1.Final\org\sonatype\aether\aether-impl\1.13.1\aether-impl-1.13.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\son atype\aether\aether-spi\1.13.1\aether-spi-1.13.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\sonatype\aether\aether-connector-wagon\1.13 .1\aether-connector-wagon-1.13.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\sonatype\aether\aether-connector-file\1.13.1\aether-connect or-file-1.13.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\maven\wagon\wagon-http\2.0\wagon-http-2.0.jar;C:\Users\reddyl\RECOSYS\ m2_for_guvnor_6.0.1.Final\org\apache\maven\wagon\wagon-http-shared4\2.0\wagon-http-shared4-2.0.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\o rg\apache\httpcomponents\httpclient\4.2.1\httpclient-4.2.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\httpcomponents\httpcore\4. 2.1\httpcore-4.2.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\slf4j\slf4j-api\1.7.2\slf4j-api-1.7.2.jar;C:\Users\reddyl\RECOSYS\m2_for_ guvnor_6.0.1.Final\ch\qos\logback\logback-classic\1.0.9\logback-classic-1.0.9.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\ch\qos\logback\log back-core\1.0.9\logback-core-1.0.9.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-human-tasks-client\6.2.0-SNAPSHOT\jb pm-console-ng-human-tasks-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-human-tasks-api\6.2.0-S NAPSHOT\jbpm-console-ng-human-tasks-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-process-runtime- api\6.2.0-SNAPSHOT\jbpm-console-ng-process-runtime-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-b usiness-domain-api\6.2.0-SNAPSHOT\jbpm-console-ng-business-domain-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfir e\uberfire-client-api\0.4.0-SNAPSHOT\uberfire-client-api-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng -human-tasks-backend\6.2.0-SNAPSHOT\jbpm-console-ng-human-tasks-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\k ie-api\6.2.0-SNAPSHOT\kie-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\kie-internal\6.2.0-SNAPSHOT\kie-internal-6. 2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-io\0.4.0-SNAPSHOT\uberfire-io-0.4.0-SNAPSHOT.jar;C:\Users\red dyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-nio2-api\0.4.0-SNAPSHOT\uberfire-nio2-api-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_fo r_guvnor_6.0.1.Final\org\apache\helix\helix-core\0.6.2-incubating\helix-core-0.6.2-incubating.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\lo g4j\log4j\1.2.17\log4j-1.2.17.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\zookeeper\zookeeper\3.3.4\zookeeper-3.3.4.jar;C:\Users\ reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\commons-cli\commons-cli\1.2\commons-cli-1.2.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\com\github\ sgroschupf\zkclient\0.1\zkclient-0.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\camel\camel-josql\2.12.1\camel-josql-2.12.1.jar; C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\camel\camel-core\2.12.2\camel-core-2.12.2.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1 .Final\net\sf\josql\josql\1.5\josql-1.5.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\net\sf\josql\gentlyweb-utils\1.5\gentlyweb-utils-1.5.jar ;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\commons\commons-math\2.1\commons-math-2.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0. 1.Final\org\restlet\jse\org.restlet\2.1.4\org.restlet-2.1.4.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\yaml\snakeyaml\1.8\snakeyaml-1.8 .jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-human-task-core\6.2.0-SNAPSHOT\jbpm-human-task-core-6.2.0-SNAPSHOT.jar;C:\Users\r eddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\javax\activation\activation\1.1.1\activation-1.1.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\j bpm\jbpm-human-task-jpa\6.2.0-SNAPSHOT\jbpm-human-task-jpa-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-pers istence-jpa\6.2.0-SNAPSHOT\drools-persistence-jpa-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-shared-services\6 .2.0-SNAPSHOT\jbpm-shared-services-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\javax\enterprise\cdi-api\1.0-SP4\cdi-api-1.0-S P4.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\spec\javax\interceptor\jboss-interceptors-api_1.1_spec\1.0.0.Beta1\jboss-intercepto rs-api_1.1_spec-1.0.0.Beta1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\javax\inject\javax.inject\1\javax.inject-1.jar;C:\Users\reddyl\RECOS YS\m2_for_guvnor_6.0.1.Final\org\hibernate\javax\persistence\hibernate-jpa-2.0-api\1.0.1.Final\hibernate-jpa-2.0-api-1.0.1.Final.jar;C:\Users\reddyl\R ECOSYS\m2_for_guvnor_6.0.1.Final\joda-time\joda-time\1.6.2\joda-time-1.6.2.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-human-t ask-audit\6.2.0-SNAPSHOT\jbpm-human-task-audit-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\javassist\javassist\3.18.1-GA\ javassist-3.18.1-GA.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-kie-services\6.2.0-SNAPSHOT\jbpm-kie-services-6.2.0-SNAPSHOT.j ar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-bpmn2\6.2.0-SNAPSHOT\jbpm-bpmn2-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_g uvnor_6.0.1.Final\org\jbpm\jbpm-audit\6.2.0-SNAPSHOT\jbpm-audit-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-run time-manager\6.2.0-SNAPSHOT\jbpm-runtime-manager-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-persistence-jpa\6. 2.0-SNAPSHOT\jbpm-persistence-jpa-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-human-task-workitems\6.2.0-SNAPSH OT\jbpm-human-task-workitems-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\solder\solder-api\3.2.1.Final\solder-api-3 .2.1.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\solder\solder-logging\3.2.1.Final\solder-logging-3.2.1.Final.jar;C:\Users\r eddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\mvel\mvel2\2.1.9.Final\mvel2-2.1.9.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\ lucene\lucene-core\4.0.0\lucene-core-4.0.0.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\lucene\lucene-queryparser\4.0.0\lucene-que ryparser-4.0.0.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\lucene\lucene-queries\4.0.0\lucene-queries-4.0.0.jar;C:\Users\reddyl\R ECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\lucene\lucene-sandbox\4.0.0\lucene-sandbox-4.0.0.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\jak arta-regexp\jakarta-regexp\1.4\jakarta-regexp-1.4.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\lucene\lucene-analyzers-common\4.0. 0\lucene-analyzers-common-4.0.0.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\spec\javax\el\jboss-el-api_2.2_spec\1.0.4.Final\jboss- el-api_2.2_spec-1.0.4.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\freemarker\freemarker\2.3.19\freemarker-2.3.19.jar;C:\Users\redd yl\RECOSYS\m2_for_guvnor_6.0.1.Final\commons-collections\commons-collections\3.2.1\commons-collections-3.2.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor _6.0.1.Final\commons-codec\commons-codec\1.4\commons-codec-1.4.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-asset-mg mt-client\6.2.0-SNAPSHOT\jbpm-console-ng-asset-mgmt-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console- ng-asset-mgmt-api\6.2.0-SNAPSHOT\jbpm-console-ng-asset-mgmt-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-con sole-ng-asset-mgmt-backend\6.2.0-SNAPSHOT\jbpm-console-ng-asset-mgmt-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\ jbpm\jbpm-console-ng-business-domain-client\6.2.0-SNAPSHOT\jbpm-console-ng-business-domain-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_gu vnor_6.0.1.Final\org\jbpm\jbpm-console-ng-generic-api\6.2.0-SNAPSHOT\jbpm-console-ng-generic-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guv nor_6.0.1.Final\org\jbpm\jbpm-console-ng-business-domain-backend\6.2.0-SNAPSHOT\jbpm-console-ng-business-domain-backend-6.2.0-SNAPSHOT.jar;C:\Users\re ddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-process-runtime-client\6.2.0-SNAPSHOT\jbpm-console-ng-process-runtime-client-6.2.0-SNA PSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-process-runtime-backend\6.2.0-SNAPSHOT\jbpm-console-ng-process-ru ntime-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-human-tasks-forms-client\6.2.0-SNAPSHOT\jb pm-console-ng-human-tasks-forms-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-human-tasks-forms -api\6.2.0-SNAPSHOT\jbpm-console-ng-human-tasks-forms-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-n g-human-tasks-forms-backend\6.2.0-SNAPSHOT\jbpm-console-ng-human-tasks-forms-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Fi nal\org\jbpm\jbpm-form-modeler-api\6.2.0-SNAPSHOT\jbpm-form-modeler-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\ jbpm-console-ng-executor-service-client\6.2.0-SNAPSHOT\jbpm-console-ng-executor-service-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvno r_6.0.1.Final\org\jbpm\jbpm-console-ng-executor-service-api\6.2.0-SNAPSHOT\jbpm-console-ng-executor-service-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\REC OSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-executor-service-backend\6.2.0-SNAPSHOT\jbpm-console-ng-executor-service-backend-6.2.0-SNAPSHO T.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-executor\6.2.0-SNAPSHOT\jbpm-executor-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS \m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-backend-server\0.4.0-SNAPSHOT\uberfire-backend-server-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_f or_guvnor_6.0.1.Final\org\uberfire\uberfire-security-server\0.4.0-SNAPSHOT\uberfire-security-server-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_ guvnor_6.0.1.Final\org\ocpsoft\prettytime\prettytime\3.0.2.Final\prettytime-3.0.2.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jasy pt\jasypt\1.9.0\jasypt-1.9.0.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-generic-client\6.2.0-SNAPSHOT\jbpm-console -ng-generic-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-dashboard-api\6.2.0-SNAPSHOT\jbpm-con sole-ng-dashboard-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-dashboard-backend\6.2.0-SNAPSHOT\j bpm-console-ng-dashboard-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-dashboard-client\6.2.0- SNAPSHOT\jbpm-console-ng-dashboard-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-workbench-client\ 0.4.0-SNAPSHOT\uberfire-workbench-client-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\com\allen-sauer\gwt\dnd\gwt-dnd\3.1.2\gw t-dnd-3.1.2.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\remote\kie-services-remote\6.2.0-SNAPSHOT\kie-services-remote-6.2.0-SNAPSHOT .jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\remote\kie-services-jaxb\6.2.0-SNAPSHOT\kie-services-jaxb-6.2.0-SNAPSHOT.jar;C:\Users\r eddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\remote\ws\kie-remote-ws-wsdl-cmd\6.2.0-SNAPSHOT\kie-remote-ws-wsdl-cmd-6.2.0-SNAPSHOT.jar;C:\Users\red dyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\remote\ws\kie-remote-ws-common\6.2.0-SNAPSHOT\kie-remote-ws-common-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RE COSYS\m2_for_guvnor_6.0.1.Final\org\jboss\spec\javax\xml\ws\jboss-jaxws-api_2.2_spec\2.0.1.Final\jboss-jaxws-api_2.2_spec-2.0.1.Final.jar;C:\Users\red dyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\services\kie-wb-common-rest\6.2.0-SNAPSHOT\kie-wb-common-rest-6.2.0-SNAPSHOT.jar;C:\Users\redd yl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\resteasy\jaxrs-api\2.3.7.Final\jaxrs-api-2.3.7.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Fi nal\org\jboss\spec\javax\ejb\jboss-ejb-api_3.1_spec\1.0.2.Final\jboss-ejb-api_3.1_spec-1.0.2.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Fin al\org\apache\deltaspike\core\deltaspike-core-api\0.7\deltaspike-core-api-0.7.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools- wb-rest\6.2.0-SNAPSHOT\drools-wb-rest-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-rest-defaultapprover\6 .2.0-SNAPSHOT\drools-wb-rest-defaultapprover-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\javax\ws\rs\jsr311-api\1.1.1\jsr311- api-1.1.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\javax\xml\bind\jaxb-api\2.2.5\jaxb-api-2.2.5.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor _6.0.1.Final\org\jboss\resteasy\resteasy-jaxrs\2.3.7.Final\resteasy-jaxrs-2.3.7.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\scanno tation\scannotation\1.0.3\scannotation-1.0.3.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\javassist\javassist\3.12.1.GA\javassist-3.12.1.GA.j ar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\net\jcip\jcip-annotations\1.0\jcip-annotations-1.0.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0. 1.Final\org\jboss\resteasy\resteasy-cdi\2.3.7.Final\resteasy-cdi-2.3.7.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\resteasy\ resteasy-multipart-provider\2.3.7.Final\resteasy-multipart-provider-2.3.7.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\restea sy\resteasy-jaxb-provider\2.3.7.Final\resteasy-jaxb-provider-2.3.7.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\james\apache -mime4j\0.6\apache-mime4j-0.6.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\javax\servlet\servlet-api\2.5\servlet-api-2.5.jar;C:\Users\reddyl\ RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\resteasy\resteasy-jackson-provider\2.3.7.Final\resteasy-jackson-provider-2.3.7.Final.jar;C:\Users\reddyl\R ECOSYS\m2_for_guvnor_6.0.1.Final\org\codehaus\jackson\jackson-jaxrs\1.9.9\jackson-jaxrs-1.9.9.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\or g\codehaus\jackson\jackson-xc\1.9.9\jackson-xc-1.9.9.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\com\github\gwtbootstrap\gwt-bootstrap\2.2.1 .0\gwt-bootstrap-2.2.1.0.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\hibernate\hibernate-entitymanager\4.2.12.Final\hibernate-entitymana ger-4.2.12.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\logging\jboss-logging\3.1.4.GA\jboss-logging-3.1.4.GA.jar;C:\Users\re ddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\dom4j\dom4j\1.6.1\dom4j-1.6.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\spec\javax\transa ction\jboss-transaction-api_1.1_spec\1.0.1.Final\jboss-transaction-api_1.1_spec-1.0.1.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\ hibernate\common\hibernate-commons-annotations\4.0.2.Final\hibernate-commons-annotations-4.0.2.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.F inal\org\hibernate\hibernate-core\4.2.12.Final\hibernate-core-4.2.12.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\antlr\antlr\2.7.7\ant lr-2.7.7.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\hibernate\hibernate-validator\4.3.1.Final\hibernate-validator-4.3.1.Final.jar;C:\Us ers\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\javax\validation\validation-api\1.0.0.GA\validation-api-1.0.0.GA.jar;C:\Users\reddyl\RECOSYS\m2_for_guvno r_6.0.1.Final\javax\transaction\jta\1.1\jta-1.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\com\h2database\h2\1.3.168\h2-1.3.168.jar;C:\User s\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\codehaus\btm\btm\2.1.4\btm-2.1.4.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\solder \solder-impl\3.2.1.Final\solder-impl-3.2.1.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1. 3.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-workbench-models-commons\6.2.0-SNAPSHOT\drools-workbench-models-commons-6.2. 0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\commons-lang\commons-lang\2.6\commons-lang-2.6.jar;C:\Users\reddyl\RECOSYS\m2_for_guv nor_6.0.1.Final\org\drools\drools-workbench-models-datamodel-api\6.2.0-SNAPSHOT\drools-workbench-models-datamodel-api-6.2.0-SNAPSHOT.jar;C:\Users\redd yl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-workbench-models-guided-dtable\6.2.0-SNAPSHOT\drools-workbench-models-guided-dtable-6.2.0-SNAPS HOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-workbench-models-guided-scorecard\6.2.0-SNAPSHOT\drools-workbench-models-g uided-scorecard-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\com\thoughtworks\xstream\xstream\1.4.7\xstream-1.4.7.jar;C:\Users \reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\xmlpull\xmlpull\1.1.3.1\xmlpull-1.1.3.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\xpp3\xpp3_min\ 1.1.4c\xpp3_min-1.1.4c.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-scorecards\6.2.0-SNAPSHOT\drools-scorecards-6.2.0-SNAPS HOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-pmml\6.2.0-SNAPSHOT\drools-pmml-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS \m2_for_guvnor_6.0.1.Final\org\apache\poi\poi-ooxml\3.10-FINAL\poi-ooxml-3.10-FINAL.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\p oi\poi\3.10-FINAL\poi-3.10-FINAL.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\poi\poi-ooxml-schemas\3.10-FINAL\poi-ooxml-schemas-3 .10-FINAL.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\xmlbeans\xmlbeans\2.3.0\xmlbeans-2.3.0.jar;C:\Users\reddyl\RECOSYS\m2_for_g uvnor_6.0.1.Final\stax\stax-api\1.0.1\stax-api-1.0.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-workbench-models-guided-t emplate\6.2.0-SNAPSHOT\drools-workbench-models-guided-template-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools- templates\6.2.0-SNAPSHOT\drools-templates-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-workbench-models-test -scenarios\6.2.0-SNAPSHOT\drools-workbench-models-test-scenarios-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\guvnor\guvno r-services-api\6.2.0-SNAPSHOT\guvnor-services-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-backend-a pi\0.4.0-SNAPSHOT\uberfire-backend-api-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\guvnor\guvnor-m2repo-editor-api\6.2.0- SNAPSHOT\guvnor-m2repo-editor-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\guvnor\guvnor-m2repo-editor-client\6.2.0-SN APSHOT\guvnor-m2repo-editor-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-client\0.4.0-SNAPSHOT\ub erfire-client-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-js\0.4.0-SNAPSHOT\uberfire-js-0.4.0-SNAPSHOT. jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-security-client\0.4.0-SNAPSHOT\uberfire-security-client-0.4.0-SNAPSHOT.jar ;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-widgets-commons\0.4.0-SNAPSHOT\uberfire-widgets-commons-0.4.0-SNAPSHOT.jar;C: \Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\guvnor\guvnor-m2repo-editor-backend\6.2.0-SNAPSHOT\guvnor-m2repo-editor-backend-6.2.0-SNAPSHOT.jar ;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\commons-io\commons-io\2.1\commons-io-2.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\comm ons-fileupload\commons-fileupload\1.3.1\commons-fileupload-1.3.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\sonatype\maven\wagon-ahc\1. 2.1\wagon-ahc-1.2.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\com\ning\async-http-client\1.6.5\async-http-client-1.6.5.jar;C:\Users\reddyl \RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\netty\netty\3.2.6.Final\netty-3.2.6.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\guvno r\guvnor-inbox-api\6.2.0-SNAPSHOT\guvnor-inbox-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-api\0.4. 0-SNAPSHOT\uberfire-api-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\guvnor\guvnor-inbox-client\6.2.0-SNAPSHOT\guvnor-inbo x-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-client-all\0.4.0-SNAPSHOT\uberfire-client-all-0.4. 0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-client-backend\0.4.0-SNAPSHOT\uberfire-client-backend-0.4.0-SNA PSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-widgets-core-client\0.4.0-SNAPSHOT\uberfire-widgets-core-client-0.4. 0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-workbench-client-backend\0.4.0-SNAPSHOT\uberfire-workbench-clie nt-backend-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\guvnor\guvnor-inbox-backend\6.2.0-SNAPSHOT\guvnor-inbox-backend-6. 2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\guvnor\guvnor-project-api\6.2.0-SNAPSHOT\guvnor-project-api-6.2.0-SNAPSHOT.jar; C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\guvnor\guvnor-project-backend\6.2.0-SNAPSHOT\guvnor-project-backend-6.2.0-SNAPSHOT.jar;C:\Users\ reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\guvnor\guvnor-services-backend\6.2.0-SNAPSHOT\guvnor-services-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\ RECOSYS\m2_for_guvnor_6.0.1.Final\org\guvnor\guvnor-workingset-api\6.2.0-SNAPSHOT\guvnor-workingset-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_ for_guvnor_6.0.1.Final\org\guvnor\guvnor-workingset-client\6.2.0-SNAPSHOT\guvnor-workingset-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_g uvnor_6.0.1.Final\org\guvnor\guvnor-project-builder\6.2.0-SNAPSHOT\guvnor-project-builder-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0 .1.Final\com\google\protobuf\protobuf-java\2.5.0\protobuf-java-2.5.0.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\services\ kie-wb-common-datamodel-api\6.2.0-SNAPSHOT\kie-wb-common-datamodel-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\wo rkbench\services\kie-wb-common-datamodel-backend\6.2.0-SNAPSHOT\kie-wb-common-datamodel-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvn or_6.0.1.Final\org\kie\workbench\widgets\kie-wb-common-ui\6.2.0-SNAPSHOT\kie-wb-common-ui-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0 .1.Final\org\kie\workbench\services\kie-wb-common-services-api\6.2.0-SNAPSHOT\kie-wb-common-services-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2 _for_guvnor_6.0.1.Final\org\kie\workbench\services\kie-wb-common-services-backend\6.2.0-SNAPSHOT\kie-wb-common-services-backend-6.2.0-SNAPSHOT.jar;C:\ Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\services\kie-wb-common-refactoring-backend\6.2.0-SNAPSHOT\kie-wb-common-refactoring-b ackend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\services\kie-wb-common-refactoring-api\6.2.0-SNAPSHOT\ki e-wb-common-refactoring-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-project-edito r-api\6.2.0-SNAPSHOT\kie-wb-common-project-editor-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\k ie-wb-common-project-editor-client\6.2.0-SNAPSHOT\kie-wb-common-project-editor-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.F inal\org\kie\workbench\widgets\kie-wb-view-source-widget\6.2.0-SNAPSHOT\kie-wb-view-source-widget-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_gu vnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-default-editor-api\6.2.0-SNAPSHOT\kie-wb-common-default-editor-api-6.2.0-SNAPSHOT.jar;C:\User s\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\widgets\kie-wb-metadata-widget\6.2.0-SNAPSHOT\kie-wb-metadata-widget-6.2.0-SNAPSHOT.jar;C :\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-project-editor-backend\6.2.0-SNAPSHOT\kie-wb-common-project-e ditor-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-project-imports-editor-clie nt\6.2.0-SNAPSHOT\kie-wb-common-project-imports-editor-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\s creens\kie-wb-common-project-imports-editor-api\6.2.0-SNAPSHOT\kie-wb-common-project-imports-editor-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_ for_guvnor_6.0.1.Final\org\kie\workbench\widgets\kie-wb-config-resource-widget\6.2.0-SNAPSHOT\kie-wb-config-resource-widget-6.2.0-SNAPSHOT.jar;C:\User s\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-search-screen-api\6.2.0-SNAPSHOT\kie-wb-common-search-screen-api-6. 2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-search-screen-client\6.2.0-SNAPSHOT\kie-wb- common-search-screen-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-search-screen -backend\6.2.0-SNAPSHOT\kie-wb-common-search-screen-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire -metadata-api\0.4.0-SNAPSHOT\uberfire-metadata-api-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie- wb-common-project-explorer-api\6.2.0-SNAPSHOT\kie-wb-common-project-explorer-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\ org\kie\workbench\screens\kie-wb-common-project-explorer-client\6.2.0-SNAPSHOT\kie-wb-common-project-explorer-client-6.2.0-SNAPSHOT.jar;C:\Users\reddy l\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-project-explorer-backend\6.2.0-SNAPSHOT\kie-wb-common-project-explorer-bac kend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-java-editor-api\6.2.0-SNAPSHOT\kie-w b-common-java-editor-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-java-editor-clie nt\6.2.0-SNAPSHOT\kie-wb-common-java-editor-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie- wb-common-message-console-api\6.2.0-SNAPSHOT\kie-wb-common-message-console-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\or g\kie\workbench\screens\kie-wb-common-message-console-backend\6.2.0-SNAPSHOT\kie-wb-common-message-console-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\ RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-message-console-client\6.2.0-SNAPSHOT\kie-wb-common-message-console-client-6 .2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-default-editor-client\6.2.0-SNAPSHOT\kie-w b-common-default-editor-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-default-ed itor-backend\6.2.0-SNAPSHOT\kie-wb-common-default-editor-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drool s-wb-categories-editor-client\6.2.0-SNAPSHOT\drools-wb-categories-editor-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\o rg\drools\drools-wb-guided-rule-editor-client\6.2.0-SNAPSHOT\drools-wb-guided-rule-editor-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guv nor_6.0.1.Final\org\drools\drools-wb-guided-rule-editor-api\6.2.0-SNAPSHOT\drools-wb-guided-rule-editor-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS \m2_for_guvnor_6.0.1.Final\org\kie\workbench\services\kie-wb-common-security\6.2.0-SNAPSHOT\kie-wb-common-security-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\ RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-security-api\0.4.0-SNAPSHOT\uberfire-security-api-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m 2_for_guvnor_6.0.1.Final\org\drools\drools-wb-guided-rule-editor-backend\6.2.0-SNAPSHOT\drools-wb-guided-rule-editor-backend-6.2.0-SNAPSHOT.jar;C:\Use rs\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-guided-template-editor-client\6.2.0-SNAPSHOT\drools-wb-guided-template-editor-client- 6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-guided-template-editor-api\6.2.0-SNAPSHOT\drools-wb-guided-t emplate-editor-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\widgets\kie-wb-decorated-grid-widget\6.2.0-S NAPSHOT\kie-wb-decorated-grid-widget-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-guided-template-editor- backend\6.2.0-SNAPSHOT\drools-wb-guided-template-editor-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools -wb-guided-dtable-editor-client\6.2.0-SNAPSHOT\drools-wb-guided-dtable-editor-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Fi nal\org\drools\drools-wb-guided-dtable-editor-api\6.2.0-SNAPSHOT\drools-wb-guided-dtable-editor-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_ guvnor_6.0.1.Final\org\drools\drools-wb-guided-dtable-editor-backend\6.2.0-SNAPSHOT\drools-wb-guided-dtable-editor-backend-6.2.0-SNAPSHOT.jar;C:\Users \reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-workitems-editor-api\6.2.0-SNAPSHOT\drools-wb-workitems-editor-api-6.2.0-SNAPSHOT.jar;C :\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-guided-scorecard-editor-client\6.2.0-SNAPSHOT\drools-wb-guided-scorecard-editor- client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-guided-scorecard-editor-api\6.2.0-SNAPSHOT\drools-wb- guided-scorecard-editor-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-guided-scorecard-editor-backend\ 6.2.0-SNAPSHOT\drools-wb-guided-scorecard-editor-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-drl -text-editor-client\6.2.0-SNAPSHOT\drools-wb-drl-text-editor-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\dr ools-wb-drl-text-editor-api\6.2.0-SNAPSHOT\drools-wb-drl-text-editor-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\droo ls\drools-wb-drl-text-editor-backend\6.2.0-SNAPSHOT\drools-wb-drl-text-editor-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.F inal\org\drools\drools-wb-enum-editor-client\6.2.0-SNAPSHOT\drools-wb-enum-editor-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0. 1.Final\org\drools\drools-wb-enum-editor-api\6.2.0-SNAPSHOT\drools-wb-enum-editor-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.F inal\org\drools\drools-wb-enum-editor-backend\6.2.0-SNAPSHOT\drools-wb-enum-editor-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6. 0.1.Final\org\drools\drools-wb-factmodel-editor-backend\6.2.0-SNAPSHOT\drools-wb-factmodel-editor-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m 2_for_guvnor_6.0.1.Final\org\drools\drools-wb-factmodel-editor-api\6.2.0-SNAPSHOT\drools-wb-factmodel-editor-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RE COSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-dsl-text-editor-client\6.2.0-SNAPSHOT\drools-wb-dsl-text-editor-client-6.2.0-SNAPSHOT.jar;C:\User s\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-dsl-text-editor-api\6.2.0-SNAPSHOT\drools-wb-dsl-text-editor-api-6.2.0-SNAPSHOT.jar;C: \Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-dsl-text-editor-backend\6.2.0-SNAPSHOT\drools-wb-dsl-text-editor-backend-6.2.0-SN APSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-dtable-xls-editor-client\6.2.0-SNAPSHOT\drools-wb-dtable-xls-editor- client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-dtable-xls-editor-api\6.2.0-SNAPSHOT\drools-wb-dtable -xls-editor-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-dtable-xls-editor-backend\6.2.0-SNAPSHOT\dro ols-wb-dtable-xls-editor-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-decisiontables\6.2.0-SNAPSHOT\ drools-decisiontables-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-scorecard-xls-editor-client\6.2.0-SNAP SHOT\drools-wb-scorecard-xls-editor-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-scorecard-xls-edi tor-api\6.2.0-SNAPSHOT\drools-wb-scorecard-xls-editor-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-sc orecard-xls-editor-backend\6.2.0-SNAPSHOT\drools-wb-scorecard-xls-editor-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\ org\kie\workbench\screens\kie-wb-common-data-modeller-api\6.2.0-SNAPSHOT\kie-wb-common-data-modeller-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2 _for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-data-modeller-backend\6.2.0-SNAPSHOT\kie-wb-common-data-modeller-backend-6.2.0-SNAPSHO T.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\services\kie-wb-common-data-modeller-core\6.2.0-SNAPSHOT\kie-wb-common-data- modeller-core-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\forge\roaster\roaster-jdt\2.4.0.Final\roaster-jdt-2.4.0.F inal.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\forge\roaster\roaster-api\2.4.0.Final\roaster-api-2.4.0.Final.jar;C:\Users\reddyl \RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-data-modeller-client\6.2.0-SNAPSHOT\kie-wb-common-data-modeller-client-6.2. 0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-home-api\6.2.0-SNAPSHOT\kie-wb-common-home-ap i-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-home-client\6.2.0-SNAPSHOT\kie-wb-commo n-home-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-organizationalunit-manager\ 6.2.0-SNAPSHOT\kie-wb-common-organizationalunit-manager-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-glob als-editor-api\6.2.0-SNAPSHOT\drools-wb-globals-editor-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-g lobals-editor-client\6.2.0-SNAPSHOT\drools-wb-globals-editor-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\dr ools-wb-globals-editor-backend\6.2.0-SNAPSHOT\drools-wb-globals-editor-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\or g\drools\drools-wb-test-scenario-editor-client\6.2.0-SNAPSHOT\drools-wb-test-scenario-editor-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_ guvnor_6.0.1.Final\org\drools\drools-wb-test-scenario-editor-api\6.2.0-SNAPSHOT\drools-wb-test-scenario-editor-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\ RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-test-scenario-editor-backend\6.2.0-SNAPSHOT\drools-wb-test-scenario-editor-backend-6.2.0-SNAPSH OT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-workitems-editor-client\6.2.0-SNAPSHOT\drools-wb-workitems-editor-client -6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-workitems-editor-backend\6.2.0-SNAPSHOT\drools-wb-workitems -editor-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-all\0.4.0-SNAPSHOT\uberfire-all-0.4.0-SNAPS HOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-server-all\0.4.0-SNAPSHOT\uberfire-server-all-0.4.0-SNAPSHOT.jar;C:\Us ers\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-server\0.4.0-SNAPSHOT\uberfire-server-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2 _for_guvnor_6.0.1.Final\org\uberfire\uberfire-nio2-jgit\0.4.0-SNAPSHOT\uberfire-nio2-jgit-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0 .1.Final\org\apache\sshd\sshd-core\0.10.0\sshd-core-0.10.0.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\mina\mina-core\2.0.4\mina- core-2.0.4.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\eclipse\jgit\org.eclipse.jgit\3.3.1.201403241930-r\org.eclipse.jgit-3.3.1.2014032 41930-r.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\com\jcraft\jsch\0.1.48\jsch-0.1.48.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final \com\googlecode\javaewah\JavaEWAH\0.7.9\JavaEWAH-0.7.9.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-nio2-fs\0.4.0-SNAPS HOT\uberfire-nio2-fs-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-workbench-processors\0.4.0-SNAPSHOT\ub erfire-workbench-processors-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-panel-manager-nswe\0.4.0-SNAPSH OT\uberfire-panel-manager-nswe-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\errai\errai-jboss-as-support\2.4.4.Final \errai-jboss-as-support-2.4.4.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\errai\errai-common\2.4.4.Final\errai-common-2.4.4. Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\errai\reflections\reflections\2.4.4.Final\reflections-2.4.4.Final.jar;C:\Users\r eddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\errai\errai-bus\2.4.4.Final\errai-bus-2.4.4.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Fi nal\org\jboss\errai\errai-config\2.4.4.Final\errai-config-2.4.4.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\errai\errai-mars halling\2.4.4.Final\errai-marshalling-2.4.4.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\com\google\inject\guice\3.0\guice-3.0.jar;C:\U sers\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\aopalliance\aopalliance\1.0\aopalliance-1.0.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\com\go ogle\guava\guava\13.0.1\guava-13.0.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jgroups\jgroups\3.2.13.Final\jgroups-3.2.13.Final.jar;C :\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\errai\errai-ioc\2.4.4.Final\errai-ioc-2.4.4.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor _6.0.1.Final\org\jboss\errai\errai-codegen\2.4.4.Final\errai-codegen-2.4.4.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\errai \errai-codegen-gwt\2.4.4.Final\errai-codegen-gwt-2.4.4.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\javax\annotation\jsr250-api\1.0\jsr 250-api-1.0.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\errai\errai-ui\2.4.4.Final\errai-ui-2.4.4.Final.jar;C:\Users\reddyl\RECOSY S\m2_for_guvnor_6.0.1.Final\org\codehaus\jackson\jackson-mapper-asl\1.9.9\jackson-mapper-asl-1.9.9.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Fin al\org\jsoup\jsoup\1.7.1\jsoup-1.7.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\stanbol\org.apache.stanbol.enhancer.engines.html extractor\0.10.0\org.apache.stanbol.enhancer.engines.htmlextractor-0.10.0.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\clerezza\rd f.core\0.12-incubating\rdf.core-0.12-incubating.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\clerezza\utils\0.1-incubating\utils-0 .1-incubating.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\wymiwyg\wymiwyg-commons-core\0.7.6\wymiwyg-commons-core-0.7.6.jar;C:\Users\red dyl\RECOSYS\m2_for_guvnor_6.0.1.Final\commons-logging\commons-logging-api\1.1\commons-logging-api-1.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1. Final\org\lesscss\lesscss\1.3.3\lesscss-1.3.3.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\commons-logging\commons-logging\1.1.1\commons-logg ing-1.1.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\commons\commons-lang3\3.1\commons-lang3-3.1.jar;C:\Users\reddyl\RECOSYS\m2_ for_guvnor_6.0.1.Final\org\mozilla\rhino\1.7R4\rhino-1.7R4.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\errai\errai-data-binding\2. 4.4.Final\errai-data-binding-2.4.4.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\com\google\guava\guava-gwt\14.0.1\guava-gwt-14.0.1.jar; C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\com\google\code\findbugs\jsr305\1.3.9\jsr305-1.3.9.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.F inal\org\jboss\errai\errai-cdi-client\2.4.4.Final\errai-cdi-client-2.4.4.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\errai\e rrai-ioc-bus-support\2.4.4.Final\errai-ioc-bus-support-2.4.4.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\errai\errai-javax-e nterprise\2.4.4.Final\errai-javax-enterprise-2.4.4.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\errai\errai-weld-integration\ 2.4.4.Final\errai-weld-integration-2.4.4.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\errai\errai-cdi-jetty\2.4.4.Final\errai -cdi-jetty-2.4.4.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\mortbay\jetty\jetty-plus\6.1.25\jetty-plus-6.1.25.jar;C:\Users\reddyl \RECOSYS\m2_for_guvnor_6.0.1.Final\geronimo-spec\geronimo-spec-jta\1.0.1B-rc4\geronimo-spec-jta-1.0.1B-rc4.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6 .0.1.Final\org\mortbay\jetty\jetty-naming\6.1.25\jetty-naming-6.1.25.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\weld\se\weld-se-c ore\1.1.21.Final\weld-se-core-1.1.21.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\weld\weld-spi\1.1.Final\weld-spi-1.1.Final. jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\weld\weld-api\1.1.Final\weld-api-1.1.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6 .0.1.Final\org\jboss\weld\weld-core\1.1.21.Final\weld-core-1.1.21.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\slf4j\slf4j-ext\1.7. 2\slf4j-ext-1.7.2.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\ch\qos\cal10n\cal10n-api\0.7.7\cal10n-api-0.7.7.jar;C:\Users\reddyl\RECOSYS\m2 _for_guvnor_6.0.1.Final\javax\el\el-api\2.2\el-api-2.2.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\weld\servlet\weld-servlet-core\ 1.1.21.Final\weld-servlet-core-1.1.21.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\com\google\gwt\gwt-user\2.5.1\gwt-user-2.5.1.jar;C:\ Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\javax\validation\validation-api\1.0.0.GA\validation-api-1.0.0.GA-sources.jar;C:\Users\reddyl\RECOSYS\m2 _for_guvnor_6.0.1.Final\org\json\json\20090211\json-20090211.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\osgi\org.osgi.core\4.2.0\org.os gi.core-4.2.0.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\com\sun\xml\bind\jaxb-impl\2.2.5\jaxb-impl-2.2.5.jar;C:\Users\reddyl\RECOSYS\m2_fo r_guvnor_6.0.1.Final\com\sun\xml\bind\jaxb-xjc\2.2.5\jaxb-xjc-2.2.5.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-designer-clien t\6.2.0-SNAPSHOT\jbpm-designer-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-designer-api\6.2.0-SNAPSHOT\j bpm-designer-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-designer-backend\6.2.0-SNAPSHOT\jbpm-designer-back end-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-flow\6.2.0-SNAPSHOT\jbpm-flow-6.2.0-SNAPSHOT.jar;C:\Users\reddy l\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-flow-builder\6.2.0-SNAPSHOT\jbpm-flow-builder-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvn or_6.0.1.Final\org\jbpm\jbpm-workitems\6.2.0-SNAPSHOT\jbpm-workitems-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\c ommons\commons-compress\1.4.1\commons-compress-1.4.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\tukaani\xz\1.0\xz-1.0.jar;C:\Users\redd yl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\commons\commons-exec\1.0.1\commons-exec-1.0.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\or g\apache\cxf\cxf-rt-frontend-jaxws\2.7.11\cxf-rt-frontend-jaxws-2.7.11.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\xml-resolver\xml-resolver \1.2\xml-resolver-1.2.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\asm\asm\3.3.1\asm-3.3.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Fi nal\org\apache\cxf\cxf-api\2.7.11\cxf-api-2.7.11.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\geronimo\specs\geronimo-javamail_1.4 _spec\1.7.1\geronimo-javamail_1.4_spec-1.7.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\cxf\cxf-rt-core\2.7.11\cxf-rt-core-2.7.1 1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\cxf\cxf-rt-bindings-soap\2.7.11\cxf-rt-bindings-soap-2.7.11.jar;C:\Users\reddyl\REC OSYS\m2_for_guvnor_6.0.1.Final\org\apache\cxf\cxf-rt-bindings-xml\2.7.11\cxf-rt-bindings-xml-2.7.11.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Fi nal\org\apache\cxf\cxf-rt-frontend-simple\2.7.11\cxf-rt-frontend-simple-2.7.11.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\cxf\cx f-rt-ws-addr\2.7.11\cxf-rt-ws-addr-2.7.11.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\cxf\cxf-rt-ws-policy\2.7.11\cxf-rt-ws-polic y-2.7.11.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\cxf\cxf-rt-databinding-jaxb\2.7.11\cxf-rt-databinding-jaxb-2.7.11.jar;C:\Use rs\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\wsdl4j\wsdl4j\1.6.2\wsdl4j-1.6.2.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\neethi\n eethi\3.0.2\neethi-3.0.2.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\codehaus\woodstox\woodstox-core-asl\4.2.0\woodstox-core-asl-4.2.0.j ar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\javax\xml\stream\stax-api\1.0-2\stax-api-1.0-2.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Fi nal\org\codehaus\woodstox\stax2-api\3.1.1\stax2-api-3.1.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\ws\xmlschema\xmlschema-core \2.0.3\xmlschema-core-2.0.3.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-bpmn2-emfextmodel\6.2.0-SNAPSHOT\jbpm-bpmn2-emfextmode l-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\eclipse\emf\org.eclipse.emf.common\2.6.0.v20100614-1136\org.eclipse.emf.com mon-2.6.0.v20100614-1136.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\eclipse\emf\org.eclipse.emf.ecore\2.6.0.v20100614-1136\org.eclipse. emf.ecore-2.6.0.v20100614-1136.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\eclipse\emf\org.eclipse.emf.ecore.xmi\2.5.0.v20100521-1846\or g.eclipse.emf.ecore.xmi-2.5.0.v20100521-1846.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm5\jbpmmigration\0.12\jbpmmigration-0.1 2.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-form-modeler-bpmn-form-builder\6.2.0-SNAPSHOT\jbpm-form-modeler-bpmn-form-builde r-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\com\google\javascript\closure-compiler\r1741\closure-compiler-r1741.jar;C:\User s\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\args4j\args4j\2.0.12\args4j-2.0.12.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\com\googlecode\jar jar\jarjar\1.1\jarjar-1.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\eclipse\org.eclipse.bpmn2\0.7.3\org.eclipse.bpmn2-0.7.3.jar;C:\Use rs\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jdom\jdom\1.1.3\jdom-1.1.3.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\velocity\v elocity\1.7\velocity-1.7.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\xmlgraphics\xmlgraphics-commons\1.4\xmlgraphics-commons-1.4. jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\batik\batik-parser\1.6-1\batik-parser-1.6-1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Fina l\batik\batik-transcoder\1.6-1\batik-transcoder-1.6-1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\batik\batik-extension\1.6-1\batik-extensio n-1.6-1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\batik\batik-dom\1.6-1\batik-dom-1.6-1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Fi nal\batik\batik-xml\1.6-1\batik-xml-1.6-1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\batik\batik-bridge\1.6-1\batik-bridge-1.6-1.jar;C:\Use rs\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\batik\batik-css\1.6-1\batik-css-1.6-1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\batik\batik-sv g-dom\1.6-1\batik-svg-dom-1.6-1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\batik\batik-svggen\1.6-1\batik-svggen-1.6-1.jar;C:\Users\reddyl\ RECOSYS\m2_for_guvnor_6.0.1.Final\batik\batik-util\1.6-1\batik-util-1.6-1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\batik\batik-gui-util\1 .6-1\batik-gui-util-1.6-1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\batik\batik-ext\1.6-1\batik-ext-1.6-1.jar;C:\Users\reddyl\RECOSYS\m2_f or_guvnor_6.0.1.Final\batik\batik-script\1.6-1\batik-script-1.6-1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\batik\batik-gvt\1.6-1\batik-gv t-1.6-1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\batik\batik-awt-util\1.6-1\batik-awt-util-1.6-1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvno r_6.0.1.Final\org\apache\xmlgraphics\fop\0.95\fop-0.95.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\avalon\framework\avalon-framew ork-api\4.3.1\avalon-framework-api-4.3.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\xerces\xercesImpl\2.9.1\xercesImpl-2.9.1.jar;C:\Users\r eddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\xml-apis\xml-apis\1.3.04\xml-apis-1.3.04.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\javax\mail\mail \1.4.5\mail-1.4.5.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\rhino\js\1.7R2\js-1.7R2.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\ xalan\xalan\2.7.1\xalan-2.7.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\xalan\serializer\2.7.1\serializer-2.7.1.jar;C:\Users\reddyl\RECOSY S\m2_for_guvnor_6.0.1.Final\org\codehaus\jackson\jackson-core-asl\1.9.9\jackson-core-asl-1.9.9.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\o rg\antlr\ST4\4.0.7\ST4-4.0.7.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\osgi\org.osgi.compendium\4.2.0\org.osgi.compendium-4.2.0.jar;C: \Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\avalon-framework\avalon-framework\4.1.4\avalon-framework-4.1.4.jar;C:\Users\reddyl\RECOSYS\m2_for_guvn or_6.0.1.Final\org\apache\abdera\abdera-i18n\1.1.2\abdera-i18n-1.1.2.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\geronimo\specs\g eronimo-activation_1.0.2_spec\1.1\geronimo-activation_1.0.2_spec-1.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\commons-configuration\commo ns-configuration\1.6\commons-configuration-1.6.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\commons-httpclient\commons-httpclient\3.1\commons -httpclient-3.1.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\jbpm-simulation\6.2.0-SNAPSHOT\jbpm-simulation-6.2.0-SNAPSHOT.jar;C:\ Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\commons\commons-math3\3.2\commons-math3-3.2.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1. Final\org\drools\drools-simulator\6.2.0-SNAPSHOT\drools-simulator-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\ub erfire-metadata-backend-lucene\0.4.0-SNAPSHOT\uberfire-metadata-backend-lucene-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\or g\uberfire\uberfire-nio2-model\0.4.0-SNAPSHOT\uberfire-nio2-model-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\apache\luce ne\lucene-codecs\4.0.0\lucene-codecs-4.0.0.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-commons\0.4.0-SNAPSHOT\uberfire -commons-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-metadata-commons-io\0.4.0-SNAPSHOT\uberfire-metada ta-commons-io-0.4.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\junit\junit\4.11\junit-4.11.jar;C:\Users\reddyl\RECOSYS\m2_for_guvn or_6.0.1.Final\org\jbpm\jbpm-form-modeler-app\6.2.0-SNAPSHOT\jbpm-form-modeler-app-6.2.0-SNAPSHOT.war;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Fina l\org\jbpm\jbpm-form-modeler-renderer-api\6.2.0-SNAPSHOT\jbpm-form-modeler-renderer-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1 .Final\org\jbpm\jbpm-form-modeler-renderer-client\6.2.0-SNAPSHOT\jbpm-form-modeler-renderer-client-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_g uvnor_6.0.1.Final\org\jbpm\jbpm-form-modeler-renderer-backend\6.2.0-SNAPSHOT\jbpm-form-modeler-renderer-backend-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\REC OSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-form-modeler-editor-api\6.2.0-SNAPSHOT\jbpm-form-modeler-editor-api-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RE COSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-form-modeler-editor-client\6.2.0-SNAPSHOT\jbpm-form-modeler-editor-client-6.2.0-SNAPSHOT.jar;C:\Users\re ddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-form-modeler-editor-backend\6.2.0-SNAPSHOT\jbpm-form-modeler-editor-backend-6.2.0-SNAPSHOT.jar;C: \Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-form-modeler-form-provider\6.2.0-SNAPSHOT\jbpm-form-modeler-form-provider-6.2.0-SNAPSHOT .jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-form-modeler-data-modeler\6.2.0-SNAPSHOT\jbpm-form-modeler-data-modeler-6.2.0-SNA PSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-form-modeler-service-core\6.2.0-SNAPSHOT\jbpm-form-modeler-service-core-6.2. 0-SNAPSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-form-modeler-common\6.2.0-SNAPSHOT\jbpm-form-modeler-common-6.2.0-SNAPS HOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\net\sf\opencsv\opencsv\2.3\opencsv-2.3.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final \commons-jxpath\commons-jxpath\1.3\commons-jxpath-1.3.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\beanshell\bsh\1.3.0\bsh-1.3.0.jar;C:\U sers\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\spec\javax\servlet\jboss-servlet-api_3.0_spec\1.0.2.Final\jboss-servlet-api_3.0_spec-1.0.2.Fin al.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\spec\javax\servlet\jsp\jboss-jsp-api_2.2_spec\1.0.1.Final\jboss-jsp-api_2.2_spec-1. 0.1.Final.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-form-modeler-document\6.2.0-SNAPSHOT\jbpm-form-modeler-document-6.2.0-SN APSHOT.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-document\6.2.0-SNAPSHOT\jbpm-document-6.2.0-SNAPSHOT.jar;C:\Users\reddyl\RE COSYS\m2_for_guvnor_6.0.1.Final\org\jboss\spec\javax\servlet\jstl\jboss-jstl-api_1.2_spec\1.1.0.Final\jboss-jstl-api_1.2_spec-1.1.0.Final.jar;C:\Users \reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\spec\javax\el\jboss-el-api_3.0_spec\1.0.0.Final\jboss-el-api_3.0_spec-1.0.0.Final.jar;C:\Users\red dyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\spec\javax\servlet\jboss-servlet-api_3.1_spec\1.0.0.Final\jboss-servlet-api_3.1_spec-1.0.0.Final.jar;C :\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jboss\spec\javax\servlet\jsp\jboss-jsp-api_2.3_spec\1.0.0.Final\jboss-jsp-api_2.3_spec-1.0.0.Fina l.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-asset-mgmt-api\6.2.0-SNAPSHOT\jbpm-console-ng-asset-mgmt-api-6.2.0-SN APSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-asset-mgmt-client\6.2.0-SNAPSHOT\jbpm-console-ng-asset-m gmt-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-human-tasks-api\6.2.0-SNAPSHOT\jbpm-c onsole-ng-human-tasks-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-human-tasks-client\6.2 .0-SNAPSHOT\jbpm-console-ng-human-tasks-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-p rocess-runtime-api\6.2.0-SNAPSHOT\jbpm-console-ng-process-runtime-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org \jbpm\jbpm-console-ng-process-runtime-client\6.2.0-SNAPSHOT\jbpm-console-ng-process-runtime-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\ m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-business-domain-api\6.2.0-SNAPSHOT\jbpm-console-ng-business-domain-api-6.2.0-SNAPSHOT-sources.jar;C :\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-business-domain-client\6.2.0-SNAPSHOT\jbpm-console-ng-business-domain-client -6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-generic-client\6.2.0-SNAPSHOT\jbpm-console-ng-g eneric-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-human-tasks-forms-client\6.2.0-SNA PSHOT\jbpm-console-ng-human-tasks-forms-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-designer-api \6.2.0-SNAPSHOT\jbpm-designer-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-designer-client\6.2.0-SNA PSHOT\jbpm-designer-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-dashboard-api\6.2.0-S NAPSHOT\jbpm-console-ng-dashboard-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-console-ng-dashboard- client\6.2.0-SNAPSHOT\jbpm-console-ng-dashboard-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-form -modeler-api\6.2.0-SNAPSHOT\jbpm-form-modeler-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\jbpm-form-mode ler-renderer-api\6.2.0-SNAPSHOT\jbpm-form-modeler-renderer-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\jbpm\j bpm-form-modeler-renderer-client\6.2.0-SNAPSHOT\jbpm-form-modeler-renderer-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0 .1.Final\org\jbpm\jbpm-form-modeler-editor-api\6.2.0-SNAPSHOT\jbpm-form-modeler-editor-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_g uvnor_6.0.1.Final\org\jbpm\jbpm-form-modeler-editor-client\6.2.0-SNAPSHOT\jbpm-form-modeler-editor-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\R ECOSYS\m2_for_guvnor_6.0.1.Final\org\guvnor\guvnor-inbox-api\6.2.0-SNAPSHOT\guvnor-inbox-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for _guvnor_6.0.1.Final\org\guvnor\guvnor-inbox-client\6.2.0-SNAPSHOT\guvnor-inbox-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor _6.0.1.Final\org\guvnor\guvnor-m2repo-editor-api\6.2.0-SNAPSHOT\guvnor-m2repo-editor-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guv nor_6.0.1.Final\org\guvnor\guvnor-m2repo-editor-client\6.2.0-SNAPSHOT\guvnor-m2repo-editor-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m 2_for_guvnor_6.0.1.Final\org\guvnor\guvnor-workingset-api\6.2.0-SNAPSHOT\guvnor-workingset-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_f or_guvnor_6.0.1.Final\org\guvnor\guvnor-workingset-client\6.2.0-SNAPSHOT\guvnor-workingset-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m 2_for_guvnor_6.0.1.Final\org\guvnor\guvnor-services-api\6.2.0-SNAPSHOT\guvnor-services-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_g uvnor_6.0.1.Final\org\guvnor\guvnor-project-api\6.2.0-SNAPSHOT\guvnor-project-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0 .1.Final\org\kie\workbench\screens\kie-wb-common-project-editor-api\6.2.0-SNAPSHOT\kie-wb-common-project-editor-api-6.2.0-SNAPSHOT-sources.jar;C:\User s\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-project-editor-client\6.2.0-SNAPSHOT\kie-wb-common-project-editor-c lient-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-project-imports-editor-api\ 6.2.0-SNAPSHOT\kie-wb-common-project-imports-editor-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench \screens\kie-wb-common-project-imports-editor-client\6.2.0-SNAPSHOT\kie-wb-common-project-imports-editor-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\re ddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-search-screen-api\6.2.0-SNAPSHOT\kie-wb-common-search-screen-api-6.2.0- SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-search-screen-client\6.2.0-SNAPSHOT\kie -wb-common-search-screen-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-p roject-explorer-api\6.2.0-SNAPSHOT\kie-wb-common-project-explorer-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org \kie\workbench\screens\kie-wb-common-project-explorer-client\6.2.0-SNAPSHOT\kie-wb-common-project-explorer-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\ reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-java-editor-api\6.2.0-SNAPSHOT\kie-wb-common-java-editor-api-6.2.0-SN APSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-java-editor-client\6.2.0-SNAPSHOT\kie-wb- common-java-editor-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-data-mo deller-api\6.2.0-SNAPSHOT\kie-wb-common-data-modeller-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workben ch\screens\kie-wb-common-data-modeller-client\6.2.0-SNAPSHOT\kie-wb-common-data-modeller-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_ for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-home-api\6.2.0-SNAPSHOT\kie-wb-common-home-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\redd yl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-home-client\6.2.0-SNAPSHOT\kie-wb-common-home-client-6.2.0-SNAPSHOT-sourc es.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-organizationalunit-manager\6.2.0-SNAPSHOT\kie-wb-comm on-organizationalunit-manager-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\widgets\kie-wb-common-ui\ 6.2.0-SNAPSHOT\kie-wb-common-ui-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\widgets\kie-wb-decorate d-grid-widget\6.2.0-SNAPSHOT\kie-wb-decorated-grid-widget-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workben ch\widgets\kie-wb-view-source-widget\6.2.0-SNAPSHOT\kie-wb-view-source-widget-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.F inal\org\kie\workbench\widgets\kie-wb-metadata-widget\6.2.0-SNAPSHOT\kie-wb-metadata-widget-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_ guvnor_6.0.1.Final\org\kie\workbench\widgets\kie-wb-config-resource-widget\6.2.0-SNAPSHOT\kie-wb-config-resource-widget-6.2.0-SNAPSHOT-sources.jar;C:\ Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\services\kie-wb-common-services-api\6.2.0-SNAPSHOT\kie-wb-common-services-api-6.2.0-S NAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\services\kie-wb-common-security\6.2.0-SNAPSHOT\kie-wb-common-s ecurity-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\services\kie-wb-common-datamodel-api\6.2.0-SNAP SHOT\kie-wb-common-datamodel-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\workbench\services\kie-wb-common -refactoring-api\6.2.0-SNAPSHOT\kie-wb-common-refactoring-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\kie\wor kbench\screens\kie-wb-common-message-console-api\6.2.0-SNAPSHOT\kie-wb-common-message-console-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m 2_for_guvnor_6.0.1.Final\org\kie\workbench\screens\kie-wb-common-message-console-client\6.2.0-SNAPSHOT\kie-wb-common-message-console-client-6.2.0-SNAP SHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-workbench-models-commons\6.2.0-SNAPSHOT\drools-workbench-models-c ommons-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-workbench-models-guided-dtable\6.2.0-SNAPSHOT\dr ools-workbench-models-guided-dtable-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-workbench-models-gu ided-scorecard\6.2.0-SNAPSHOT\drools-workbench-models-guided-scorecard-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\or g\drools\drools-workbench-models-guided-template\6.2.0-SNAPSHOT\drools-workbench-models-guided-template-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\REC OSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-workbench-models-test-scenarios\6.2.0-SNAPSHOT\drools-workbench-models-test-scenarios-6.2.0-SNAPSHOT- sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-categories-editor-client\6.2.0-SNAPSHOT\drools-wb-categories-editor -client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-enum-editor-api\6.2.0-SNAPSHOT\drools-wb-enu m-editor-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-enum-editor-client\6.2.0-SNAPSHOT\drool s-wb-enum-editor-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-drl-text-editor-api\6.2.0-SN APSHOT\drools-wb-drl-text-editor-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-drl-text-editor -client\6.2.0-SNAPSHOT\drools-wb-drl-text-editor-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools -wb-factmodel-editor-api\6.2.0-SNAPSHOT\drools-wb-factmodel-editor-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\or g\drools\drools-wb-guided-rule-editor-api\6.2.0-SNAPSHOT\drools-wb-guided-rule-editor-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_gu vnor_6.0.1.Final\org\drools\drools-wb-guided-rule-editor-client\6.2.0-SNAPSHOT\drools-wb-guided-rule-editor-client-6.2.0-SNAPSHOT-sources.jar;C:\Users \reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-guided-template-editor-api\6.2.0-SNAPSHOT\drools-wb-guided-template-editor-api-6.2.0-SN APSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-guided-template-editor-client\6.2.0-SNAPSHOT\drools-wb-guide d-template-editor-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-guided-dtable-editor-api\6. 2.0-SNAPSHOT\drools-wb-guided-dtable-editor-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-guid ed-dtable-editor-client\6.2.0-SNAPSHOT\drools-wb-guided-dtable-editor-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Fi nal\org\drools\drools-wb-guided-scorecard-editor-api\6.2.0-SNAPSHOT\drools-wb-guided-scorecard-editor-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\R ECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-guided-scorecard-editor-client\6.2.0-SNAPSHOT\drools-wb-guided-scorecard-editor-client-6.2.0-SNA PSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-dsl-text-editor-api\6.2.0-SNAPSHOT\drools-wb-dsl-text-editor- api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-dsl-text-editor-client\6.2.0-SNAPSHOT\drools-wb- dsl-text-editor-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-globals-editor-api\6.2.0-SNAP SHOT\drools-wb-globals-editor-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-globals-editor-cli ent\6.2.0-SNAPSHOT\drools-wb-globals-editor-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-d table-xls-editor-api\6.2.0-SNAPSHOT\drools-wb-dtable-xls-editor-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\d rools\drools-wb-dtable-xls-editor-client\6.2.0-SNAPSHOT\drools-wb-dtable-xls-editor-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_g uvnor_6.0.1.Final\org\drools\drools-wb-scorecard-xls-editor-api\6.2.0-SNAPSHOT\drools-wb-scorecard-xls-editor-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\ reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-scorecard-xls-editor-client\6.2.0-SNAPSHOT\drools-wb-scorecard-xls-editor-client-6.2.0-S NAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-workitems-editor-api\6.2.0-SNAPSHOT\drools-wb-workitems-edi tor-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-workitems-editor-client\6.2.0-SNAPSHOT\drool s-wb-workitems-editor-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb-test-scenario-editor-ap i\6.2.0-SNAPSHOT\drools-wb-test-scenario-editor-api-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\drools\drools-wb- test-scenario-editor-client\6.2.0-SNAPSHOT\drools-wb-test-scenario-editor-client-6.2.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0. 1.Final\org\uberfire\uberfire-commons\0.4.0-SNAPSHOT\uberfire-commons-0.4.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org \uberfire\uberfire-nio2-model\0.4.0-SNAPSHOT\uberfire-nio2-model-0.4.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uber fire\uberfire-api\0.4.0-SNAPSHOT\uberfire-api-0.4.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-js\0. 4.0-SNAPSHOT\uberfire-js-0.4.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-security-api\0.4.0-SNAPSHO T\uberfire-security-api-0.4.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-security-client\0.4.0-SNAPS HOT\uberfire-security-client-0.4.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-client-api\0.4.0-SNAPS HOT\uberfire-client-api-0.4.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-widgets-core-client\0.4.0-S NAPSHOT\uberfire-widgets-core-client-0.4.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-widgets-common s\0.4.0-SNAPSHOT\uberfire-widgets-commons-0.4.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-workbench -client\0.4.0-SNAPSHOT\uberfire-workbench-client-0.4.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\org\uberfire\uberfire-wo rkbench-client-backend\0.4.0-SNAPSHOT\uberfire-workbench-client-backend-0.4.0-SNAPSHOT-sources.jar;C:\Users\reddyl\RECOSYS\m2_for_guvnor_6.0.1.Final\o rg\uberfire\uberfire-backend-api\0.4.0-SNAPSHOT\uberfire-backend-api-0.4.0-SNAPSHOT-sources.jar, com.google.gwt.dev.Compiler, -logLevel, INFO, -style, OBF, -war, C:\Users\reddyl\RECOSYS\BRMS6\kie-wb\kie-wb-webapp\target\kie-wb-webapp-6.2.0-SNAPSHOT, -localWorkers, 1, -strict, -XfragmentCount, -1, -d eploy, C:\Users\reddyl\RECOSYS\BRMS6\kie-wb\kie-wb-webapp\target\gwt-symbols-deploy, -gen, C:\Users\reddyl\RECOSYS\BRMS6\kie-wb\kie-wb-webapp\target\. generated, org.kie.workbench.FastCompiledKIEWebapp]: Error while executing process. Cannot run program "C:\Program Files\Java\jdk1.6.0_27\jre\bin\java ": CreateProcess error=206, The filename or extension is too long [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException [ERROR] [ERROR] After correcting the problems, you can resume the build with the command [ERROR] mvn -rf :kie-wb-webapp C:\Users\reddyl\RECOSYS\BRMS6> From michael.anstis at gmail.com Mon Jun 23 06:13:20 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Mon, 23 Jun 2014 11:13:20 +0100 Subject: [rules-users] Getting Error while building the war from kie-wb-distributions-master source code In-Reply-To: References: Message-ID: This is a known issue with building from the command line on Windows (it is a Windows limitation on the maximum length of the command line). If you're using IDEA you can create a "classpath JAR" that packages the classpath into a JAR and uses this to build/compile/run. We have the issue on our "to do" list (to create a maven profile that creates a "classpath JAR"; but we have not had the time at present to implement a solution. If any community member wants to help we would be indebted. With kind regards, Mike On 23 June 2014 11:08, LaKhI ReDdY!!!!!!!!!!! wrote: > > Hi , > > I am trying to run mvn clean install on the kie-wb-distributions-master > source code, getting the below error.Please find the attachment for more > details on the error. > > > C:\Users\reddyl\RECOSYS\BRMS6\kie-wb\kie-wb-webapp\target\. > generated, *org.kie.workbench.FastCompiledKIEWebapp]: Error while > executing process. Cannot run program "C:\Program > Files\Java\jdk1.6.0_27\jre\bin\java* > *": CreateProcess error=206, The filename or extension is too long* > > > could you please let me know any workaround on this issue? > > Regards, > Lakshmi Reddy > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140623/ae698c33/attachment.html From ge0ffrey.spam at gmail.com Mon Jun 23 06:33:03 2014 From: ge0ffrey.spam at gmail.com (Geoffrey De Smet) Date: Mon, 23 Jun 2014 12:33:03 +0200 Subject: [rules-users] unsubscribed from the rules-users mailing list In-Reply-To: References: Message-ID: Hi Wolfgang, I just haven't gotten around to split off OptaPlanner dev yet, but it's on my TODO list. I am just back from holidays, so I won't get to it this week, hopefully next week. On 23-06-14 11:55, Wolfgang Laun wrote: > Friends, > > this is to let you know that I have done as the subject says. > > I'd like to thank all that have contributed for their continuing > efforts. As for myself: I think that this is a good moment to retire, > with my rapidly diminishing capability of understanding what's going > on in Guvnor, Optaplanner and other newfangled extensions. Hitting the > "delete" button on some incoming email has been the one thing I've > managed to do faithfully, and frequently. > > Thanks again, and it's been *very* nice meeting you. > > Wolfgang > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > From bijkerkrick at hotmail.com Mon Jun 23 07:20:53 2014 From: bijkerkrick at hotmail.com (dBijkoo) Date: Mon, 23 Jun 2014 04:20:53 -0700 (PDT) Subject: [rules-users] Strange behaviour with maximumSecondsSpend termination in combination with PlanningVariableListener In-Reply-To: References: <1403508767862-4030128.post@n3.nabble.com> Message-ID: <1403522453506-4030135.post@n3.nabble.com> I just upgraded to 6.1.0.CR1 and the problem still occurs. maximumSecondsSpend gives an incorrect solution while scoreAttained does not after 15+ times trying both. I will make a jira issue about it. -- View this message in context: http://drools.46999.n3.nabble.com/Strange-behaviour-with-maximumSecondsSpend-termination-in-combination-with-PlanningVariableListener-tp4030128p4030135.html Sent from the Drools: User forum mailing list archive at Nabble.com. From mproctor at codehaus.org Mon Jun 23 08:37:10 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Mon, 23 Jun 2014 13:37:10 +0100 Subject: [rules-users] unsubscribed from the rules-users mailing list In-Reply-To: References: Message-ID: <66828A08-0F86-4DB9-B504-3FDB173B50A7@codehaus.org> We will be reorganising the lists and forums when the new websites are done, as we will be revamping all our communication then. OptaPlanner and Workbench/UI stuff will move to google groups. We are hoping this will coincide with the 6.1 final. We just wanted to get all of this coordinated and done at the same time. Mark On 23 Jun 2014, at 11:33, Geoffrey De Smet wrote: > Hi Wolfgang, > > I just haven't gotten around to split off OptaPlanner dev yet, > but it's on my TODO list. > I am just back from holidays, so I won't get to it this week, hopefully > next week. > > On 23-06-14 11:55, Wolfgang Laun wrote: >> Friends, >> >> this is to let you know that I have done as the subject says. >> >> I'd like to thank all that have contributed for their continuing >> efforts. As for myself: I think that this is a good moment to retire, >> with my rapidly diminishing capability of understanding what's going >> on in Guvnor, Optaplanner and other newfangled extensions. Hitting the >> "delete" button on some incoming email has been the one thing I've >> managed to do faithfully, and frequently. >> >> Thanks again, and it's been *very* nice meeting you. >> >> Wolfgang >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From sumitdhaniya at gmail.com Mon Jun 23 11:10:20 2014 From: sumitdhaniya at gmail.com (Sumit Dhaniya) Date: Mon, 23 Jun 2014 08:10:20 -0700 (PDT) Subject: [rules-users] Size and contains methods of List in Drools Message-ID: <1403536220035-4030137.post@n3.nabble.com> Is it possible write conditions on the basis of size of a list using guided editors (either guided decision table or guided rule) and to check if any element is present in the list? For eg. User { List of badges; } now I want to apply condition on number of badges and if a specific badge is in user's list of badges. Also can I compare to objects. For eg. condition on count of badges of two users? I'm using KIE Drools Workbench Here's how source code should look like :- import com.demo.dto.User; import com.demo.dto.Badge; rule "Compare two variables" when $user: User(name == "Sam") $badge: Badge() memberOf $user.getBadges() then $user.setImpact($user.getImpact + $user.getBadges().size()) -- View this message in context: http://drools.46999.n3.nabble.com/Size-and-contains-methods-of-List-in-Drools-tp4030137.html Sent from the Drools: User forum mailing list archive at Nabble.com. From rich.j.riley at gmail.com Mon Jun 23 12:34:41 2014 From: rich.j.riley at gmail.com (rjr201) Date: Mon, 23 Jun 2014 09:34:41 -0700 (PDT) Subject: [rules-users] Drools 6 Fusion Example Message-ID: <1403541281626-4030139.post@n3.nabble.com> Hi, Does anyone know of a simple (complete) working example of a Drools Fusion project using Drools 6? My kModule.xml file so far looks like this: However, I think I need to define an entryPoint in the kmodule.xml.. but can't find an example of how to do this. If anyone can point me to an example it would be greatly appreciated. Cheers, Rich -- View this message in context: http://drools.46999.n3.nabble.com/Drools-6-Fusion-Example-tp4030139.html Sent from the Drools: User forum mailing list archive at Nabble.com. From jeremy.ary at gmail.com Mon Jun 23 13:54:39 2014 From: jeremy.ary at gmail.com (Jeremy Ary) Date: Mon, 23 Jun 2014 12:54:39 -0500 Subject: [rules-users] Drools 6 Fusion Example In-Reply-To: <1403541281626-4030139.post@n3.nabble.com> References: <1403541281626-4030139.post@n3.nabble.com> Message-ID: Looking at the 6.x docs, I'm not sure that you need to define those ahead of time, but I haven't attempted it: http://docs.jboss.org/drools/release/6.0.0.Beta2/drools-fusion-docs/html/ch02.html#d0e514 "Entry points are declared implicitly in Drools by directly making use of them in rules. I.e. referencing an entry point in a rule will make the engine, at compile time, to identify and create the proper internal structures to support that entry point." On Mon, Jun 23, 2014 at 11:34 AM, rjr201 wrote: > Hi, > > Does anyone know of a simple (complete) working example of a Drools Fusion > project using Drools 6? > > My kModule.xml file so far looks like this: > > > xmlns="http://jboss.org/kie/6.0.0/kmodule"> > > equalsBehavior="equality" declarativeAgenda="enabled" > packages="org.domain.pkg2, org.domain.pkg3" includes="KBase1"> > > clockType="realtime"> > > > > > > > However, I think I need to define an entryPoint in the kmodule.xml.. but > can't find an example of how to do this. > > If anyone can point me to an example it would be greatly appreciated. > > Cheers, > Rich > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Drools-6-Fusion-Example-tp4030139.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140623/6fc42448/attachment.html From mephiles.llg at gmail.com Mon Jun 23 19:58:38 2014 From: mephiles.llg at gmail.com (DwProd .) Date: Tue, 24 Jun 2014 01:58:38 +0200 Subject: [rules-users] Coarse Grained Moves Message-ID: Hello there, I'm pretty new to OptaPlanner, and I must say I'm really impressed with the maturity of it all. Great software with a great documentation ! I've been working on a variation of the Cloud Balancing example, with a few differences, which make it look like the Machine Reassignment problem as well : - Some processes are already placed and are immovable (using a Selection Filter checking a boolean property of the planning entity) - The Computer (the planning variable) is nullable (basically this is Multiple Muti-Dimensional Knapsack problem) which means I added a soft constraint penalty for processes with a null host. - Processes can only be of a few classes (which I called services, a Problem Fact). Processes of a given service type have a certain amount of required cpu and ram. Taking these elements into account, I do get very good results with OptaPlanner. However, the following constraints always put me into a score trap : - For some services, processes work in groups. For instance, if groups are of size 3, having 7 processes is not any better than having 6 processes. If there were already 2 processes (immovable and placed), I should only add 4 processes and not 5, even if there are enough resources. For this constraint, I have tried using a rule (medium constraint) accumulating processes of that service and using the modulo operator with the group size. - Some services are dependant on one another. For instance, I know that if I have n1 groups of processes of the service 1, I require Math.ceil(2.5*n1) groups of processes of the service 2. I have implemented this similarly with a medium constraint... With any (or both) of these constraints, little to no processes of the concerned services are added and I fail to reach a good solution. I have tried benchmarking with several local search methods and various parameters, but all give the same results... I feel like the next logical step would be to used the often mentioned in the documentation "Coarse Grained Moves" but I fail to locate any simple example. The Nurse Rostering example seems to use that technique to some extent but it seems like an overly complicated example, is it not. Thank you very much for reading this far, if you have any question, guideline, or just a trick, I'd be absolutely delighted to hear from you ! Cheers, Woody -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140624/3ce2b19a/attachment-0001.html From konsouv at gmail.com Tue Jun 24 04:35:01 2014 From: konsouv at gmail.com (konsouv) Date: Tue, 24 Jun 2014 01:35:01 -0700 (PDT) Subject: [rules-users] Guvnor on weblogic Message-ID: <1403598901708-4030143.post@n3.nabble.com> Hello guys, A little help please. I want to deploy guvnor on weblogic version 12.1.2.0.0. I downloaded guvnor-distribution-wars-5.6.1-20140618.143413-14-weblogic-12c from http://snapshots.jboss.org/maven2/org/drools/guvnor-distribution-wars/5.6.1-SNAPSHOT/ When I deploy it I get the following stack trace. <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <> <> <1403598617528> (UIObject.java:187) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:270) at com.oracle.injection.integration.CDIModuleExtension.addClassToSet(CDIModuleExtension.java:439) at com.oracle.injection.integration.CDIModuleExtension.getWebInfClassesManagedBeanClasses(CDIModuleExtension.java:381) at com.oracle.injection.integration.CDIModuleExtension.loadManagedBeanClassesFromWebArchive(CDIModuleExtension.java:338) at com.oracle.injection.integration.CDIModuleExtension.createWebModuleInjectionArchive(CDIModuleExtension.java:191) at com.oracle.injection.integration.CDIModuleExtension.createInjectionArchive(CDIModuleExtension.java:179) at com.oracle.injection.integration.CDIModuleExtension.postPrepare(CDIModuleExtension.java:85) at weblogic.application.internal.ExtensibleModuleWrapper$PrepareStateChange.next(ExtensibleModuleWrapper.java:297) at weblogic.application.internal.ExtensibleModuleWrapper$PrepareStateChange.next(ExtensibleModuleWrapper.java:285) at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:42) at weblogic.application.internal.ExtensibleModuleWrapper.prepare(ExtensibleModuleWrapper.java:109) After some research I think that the problem is that the beans.xml file in WEB-INF folder is not read during deployment. It is not considered at all. Is there any advice for me that could help me complete the deployment? Thank you in advance. -- View this message in context: http://drools.46999.n3.nabble.com/Guvnor-on-weblogic-tp4030143.html Sent from the Drools: User forum mailing list archive at Nabble.com. From rich.j.riley at gmail.com Tue Jun 24 04:36:06 2014 From: rich.j.riley at gmail.com (rjr201) Date: Tue, 24 Jun 2014 01:36:06 -0700 (PDT) Subject: [rules-users] Drools 6 Fusion Example In-Reply-To: References: <1403541281626-4030139.post@n3.nabble.com> Message-ID: <1403598966101-4030144.post@n3.nabble.com> Hey, thanks for the response. I think you're right. I should have stopped trying to rush an example together and actually read the docs. Cheers! -- View this message in context: http://drools.46999.n3.nabble.com/Drools-6-Fusion-Example-tp4030139p4030144.html Sent from the Drools: User forum mailing list archive at Nabble.com. From konsouv at gmail.com Tue Jun 24 04:36:37 2014 From: konsouv at gmail.com (Konstantinos Souvatzopoulos) Date: Tue, 24 Jun 2014 11:36:37 +0300 Subject: [rules-users] (no subject) Message-ID: konsouv at gmail.com -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140624/db3293c4/attachment.html From frank.vanhoenshoven at agserv.eu Tue Jun 24 08:36:52 2014 From: frank.vanhoenshoven at agserv.eu (FrankVhh) Date: Tue, 24 Jun 2014 05:36:52 -0700 (PDT) Subject: [rules-users] Lock-on-active and FROM Message-ID: <1403613412643-4030146.post@n3.nabble.com> Hello all It has been a while since I posted on this forum as I was assigned to other tasks for a while. Anyway, I have not forgotten about the source of knowledge that is this user forum! We are using Drools 5.3.0. In the expert manual, section 5.8.3.6.2, the odd behavior of lock-on-active and FROM is highlighted. However, we cannot reproduce this reported behaviour. See annex for .java file and drl file. In the documentation, it is sated that only one rule should fire, in the example and as we run it, we can get both rule activations to execute. Could anyone cast the bright light of explanation on this phenomenon? It would also be helpful if someone could provide us with some additional information about why you should expect only one rule to fire. Thank you very much for your time and highly appreciated explanations! Sample.drl DroolsTest.java -- View this message in context: http://drools.46999.n3.nabble.com/Lock-on-active-and-FROM-tp4030146.html Sent from the Drools: User forum mailing list archive at Nabble.com. From ge0ffrey.spam at gmail.com Wed Jun 25 03:37:37 2014 From: ge0ffrey.spam at gmail.com (Geoffrey De Smet) Date: Wed, 25 Jun 2014 09:37:37 +0200 Subject: [rules-users] Coarse Grained Moves In-Reply-To: References: Message-ID: 1) There's 2 course grained moves out of the box in 6.1.0.CR1: pillarChangeMove and pillarSwapMove. And in 6.1.0.CR1 they also include subpillars (which is important). http://docs.jboss.org/drools/release/latest/optaplanner-docs/html_single/index.html#pillarChangeMoveSelector Start with trying those. 2) Then look into cartesianProduct selection and mimic selection (see docs). The allows you to combine to existing moves into a new one. The mimic selection allows you to make sure that those 2 moves change the same entity (if needed), but a different variable of course. I am working on nearBySelection for 6.2 to allow it to select 2 entities that are somehow "nearBy" to each other (for example in the same service etc). 3) If the above don't help enough, there's always custom moves (see docs): total freedom, but the devil is in the details :) On 24-06-14 01:58, DwProd . wrote: > Hello there, > > I'm pretty new to OptaPlanner, and I must say I'm really impressed > with the maturity of it all. Great software with a great documentation ! > > I've been working on a variation of the Cloud Balancing example, with > a few differences, which make it look like the Machine Reassignment > problem as well : > > - Some processes are already placed and are immovable (using a > Selection Filter checking a boolean property of the planning entity) > - The Computer (the planning variable) is nullable (basically this is > Multiple Muti-Dimensional Knapsack problem) which means I added a soft > constraint penalty for processes with a null host. > - Processes can only be of a few classes (which I called services, a > Problem Fact). Processes of a given service type have a certain amount > of required cpu and ram. > > Taking these elements into account, I do get very good results with > OptaPlanner. However, the following constraints always put me into a > score trap : > > - For some services, processes work in groups. For instance, if groups > are of size 3, having 7 processes is not any better than having 6 > processes. If there were already 2 processes (immovable and placed), I > should only add 4 processes and not 5, even if there are enough > resources. For this constraint, I have tried using a rule (medium > constraint) accumulating processes of that service and using the > modulo operator with the group size. > - Some services are dependant on one another. For instance, I know > that if I have n1 groups of processes of the service 1, I require > Math.ceil(2.5*n1) groups of processes of the service 2. I have > implemented this similarly with a medium constraint... > > With any (or both) of these constraints, little to no processes of the > concerned services are added and I fail to reach a good solution. I > have tried benchmarking with several local search methods and various > parameters, but all give the same results... > > I feel like the next logical step would be to used the often mentioned > in the documentation "Coarse Grained Moves" but I fail to locate any > simple example. The Nurse Rostering example seems to use that > technique to some extent but it seems like an overly complicated > example, is it not. > > Thank you very much for reading this far, if you have any question, > guideline, or just a trick, I'd be absolutely delighted to hear from you ! > > Cheers, > > Woody > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140625/e59f157f/attachment.html From mephiles.llg at gmail.com Wed Jun 25 06:58:31 2014 From: mephiles.llg at gmail.com (DwProd .) Date: Wed, 25 Jun 2014 12:58:31 +0200 Subject: [rules-users] Coarse Grained Moves In-Reply-To: References: Message-ID: Thanks a lot for your answer ! 1) I don't think pillar based moves are what I'm looking for, except if I can select a pillar based on a Problem Fact (its service in my case) and then spread the different entities of the pillar on the available hosts (basically setting possibly different planning variables for the entities of the pillar). 2) cartesianProductMoveSelector seem more like it, but the number of moves to combine is somewhat static is it not ? I can't for instance specify in a Planning Entity (using a property) that its move should be combined with n other moves of processes of the same type ? 3) I feel like my usecase is complicated enough to have to resort to that if there is no built in way to handle it... Does this work by implementing a MoveListFactory, or a CompositeMove ? I don't think I quite get the difference to be honest... Thanks again for your time, Cheers, Woody 2014-06-25 9:37 GMT+02:00 Geoffrey De Smet : > 1) There's 2 course grained moves out of the box in 6.1.0.CR1: > pillarChangeMove and pillarSwapMove. > And in 6.1.0.CR1 they also include subpillars (which is important). > > http://docs.jboss.org/drools/release/latest/optaplanner-docs/html_single/index.html#pillarChangeMoveSelector > Start with trying those. > > 2) Then look into cartesianProduct selection and mimic selection (see > docs). > The allows you to combine to existing moves > into a new one. > The mimic selection allows you to make sure that those 2 moves change the > same entity (if needed), but a different variable of course. > I am working on nearBySelection for 6.2 to allow it to select 2 entities > that are somehow "nearBy" to each other (for example in the same service > etc). > > 3) If the above don't help enough, there's always custom moves (see docs): > total freedom, but the devil is in the details :) > > > On 24-06-14 01:58, DwProd . wrote: > > Hello there, > > I'm pretty new to OptaPlanner, and I must say I'm really impressed with > the maturity of it all. Great software with a great documentation ! > > I've been working on a variation of the Cloud Balancing example, with a > few differences, which make it look like the Machine Reassignment problem > as well : > > - Some processes are already placed and are immovable (using a Selection > Filter checking a boolean property of the planning entity) > - The Computer (the planning variable) is nullable (basically this is > Multiple Muti-Dimensional Knapsack problem) which means I added a soft > constraint penalty for processes with a null host. > - Processes can only be of a few classes (which I called services, a > Problem Fact). Processes of a given service type have a certain amount of > required cpu and ram. > > Taking these elements into account, I do get very good results with > OptaPlanner. However, the following constraints always put me into a score > trap : > > - For some services, processes work in groups. For instance, if groups > are of size 3, having 7 processes is not any better than having 6 > processes. If there were already 2 processes (immovable and placed), I > should only add 4 processes and not 5, even if there are enough resources. > For this constraint, I have tried using a rule (medium constraint) > accumulating processes of that service and using the modulo operator with > the group size. > - Some services are dependant on one another. For instance, I know that if > I have n1 groups of processes of the service 1, I require Math.ceil(2.5*n1) > groups of processes of the service 2. I have implemented this similarly > with a medium constraint... > > With any (or both) of these constraints, little to no processes of the > concerned services are added and I fail to reach a good solution. I have > tried benchmarking with several local search methods and various > parameters, but all give the same results... > > I feel like the next logical step would be to used the often mentioned > in the documentation "Coarse Grained Moves" but I fail to locate any simple > example. The Nurse Rostering example seems to use that technique to some > extent but it seems like an overly complicated example, is it not. > > Thank you very much for reading this far, if you have any question, > guideline, or just a trick, I'd be absolutely delighted to hear from you ! > > Cheers, > > Woody > > > _______________________________________________ > rules-users mailing listrules-users at lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/rules-users > > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140625/064e45b1/attachment-0001.html From ge0ffrey.spam at gmail.com Wed Jun 25 07:18:49 2014 From: ge0ffrey.spam at gmail.com (Geoffrey De Smet) Date: Wed, 25 Jun 2014 13:18:49 +0200 Subject: [rules-users] Coarse Grained Moves In-Reply-To: References: Message-ID: On 25-06-14 12:58, DwProd . wrote: > Thanks a lot for your answer ! > > 1) I don't think pillar based moves are what I'm looking for, except > if I can select a pillar based on a Problem Fact (its service in my > case) and then spread the different entities of the pillar on the > available hosts (basically setting possibly different planning > variables for the entities of the pillar). > > 2) cartesianProductMoveSelector seem more like it, but the number of > moves to combine is somewhat static is it not ? I can't for instance > specify in a Planning Entity (using a property) that its move should > be combined with n other moves of processes of the same type ? That would be nearBySelection... (note: the name might change before I implement). You need to be able to tell optaplanner that processes of the same type are "near" (~related) to each other and should be moved together. As stated before, I am working on this for 6.2. > > 3) I feel like my usecase is complicated enough to have to resort to > that if there is no built in way to handle it... Does this work by > implementing a MoveListFactory, or a CompositeMove ? I don't think I > quite get the difference to be honest... If you write a custom MoveListFactory (or MoveIteratorFactory), you could still opt to go with the build-in moves (such as ChangeMove) or combinations of those with CompositeMove. However, because those build-in moves require reflection stuff (VariableDescriptor etc), it's probably easier to just to write a domain-specific Move. See the examples that have custom moves. > > Thanks again for your time, > > Cheers, > > Woody > > > 2014-06-25 9:37 GMT+02:00 Geoffrey De Smet >: > > 1) There's 2 course grained moves out of the box in 6.1.0.CR1: > pillarChangeMove and pillarSwapMove. > And in 6.1.0.CR1 they also include subpillars (which is important). > http://docs.jboss.org/drools/release/latest/optaplanner-docs/html_single/index.html#pillarChangeMoveSelector > Start with trying those. > > 2) Then look into cartesianProduct selection and mimic selection > (see docs). > The allows you to combine to > existing moves into a new one. > The mimic selection allows you to make sure that those 2 moves > change the same entity (if needed), but a different variable of > course. > I am working on nearBySelection for 6.2 to allow it to select 2 > entities that are somehow "nearBy" to each other (for example in > the same service etc). > > 3) If the above don't help enough, there's always custom moves > (see docs): total freedom, but the devil is in the details :) > > > On 24-06-14 01:58, DwProd . wrote: >> Hello there, >> >> I'm pretty new to OptaPlanner, and I must say I'm really >> impressed with the maturity of it all. Great software with a >> great documentation ! >> >> I've been working on a variation of the Cloud Balancing example, >> with a few differences, which make it look like the Machine >> Reassignment problem as well : >> >> - Some processes are already placed and are immovable (using a >> Selection Filter checking a boolean property of the planning entity) >> - The Computer (the planning variable) is nullable (basically >> this is Multiple Muti-Dimensional Knapsack problem) which means I >> added a soft constraint penalty for processes with a null host. >> - Processes can only be of a few classes (which I called >> services, a Problem Fact). Processes of a given service type have >> a certain amount of required cpu and ram. >> >> Taking these elements into account, I do get very good results >> with OptaPlanner. However, the following constraints always put >> me into a score trap : >> >> - For some services, processes work in groups. For instance, if >> groups are of size 3, having 7 processes is not any better than >> having 6 processes. If there were already 2 processes (immovable >> and placed), I should only add 4 processes and not 5, even if >> there are enough resources. For this constraint, I have tried >> using a rule (medium constraint) accumulating processes of that >> service and using the modulo operator with the group size. >> - Some services are dependant on one another. For instance, I >> know that if I have n1 groups of processes of the service 1, I >> require Math.ceil(2.5*n1) groups of processes of the service 2. I >> have implemented this similarly with a medium constraint... >> >> With any (or both) of these constraints, little to no processes >> of the concerned services are added and I fail to reach a good >> solution. I have tried benchmarking with several local search >> methods and various parameters, but all give the same results... >> >> I feel like the next logical step would be to used the often >> mentioned in the documentation "Coarse Grained Moves" but I fail >> to locate any simple example. The Nurse Rostering example seems >> to use that technique to some extent but it seems like an overly >> complicated example, is it not. >> >> Thank you very much for reading this far, if you have any >> question, guideline, or just a trick, I'd be absolutely delighted >> to hear from you ! >> >> Cheers, >> >> Woody >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140625/b7992302/attachment.html From bijkerkrick at hotmail.com Wed Jun 25 08:11:58 2014 From: bijkerkrick at hotmail.com (dBijkoo) Date: Wed, 25 Jun 2014 05:11:58 -0700 (PDT) Subject: [rules-users] Strange behaviour with maximumSecondsSpend termination in combination with PlanningVariableListener In-Reply-To: <1403522453506-4030135.post@n3.nabble.com> References: <1403508767862-4030128.post@n3.nabble.com> <1403522453506-4030135.post@n3.nabble.com> Message-ID: <1403698318741-4030151.post@n3.nabble.com> Here you can find the code that compiles with the 6.1.0.CR1 version CPTest.zip In case anyone is interested, the jira issue can be found here: https://issues.jboss.org/browse/PLANNER-248 -- View this message in context: http://drools.46999.n3.nabble.com/Strange-behaviour-with-maximumSecondsSpend-termination-in-combination-with-PlanningVariableListener-tp4030128p4030151.html Sent from the Drools: User forum mailing list archive at Nabble.com. From shrinath.managuli at aspiresys.com Wed Jun 25 09:05:06 2014 From: shrinath.managuli at aspiresys.com (Shrinath Managuli) Date: Wed, 25 Jun 2014 13:05:06 +0000 Subject: [rules-users] BRMS Build & Deploy Message-ID: <3589f9703ffc4c0584d7e4a57c8709d8@HKNPR02MB019.apcprd02.prod.outlook.com> Hi Drools, Is it possible to automate the Build & Deploy processes in BRMS? [cid:image001.png at 01CF90A3.E6E26760] Thanks, Shrinath [Aspire Systems] This e-mail message and any attachments are for the sole use of the intended recipient(s) and may contain proprietary, confidential, trade secret or privileged information. Any unauthorized review, use, disclosure or distribution is prohibited and may be a violation of law. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. [Aspire Systems] This e-mail message and any attachments are for the sole use of the intended recipient(s) and may contain proprietary, confidential, trade secret or privileged information. Any unauthorized review, use, disclosure or distribution is prohibited and may be a violation of law. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140625/01e3891f/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.png Type: image/png Size: 13015 bytes Desc: image001.png Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140625/01e3891f/attachment-0001.png From michael.anstis at gmail.com Wed Jun 25 10:07:38 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Wed, 25 Jun 2014 15:07:38 +0100 Subject: [rules-users] BRMS Build & Deploy In-Reply-To: <3589f9703ffc4c0584d7e4a57c8709d8@HKNPR02MB019.apcprd02.prod.outlook.com> References: <3589f9703ffc4c0584d7e4a57c8709d8@HKNPR02MB019.apcprd02.prod.outlook.com> Message-ID: Build+Deploy builds everything in your project (rules, processes etc) into a KJAR and deploys them to the workbench's maven repository. If you're running kie-wb then there is also the notion of deploying a KJAR to the jBPM runtime.. but I don't know the exact mechanism (I've BCC'ed some colleagues who can help you). On 25 June 2014 14:05, Shrinath Managuli wrote: > Hi Drools, > > > > Is it possible to automate the Build & Deploy processes in BRMS? > > > > > > Thanks, > > Shrinath > > [image: Aspire Systems] > > This e-mail message and any attachments are for the sole use of the > intended recipient(s) and may contain proprietary, confidential, trade > secret or privileged information. Any unauthorized review, use, disclosure > or distribution is prohibited and may be a violation of law. If you are not > the intended recipient, please contact the sender by reply e-mail and > destroy all copies of the original message. > [image: Aspire Systems] > > This e-mail message and any attachments are for the sole use of the > intended recipient(s) and may contain proprietary, confidential, trade > secret or privileged information. Any unauthorized review, use, disclosure > or distribution is prohibited and may be a violation of law. If you are not > the intended recipient, please contact the sender by reply e-mail and > destroy all copies of the original message. > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140625/dbe0b392/attachment.html -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.png Type: image/png Size: 13015 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140625/dbe0b392/attachment.png From michael.anstis at gmail.com Wed Jun 25 10:45:53 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Wed, 25 Jun 2014 15:45:53 +0100 Subject: [rules-users] BRMS Build & Deploy In-Reply-To: References: <3589f9703ffc4c0584d7e4a57c8709d8@HKNPR02MB019.apcprd02.prod.outlook.com> Message-ID: OK, so I didn't read your email properly :( There is a REST API to build and deploy programmatically; see the User Guide for details: http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html/wb.WorkbenchIntegration.html#drools.WorkbenchRemoteAPI On 25 June 2014 15:07, Michael Anstis wrote: > Build+Deploy builds everything in your project (rules, processes etc) into > a KJAR and deploys them to the workbench's maven repository. > > If you're running kie-wb then there is also the notion of deploying a KJAR > to the jBPM runtime.. but I don't know the exact mechanism (I've BCC'ed > some colleagues who can help you). > > > On 25 June 2014 14:05, Shrinath Managuli > wrote: > >> Hi Drools, >> >> >> >> Is it possible to automate the Build & Deploy processes in BRMS? >> >> >> >> >> >> Thanks, >> >> Shrinath >> >> [image: Aspire Systems] >> >> This e-mail message and any attachments are for the sole use of the >> intended recipient(s) and may contain proprietary, confidential, trade >> secret or privileged information. Any unauthorized review, use, disclosure >> or distribution is prohibited and may be a violation of law. If you are not >> the intended recipient, please contact the sender by reply e-mail and >> destroy all copies of the original message. >> [image: Aspire Systems] >> >> This e-mail message and any attachments are for the sole use of the >> intended recipient(s) and may contain proprietary, confidential, trade >> secret or privileged information. Any unauthorized review, use, disclosure >> or distribution is prohibited and may be a violation of law. If you are not >> the intended recipient, please contact the sender by reply e-mail and >> destroy all copies of the original message. >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140625/38491ab2/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.png Type: image/png Size: 13015 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140625/38491ab2/attachment-0001.png From jpsteinmetz at theworkshop.us.com Wed Jun 25 13:58:25 2014 From: jpsteinmetz at theworkshop.us.com (Steinmetz, Jean-Philippe) Date: Wed, 25 Jun 2014 10:58:25 -0700 Subject: [rules-users] Searching for an object in a list inside a map Message-ID: Hello, I have a scenario where I have a rule that is searching for a particular object inside a list and the list is an entry in a hashmap. An example of the class structure looks something like this. class Player { String name; } class TeamRoster { // Maps team name to players Map> teams; } The goal of the rule is to activate when there is a player named John on the Dodgers team. I have tried writing rules a couple of ways but end up with errors using either approach. My first approach was the following: dialect "mvel" rule when $roster : TeamRoster() $player : Player(name == "John") from $roster.teams["Dodgers"] then ... end However this resulted in the following error: Unable to Analyse Expression $roster.teams["Dodgers"]: sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl cannot be cast to java.lang.Class] So I tried changing it up with the following... dialect "mvel" rule when $roster : TeamRoster() $player : Player(name == "John") eval($roster.teams["Dodgers"] contains $player then ... end This effectively yields the same error: Expression $roster.teams["Dodgers"] contains $player: sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl cannot be cast to java.lang.Class] Note I am using Drools 6.0.1.Final. Is this some sort bug or limitation with the rules parser? Assuming I cannot change the class structure how can I achieve what I need? Thanks in advance, Jean-Philippe Steinmetz -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140625/3062507f/attachment.html From zahid.ahmed at emirates.com Wed Jun 25 23:24:45 2014 From: zahid.ahmed at emirates.com (Zahid Ahmed) Date: Thu, 26 Jun 2014 03:24:45 +0000 Subject: [rules-users] BRMS Build & Deploy In-Reply-To: References: <3589f9703ffc4c0584d7e4a57c8709d8@HKNPR02MB019.apcprd02.prod.outlook.com> Message-ID: Hi, I have a related question. When I do build and deploy, WB generates maven artifacts in a local repository (a directory defined as in settings.xml). Problem I am expecting WB to deploy it to the remote repository which it is not doing. I have done following configuration in maven setting.xml and project?s pom.xml. Kindly let me know if I am missing any configuration. Pom.xml 4.0.0 emiGrp emiProj 1.0 emiProj droolssix http://localhost:6900/archiva/repository/droolssix droolssix droolssix http://localhost:6900/archiva/repository/droolssix/ Settngs.xml d:\localMaven\Repo droolssix admin $admin123$ Regards, Zahid From: rules-users-bounces at lists.jboss.org [mailto:rules-users-bounces at lists.jboss.org] On Behalf Of Michael Anstis Sent: 25 June 2014 18:46 To: Rules Users List Subject: Re: [rules-users] BRMS Build & Deploy OK, so I didn't read your email properly :( There is a REST API to build and deploy programmatically; see the User Guide for details: http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html/wb.WorkbenchIntegration.html#drools.WorkbenchRemoteAPI On 25 June 2014 15:07, Michael Anstis > wrote: Build+Deploy builds everything in your project (rules, processes etc) into a KJAR and deploys them to the workbench's maven repository. If you're running kie-wb then there is also the notion of deploying a KJAR to the jBPM runtime.. but I don't know the exact mechanism (I've BCC'ed some colleagues who can help you). On 25 June 2014 14:05, Shrinath Managuli > wrote: Hi Drools, Is it possible to automate the Build & Deploy processes in BRMS? [cid:image001.png at 01CF910E.AA2B0730] Thanks, Shrinath [Aspire Systems] This e-mail message and any attachments are for the sole use of the intended recipient(s) and may contain proprietary, confidential, trade secret or privileged information. Any unauthorized review, use, disclosure or distribution is prohibited and may be a violation of law. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. [Aspire Systems] This e-mail message and any attachments are for the sole use of the intended recipient(s) and may contain proprietary, confidential, trade secret or privileged information. Any unauthorized review, use, disclosure or distribution is prohibited and may be a violation of law. If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message. _______________________________________________ rules-users mailing list rules-users at lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140626/e48fdee9/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.png Type: image/png Size: 13015 bytes Desc: image001.png Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140626/e48fdee9/attachment-0001.png From nelson.wan at hotmail.com Thu Jun 26 00:08:14 2014 From: nelson.wan at hotmail.com (nelson.wan) Date: Wed, 25 Jun 2014 21:08:14 -0700 (PDT) Subject: [rules-users] Any way to housekeep "Version History" of business rule assets using guvnor Message-ID: <1403755694057-4030162.post@n3.nabble.com> Hello all, Using guvnor, all business rule assets have their own "version history" for every save changes. We hope to know if there is any way (version 5.6.0.final) to purge old version history, to avoid the list growing very large. Many thanks for your help. I am using: Drools 5.6.0.final JBoss EAP 6.2.0.GA Thanks, Nelson -- View this message in context: http://drools.46999.n3.nabble.com/Any-way-to-housekeep-Version-History-of-business-rule-assets-using-guvnor-tp4030162.html Sent from the Drools: User forum mailing list archive at Nabble.com. From toni.rikkola at gmail.com Thu Jun 26 01:20:03 2014 From: toni.rikkola at gmail.com (Toni Rikkola) Date: Thu, 26 Jun 2014 08:20:03 +0300 Subject: [rules-users] Any way to housekeep "Version History" of business rule assets using guvnor In-Reply-To: <1403755694057-4030162.post@n3.nabble.com> References: <1403755694057-4030162.post@n3.nabble.com> Message-ID: <1403760003.5276.4.camel@localhost.localdomain> The version history can be removed. For example if you do repository export and then import, only the latest versions get exported. Not sure how to do a partial delete, but that should work too. Toni Rikkola On ke, 2014-06-25 at 21:08 -0700, nelson.wan wrote: > Hello all, > > Using guvnor, all business rule assets have their own "version history" for > every save changes. > > We hope to know if there is any way (version 5.6.0.final) to purge old > version history, to avoid the list growing very large. > > Many thanks for your help. > > I am using: > Drools 5.6.0.final > JBoss EAP 6.2.0.GA > > Thanks, > Nelson > > > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Any-way-to-housekeep-Version-History-of-business-rule-assets-using-guvnor-tp4030162.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From jarkko.matinpoika at gmail.com Thu Jun 26 03:47:41 2014 From: jarkko.matinpoika at gmail.com (JarkkoMakela) Date: Thu, 26 Jun 2014 00:47:41 -0700 (PDT) Subject: [rules-users] Searching for an object in a list inside a map In-Reply-To: References: Message-ID: <1403768861426-4030164.post@n3.nabble.com> Hi! You could try something like this. I'm not 100% sure that this works: $player : Player(name == "John") $roster : TeamRoster($teams : teams, $teams.get("Dodgers") contains $player) -Jarkko -- View this message in context: http://drools.46999.n3.nabble.com/rules-users-Searching-for-an-object-in-a-list-inside-a-map-tp4030156p4030164.html Sent from the Drools: User forum mailing list archive at Nabble.com. From michael.anstis at gmail.com Thu Jun 26 04:08:06 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Thu, 26 Jun 2014 09:08:06 +0100 Subject: [rules-users] BRMS Build & Deploy In-Reply-To: References: <3589f9703ffc4c0584d7e4a57c8709d8@HKNPR02MB019.apcprd02.prod.outlook.com> Message-ID: I can't remember in which version it was fixed, but "Build & Deploy" now honours the section in a project's pom and applicable server configuration in settings.xml The fix was made March/April 2014 and hence will be in 6.1.0.CR1. On 26 June 2014 04:24, Zahid Ahmed wrote: > Hi, > > > > I have a related question. When I do build and deploy, WB generates maven > artifacts in a local repository (a directory defined as > in settings.xml). > > > > *Problem* > > I am expecting WB to deploy it to the remote repository *which it is not > doing.* I have done following configuration in maven setting.xml and > project?s pom.xml. > > > > Kindly let me know if I am missing any configuration. > > > > *Pom.xml* > > ** > > * > *xmlns=http://maven.apache.org/POM/4.0.0 > * > > *xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance > ">* > > * 4.0.0* > > > > * emiGrp* > > * emiProj* > > * 1.0* > > > > * emiProj* > > > > ** > > ** > > *droolssix* > > *http://localhost:6900/archiva/repository/droolssix > * > > ** > > ** > > > > ** > > * * > > * droolssix* > > * droolssix* > > *http://localhost:6900/archiva/repository/droolssix/ > * > > ** > > ** > > ** > > > > > > > > *Settngs.xml* > > * xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance > "* > > * xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 > > http://maven.apache.org/xsd/settings-1.1.0.xsd > ">* > > > > * d:\localMaven\Repo* > > > > ** > > * * > > * droolssix* > > * > admin* > > * > $admin123$* > > * * > > * * > > ** > > > > > > > > Regards, > > Zahid > > > > *From:* rules-users-bounces at lists.jboss.org [mailto: > rules-users-bounces at lists.jboss.org] *On Behalf Of *Michael Anstis > *Sent:* 25 June 2014 18:46 > *To:* Rules Users List > *Subject:* Re: [rules-users] BRMS Build & Deploy > > > > OK, so I didn't read your email properly :( > > > > There is a REST API to build and deploy programmatically; see the User > Guide for details: > http://docs.jboss.org/drools/release/6.0.1.Final/drools-docs/html/wb.WorkbenchIntegration.html#drools.WorkbenchRemoteAPI > > > > On 25 June 2014 15:07, Michael Anstis wrote: > > Build+Deploy builds everything in your project (rules, processes etc) into > a KJAR and deploys them to the workbench's maven repository. > > > > If you're running kie-wb then there is also the notion of deploying a KJAR > to the jBPM runtime.. but I don't know the exact mechanism (I've BCC'ed > some colleagues who can help you). > > > > On 25 June 2014 14:05, Shrinath Managuli > wrote: > > Hi Drools, > > > > Is it possible to automate the Build & Deploy processes in BRMS? > > > > > > Thanks, > > Shrinath > > [image: Aspire Systems] > > This e-mail message and any attachments are for the sole use of the > intended recipient(s) and may contain proprietary, confidential, trade > secret or privileged information. Any unauthorized review, use, disclosure > or distribution is prohibited and may be a violation of law. If you are not > the intended recipient, please contact the sender by reply e-mail and > destroy all copies of the original message. > > [image: Aspire Systems] > > This e-mail message and any attachments are for the sole use of the > intended recipient(s) and may contain proprietary, confidential, trade > secret or privileged information. Any unauthorized review, use, disclosure > or distribution is prohibited and may be a violation of law. If you are not > the intended recipient, please contact the sender by reply e-mail and > destroy all copies of the original message. > > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140626/f345fe36/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: image001.png Type: image/png Size: 13015 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140626/f345fe36/attachment-0001.png From michael.anstis at gmail.com Thu Jun 26 04:09:17 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Thu, 26 Jun 2014 09:09:17 +0100 Subject: [rules-users] Fwd: Regarding drools 6 workbench In-Reply-To: References: Message-ID: ---------- Forwarded message ---------- From: Ganesh Neelekani Date: 26 June 2014 06:35 Subject: Re: Regarding drools 6 workbench I am facing some strange issue if you use webservice "Unknown kieSession name:ksession-rules if use @webservice", Do I need to change code if you I use webservice Please follow up in below link http://drools.46999.n3.nabble.com/quot-Unknown-KieSession-name-ksession-rules-if-we-use-webservice-td4030016.html Thanking you. ---------------------------------------------------------------------- With regards. Ganesh N Neelekani -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140626/396cf46f/attachment.html From ge0ffrey.spam at gmail.com Thu Jun 26 05:38:24 2014 From: ge0ffrey.spam at gmail.com (Geoffrey De Smet) Date: Thu, 26 Jun 2014 11:38:24 +0200 Subject: [rules-users] OptaPlanner mailing list split off Message-ID: Hi, The OptaPlanner mailing list has been split off from the Drools mailing list, at the request of several users, to keep the verbosity of this mailing lists down. If you have a question about OptaPlanner, now use these URL's: - Ask a usage question on StackOverflow: http://stackoverflow.com/questions/tagged/optaplanner - To start a discussion, use the OptaPlanner developer forum: https://groups.google.com/forum/#!forum/optaplanner-dev (or mail directly to optaplanner-dev at googlegroups.com) For more information, see optaplanner.org: http://www.optaplanner.org/community/forum.html http://www.optaplanner.org/community/droolsPlannerRenamed.html With kind regards, Geoffrey De Smet OptaPlanner lead From code4dc at gmail.com Fri Jun 27 00:42:26 2014 From: code4dc at gmail.com (code4dc) Date: Thu, 26 Jun 2014 21:42:26 -0700 (PDT) Subject: [rules-users] Drools Fusion - Intersection Of Events Message-ID: <1403844146730-4030169.post@n3.nabble.com> Hey guys, I am using the Drools Fusion temporal parameters to try to detect if two events have *any* overlap between the two of them. Can anyone suggest the cleanest way to do this using the temporal parameters? Currently I am comparing the two events using 'overlaps', 'overlappedby', 'includes' and I feel like I am still missing a few cases. Can anyone suggest how to perform this check in the cleanest way possible? Thanks Eugene -- View this message in context: http://drools.46999.n3.nabble.com/Drools-Fusion-Intersection-Of-Events-tp4030169.html Sent from the Drools: User forum mailing list archive at Nabble.com. From reddy.lakshmi at gmail.com Fri Jun 27 03:03:12 2014 From: reddy.lakshmi at gmail.com (LaKhI ReDdY!!!!!!!!!!!) Date: Fri, 27 Jun 2014 12:33:12 +0530 Subject: [rules-users] Can we user RDBMS in BRMS 6.0.1 version? Message-ID: Hi , I am using kie-drools-wb-distribution-6.0.1.Final. I see that,In this version of BRMS,it stores all the rule/packages/assets/DRL's in Git repository not in RDBMS, Please confirm on this? In case if we can use RDBMS like Guvnor 5.1.1/5.3.3.Final in 6.0.1.Final version, please let me know how to setup to RDBMS in BRMS 6.0.1 version? Regards, lakhi -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140627/6689900a/attachment.html From reddy.lakshmi at gmail.com Fri Jun 27 03:10:56 2014 From: reddy.lakshmi at gmail.com (LaKhI ReDdY!!!!!!!!!!!) Date: Fri, 27 Jun 2014 12:40:56 +0530 Subject: [rules-users] Is there an option to import the drl file in kie-drools-wb-distribution-6.0.1.Final version UI? Message-ID: Hi, Can we import the drl file in kie-drools-wb-distribution-6.0.1.Final version, I see only create the DRL option and not import option? AUTHORING -> PROJECT AUTHORING - > NEW ITEM -> DRL File Is there an option to import the drl file? Regards, Lakshmi Reddy -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140627/1d0a7d41/attachment.html From michael.anstis at gmail.com Fri Jun 27 03:17:35 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Fri, 27 Jun 2014 08:17:35 +0100 Subject: [rules-users] Can we user RDBMS in BRMS 6.0.1 version? In-Reply-To: References: Message-ID: Correct, 6.x uses GIT as it's persistent store; however all IO operations are abstracted through a Virtual File System based on Java 7's NIO2 API. We only have one implementation of the VFS that uses GIT; although others can write their own implementations (that front, for example, a RSBMS) and plug them into the workbench. IIRC a community member was such an implementation but I have not heard from them for a while nor the status of their development. With kind regards, Mike On 27 June 2014 08:03, LaKhI ReDdY!!!!!!!!!!! wrote: > > Hi , > > I am using kie-drools-wb-distribution-6.0.1.Final. > > I see that,In this version of BRMS,it stores all the > rule/packages/assets/DRL's in Git repository not in RDBMS, Please confirm > on this? > > In case if we can use RDBMS like Guvnor 5.1.1/5.3.3.Final in 6.0.1.Final > version, please let me know how to setup to RDBMS in BRMS 6.0.1 version? > > Regards, > lakhi > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140627/2aa68bf8/attachment.html From reddy.lakshmi at gmail.com Fri Jun 27 04:02:57 2014 From: reddy.lakshmi at gmail.com (LaKhI ReDdY!!!!!!!!!!!) Date: Fri, 27 Jun 2014 13:32:57 +0530 Subject: [rules-users] Is there an option to import the drl file in kie-drools-wb-distribution-6.0.1.Final version UI? Message-ID: Hi, Can we import the drl file in kie-drools-wb-distribution-6.0.1.Final version, I see only create the DRL option and not import option? AUTHORING -> PROJECT AUTHORING - > NEW ITEM -> DRL File Is there an option to import the drl file? Regards, lakhi -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140627/599dd2e7/attachment.html From reddy.lakshmi at gmail.com Fri Jun 27 04:03:53 2014 From: reddy.lakshmi at gmail.com (LaKhI ReDdY!!!!!!!!!!!) Date: Fri, 27 Jun 2014 13:33:53 +0530 Subject: [rules-users] Can we user RDBMS in BRMS 6.0.1 version? In-Reply-To: References: Message-ID: Thanks Michael. Regards, Lakhi On Fri, Jun 27, 2014 at 12:47 PM, Michael Anstis wrote: > Correct, 6.x uses GIT as it's persistent store; however all IO operations > are abstracted through a Virtual File System based on Java 7's NIO2 API. > > We only have one implementation of the VFS that uses GIT; although others > can write their own implementations (that front, for example, a RSBMS) and > plug them into the workbench. > > IIRC a community member was such an implementation but I have not heard > from them for a while nor the status of their development. > > With kind regards, > > Mike > > > On 27 June 2014 08:03, LaKhI ReDdY!!!!!!!!!!! > wrote: > >> >> Hi , >> >> I am using kie-drools-wb-distribution-6.0.1.Final. >> >> I see that,In this version of BRMS,it stores all the >> rule/packages/assets/DRL's in Git repository not in RDBMS, Please confirm >> on this? >> >> In case if we can use RDBMS like Guvnor 5.1.1/5.3.3.Final in 6.0.1.Final >> version, please let me know how to setup to RDBMS in BRMS 6.0.1 version? >> >> Regards, >> lakhi >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140627/2170b73b/attachment.html From michael.anstis at gmail.com Fri Jun 27 04:40:03 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Fri, 27 Jun 2014 09:40:03 +0100 Subject: [rules-users] Is there an option to import the drl file in kie-drools-wb-distribution-6.0.1.Final version UI? In-Reply-To: References: Message-ID: You can push DRL to the GIT repository from any external tool. On 27 June 2014 08:10, LaKhI ReDdY!!!!!!!!!!! wrote: > Hi, > > Can we import the drl file in kie-drools-wb-distribution-6.0.1.Final > version, I see only create the DRL option and not import option? > AUTHORING -> PROJECT AUTHORING - > NEW ITEM -> DRL File > > Is there an option to import the drl file? > > > Regards, > Lakshmi Reddy > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140627/9ea918b1/attachment-0001.html From mephiles.llg at gmail.com Fri Jun 27 08:05:41 2014 From: mephiles.llg at gmail.com (DwProd .) Date: Fri, 27 Jun 2014 14:05:41 +0200 Subject: [rules-users] Coarse Grained Moves In-Reply-To: References: Message-ID: Thanks a lot, yeah nearBySelection is probably what I would need, too bad it's not out yet :( As for the custom MoveListFactory, I found out what I'm trying to do has an off the charts complexity. It basically has to find all subsets of planning variables of a given size (combinations with repetition) which is the number of entities I want to move at once... Worst case has a complexity of something like O(4^n/sqrt(pi n))... It gets unmanagable pretty soon unfortunately. I'm not sure what I'll be doing but it seems like I'll have to do without those constraints at first... Thanks again for your help however ! Best regards, Woody 2014-06-25 13:18 GMT+02:00 Geoffrey De Smet : > > On 25-06-14 12:58, DwProd . wrote: > > Thanks a lot for your answer ! > > 1) I don't think pillar based moves are what I'm looking for, except if > I can select a pillar based on a Problem Fact (its service in my case) and > then spread the different entities of the pillar on the available hosts > (basically setting possibly different planning variables for the entities > of the pillar). > > 2) cartesianProductMoveSelector seem more like it, but the number of > moves to combine is somewhat static is it not ? I can't for instance > specify in a Planning Entity (using a property) that its move should be > combined with n other moves of processes of the same type ? > > That would be nearBySelection... (note: the name might change before I > implement). > You need to be able to tell optaplanner that processes of the same type > are "near" (~related) to each other and should be moved together. > As stated before, I am working on this for 6.2. > > > 3) I feel like my usecase is complicated enough to have to resort to > that if there is no built in way to handle it... Does this work by > implementing a MoveListFactory, or a CompositeMove ? I don't think I quite > get the difference to be honest... > > If you write a custom MoveListFactory (or MoveIteratorFactory), you could > still opt to go with the build-in moves (such as ChangeMove) or > combinations of those with CompositeMove. However, because those build-in > moves require reflection stuff (VariableDescriptor etc), it's probably > easier to just to write a domain-specific Move. > See the examples that have custom moves. > > > Thanks again for your time, > > Cheers, > > Woody > > > 2014-06-25 9:37 GMT+02:00 Geoffrey De Smet : > >> 1) There's 2 course grained moves out of the box in 6.1.0.CR1: >> pillarChangeMove and pillarSwapMove. >> And in 6.1.0.CR1 they also include subpillars (which is important). >> >> http://docs.jboss.org/drools/release/latest/optaplanner-docs/html_single/index.html#pillarChangeMoveSelector >> Start with trying those. >> >> 2) Then look into cartesianProduct selection and mimic selection (see >> docs). >> The allows you to combine to existing >> moves into a new one. >> The mimic selection allows you to make sure that those 2 moves change the >> same entity (if needed), but a different variable of course. >> I am working on nearBySelection for 6.2 to allow it to select 2 entities >> that are somehow "nearBy" to each other (for example in the same service >> etc). >> >> 3) If the above don't help enough, there's always custom moves (see >> docs): total freedom, but the devil is in the details :) >> >> >> On 24-06-14 01:58, DwProd . wrote: >> >> Hello there, >> >> I'm pretty new to OptaPlanner, and I must say I'm really impressed with >> the maturity of it all. Great software with a great documentation ! >> >> I've been working on a variation of the Cloud Balancing example, with a >> few differences, which make it look like the Machine Reassignment problem >> as well : >> >> - Some processes are already placed and are immovable (using a >> Selection Filter checking a boolean property of the planning entity) >> - The Computer (the planning variable) is nullable (basically this is >> Multiple Muti-Dimensional Knapsack problem) which means I added a soft >> constraint penalty for processes with a null host. >> - Processes can only be of a few classes (which I called services, a >> Problem Fact). Processes of a given service type have a certain amount of >> required cpu and ram. >> >> Taking these elements into account, I do get very good results with >> OptaPlanner. However, the following constraints always put me into a score >> trap : >> >> - For some services, processes work in groups. For instance, if groups >> are of size 3, having 7 processes is not any better than having 6 >> processes. If there were already 2 processes (immovable and placed), I >> should only add 4 processes and not 5, even if there are enough resources. >> For this constraint, I have tried using a rule (medium constraint) >> accumulating processes of that service and using the modulo operator with >> the group size. >> - Some services are dependant on one another. For instance, I know that >> if I have n1 groups of processes of the service 1, I require >> Math.ceil(2.5*n1) groups of processes of the service 2. I have implemented >> this similarly with a medium constraint... >> >> With any (or both) of these constraints, little to no processes of the >> concerned services are added and I fail to reach a good solution. I have >> tried benchmarking with several local search methods and various >> parameters, but all give the same results... >> >> I feel like the next logical step would be to used the often mentioned >> in the documentation "Coarse Grained Moves" but I fail to locate any simple >> example. The Nurse Rostering example seems to use that technique to some >> extent but it seems like an overly complicated example, is it not. >> >> Thank you very much for reading this far, if you have any question, >> guideline, or just a trick, I'd be absolutely delighted to hear from you ! >> >> Cheers, >> >> Woody >> >> >> _______________________________________________ >> rules-users mailing listrules-users at lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/rules-users >> >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> > > > > _______________________________________________ > rules-users mailing listrules-users at lists.jboss.orghttps://lists.jboss.org/mailman/listinfo/rules-users > > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140627/19e7bbf1/attachment.html From ge0ffrey.spam at gmail.com Fri Jun 27 08:14:13 2014 From: ge0ffrey.spam at gmail.com (Geoffrey De Smet) Date: Fri, 27 Jun 2014 14:14:13 +0200 Subject: [rules-users] Coarse Grained Moves In-Reply-To: References: Message-ID: Look at MoveIteratorFactory, that allows you to select those moves JIT (so without creating all of them like in MoveListFactory). Also see JUST_IN_TIME vs caching explanation in docs. Let's continue further questions/discussions on the new mailing list http://www.optaplanner.org/community/forum.html hth On 27-06-14 14:05, DwProd . wrote: > Thanks a lot, yeah nearBySelection is probably what I would need, too > bad it's not out yet :( > > As for the custom MoveListFactory, I found out what I'm trying to do > has an off the charts complexity. It basically has to find all subsets > of planning variables of a given size (combinations with repetition) > which is the number of entities I want to move at once... Worst case > has a complexity of something like O(4^n/sqrt(pi n))... It gets > unmanagable pretty soon unfortunately. > > I'm not sure what I'll be doing but it seems like I'll have to do > without those constraints at first... Thanks again for your help however ! > > Best regards, > > Woody > > > 2014-06-25 13:18 GMT+02:00 Geoffrey De Smet >: > > > On 25-06-14 12:58, DwProd . wrote: >> Thanks a lot for your answer ! >> >> 1) I don't think pillar based moves are what I'm looking for, >> except if I can select a pillar based on a Problem Fact (its >> service in my case) and then spread the different entities of the >> pillar on the available hosts (basically setting possibly >> different planning variables for the entities of the pillar). >> >> 2) cartesianProductMoveSelector seem more like it, but the number >> of moves to combine is somewhat static is it not ? I can't for >> instance specify in a Planning Entity (using a property) that its >> move should be combined with n other moves of processes of the >> same type ? > That would be nearBySelection... (note: the name might change > before I implement). > You need to be able to tell optaplanner that processes of the same > type are "near" (~related) to each other and should be moved together. > As stated before, I am working on this for 6.2. > >> >> 3) I feel like my usecase is complicated enough to have to resort >> to that if there is no built in way to handle it... Does this >> work by implementing a MoveListFactory, or a CompositeMove ? I >> don't think I quite get the difference to be honest... > If you write a custom MoveListFactory (or MoveIteratorFactory), > you could still opt to go with the build-in moves (such as > ChangeMove) or combinations of those with CompositeMove. However, > because those build-in moves require reflection stuff > (VariableDescriptor etc), it's probably easier to just to write a > domain-specific Move. > See the examples that have custom moves. > >> >> Thanks again for your time, >> >> Cheers, >> >> Woody >> >> >> 2014-06-25 9:37 GMT+02:00 Geoffrey De Smet >> >: >> >> 1) There's 2 course grained moves out of the box in >> 6.1.0.CR1: pillarChangeMove and pillarSwapMove. >> And in 6.1.0.CR1 they also include subpillars (which is >> important). >> http://docs.jboss.org/drools/release/latest/optaplanner-docs/html_single/index.html#pillarChangeMoveSelector >> Start with trying those. >> >> 2) Then look into cartesianProduct selection and mimic >> selection (see docs). >> The allows you to combine to >> existing moves into a new one. >> The mimic selection allows you to make sure that those 2 >> moves change the same entity (if needed), but a different >> variable of course. >> I am working on nearBySelection for 6.2 to allow it to select >> 2 entities that are somehow "nearBy" to each other (for >> example in the same service etc). >> >> 3) If the above don't help enough, there's always custom >> moves (see docs): total freedom, but the devil is in the >> details :) >> >> >> On 24-06-14 01:58, DwProd . wrote: >>> Hello there, >>> >>> I'm pretty new to OptaPlanner, and I must say I'm really >>> impressed with the maturity of it all. Great software with a >>> great documentation ! >>> >>> I've been working on a variation of the Cloud Balancing >>> example, with a few differences, which make it look like the >>> Machine Reassignment problem as well : >>> >>> - Some processes are already placed and are immovable (using >>> a Selection Filter checking a boolean property of the >>> planning entity) >>> - The Computer (the planning variable) is nullable >>> (basically this is Multiple Muti-Dimensional Knapsack >>> problem) which means I added a soft constraint penalty for >>> processes with a null host. >>> - Processes can only be of a few classes (which I called >>> services, a Problem Fact). Processes of a given service type >>> have a certain amount of required cpu and ram. >>> >>> Taking these elements into account, I do get very good >>> results with OptaPlanner. However, the following constraints >>> always put me into a score trap : >>> >>> - For some services, processes work in groups. For instance, >>> if groups are of size 3, having 7 processes is not any >>> better than having 6 processes. If there were already 2 >>> processes (immovable and placed), I should only add 4 >>> processes and not 5, even if there are enough resources. For >>> this constraint, I have tried using a rule (medium >>> constraint) accumulating processes of that service and using >>> the modulo operator with the group size. >>> - Some services are dependant on one another. For instance, >>> I know that if I have n1 groups of processes of the service >>> 1, I require Math.ceil(2.5*n1) groups of processes of the >>> service 2. I have implemented this similarly with a medium >>> constraint... >>> >>> With any (or both) of these constraints, little to no >>> processes of the concerned services are added and I fail to >>> reach a good solution. I have tried benchmarking with >>> several local search methods and various parameters, but all >>> give the same results... >>> >>> I feel like the next logical step would be to used the often >>> mentioned in the documentation "Coarse Grained Moves" but I >>> fail to locate any simple example. The Nurse Rostering >>> example seems to use that technique to some extent but it >>> seems like an overly complicated example, is it not. >>> >>> Thank you very much for reading this far, if you have any >>> question, guideline, or just a trick, I'd be absolutely >>> delighted to hear from you ! >>> >>> Cheers, >>> >>> Woody >>> >>> >>> _______________________________________________ >>> rules-users mailing list >>> rules-users at lists.jboss.org >>> https://lists.jboss.org/mailman/listinfo/rules-users >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users >> >> >> >> >> _______________________________________________ >> rules-users mailing list >> rules-users at lists.jboss.org >> https://lists.jboss.org/mailman/listinfo/rules-users > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140627/539f7d0d/attachment-0001.html From mjr4184 at gmail.com Fri Jun 27 12:16:12 2014 From: mjr4184 at gmail.com (mikerod) Date: Fri, 27 Jun 2014 09:16:12 -0700 (PDT) Subject: [rules-users] Equality semantics of logical assertions and stated assertions Message-ID: <1403885772808-4030179.post@n3.nabble.com> I understand that logical insertions in Drools does not insert two facts that are equal according to their #equals implementation (and associated #hashCode logic). I'm basing this off of my own investigation plus the (well written) documentation @ http://docs.jboss.org/drools/release/5.2.0.Final/drools-expert-docs/html/ch03.html. However, normal/stated fact assertions only use identity-based equality checks - by default. It looks like this can be changed to value-based equality via RuleBaseConfiguration. I have found some related, old Jiras: https://issues.jboss.org/browse/JBRULES-266 https://issues.jboss.org/browse/JBRULES-233 In both cases, Mark Proctor had a final remark, but I wasn't able to understand what was really decided and why. One specific comment @ https://issues.jboss.org/browse/JBRULES-266 is, "logical assertions are always equality based. Stated facts can now use identity and equality - using your configuration settings. I have added another configuration setting to dictate how logical over-ride works. Does it discard the original fact, or turn it into two stated fact handles." What is the reasoning behind only using the value-based equality for logical assertions? Why is it not configurable as stated fact assertions are? Also, why is the default behavior of stated fact assertion to be identity-based equality? - I find the inconsistency between the default for normal assertions and the (only option) for logical assertion to be a bit confusing/inconsistent. I'm just looking for an understanding the motivation behind these design decisions. I have had a lot of performance issues using, primarily, logical assertions due to the "no duplicate" checking being done. Even the stated assertions do still come with a cost of creating the initial FactHandle. With deeply nested/complex domain objects, the #equals and #hashCode implementations may be quite expensive when executed many times throughout rule execution. This is especially prominent in accumulators that may later accumulate these objects into collections that then are also subject to this equals/hashCode "penalty". I have a related post a while back @ http://drools.46999.n3.nabble.com/Object-size-impact-on-session-insertion-performance-td4028244.html. I do not believe it is typical to use complex domain model objects as the keys to something like a HashMap. One reason (there are more; especially for mutable objects) would be due to the performance around having them be hashed and equality checked regularly when the map is accessed, modified, etc. The creation of many FactHandle's has shown up in some of my profiling performance problems due to this the constructor immediately hashing my domain model objects. I think the reason the fact handles use this information is for value-based equality comparisons - such as the only method used by the Truth Maintenance System logical assertions. I would really appreciate more insight into the motivation for not allowing #equals facts to be logically asserted separately into working memory - especially since there is a price to pay for the behavior in my case. -- View this message in context: http://drools.46999.n3.nabble.com/Equality-semantics-of-logical-assertions-and-stated-assertions-tp4030179.html Sent from the Drools: User forum mailing list archive at Nabble.com. From gravisandeep at gmail.com Fri Jun 27 17:33:17 2014 From: gravisandeep at gmail.com (gravisandeep) Date: Fri, 27 Jun 2014 14:33:17 -0700 (PDT) Subject: [rules-users] Drools calculation of a date function In-Reply-To: References: <1D65FFE2-78DF-4275-AF4A-B040E7739517@gmail.com> Message-ID: <1403904797039-4030180.post@n3.nabble.com> Sorry for the late reply. Thank you so much for your response. -- View this message in context: http://drools.46999.n3.nabble.com/rules-users-Drools-calculation-of-a-date-function-tp4030058p4030180.html Sent from the Drools: User forum mailing list archive at Nabble.com. From mproctor at codehaus.org Sun Jun 29 21:09:07 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Mon, 30 Jun 2014 02:09:07 +0100 Subject: [rules-users] Equality semantics of logical assertions and stated assertions In-Reply-To: <1403885772808-4030179.post@n3.nabble.com> References: <1403885772808-4030179.post@n3.nabble.com> Message-ID: The TMS tracks the number of supporting rules for a given fact. When you insert something you are typically calling ?new?, which always means a new identity. If this was done by identity every local insertion would be a different object, and thus only ever one supporting rule. So the most common use case for this is with equality. Where as the most common use case for normal working memory is identity. We made the working memory identity/equality configurable, as it works the same with the same API. The use case for identity with the TMS is less common, but would not be impossible to support, but it may require an alternative api, for it to make sense. It?s not been done, as no one has asked for it before. Mark On 27 Jun 2014, at 17:16, mikerod wrote: > I understand that logical insertions in Drools does not insert two facts that > are equal according to their #equals implementation (and associated > #hashCode logic). > I'm basing this off of my own investigation plus the (well written) > documentation @ > http://docs.jboss.org/drools/release/5.2.0.Final/drools-expert-docs/html/ch03.html. > > However, normal/stated fact assertions only use identity-based equality > checks - by default. > It looks like this can be changed to value-based equality via > RuleBaseConfiguration. > > I have found some related, old Jiras: > https://issues.jboss.org/browse/JBRULES-266 > https://issues.jboss.org/browse/JBRULES-233 > > In both cases, Mark Proctor had a final remark, but I wasn't able to > understand what was really decided and why. > > One specific comment @ https://issues.jboss.org/browse/JBRULES-266 is, > "logical assertions are always equality based. Stated facts can now use > identity and equality - using your configuration settings. > I have added another configuration setting to dictate how logical over-ride > works. Does it discard the original fact, or turn it into two stated fact > handles." > > > What is the reasoning behind only using the value-based equality for logical > assertions? > > Why is it not configurable as stated fact assertions are? > Also, why is the default behavior of stated fact assertion to be > identity-based equality? > > - I find the inconsistency between the default for normal assertions and the > (only option) for logical assertion to be a bit confusing/inconsistent. > > I'm just looking for an understanding the motivation behind these design > decisions. > I have had a lot of performance issues using, primarily, logical assertions > due to the "no duplicate" checking being done. > > Even the stated assertions do still come with a cost of creating the initial > FactHandle. > With deeply nested/complex domain objects, the #equals and #hashCode > implementations may be quite expensive when executed many times throughout > rule execution. > This is especially prominent in accumulators that may later accumulate these > objects into collections that then are also subject to this equals/hashCode > "penalty". > I have a related post a while back @ > http://drools.46999.n3.nabble.com/Object-size-impact-on-session-insertion-performance-td4028244.html. > > I do not believe it is typical to use complex domain model objects as the > keys to something like a HashMap. > One reason (there are more; especially for mutable objects) would be due to > the performance around having them be hashed and equality checked regularly > when the > map is accessed, modified, etc. > > The creation of many FactHandle's has shown up in some of my profiling > performance problems due to this the constructor immediately hashing my > domain model objects. > I think the reason the fact handles use this information is for value-based > equality comparisons - such as the only method used by the Truth Maintenance > System logical assertions. > > I would really appreciate more insight into the motivation for not allowing > #equals facts to be logically asserted separately into working memory - > especially since there is a price to pay for the behavior in my case. > > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Equality-semantics-of-logical-assertions-and-stated-assertions-tp4030179.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From sunnycal99 at gmail.com Sun Jun 29 23:20:37 2014 From: sunnycal99 at gmail.com (Chris B) Date: Sun, 29 Jun 2014 20:20:37 -0700 (PDT) Subject: [rules-users] kbase using kie Message-ID: <1404098437580-4030187.post@n3.nabble.com> I am using 6.0.1 and having difficulties in kmodule.xml. My goal is to have a directory where I can keep putting new rules which should be automatically picked up. But looks like drools is looking in the jar file for new rules. What should be my entries. My current kmodule.xml ################### My pom.properties #################### #Generated by Maven #Wed Jun 25 17:53:00 PDT 2014 version=0.0.1 groupId=com.myc artifactId=MyProject The output which I am getting ##################### 2014-06-29 16:45:08 o.d.c.k.b.i.ClasspathKieProject [INFO] Found kmodule: jar:file:/home/chrism/apache-storm-0.9.1-incubating/lib/MyProject-0.0.1.jar!/META-INF/kmodule.xml 2014-06-29 16:45:08 o.d.c.k.b.i.ClasspathKieProject [DEBUG] KieModule URL type=jar url=/home/chrism/apache-storm-0.9.1-incubating/lib/MyProject-0.0.1.jar 2014-06-29 16:45:08 o.d.c.k.b.i.ClasspathKieProject [DEBUG] Found and used pom.properties META-INF/maven/com.myc/MyProject/pom.properties 2014-06-29 16:45:08 o.d.c.k.b.i.ClasspathKieProject [DEBUG] Discovered classpath module com.myc:MyProject:0.0.1 2014-06-29 16:45:09 o.d.c.k.b.i.KieRepositoryImpl [INFO] KieModule was added:ZipKieModule[ ReleaseId=com.myc:MyProject:0.0.1file=/home/chrism/apache-storm-0.9.1-incubating/lib/MyProject-0.0.1.jar] 2014-06-29 16:45:09 o.d.c.k.b.i.ClasspathKieProject [INFO] Found kmodule: jar:file:/home/chrism/apache-storm-0.9.1-incubating/lib/MyProject-0.0.1.jar!/META-INF/kmodule.xml 2014-06-29 16:45:09 o.d.c.k.b.i.ClasspathKieProject [DEBUG] KieModule URL type=jar url=/home/chrism/apache-storm-0.9.1-incubating/lib/MyProject-0.0.1.jar 2014-06-29 16:45:09 o.d.c.k.b.i.ClasspathKieProject [DEBUG] Found and used pom.properties META-INF/maven/com.myc/MyProject/pom.properties 2014-06-29 16:45:09 o.d.c.k.b.i.ClasspathKieProject [DEBUG] Discovered classpath module com.myc:MyProject:0.0.1 2014-06-29 16:45:09 o.d.c.k.b.i.KieRepositoryImpl [INFO] KieModule was added:ZipKieModule[ ReleaseId=com.myc:MyProject:0.0.1file=/home/chrism/apache-storm-0.9.1-incubating/lib/MyProject-0.0.1.jar] 2014-06-29 16:45:09 o.d.c.k.b.i.AbstractKieModule [WARN] No files found for KieBase rules ---------------------------- As above it is not able to read the rules as the rules are located in the filesystem somewhere else like in /a/b/c directory and it is in the classpath, but not being read as it seems to be only looking in jar file Any help greatly appreciated. -- View this message in context: http://drools.46999.n3.nabble.com/kbase-using-kie-tp4030187.html Sent from the Drools: User forum mailing list archive at Nabble.com. From mproctor at codehaus.org Sun Jun 29 23:23:55 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Mon, 30 Jun 2014 04:23:55 +0100 Subject: [rules-users] kbase using kie In-Reply-To: <1404098437580-4030187.post@n3.nabble.com> References: <1404098437580-4030187.post@n3.nabble.com> Message-ID: <68D51BF0-57B8-461E-8EB9-48AB46E7DB21@codehaus.org> On 30 Jun 2014, at 04:20, Chris B wrote: > I am using 6.0.1 and having difficulties in kmodule.xml. > > My goal is to have a directory where I can keep putting new rules which > should be automatically picked up. This is not possible. When you want to do an update you will need to build a new kjar and add that to the KieRepository and then call updatetoVersion() on the kiecontainer. What you can do is put your drl files (not on the class path) somewhere and setup a file scanner. Then create KieModules in memory, incrementally yourself. Some examples of how to use the programmatic KieBuilder api: https://github.com/droolsjbpm/drools/blob/master/drools-compiler/src/test/java/org/drools/compiler/integrationtests/IncrementalCompilationTest.java Mark > But looks like drools is looking in the jar file for new rules. > What should be my entries. > > My current kmodule.xml > ################### > > > > > > > > > > My pom.properties > #################### > #Generated by Maven > #Wed Jun 25 17:53:00 PDT 2014 > version=0.0.1 > groupId=com.myc > artifactId=MyProject > > > > The output which I am getting > ##################### > 2014-06-29 16:45:08 o.d.c.k.b.i.ClasspathKieProject [INFO] Found kmodule: > jar:file:/home/chrism/apache-storm-0.9.1-incubating/lib/MyProject-0.0.1.jar!/META-INF/kmodule.xml > 2014-06-29 16:45:08 o.d.c.k.b.i.ClasspathKieProject [DEBUG] KieModule URL > type=jar > url=/home/chrism/apache-storm-0.9.1-incubating/lib/MyProject-0.0.1.jar > 2014-06-29 16:45:08 o.d.c.k.b.i.ClasspathKieProject [DEBUG] Found and used > pom.properties META-INF/maven/com.myc/MyProject/pom.properties > 2014-06-29 16:45:08 o.d.c.k.b.i.ClasspathKieProject [DEBUG] Discovered > classpath module com.myc:MyProject:0.0.1 > 2014-06-29 16:45:09 o.d.c.k.b.i.KieRepositoryImpl [INFO] KieModule was > added:ZipKieModule[ > ReleaseId=com.myc:MyProject:0.0.1file=/home/chrism/apache-storm-0.9.1-incubating/lib/MyProject-0.0.1.jar] > 2014-06-29 16:45:09 o.d.c.k.b.i.ClasspathKieProject [INFO] Found kmodule: > jar:file:/home/chrism/apache-storm-0.9.1-incubating/lib/MyProject-0.0.1.jar!/META-INF/kmodule.xml > 2014-06-29 16:45:09 o.d.c.k.b.i.ClasspathKieProject [DEBUG] KieModule URL > type=jar > url=/home/chrism/apache-storm-0.9.1-incubating/lib/MyProject-0.0.1.jar > 2014-06-29 16:45:09 o.d.c.k.b.i.ClasspathKieProject [DEBUG] Found and used > pom.properties META-INF/maven/com.myc/MyProject/pom.properties > 2014-06-29 16:45:09 o.d.c.k.b.i.ClasspathKieProject [DEBUG] Discovered > classpath module com.myc:MyProject:0.0.1 > 2014-06-29 16:45:09 o.d.c.k.b.i.KieRepositoryImpl [INFO] KieModule was > added:ZipKieModule[ > ReleaseId=com.myc:MyProject:0.0.1file=/home/chrism/apache-storm-0.9.1-incubating/lib/MyProject-0.0.1.jar] > 2014-06-29 16:45:09 o.d.c.k.b.i.AbstractKieModule [WARN] No files found for > KieBase rules > > > > > ---------------------------- > > As above it is not able to read the rules as the rules are located in the > filesystem somewhere else like in /a/b/c directory and it is in the > classpath, but not being read as it seems to be only looking in jar file > > > Any help greatly appreciated. > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/kbase-using-kie-tp4030187.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From sunnycal99 at gmail.com Sun Jun 29 23:50:07 2014 From: sunnycal99 at gmail.com (Chris B) Date: Sun, 29 Jun 2014 20:50:07 -0700 (PDT) Subject: [rules-users] kbase using kie In-Reply-To: <1404098437580-4030187.post@n3.nabble.com> References: <1404098437580-4030187.post@n3.nabble.com> Message-ID: <1404100207116-4030189.post@n3.nabble.com> I tried that also, but it looks like a very long procedure. I have to include kie-ci.jar in the path, and it goes on telling me about maven, ant , plexus, aether jars. All runtime exceptions. The kie-ci does not specify which version of maven to use, but some the files used in one jar are not compatible with plexus or aether.. Can you recommend an easy way to build it. -- View this message in context: http://drools.46999.n3.nabble.com/kbase-using-kie-tp4030187p4030189.html Sent from the Drools: User forum mailing list archive at Nabble.com. From mproctor at codehaus.org Sun Jun 29 23:56:12 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Mon, 30 Jun 2014 04:56:12 +0100 Subject: [rules-users] kbase using kie In-Reply-To: <1404100207116-4030189.post@n3.nabble.com> References: <1404098437580-4030187.post@n3.nabble.com> <1404100207116-4030189.post@n3.nabble.com> Message-ID: Do you really need kie-ci? If not remove it. It?s not needed, unless you want maven to resolve dependencies and handle the update process, which you do not. If you cannot figure out the api, then the alternative route is to simple call the mvn plugin via the command line, each time you detect a file change. The downside here is it?s heavy as you are not taking advantage of the incremental builder. Mark On 30 Jun 2014, at 04:50, Chris B wrote: > I tried that also, but it looks like a very long procedure. I have to include > kie-ci.jar in the path, and it goes on telling me about maven, ant , plexus, > aether jars. All runtime exceptions. > The kie-ci does not specify which version of maven to use, but some the > files used in one jar are not compatible with plexus or aether.. > Can you recommend an easy way to build it. > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/kbase-using-kie-tp4030187p4030189.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From sunnycal99 at gmail.com Mon Jun 30 00:07:15 2014 From: sunnycal99 at gmail.com (Chris B) Date: Sun, 29 Jun 2014 21:07:15 -0700 (PDT) Subject: [rules-users] kbase using kie In-Reply-To: References: <1404098437580-4030187.post@n3.nabble.com> <1404100207116-4030189.post@n3.nabble.com> Message-ID: <1404101235183-4030191.post@n3.nabble.com> Thanks Mark I will try to build it where I am using it. Actually the problem was due to my build happening on windows, and app on unix. I will setup the build on unix itself. Atleast I won't waste time to fix my kmodule.xml :) -- View this message in context: http://drools.46999.n3.nabble.com/kbase-using-kie-tp4030187p4030191.html Sent from the Drools: User forum mailing list archive at Nabble.com. From mproctor at codehaus.org Mon Jun 30 00:10:03 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Mon, 30 Jun 2014 05:10:03 +0100 Subject: [rules-users] kbase using kie In-Reply-To: <1404101235183-4030191.post@n3.nabble.com> References: <1404098437580-4030187.post@n3.nabble.com> <1404100207116-4030189.post@n3.nabble.com> <1404101235183-4030191.post@n3.nabble.com> Message-ID: Someone on irc wrote a load of helper api?s to simplify the incremental builder stuff, I did ask them to write something up for others to benefit from. But i haven?t heard anything since. I know they wrote most of them from following the unit test I showed you. Mark On 30 Jun 2014, at 05:07, Chris B wrote: > Thanks Mark > I will try to build it where I am using it. > Actually the problem was due to my build happening on windows, and app on > unix. > I will setup the build on unix itself. > Atleast I won't waste time to fix my kmodule.xml :) > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/kbase-using-kie-tp4030187p4030191.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From sunnycal99 at gmail.com Mon Jun 30 02:07:44 2014 From: sunnycal99 at gmail.com (Chris B) Date: Sun, 29 Jun 2014 23:07:44 -0700 (PDT) Subject: [rules-users] kbase using kie In-Reply-To: References: <1404098437580-4030187.post@n3.nabble.com> <1404100207116-4030189.post@n3.nabble.com> <1404101235183-4030191.post@n3.nabble.com> Message-ID: <1404108464603-4030193.post@n3.nabble.com> I looked at another example which I implemented and that was using KieScanner which needs kie-ci. But your example is perfect and that is what I needed. Thanks again. -- View this message in context: http://drools.46999.n3.nabble.com/kbase-using-kie-tp4030187p4030193.html Sent from the Drools: User forum mailing list archive at Nabble.com. From zahid.ahmed at emirates.com Mon Jun 30 02:58:42 2014 From: zahid.ahmed at emirates.com (706826) Date: Sun, 29 Jun 2014 23:58:42 -0700 (PDT) Subject: [rules-users] BRMS Build & Deploy In-Reply-To: References: <3589f9703ffc4c0584d7e4a57c8709d8@HKNPR02MB019.apcprd02.prod.outlook.com> Message-ID: <1404111522368-4030194.post@n3.nabble.com> Thanks Manstis, Its working now with ARCHIVA as maven repo manager. BUT its not working with SONATYPE NEXUS as maven repo manager. Whenever I do build and deploy from the workbench it gives "Buid Failed" error and the log says "401 Unauthorized" -- View this message in context: http://drools.46999.n3.nabble.com/rules-users-BRMS-Build-Deploy-tp4030153p4030194.html Sent from the Drools: User forum mailing list archive at Nabble.com. From zahid.ahmed at emirates.com Mon Jun 30 03:18:37 2014 From: zahid.ahmed at emirates.com (706826) Date: Mon, 30 Jun 2014 00:18:37 -0700 (PDT) Subject: [rules-users] BRMS Build & Deploy In-Reply-To: References: <3589f9703ffc4c0584d7e4a57c8709d8@HKNPR02MB019.apcprd02.prod.outlook.com> Message-ID: <1404112717271-4030195.post@n3.nabble.com> Hi Manstis, Its working now with ARCHIVA as maven repo manager. BUT its not working with SONATYPE NEXUS as maven repo manager. Whenever I do build and deploy from the workbench it gives *Buid Failed* error and the log says *401 Unauthorized* -- View this message in context: http://drools.46999.n3.nabble.com/rules-users-BRMS-Build-Deploy-tp4030153p4030195.html Sent from the Drools: User forum mailing list archive at Nabble.com. From michael.anstis at gmail.com Mon Jun 30 04:21:20 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Mon, 30 Jun 2014 09:21:20 +0100 Subject: [rules-users] BRMS Build & Deploy In-Reply-To: <1404112717271-4030195.post@n3.nabble.com> References: <3589f9703ffc4c0584d7e4a57c8709d8@HKNPR02MB019.apcprd02.prod.outlook.com> <1404112717271-4030195.post@n3.nabble.com> Message-ID: I assume Nexus requires authentication. You'll need to configure this in Maven's settings.xml on the server you're running the workbench. Maven's user guide contains details of how to configure permissions for remote servers in settings.xml. On 30 June 2014 08:18, 706826 wrote: > Hi Manstis, Its working now with ARCHIVA as maven repo manager. BUT its not > working with SONATYPE NEXUS as maven repo manager. > > Whenever I do build and deploy from the workbench it gives *Buid Failed* > error and the log says *401 Unauthorized* > > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/rules-users-BRMS-Build-Deploy-tp4030153p4030195.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140630/ce548730/attachment.html From zahid.ahmed at emirates.com Mon Jun 30 04:24:04 2014 From: zahid.ahmed at emirates.com (706826) Date: Mon, 30 Jun 2014 01:24:04 -0700 (PDT) Subject: [rules-users] BRMS Build & Deploy In-Reply-To: References: <3589f9703ffc4c0584d7e4a57c8709d8@HKNPR02MB019.apcprd02.prod.outlook.com> <1404112717271-4030195.post@n3.nabble.com> Message-ID: Yes, that's I have already configured as follows, bpmassets deployment jbossadmin From: manstis [via Drools] [mailto:ml-node+s46999n4030196h59 at n3.nabble.com] Sent: 30 June 2014 12:23 To: Zahid Ahmed Subject: Re: [rules-users] BRMS Build & Deploy I assume Nexus requires authentication. You'll need to configure this in Maven's settings.xml on the server you're running the workbench. Maven's user guide contains details of how to configure permissions for remote servers in settings.xml. On 30 June 2014 08:18, 706826 <[hidden email]> wrote: Hi Manstis, Its working now with ARCHIVA as maven repo manager. BUT its not working with SONATYPE NEXUS as maven repo manager. Whenever I do build and deploy from the workbench it gives *Buid Failed* error and the log says *401 Unauthorized* -- View this message in context: http://drools.46999.n3.nabble.com/rules-users-BRMS-Build-Deploy-tp4030153p4030195.html Sent from the Drools: User forum mailing list archive at Nabble.com. _______________________________________________ rules-users mailing list [hidden email] https://lists.jboss.org/mailman/listinfo/rules-users _______________________________________________ rules-users mailing list [hidden email] https://lists.jboss.org/mailman/listinfo/rules-users ________________________________ If you reply to this email, your message will be added to the discussion below: http://drools.46999.n3.nabble.com/rules-users-BRMS-Build-Deploy-tp4030153p4030196.html To unsubscribe from [rules-users] BRMS Build & Deploy, click here. NAML -- View this message in context: http://drools.46999.n3.nabble.com/rules-users-BRMS-Build-Deploy-tp4030153p4030197.html Sent from the Drools: User forum mailing list archive at Nabble.com. -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140630/484a1c8f/attachment.html From michael.anstis at gmail.com Mon Jun 30 04:25:52 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Mon, 30 Jun 2014 09:25:52 +0100 Subject: [rules-users] BRMS Build & Deploy In-Reply-To: References: <3589f9703ffc4c0584d7e4a57c8709d8@HKNPR02MB019.apcprd02.prod.outlook.com> <1404112717271-4030195.post@n3.nabble.com> Message-ID: Please can you give some more information? Where/how have you configured the workbench to attempt to deploy to Nexus as opposed to it's internal maven repository? On 30 June 2014 09:24, 706826 wrote: > Yes, that?s I have already configured as follows, > > > > > > bpmassets > > > deployment > > > jbossadmin > > > > > > > > *From:* manstis [via Drools] [mailto:ml-node+[hidden email] > ] > *Sent:* 30 June 2014 12:23 > *To:* Zahid Ahmed > > *Subject:* Re: [rules-users] BRMS Build & Deploy > > > > I assume Nexus requires authentication. > > > > You'll need to configure this in Maven's settings.xml on the server you're > running the workbench. > > > > Maven's user guide contains details of how to configure permissions for > remote servers in settings.xml. > > > > On 30 June 2014 08:18, 706826 <[hidden email] > > wrote: > > Hi Manstis, Its working now with ARCHIVA as maven repo manager. BUT its not > > working with SONATYPE NEXUS as maven repo manager. > > Whenever I do build and deploy from the workbench it gives *Buid Failed* > error and the log says *401 Unauthorized* > > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/rules-users-BRMS-Build-Deploy-tp4030153p4030195.html > > Sent from the Drools: User forum mailing list archive at Nabble.com. > > _______________________________________________ > rules-users mailing list > [hidden email] > https://lists.jboss.org/mailman/listinfo/rules-users > > > > > _______________________________________________ > rules-users mailing list > [hidden email] > https://lists.jboss.org/mailman/listinfo/rules-users > ------------------------------ > > *If you reply to this email, your message will be added to the discussion > below:* > > > http://drools.46999.n3.nabble.com/rules-users-BRMS-Build-Deploy-tp4030153p4030196.html > > To unsubscribe from [rules-users] BRMS Build & Deploy, click here. > NAML > > > ------------------------------ > View this message in context: RE: [rules-users] BRMS Build & Deploy > > > Sent from the Drools: User forum mailing list archive > at > Nabble.com. > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140630/b5241f90/attachment-0001.html From zahid.ahmed at emirates.com Mon Jun 30 05:12:35 2014 From: zahid.ahmed at emirates.com (706826) Date: Mon, 30 Jun 2014 02:12:35 -0700 (PDT) Subject: [rules-users] BRMS Build & Deploy In-Reply-To: References: <3589f9703ffc4c0584d7e4a57c8709d8@HKNPR02MB019.apcprd02.prod.outlook.com> <1404112717271-4030195.post@n3.nabble.com> Message-ID: <1404119555901-4030199.post@n3.nabble.com> *Error Log.* 09:09:49,526 INFO [org.drools.compiler.kie.builder.impl.KieRepositoryImpl] (http-/0.0.0.0:8080-9) KieModule was added:MemoryKieModule[ ReleaseId=netsolace:netsolaceproj:1.0] 09:09:49,800 ERROR [org.guvnor.common.services.builder.BuildServiceImpl] (http-/0.0.0.0:8080-9) org.sonatype.aether.deployment.DeploymentException: Failed to deploy artifacts: Could not transfer artifact netsolace:netsolaceproj:jar:1.0 from/to bpmassets (http://lnxdevvm565:8880/nexus/content/repositories/bpmassets): Failed to transfer file: http://lnxdevvm565:8880/nexus/content/repositories/bpmassets/netsolace/netsolaceproj/1.0/netsolaceproj-1.0.jar. Return code is: 401, ReasonPhrase:Unauthorized.: java.lang.RuntimeException: org.sonatype.aether.deployment.DeploymentException: Failed to deploy artifacts: Could not transfer artifact netsolace:netsolaceproj:jar:1.0 from/to bpmassets (http://lnxdevvm565:8880/nexus/content/repositories/bpmassets): Failed to transfer file: http://lnxdevvm565:8880/nexus/content/repositories/bpmassets/netsolace/netsolaceproj/1.0/netsolaceproj-1.0.jar. Return code is: 401, ReasonPhrase:Unauthorized. at org.guvnor.m2repo.backend.server.GuvnorM2Repository.deployArtifact(GuvnorM2Repository.java:280) [guvnor-m2repo-editor-backend-6.1.0.CR1.jar:6.1.0.CR1] at org.guvnor.m2repo.backend.server.GuvnorM2Repository.deployArtifact(GuvnorM2Repository.java:163) [guvnor-m2repo-editor-backend-6.1.0.CR1.jar:6.1.0.CR1] at org.guvnor.m2repo.backend.server.GuvnorM2Repository$Proxy$_$$_WeldClientProxy.deployArtifact(GuvnorM2Repository$Proxy$_$$_WeldClientProxy.java) [guvnor-m2repo-editor-backend-6.1.0.CR1.jar:6.1.0.CR1] at org.guvnor.m2repo.backend.server.M2RepoServiceImpl.deployJar(M2RepoServiceImpl.java:52) [guvnor-m2repo-editor-backend-6.1.0.CR1.jar:6.1.0.CR1] at org.guvnor.m2repo.backend.server.M2RepoServiceImpl$Proxy$_$$_WeldClientProxy.deployJar(M2RepoServiceImpl$Proxy$_$$_WeldClientProxy.java) [guvnor-m2repo-editor-backend-6.1.0.CR1.jar:6.1.0.CR1] at org.guvnor.common.services.builder.BuildServiceImpl.buildAndDeploy(BuildServiceImpl.java:103) [guvnor-project-builder-6.1.0.CR1.jar:6.1.0.CR1] at org.guvnor.common.services.builder.BuildServiceImpl$Proxy$_$$_WeldClientProxy.buildAndDeploy(BuildServiceImpl$Proxy$_$$_WeldClientProxy.java) [guvnor-project-builder-6.1.0.CR1.jar:6.1.0.CR1] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_25] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_25] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_25] at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_25] at org.jboss.errai.bus.server.io.AbstractRPCMethodCallback.invokeMethodFromMessage(AbstractRPCMethodCallback.java:48) [errai-bus-2.4.4.Final.jar:2.4.4.Final] at org.jboss.errai.bus.server.io.ValueReplyRPCEndpointCallback.callback(ValueReplyRPCEndpointCallback.java:22) [errai-bus-2.4.4.Final.jar:2.4.4.Final] at org.jboss.errai.bus.server.io.RemoteServiceCallback.callback(RemoteServiceCallback.java:54) [errai-bus-2.4.4.Final.jar:2.4.4.Final] at org.jboss.errai.cdi.server.CDIExtensionPoints$3.callback(CDIExtensionPoints.java:499) [errai-weld-integration-2.4.4.Final.jar:2.4.4.Final] at org.jboss.errai.bus.server.DeliveryPlan.deliver(DeliveryPlan.java:47) [errai-bus-2.4.4.Final.jar:2.4.4.Final] at org.jboss.errai.bus.server.ServerMessageBusImpl.sendGlobal(ServerMessageBusImpl.java:284) [errai-bus-2.4.4.Final.jar:2.4.4.Final] at org.jboss.errai.bus.server.SimpleDispatcher.dispatchGlobal(SimpleDispatcher.java:46) [errai-bus-2.4.4.Final.jar:2.4.4.Final] at org.jboss.errai.bus.server.service.ErraiServiceImpl.store(ErraiServiceImpl.java:97) [errai-bus-2.4.4.Final.jar:2.4.4.Final] at org.jboss.errai.bus.server.service.ErraiServiceImpl.store(ErraiServiceImpl.java:114) [errai-bus-2.4.4.Final.jar:2.4.4.Final] at org.jboss.errai.bus.server.servlet.DefaultBlockingServlet.doPost(DefaultBlockingServlet.java:140) [errai-bus-2.4.4.Final.jar:2.4.4.Final] at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1] at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.jboss.solder.servlet.exception.CatchExceptionFilter.doFilter(CatchExceptionFilter.java:65) [solder-impl-3.2.1.Final.jar:3.2.1.Final] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.jboss.solder.servlet.event.ServletEventBridgeFilter.doFilter(ServletEventBridgeFilter.java:74) [solder-impl-3.2.1.Final.jar:3.2.1.Final] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.jbpm.designer.web.filter.impl.PluggableFilter.doFilter(PluggableFilter.java:70) [jbpm-designer-backend-6.1.0.CR1.jar:6.1.0.CR1] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.uberfire.security.server.UberFireSecurityFilter.doFilter(UberFireSecurityFilter.java:283) [uberfire-security-server-0.4.0.CR1.jar:0.4.0.CR1] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8] at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8] at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8] at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25] Caused by: org.sonatype.aether.deployment.DeploymentException: Failed to deploy artifacts: Could not transfer artifact netsolace:netsolaceproj:jar:1.0 from/to bpmassets (http://lnxdevvm565:8880/nexus/content/repositories/bpmassets): Failed to transfer file: http://lnxdevvm565:8880/nexus/content/repositories/bpmassets/netsolace/netsolaceproj/1.0/netsolaceproj-1.0.jar. Return code is: 401, ReasonPhrase:Unauthorized. at org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:280) [aether-impl-1.13.1.jar:] at org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:211) [aether-impl-1.13.1.jar:] at org.sonatype.aether.impl.internal.DefaultRepositorySystem.deploy(DefaultRepositorySystem.java:443) [aether-impl-1.13.1.jar:] at org.guvnor.m2repo.backend.server.GuvnorM2Repository.deployArtifact(GuvnorM2Repository.java:274) [guvnor-m2repo-editor-backend-6.1.0.CR1.jar:6.1.0.CR1] ... 50 more Caused by: org.sonatype.aether.transfer.ArtifactTransferException: Could not transfer artifact netsolace:netsolaceproj:jar:1.0 from/to bpmassets (http://lnxdevvm565:8880/nexus/content/repositories/bpmassets): Failed to transfer file: http://lnxdevvm565:8880/nexus/content/repositories/bpmassets/netsolace/netsolaceproj/1.0/netsolaceproj-1.0.jar. Return code is: 401, ReasonPhrase:Unauthorized. at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:951) [aether-connector-wagon-1.13.1.jar:] at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:941) [aether-connector-wagon-1.13.1.jar:] at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$PutTask.run(WagonRepositoryConnector.java:837) [aether-connector-wagon-1.13.1.jar:] at org.sonatype.aether.connector.wagon.WagonRepositoryConnector.put(WagonRepositoryConnector.java:467) [aether-connector-wagon-1.13.1.jar:] at org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:274) [aether-impl-1.13.1.jar:] ... 53 more Caused by: org.apache.maven.wagon.TransferFailedException: Failed to transfer file: http://lnxdevvm565:8880/nexus/content/repositories/bpmassets/netsolace/netsolaceproj/1.0/netsolaceproj-1.0.jar. Return code is: 401, ReasonPhrase:Unauthorized. at org.apache.maven.wagon.shared.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:581) [wagon-http-shared4-2.0.jar:2.0] at org.apache.maven.wagon.shared.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:476) [wagon-http-shared4-2.0.jar:2.0] at org.sonatype.aether.connector.wagon.WagonRepositoryConnector$PutTask.run(WagonRepositoryConnector.java:811) [aether-connector-wagon-1.13.1.jar:] ... 55 more *Pom.xml* 4.0.0 netsolace netsolaceproj 1.0 kjar netsolaceproj bpmassets http://lnxdevvm565:8880/nexus/content/repositories/bpmassets guvnor-m2-repo Guvnor M2 Repo http://lnxdevvm565:8080/kie-drools-wb61/maven2/ org.kie kie-maven-plugin 6.1.0.CR1 true -- View this message in context: http://drools.46999.n3.nabble.com/rules-users-BRMS-Build-Deploy-tp4030153p4030199.html Sent from the Drools: User forum mailing list archive at Nabble.com. From michael.anstis at gmail.com Mon Jun 30 05:22:44 2014 From: michael.anstis at gmail.com (Michael Anstis) Date: Mon, 30 Jun 2014 10:22:44 +0100 Subject: [rules-users] BRMS Build & Deploy In-Reply-To: <1404119555901-4030199.post@n3.nabble.com> References: <3589f9703ffc4c0584d7e4a57c8709d8@HKNPR02MB019.apcprd02.prod.outlook.com> <1404112717271-4030195.post@n3.nabble.com> <1404119555901-4030199.post@n3.nabble.com> Message-ID: OK, so this confirms you have your project configured to use bpmassets in it's section and that you're having a 401 issue. What do you have in your settings.xml? This, unfortunately, is moving towards possibly a Nexus issue (IDK what form it expects the authentication details to be provided). You state it works OK with another Maven installation so I don't feel it's currently an issue with the workbench. On 30 June 2014 10:12, 706826 wrote: > > > > *Error Log.* > [0m [0m09:09:49,526 INFO > [org.drools.compiler.kie.builder.impl.KieRepositoryImpl] > (http-/0.0.0.0:8080-9) KieModule was added:MemoryKieModule[ > ReleaseId=netsolace:netsolaceproj:1.0] > [0m [31m09:09:49,800 ERROR > [org.guvnor.common.services.builder.BuildServiceImpl] (http-/0.0.0.0:8080 > -9) > org.sonatype.aether.deployment.DeploymentException: Failed to deploy > artifacts: Could not transfer artifact netsolace:netsolaceproj:jar:1.0 > from/to bpmassets > (http://lnxdevvm565:8880/nexus/content/repositories/bpmassets): Failed to > transfer file: > > http://lnxdevvm565:8880/nexus/content/repositories/bpmassets/netsolace/netsolaceproj/1.0/netsolaceproj-1.0.jar > . > Return code is: 401, ReasonPhrase:Unauthorized.: > java.lang.RuntimeException: > org.sonatype.aether.deployment.DeploymentException: Failed to deploy > artifacts: Could not transfer artifact netsolace:netsolaceproj:jar:1.0 > from/to bpmassets > (http://lnxdevvm565:8880/nexus/content/repositories/bpmassets): Failed to > transfer file: > > http://lnxdevvm565:8880/nexus/content/repositories/bpmassets/netsolace/netsolaceproj/1.0/netsolaceproj-1.0.jar > . > Return code is: 401, ReasonPhrase:Unauthorized. > at > > org.guvnor.m2repo.backend.server.GuvnorM2Repository.deployArtifact(GuvnorM2Repository.java:280) > [guvnor-m2repo-editor-backend-6.1.0.CR1.jar:6.1.0.CR1] > at > > org.guvnor.m2repo.backend.server.GuvnorM2Repository.deployArtifact(GuvnorM2Repository.java:163) > [guvnor-m2repo-editor-backend-6.1.0.CR1.jar:6.1.0.CR1] > at > > org.guvnor.m2repo.backend.server.GuvnorM2Repository$Proxy$_$$_WeldClientProxy.deployArtifact(GuvnorM2Repository$Proxy$_$$_WeldClientProxy.java) > [guvnor-m2repo-editor-backend-6.1.0.CR1.jar:6.1.0.CR1] > at > > org.guvnor.m2repo.backend.server.M2RepoServiceImpl.deployJar(M2RepoServiceImpl.java:52) > [guvnor-m2repo-editor-backend-6.1.0.CR1.jar:6.1.0.CR1] > at > > org.guvnor.m2repo.backend.server.M2RepoServiceImpl$Proxy$_$$_WeldClientProxy.deployJar(M2RepoServiceImpl$Proxy$_$$_WeldClientProxy.java) > [guvnor-m2repo-editor-backend-6.1.0.CR1.jar:6.1.0.CR1] > at > > org.guvnor.common.services.builder.BuildServiceImpl.buildAndDeploy(BuildServiceImpl.java:103) > [guvnor-project-builder-6.1.0.CR1.jar:6.1.0.CR1] > at > > org.guvnor.common.services.builder.BuildServiceImpl$Proxy$_$$_WeldClientProxy.buildAndDeploy(BuildServiceImpl$Proxy$_$$_WeldClientProxy.java) > [guvnor-project-builder-6.1.0.CR1.jar:6.1.0.CR1] > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > [rt.jar:1.7.0_25] > at > > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) > [rt.jar:1.7.0_25] > at > > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > [rt.jar:1.7.0_25] > at java.lang.reflect.Method.invoke(Method.java:606) > [rt.jar:1.7.0_25] > at > > org.jboss.errai.bus.server.io.AbstractRPCMethodCallback.invokeMethodFromMessage(AbstractRPCMethodCallback.java:48) > [errai-bus-2.4.4.Final.jar:2.4.4.Final] > at > > org.jboss.errai.bus.server.io.ValueReplyRPCEndpointCallback.callback(ValueReplyRPCEndpointCallback.java:22) > [errai-bus-2.4.4.Final.jar:2.4.4.Final] > at > > org.jboss.errai.bus.server.io.RemoteServiceCallback.callback(RemoteServiceCallback.java:54) > [errai-bus-2.4.4.Final.jar:2.4.4.Final] > at > > org.jboss.errai.cdi.server.CDIExtensionPoints$3.callback(CDIExtensionPoints.java:499) > [errai-weld-integration-2.4.4.Final.jar:2.4.4.Final] > at > org.jboss.errai.bus.server.DeliveryPlan.deliver(DeliveryPlan.java:47) > [errai-bus-2.4.4.Final.jar:2.4.4.Final] > at > > org.jboss.errai.bus.server.ServerMessageBusImpl.sendGlobal(ServerMessageBusImpl.java:284) > [errai-bus-2.4.4.Final.jar:2.4.4.Final] > at > > org.jboss.errai.bus.server.SimpleDispatcher.dispatchGlobal(SimpleDispatcher.java:46) > [errai-bus-2.4.4.Final.jar:2.4.4.Final] > at > > org.jboss.errai.bus.server.service.ErraiServiceImpl.store(ErraiServiceImpl.java:97) > [errai-bus-2.4.4.Final.jar:2.4.4.Final] > at > > org.jboss.errai.bus.server.service.ErraiServiceImpl.store(ErraiServiceImpl.java:114) > [errai-bus-2.4.4.Final.jar:2.4.4.Final] > at > > org.jboss.errai.bus.server.servlet.DefaultBlockingServlet.doPost(DefaultBlockingServlet.java:140) > [errai-bus-2.4.4.Final.jar:2.4.4.Final] > at javax.servlet.http.HttpServlet.service(HttpServlet.java:754) > [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1] > at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) > [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-1.jar:1.0.2.Final-redhat-1] > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > > org.jboss.solder.servlet.exception.CatchExceptionFilter.doFilter(CatchExceptionFilter.java:65) > [solder-impl-3.2.1.Final.jar:3.2.1.Final] > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > > org.jboss.solder.servlet.event.ServletEventBridgeFilter.doFilter(ServletEventBridgeFilter.java:74) > [solder-impl-3.2.1.Final.jar:3.2.1.Final] > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > > org.jbpm.designer.web.filter.impl.PluggableFilter.doFilter(PluggableFilter.java:70) > [jbpm-designer-backend-6.1.0.CR1.jar:6.1.0.CR1] > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > > org.uberfire.security.server.UberFireSecurityFilter.doFilter(UberFireSecurityFilter.java:283) > [uberfire-security-server-0.4.0.CR1.jar:0.4.0.CR1] > at > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > > org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:481) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > > org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) > [jboss-as-jpa-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8] > at > > org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) > [jboss-as-jpa-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8] > at > > org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) > [jboss-as-web-7.2.0.Final-redhat-8.jar:7.2.0.Final-redhat-8] > at > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920) > [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1] > at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25] > Caused by: org.sonatype.aether.deployment.DeploymentException: Failed to > deploy artifacts: Could not transfer artifact > netsolace:netsolaceproj:jar:1.0 from/to bpmassets > (http://lnxdevvm565:8880/nexus/content/repositories/bpmassets): Failed to > transfer file: > > http://lnxdevvm565:8880/nexus/content/repositories/bpmassets/netsolace/netsolaceproj/1.0/netsolaceproj-1.0.jar > . > Return code is: 401, ReasonPhrase:Unauthorized. > at > > org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:280) > [aether-impl-1.13.1.jar:] > at > > org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:211) > [aether-impl-1.13.1.jar:] > at > > org.sonatype.aether.impl.internal.DefaultRepositorySystem.deploy(DefaultRepositorySystem.java:443) > [aether-impl-1.13.1.jar:] > at > > org.guvnor.m2repo.backend.server.GuvnorM2Repository.deployArtifact(GuvnorM2Repository.java:274) > [guvnor-m2repo-editor-backend-6.1.0.CR1.jar:6.1.0.CR1] > ... 50 more > Caused by: org.sonatype.aether.transfer.ArtifactTransferException: Could > not > transfer artifact netsolace:netsolaceproj:jar:1.0 from/to bpmassets > (http://lnxdevvm565:8880/nexus/content/repositories/bpmassets): Failed to > transfer file: > > http://lnxdevvm565:8880/nexus/content/repositories/bpmassets/netsolace/netsolaceproj/1.0/netsolaceproj-1.0.jar > . > Return code is: 401, ReasonPhrase:Unauthorized. > at > > org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:951) > [aether-connector-wagon-1.13.1.jar:] > at > > org.sonatype.aether.connector.wagon.WagonRepositoryConnector$4.wrap(WagonRepositoryConnector.java:941) > [aether-connector-wagon-1.13.1.jar:] > at > > org.sonatype.aether.connector.wagon.WagonRepositoryConnector$PutTask.run(WagonRepositoryConnector.java:837) > [aether-connector-wagon-1.13.1.jar:] > at > > org.sonatype.aether.connector.wagon.WagonRepositoryConnector.put(WagonRepositoryConnector.java:467) > [aether-connector-wagon-1.13.1.jar:] > at > > org.sonatype.aether.impl.internal.DefaultDeployer.deploy(DefaultDeployer.java:274) > [aether-impl-1.13.1.jar:] > ... 53 more > Caused by: org.apache.maven.wagon.TransferFailedException: Failed to > transfer file: > > http://lnxdevvm565:8880/nexus/content/repositories/bpmassets/netsolace/netsolaceproj/1.0/netsolaceproj-1.0.jar > . > Return code is: 401, ReasonPhrase:Unauthorized. > at > > org.apache.maven.wagon.shared.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:581) > [wagon-http-shared4-2.0.jar:2.0] > at > > org.apache.maven.wagon.shared.http.AbstractHttpClientWagon.put(AbstractHttpClientWagon.java:476) > [wagon-http-shared4-2.0.jar:2.0] > at > > org.sonatype.aether.connector.wagon.WagonRepositoryConnector$PutTask.run(WagonRepositoryConnector.java:811) > [aether-connector-wagon-1.13.1.jar:] > ... 55 more > > *Pom.xml* > > xmlns="http://maven.apache.org/POM/4.0.0" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> > 4.0.0 > netsolace > netsolaceproj > 1.0 > kjar > netsolaceproj > > > bpmassets > > http://lnxdevvm565:8880/nexus/content/repositories/bpmassets > > > > > guvnor-m2-repo > Guvnor M2 Repo > http://lnxdevvm565:8080/kie-drools-wb61/maven2/ > > > > > > org.kie > kie-maven-plugin > 6.1.0.CR1 > true > > > > > > > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/rules-users-BRMS-Build-Deploy-tp4030153p4030199.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140630/16ba3378/attachment-0001.html From zahid.ahmed at emirates.com Mon Jun 30 05:31:02 2014 From: zahid.ahmed at emirates.com (706826) Date: Mon, 30 Jun 2014 02:31:02 -0700 (PDT) Subject: [rules-users] BRMS Build & Deploy In-Reply-To: References: <1404112717271-4030195.post@n3.nabble.com> <1404119555901-4030199.post@n3.nabble.com> Message-ID: <1404120662093-4030202.post@n3.nabble.com> yes its working when I am deploying archiva as my repo manager. *Settings.xml* D:\Repositories droolssix admin $admin123$ bpmassets deployment jbossadmin -- View this message in context: http://drools.46999.n3.nabble.com/rules-users-BRMS-Build-Deploy-tp4030153p4030202.html Sent from the Drools: User forum mailing list archive at Nabble.com. From arul.prashanth at gmail.com Mon Jun 30 12:51:22 2014 From: arul.prashanth at gmail.com (Arul Prashanth) Date: Mon, 30 Jun 2014 09:51:22 -0700 (PDT) Subject: [rules-users] Delay between rule firing using Drools 5.6 Message-ID: <1404147081924-4030203.post@n3.nabble.com> We have a series of decision tables and for a particular set of decision table we see that for the first time when the rule is fired, there is a delay between the After Activation of Rule 1 and Before Activation of Rule 2. This happens only when the Rules are fired for the first time. Since there are 200 decision table rows each execution seems to take longer. The condition for the rules to fire is $if : facts() $fact : Fact(factType == "XYZ") from $if.Fact $if.Fact is an array list which has 200 Fact objects. Does this iteration takes time? We use Drools 5.6 Any help would be great. ----- - Prashanth -- View this message in context: http://drools.46999.n3.nabble.com/Delay-between-rule-firing-using-Drools-5-6-tp4030203.html Sent from the Drools: User forum mailing list archive at Nabble.com. From calcacuervo at gmail.com Mon Jun 30 20:40:35 2014 From: calcacuervo at gmail.com (calcacuervo) Date: Mon, 30 Jun 2014 17:40:35 -0700 (PDT) Subject: [rules-users] Drools Session Persistence Message-ID: <1404175235307-4030204.post@n3.nabble.com> Hey Guys. I would like to persist a ksession in drools 6, but not every time I interact with the session, as this would impact the performance and we have lot of events and facts inserted per second. Is this possible to manually persisting the session (for example, on undeployment), and then, at the app startup load it? Thanks! Demian -- View this message in context: http://drools.46999.n3.nabble.com/Drools-Session-Persistence-tp4030204.html Sent from the Drools: User forum mailing list archive at Nabble.com. From mproctor at codehaus.org Mon Jun 30 21:51:50 2014 From: mproctor at codehaus.org (Mark Proctor) Date: Tue, 1 Jul 2014 02:51:50 +0100 Subject: [rules-users] Drools Session Persistence In-Reply-To: <1404175235307-4030204.post@n3.nabble.com> References: <1404175235307-4030204.post@n3.nabble.com> Message-ID: You can marshal the sessions manually and save/load the resulting byte[]. Look at the marshaller api in -api javadocs. Mark On 1 Jul 2014, at 01:40, calcacuervo wrote: > Hey Guys. > > I would like to persist a ksession in drools 6, but not every time I > interact with the session, as this would impact the performance and we have > lot of events and facts inserted per second. > > Is this possible to manually persisting the session (for example, on > undeployment), and then, at the app startup load it? > > Thanks! > > Demian > > > > -- > View this message in context: http://drools.46999.n3.nabble.com/Drools-Session-Persistence-tp4030204.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users From raojinghai at gmail.com Wed Jun 4 22:20:45 2014 From: raojinghai at gmail.com (raojinghai at gmail.com) Date: Thu, 05 Jun 2014 02:20:45 -0000 Subject: [rules-users] Compilation errors in Drools examples In-Reply-To: <1401902788133-4029871.post@n3.nabble.com> References: <1389382886927-4027650.post@n3.nabble.com> <1401390116681-4029760.post@n3.nabble.com> <1401396802847-4029763.post@n3.nabble.com> <1401400419622-4029765.post@n3.nabble.com> <1401787361937-4029826.post@n3.nabble.com> <1401830713017-4029839.post@n3.nabble.com> <1401902788133-4029871.post@n3.nabble.com> Message-ID: Hi Mario, I am not familiar with Eclipse plugin development so I don't know how I can make it easier to reproduce on your side. I just tested with the default drools sample project and change a "when" to "when1" in Sample.drl. However, I am almost sure this is caused by the latest commit. I did a git revert to the previous commit (5b7101f13cf6eb6bb3cea37638b0d9d982a6b10b "disabled enforce-plugin-version rule"), and this error can be detected (see attached ScreenShot1.png). However, the plugin built with the latest commit can't detect it (ScreenShot2.png). I tried to clean/rebuild the project and re-import, but the result is all the same. Please let me know if I can provide more information by any means. Thank you very much. Jinghai On Wed, Jun 4, 2014 at 10:26 AM, Mario Fusco wrote: > Hi Jinghai, > > I cannot reproduce the last issue you're reporting. Every time I introduce > an error both in the java and in the drl code it is reported correctly. > Can you be a bit more explicit about this or even better attaching to the > jira ticket a simple project reproducing this issue? > > Thanks, > Mario > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Compilation-errors-in-Drools-examples-tp4027650p4029871.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140605/824d58d1/attachment.html -------------- next part -------------- A non-text attachment was scrubbed... Name: ScreenShot1.png Type: image/png Size: 613572 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140605/824d58d1/attachment.png -------------- next part -------------- A non-text attachment was scrubbed... Name: ScreenShot2.png Type: image/png Size: 595245 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140605/824d58d1/attachment-0001.png From raojinghai at gmail.com Wed Jun 4 22:38:47 2014 From: raojinghai at gmail.com (raojinghai at gmail.com) Date: Thu, 05 Jun 2014 02:38:47 -0000 Subject: [rules-users] Compilation errors in Drools examples In-Reply-To: <1401902788133-4029871.post@n3.nabble.com> References: <1389382886927-4027650.post@n3.nabble.com> <1401390116681-4029760.post@n3.nabble.com> <1401396802847-4029763.post@n3.nabble.com> <1401400419622-4029765.post@n3.nabble.com> <1401787361937-4029826.post@n3.nabble.com> <1401830713017-4029839.post@n3.nabble.com> <1401902788133-4029871.post@n3.nabble.com> Message-ID: Hi Mario, I am not familiar with Eclipse plugin development so I don't know how I can make it easier to reproduce on your side. I just tested with the default drools sample project and change a "when" to "when1" in Sample.drl. However, I am almost sure this is caused by the latest commit. I did a git revert to the previous commit (5b7101f13cf6eb6bb3cea37638b0d9d982a6b10b "disabled enforce-plugin-version rule"), and this error can be detected (see attached ScreenShot1.jpg). However, the plugin built with the latest commit can't detect it (ScreenShot2.jpg). I tried to clean/rebuild the project and re-import, but the result is all the same. Please let me know if I can provide more information by any means. Thank you very much. Jinghai On Wed, Jun 4, 2014 at 10:26 AM, Mario Fusco wrote: > Hi Jinghai, > > I cannot reproduce the last issue you're reporting. Every time I introduce > an error both in the java and in the drl code it is reported correctly. > Can you be a bit more explicit about this or even better attaching to the > jira ticket a simple project reproducing this issue? > > Thanks, > Mario > > > > -- > View this message in context: > http://drools.46999.n3.nabble.com/Compilation-errors-in-Drools-examples-tp4027650p4029871.html > Sent from the Drools: User forum mailing list archive at Nabble.com. > _______________________________________________ > rules-users mailing list > rules-users at lists.jboss.org > https://lists.jboss.org/mailman/listinfo/rules-users > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140605/6d473b07/attachment.html -------------- next part -------------- A non-text attachment was scrubbed... Name: ScreenShot1.jpg Type: image/jpeg Size: 236280 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140605/6d473b07/attachment.jpg -------------- next part -------------- A non-text attachment was scrubbed... Name: ScreenShot2.jpg Type: image/jpeg Size: 228687 bytes Desc: not available Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140605/6d473b07/attachment-0001.jpg From zahid.ahmed at emirates.com Wed Jun 11 00:24:41 2014 From: zahid.ahmed at emirates.com (Zahid Ahmed) Date: Wed, 11 Jun 2014 04:24:41 -0000 Subject: [rules-users] Drools Workbench - VFS Clustering - Rpositories/Assets not synched Message-ID: Hi, I am deploying Drools Workbench with VFS Clustering in place. I have followed the steps defined in Drools-6 documentation in section "VFS-CLUSTERING", and the following link. But my repositories are not synching http://mswiderski.blogspot.com.br/2013/06/clustering-in-jbpm-v6.html but getting following Zookeeper exception. NoNode for /jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/df7cda63-979b-47b2-ac9a-f2b218cb188 Attachment List 1. Complete exception trace of zookeeper is pasted at the end. 2. Server logs of both workbench servers is attached in the email. 3. Server un-synched assets screen shot attached. Problem BPMN process created in Workbench-A is not getting Synched with Workbench-B. Following are the screen shots for the difference in project assets. Images attached in "ServerAssets.png" DESIGN [cid:image002.png at 01CF84B6.3C23B0C0] Helix Commands Startup and Cluster Setup 1. helix-core-0.6.3\bin>helix-admin.bat --zkSvr localhost:2199 --addCluster jbpm-cluster 2. helix-core-0.6.3\bin>helix-admin.bat --zkSvr localhost:2199 --addNode jbpm-cluster nodeOne:11 3. helix-core-0.6.3\bin>helix-admin.bat --zkSvr localhost:2199 --addNode jbpm-cluster nodeTwo:22 4. helix-core-0.6.3\bin>helix-admin.bat --zkSvr localhost:2199 --addResource jbpm-cluster vfs-repo 1 LeaderStandby AUTO_REBALANCE 5. helix-core-0.6.3\bin>helix-admin.bat --zkSvr localhost:2199 --rebalance jbpm-cluster vfs-repo 2 6. helix-core-0.6.3\bin>run-helix-controller.bat --zkSvr localhost:2199 --cluster jbpm-cluster 2>&1 > /tmp/controller.log & ZooKeeper Setup Changes done only in zoo.conf 1. dataDir = /zooDir/zookeeper (Not sure where this directory gets created as I could not find it in $zookeeper_home/) 2. clientPort = 2199 Work-Bench A Configuration: Standalone.xml Work-Bench B Configuration: Standalone.xml Zookeeper Exception Trace: 2014-06-10 13:58:32,572 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250008 type:setData cxid:0x253 zxid:0x24b txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/56d2d3ac-126e-4ed2-aeaf-4a4 bfd91d80f Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/56d2d3ac-126e-4ed2-aeaf-4a4bfd91d80f 2014-06-10 13:59:03,859 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x38c zxid:0x267 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/dea6167c-ca2c-4f5d-85aa-5fc 65703e5be Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/dea6167c-ca2c-4f5d-85aa-5fc65703e5be 2014-06-10 13:59:06,911 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x3ed zxid:0x281 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/b58e5ff9-235a-4a12-b159-ee1 c9fbc01cc Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/b58e5ff9-235a-4a12-b159-ee1c9fbc01cc 2014-06-10 13:59:09,618 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x44c zxid:0x29b txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/71ba364e-21c1-4ee2-8383-4cb 5d15d339e Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/71ba364e-21c1-4ee2-8383-4cb5d15d339e 2014-06-10 13:59:23,720 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x4ab zxid:0x2b5 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/7d5f0c9c-ee69-4061-94e6-12a cf045a77b Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/7d5f0c9c-ee69-4061-94e6-12acf045a77b 2014-06-10 13:59:25,252 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x4c2 zxid:0x2b9 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/cc24bd9a-5297-4bc1-85f5-31f 6639de8e6 Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/cc24bd9a-5297-4bc1-85f5-31f6639de8e6 2014-06-10 13:59:25,982 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x4d9 zxid:0x2bd txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/337e84c8-06e9-4023-87c5-b48 26ec5ddb1 Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/337e84c8-06e9-4023-87c5-b4826ec5ddb1 2014-06-10 13:59:40,762 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x53c zxid:0x2d7 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/1eeac27e-5e48-43b9-bba5-98b ce0b89015 Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/1eeac27e-5e48-43b9-bba5-98bce0b89015 2014-06-10 13:59:41,775 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x59b zxid:0x2f1 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/7611f66a-993d-4652-8b07-011 e5bdcea60 Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/7611f66a-993d-4652-8b07-011e5bdcea60 2014-06-10 13:59:43,681 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250007 type:setData cxid:0x5d4 zxid:0x301 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/55991bef-61cb-4011-a8f1-f28 d47c67c53 Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeTwo_22/MESSAGES/55991bef-61cb-4011-a8f1-f28d47c67c53 2014-06-10 14:00:04,689 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250008 type:setData cxid:0x332 zxid:0x311 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/65d0518e-1853-4373-a455-02d 1699930cc Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/65d0518e-1853-4373-a455-02d1699930cc 2014-06-10 14:00:06,542 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250008 type:setData cxid:0x391 zxid:0x32b txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/87131701-cf41-4c2f-8de4-54c 599da0f03 Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/87131701-cf41-4c2f-8de4-54c599da0f03 2014-06-10 14:17:39,329 [myid:] - INFO [ProcessThread(sid:0 cport:-1)::PrepRequestProcessor at 645] - Got user-level KeeperException when processing sessionid:0x146850ce9250008 type:setData cxid:0x401 zxid:0x367 txntype:-1 reqpath:n/a Error Path:/jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/aeb3757b-4560-4dca-b78c-6be 24eb514dc Error:KeeperErrorCode = NoNode for /jbpm-cluster/INSTANCES/nodeOne_11/MESSAGES/aeb3757b-4560-4dca-b78c-6be24eb514dc Regards, Zahid Ahmed -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/20b84069/attachment-0001.html -------------- next part -------------- A non-text attachment was scrubbed... Name: image002.png Type: image/png Size: 17529 bytes Desc: image002.png Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140611/20b84069/attachment-0002.png -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: WorkBench-B-Log.txt Url: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/20b84069/attachment-0002.txt -------------- next part -------------- A non-text attachment was scrubbed... Name: ZooKeeper.log Type: application/octet-stream Size: 46562 bytes Desc: ZooKeeper.log Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140611/20b84069/attachment-0001.obj -------------- next part -------------- A non-text attachment was scrubbed... Name: ServerAssets.png Type: image/png Size: 160845 bytes Desc: ServerAssets.png Url : http://lists.jboss.org/pipermail/rules-users/attachments/20140611/20b84069/attachment-0003.png -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: WorkBench-A-Log.txt Url: http://lists.jboss.org/pipermail/rules-users/attachments/20140611/20b84069/attachment-0003.txt