Interesting.. can you define a package in the global declarative model without it clashing with the separate rule packages? Otherwise, I'd consider it a bug
On 09/04/2013 10:43 AM, Lance Leverich wrote: > The issue isn't that Foo cannot be resolved, as it was imported into > both packages from the Global Area. The packages compile just fine. I > believe what might be happening, though, is that each package is > creating its own version of Foo. > For example, am I experiencing something like... > com.mypkg.a generates a class with a fully qualified name of > drools.com.mypkg.a.Foo > com.mypkg.b generates a class with a fully qualified name of > drools.com.mypkg.b.Foo > ? > > If this is the case, is there someway within Guvnor to refer to a > particular version? I'm beginning to think that my best option might > be to create a POJO and import it. At least that way, I can make sure > I know the fully qualified (i.e. canonical) class name. > > ~ Lance > > > Cc: > Date: Wed, 4 Sep 2013 15:41:55 +0100 > Subject: Re: [rules-users] Fully qualified name for generated classes > Guvnor's Global Area has no affect on fully qualified type names; > it's just a container for things you want to share. > > If Foo could not be resolved in myRuleB the rule would fail to > compile. > > What do you observations show if you don't have any rule flow? > > > On 4 September 2013 15:28, Lance Leverich > <[email protected] <mailto:[email protected]>> wrote: > > What would be the fully qualified name for a generated class, > that is based upon a fact type (for example a type named > "Foo") that is defined inside a declarative model? > How is the fully qualified name affected if the model resides > in the Global Area, and is imported into multiple packages? > > The reason for my question is that I have the following issue: > > In the Global Area, I have a declarative model (named MyModel) > with a definition like... > declare Foo > bar: String > version: String > end > > In a package (com.mypkg.a), I have imported MyModel from the > Global Area. I have a rule like... > > rule "myRuleA" > ruleflow-group "firstGroup" > when > not Foo( bar=="bar" ) > then > Foo fact = new Foo(); > fact.setBar("bar"); > fact.setVersion("1"); > insert(fact); > > In another package (com.mypkg.b), I have also imported MyModel > from the Global Area. I have a rule like > > rule "myRuleB" > ruleflow-group "secondGroup" > when > Foo() > then > System.out.println("got at least one Foo"); > > Looking at logs, the rule myRuleA fires as is appropriate; > however, the rule myRuleB does not fire, even though both > ruleflow groups are represented in the ruleflow. I have > verified that both of the ruleflow groups are activated, using > the logs. My best guess at this point is that the class > generated for fact type Foo is different for each package. So, > how can I make sure that I am instantiating and checking for > the same type across packages? > > > > Lance Leverich > > _______________________________________________ > rules-users mailing list > [email protected] <mailto:[email protected]> > https://lists.jboss.org/mailman/listinfo/rules-users > > > > _______________________________________________ > rules-users mailing list > [email protected] > https://lists.jboss.org/mailman/listinfo/rules-users
_______________________________________________ rules-users mailing list [email protected] https://lists.jboss.org/mailman/listinfo/rules-users
