Marcos,
Can you open a jira for this and we'll tackle it asap.
Mark
Marcos Tengelmann wrote:
Hi,
I Downloaded and built the trunk (2006/Nov/19) of drools and run a very big
comparision with current stable version.
I got VERY different results from trunk and the stable.
Before going to the bug itself , I would like to put some info on "How-to"
go from current stable version to the new Drools version.
I Had to change some classes of my Object Model, with basically these two
type of changes.
1-All bound variabls that binds to primitive type has to be changed.
Example:
when
ReceiptItem ($amount : totalAmount > 20)
Then
System.out.println($var.doubleValue()) #Current Version Way
System.out.println($var) #Current Trunk Way
2-Due to proxy classes being created:
A-All used classes in WHEN side (At least), MUST have a public no
arg constructor
B-This constructor CANNOT have any call to public methods of this
class.
Example:
# Does not WORK
public class ReceiptItem {
private ReceiptItem() {
}
}
# Does not WORK
public class ReceiptItem {
public ReceiptItem(String itemName) {
}
}
# Does not WORK
public class ReceiptItem {
public ReceiptItem(double amount) {
this.setAmount(amount);
}
public void setAmount(double amount) {
this.amount = amount;
}
}
# WORKS
public class ReceiptItem {
public ReceiptItem(double amount) {
this.amount = amount;
}
}
Well, just to give some clue to the ones that are trying to migrate or will
do in the future....
Let's move to the bug....
This classes
Public Class Account {
public String getAccountState() {...}
}
Public Class Receipt {
public String getReceiptState() {...}
}
RULE "DIFFERENT STATES"
When
Account($aState : accountState)
Receipt($rState : receiptState != $aState)
Then
System.out.println("AccountState:[" + $aState + "]");
System.out.println("ReceiptState:[" + $rState + "]");
End
The results are:
AccountState:[SP]
ReceiptState:[SP]
AccountState:[RJ]
ReceiptState:[RJ]
....and so on...
This means the receiptState != $aState is NOT working as expected.
Additionally if I try with receiptState == $aState, the results are exactly
the same for receiptState != $aState.
Which makes me suspect of some problems in Node Sharing not taking the
operator into consideration.
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email
--
This email has been verified as Virus free
Virus Protection and more available at http://www.plus.net
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email