On 2 January 2016 at 10:31, Stephen Cameron <steve.cameron...@gmail.com>
wrote:

> Good news.
>
> I am experimenting with the new JAXB support, but starting from a provided
> XML Schema document. I've come across one simple suggestion, which is to
> take the @MemberOrder#sequence ordering of the ViewModel instead from the
> @XmlType#propOrder sequence ordering generated by JAXB.
>
>
good idea; I've raised ISIS-1289 [1] for this.



> Irrespective of that small limitation, now I assume you can take an
> external schema, generate Java classes, add some @PersistenceCapable
> annotations for data persistence and bingo you have an simple
> data-management application. Essentially what I was dreaming of some months
> back :)
>
>
Hmm, not sure about that.

Fundamentally domain objects are either persistent entities
(@PersistenceCapable) or they are view models (either @ViewModel,
@DomainObject(nature=VIEW_MODEL) or, now, @XmlRootElement).... and they
can't, or aren't intended to, be both.

When the framework recreates domain objects from the OID there is an
if/else; just checking the code [2] it will treat the domain object as a
view model even if annotated with @PersistenceCapable. It's state will then
be recreated from the encoded information within the OID itself.

I realise that I don't fully understand the use case you want to be able to
support here.  In general though I think that treating JAXB view models as
entities is a bad idea, because retaining backward compatibility to
possible clients of the on-the-wire format would constrain - probably too
tightly - the corresponding implementation details when used directly as a
persistent entity.



> Well almost, one other thing I realise now is that some of the constraints
> that you can specificy in your XML Schema are not translated to Java, so
> you still have to specify the original schema file when marshalling from
> Java to XML to impose those constraints (e.g min or max length of xs:string
> types).
>
>
It would certainly be easy enough to extend Isis so that it natively
recognises those annotations (just as it recognizes
@javax.jdo.annotations.Column#allowNulls to indicate optionality.  I've
updated ISIS-1289, please feel free to add further ideas.

Thx
Dan




> Thanks Apache Isis team.
>
>


[1] https://issues.apache.org/jira/browse/ISIS-1289
[2]
https://github.com/apache/isis/blob/isis-1.11.0/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession.java#L1619



>
>
>
>
> On Sat, Jan 2, 2016 at 5:46 PM, Dan Haywood <d...@haywood-associates.co.uk>
> wrote:
>
> > The Apache Isis team is pleased to announce the release of Apache Isis
> > v1.11.0.
> >
> > The main focus for this release is on the REST API and on view models
> using
> > JAXB:
> >
> > * the Restful Objects viewer now supports simplified representations
> > intended to make it easier to write custom Javascript (and other) clients
> > that consume the REST API; these are obtained using the HTTP Accept
> header.
> > There is also support for Swagger spec files so that the REST API can be
> > more easily explored and tested.  Separately, the x-ro-follow-links
> > capability for RO spec representations is now supported.
> >
> > * JAXB-annotated classes are now recognised as view models; these also
> > enable the contents collections to be part of the view model’s state
> > (previously only view model properties were recognised). The new
> > UrlEncodingService allows long URLs (for view models) to be converted
> into
> > shorter URLs; this also allows the URL to optionally be encrypted.
> >
> > * The release also includes improved control for domain events (these can
> > now be suppressed if required) , and a new category of UI events (so that
> > titles, icons and CSS classes can be provided by event bus subscribers).
> >
> > Full release notes are available on the Apache Isis website at [1].
> Please
> > also read the migration notes [2].
> >
> > You can access this release directly from the Maven central repo [3], or
> > download the release and build it from
> > source [4].
> >
> > Enjoy!
> >
> > --The Apache Isis team
> >
> > [1] http://isis.apache.org/release-notes.html#r1.11.0
> > [2]
> >
> >
> http://isis.apache.org/migration-notes.html#_migration-notes_1.10.0-to-1.11.0
> > [3] http://search.maven.org
> > [4] http://isis.apache.org/downloads.html
> >
>

Reply via email to