A comment inline: On Sun, Jan 3, 2016 at 11:14 PM, Dan Haywood <[email protected]> wrote:
> On 2 January 2016 at 10:31, Stephen Cameron <[email protected]> > 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. > > Then maybe its not wise to borrow the @XmlRootNode attribute in this way? Its JAXB meaning is quite different to the new use you are making of it. The use of spreadsheet data via viewmodels (that I've not used as yet) is different, its both input & output isn't it? I am playing devils advocate a bit. Is there another way to flag as a ViewModel to not restrict the options in the future? > > > > 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 < > [email protected]> > > 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 > > > > > >
