[rules-users] Drools5.2.2 integration with scala2.9.0.1

Mario Fusco mario.fusco at gmail.com
Sat Aug 6 13:28:08 EDT 2011


Hi,

I just tried the same and indeed the code as presented in the post you
linked cannot work. The problem is that MVEL tries to read the field "value"
of the Temperature class by following the JavaBean specification, i.e. by
looking for a method named "getValue()". It means that if you change the
method name of the Temperature trait from "value" to "getValue" the code
works as expected.

To be honest is quite ugly to use a Scala trait to model a domain object as
done in that example. I'd rather suggest to use a case class as it follows:

case class Temperature(@BeanProperty value: Int)

so in this way you can create your Temperature objects as simple as:

val shouldBeTooHot = Temperature(100)

Note that I annotated the "value" field of the case class with @BeanProperty
in order to tell to the Scala compiler to generate an accessor to that field
that is compatible with the JavaBean specification.

I created a public github project and made available the complete working
example there:

https://github.com/mariofusco/scaladrools

I will continue enriching this project with other Scala/Drools integration
attempts in my spare time.
I hope this helps.

Cheers,
Mario Fusco 

--
View this message in context: http://drools.46999.n3.nabble.com/Drools5-2-2-integration-with-scala2-9-0-1-tp3229566p3231390.html
Sent from the Drools: User forum mailing list archive at Nabble.com.



More information about the rules-users mailing list