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