Hi Pawel, Yup, this is the right place. You might want to subscribe to this list though (send an email to [email protected]), otherwise (as moderator) I have to keep approving your postings.
With respect to supporting Scala domain models, basically the problem reduces down to changing the way that Isis builds up its own metamodel. Fortunately, this is very extensible, and so I don't expect there to be many issues (the devil is always in the detail, though!). Broadly speaking, Isis iterates through the collection of FacetFactories to (a) identify the class structure (property vs collection vs action), and (b) to add facets to the class and the class members. The FacetFactories are registered through ProgrammingModelFacetsJava5; as you'll need to register some additional FacetFactories, you can configure your set either by subclassing or by fine-tuning. There's details of how to do this on our website [1]. It's unlikely you'll need to write FacetFactories that deal with the class structure, but if you do, then look at PropertyOrCollectionIdentifyingFacetFactory interface. What you will need to do is to write FacetFactories that ignore synthetic methods introduced by the compiler. I suspect the Scala compiler does a lot of this. In fact, the regular Java programming model has FacetFactories to ignore equals(), hashCode() etc: see RemoveJavaLangObjectMethodsFacetFactory. The (currently unreleased) groovy programming model that we have also does something similar; see RemoveGroovyMethodsFacetFactory. So... if you/we are lucky, Scala support might just come down to a similar RemoveScalaSyntheticMethodsFacetFactory. Another possible issue might be whether the Scala compiler creates subclasses or not (as Hibernate and some other ORMs do). If this is the case, then the ClassSubstitutor and ObjectFactory interfaces give us the ability to filter this out. But it may not be an issue. ~~~ The other thing to consider is object persistence. Most of the current object stores interact with the domain objects through the Isis metamodel, so will just naturally be supported. The JDO Objectstore, however, relies upon JDO/DataNucleus to do its persistence. You may find that there are some additional tweaks needed to make it play nice. A bit of googling revealed [2], so I suspect it's doable. ~~~ One final thing occurs to me; in Isis we use Maven to build the code, whereas (I believe that) Scala people tend to use SBT. I guess there would be some work involved there too. Let us know how you get on Cheers Dan [1] http://isis.apache.org/core/metamodel-finetuning-the-programming-model.html [2] http://www.eishay.com/2009/07/scala-on-google-app-engine-playing-it.html On 14 January 2013 08:45, Pawel <[email protected]> wrote: > Hi, > > I'm interested in development of Scala domain models module. Who should I > contact with? > > Kind regards, > Paweł. >
