Thanks, Dan. How this complements the DataNucleus L2 cache? Should we explicitely use the cache in our repositories? I can wait to see how it' used on Estatio if it's easier to see than explain
> El 18/01/2014, a las 18:57, Dan Haywood <[email protected]> > escribió: > > Hi folks, > > Just wanted to do a quick "heads-up" that Isis now supports request-scoped > services [1]. > > These are injected into entities and services just like any other service; > in fact the implementation [2] is that the service is wrapped in a > singleton proxy, and the per (thread) request switching is performed within > the proxy itself. > > Anyway, to indicate that a service is request scoped, just annotate it with > javax.enterprise.context.RequestScoped. This is an annotation from the > CDI spec, of Java EE 6. I hope that one day Isis will support all of the > CDI annotations; but @RequestScoped is probably the most important one that > we haven't to date. > > A couple of notes on dependencies: first, that the CDI library is now a > dependency of Isis' applib, and also that javassist is a dependency of the > Isis runtime (for that clever proxy support). > > In addition, there are a number of new request-scoped services, part of the > applib. > > The Scratchpad service [3] provides a way for passing arbitrary data > between actions; primarily of use for bulk actions. There's an example > showing its usage in the todo app [4]. > > The QueryResultsCache [5] is a mechanism for performance tuning, something > that we'll be using in Estatio. The idea is that, if there's a repository > query (typically against immutable reference data) tha will be called many > times within a tight loop), then the repository can use the > QueryResultsCache to hold onto the repository query results for subsequent > calls within the same request. > > Finally, the Bulk.InteractionContext [6], a class that was shipped in 1.3.1 > and which provides a mechanism for bulk actions to access the "iterator" > (getIndex(), isFirst(), isLast() etc), has now been refactored to be a > request scoped service (previously it was a thread local). > > Ta > Dan > > > [1] https://issues.apache.org/jira/browse/ISIS-652 > [2] > https://github.com/apache/isis/blob/e7f97df59ccbb0c996dcd53e5626f67a53a0b0a5/core/runtime/src/main/java/org/apache/isis/core/runtime/services/ServiceInstantiator.java > [3] https://issues.apache.org/jira/browse/ISIS-654 > [4] > https://github.com/apache/isis/blob/e7f97df59ccbb0c996dcd53e5626f67a53a0b0a5/example/application/quickstart_wicket_restful_jdo/dom/src/main/java/dom/todo/ToDoItem.java#L591 > [5] https://issues.apache.org/jira/browse/ISIS-655 > [6] https://issues.apache.org/jira/browse/ISIS-653
