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ł.
>

Reply via email to