You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2019/02/09 17:35:45 UTC

[isis] branch 2033-IoC updated: ISIS-2033: minor cleanup

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch 2033-IoC
in repository https://gitbox.apache.org/repos/asf/isis.git


The following commit(s) were added to refs/heads/2033-IoC by this push:
     new 5c2884b  ISIS-2033: minor cleanup
5c2884b is described below

commit 5c2884b854cc38b8345cf186e610aa2b67f0a597
Author: Andi Huber <ah...@apache.org>
AuthorDate: Sat Feb 9 18:24:42 2019 +0100

    ISIS-2033: minor cleanup
    
    Task-Url: https://issues.apache.org/jira/browse/ISIS-2033
---
 .../system/persistence/PersistenceSession4.java    | 19 +++++++-------
 .../persistence/PersistenceSessionFactory4.java    |  2 --
 .../system/persistence/PersistenceSession5.java    | 19 +++++++-------
 .../persistence/PersistenceSessionFactory5.java    | 11 +++-----
 .../system/persistence/PersistenceSessionBase.java | 14 +++++------
 .../persistence/PersistenceSessionFactory.java     |  5 +---
 .../system/session/IsisSessionFactoryDefault.java  |  2 +-
 .../server/resources/SwaggerSpecResource.java      | 29 +++++-----------------
 .../IsisTransactionFilterForRestfulObjects.java    |  5 +---
 .../integration/wicket/WebRequestCycleForIsis.java |  2 ++
 10 files changed, 40 insertions(+), 68 deletions(-)

diff --git a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession4.java b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession4.java
index 9b7e149..c13267e 100644
--- a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession4.java
+++ b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession4.java
@@ -112,12 +112,11 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
      * persisted objects and persist changes to the object that are saved.
      */
     public PersistenceSession4(
-            final ServiceInjector servicesInjector,
             final AuthenticationSession authenticationSession,
             final PersistenceManagerFactory jdoPersistenceManagerFactory,
             final FixturesInstalledFlag fixturesInstalledFlag) {
 
-        super(servicesInjector, authenticationSession, jdoPersistenceManagerFactory, fixturesInstalledFlag);
+        super(authenticationSession, jdoPersistenceManagerFactory, fixturesInstalledFlag);
     }
 
     // -- open
@@ -149,7 +148,7 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
                 PersistenceQueryFindUsingApplibQueryDefault.class,
                 new PersistenceQueryFindUsingApplibQueryProcessor(this));
 
-        objectAdapterContext = ObjectAdapterContext.openContext(servicesInjector, authenticationSession, specificationLoader, this);
+        objectAdapterContext = ObjectAdapterContext.openContext(serviceInjector, authenticationSession, specificationLoader, this);
 
         // tell the proxy of all request-scoped services to instantiate the underlying
         // services, store onto the thread-local and inject into them...
@@ -182,7 +181,7 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
     }
 
     private void postConstructOnRequestScopedServices() {
-        servicesInjector.streamServices()
+        serviceInjector.streamServices()
         .forEach(service->{
             if(service instanceof RequestScopedService) {
                 ((RequestScopedService)service).__isis_postConstruct();
@@ -192,10 +191,10 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
     }
 
     private void startRequestOnRequestScopedServices() {
-        servicesInjector.streamServices()
+        serviceInjector.streamServices()
         .forEach(service->{
             if(service instanceof RequestScopedService) {
-                ((RequestScopedService)service).__isis_startRequest(servicesInjector);
+                ((RequestScopedService)service).__isis_startRequest(serviceInjector);
             }
         });
     }
@@ -203,7 +202,7 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
     private Command createCommand() {
         final Command command = commandService.create();
 
-        servicesInjector.injectServicesInto(command);
+        serviceInjector.injectServicesInto(command);
         return command;
     }
 
@@ -266,7 +265,7 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
     }
 
     private void endRequestOnRequestScopeServices() {
-        servicesInjector.streamServices()
+        serviceInjector.streamServices()
         .forEach(service->{
             if(service instanceof RequestScopedService) {
                 ((RequestScopedService)service).__isis_endRequest();
@@ -275,7 +274,7 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
     }
 
     private void preDestroyOnRequestScopedServices() {
-        servicesInjector.streamServices()
+        serviceInjector.streamServices()
         .forEach(service->{
             if(service instanceof RequestScopedService) {
                 ((RequestScopedService)service).__isis_preDestroy();
@@ -750,7 +749,7 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
 
         // need to do eagerly, because (if a viewModel then) a
         // viewModel's #viewModelMemento might need to use services
-        servicesInjector.injectServicesInto(pojo);
+        serviceInjector.injectServicesInto(pojo);
 
         final Version datastoreVersion = getVersionIfAny(pc);
         final RootOid originalOid = objectAdapterContext.createPersistentOrViewModelOid(pojo);
diff --git a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory4.java b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory4.java
index 8216953..3358deb 100644
--- a/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory4.java
+++ b/core/plugins/jdo-datanucleus-4/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory4.java
@@ -186,7 +186,6 @@ PersistenceSessionFactory, FixturesInstalledFlag {
     @Programmatic
     @Override
     public PersistenceSession4 createPersistenceSession(
-            final ServiceInjector servicesInjector,
             final AuthenticationSession authenticationSession) {
 
         Objects.requireNonNull(applicationComponents,
@@ -201,7 +200,6 @@ PersistenceSessionFactory, FixturesInstalledFlag {
                 applicationComponents.get().getPersistenceManagerFactory();
 
         return new PersistenceSession4(
-                servicesInjector,
                 authenticationSession, persistenceManagerFactory,
                 fixturesInstalledFlag);
     }
diff --git a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java
index 6c8d43f..c815cef 100644
--- a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java
+++ b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSession5.java
@@ -115,12 +115,11 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
      * persisted objects and persist changes to the object that are saved.
      */
     public PersistenceSession5(
-            final ServiceInjector servicesInjector,
             final AuthenticationSession authenticationSession,
             final PersistenceManagerFactory jdoPersistenceManagerFactory,
             final FixturesInstalledFlag fixturesInstalledFlag) {
 
-        super(servicesInjector, authenticationSession, jdoPersistenceManagerFactory, fixturesInstalledFlag);
+        super(authenticationSession, jdoPersistenceManagerFactory, fixturesInstalledFlag);
     }
 
     // -- open
@@ -156,7 +155,7 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
                 PersistenceQueryFindUsingApplibQueryDefault.class,
                 new PersistenceQueryFindUsingApplibQueryProcessor(this));
 
-        objectAdapterContext = ObjectAdapterContext.openContext(servicesInjector, authenticationSession, specificationLoader, this);
+        objectAdapterContext = ObjectAdapterContext.openContext(serviceInjector, authenticationSession, specificationLoader, this);
 
         // tell the proxy of all request-scoped services to instantiate the underlying
         // services, store onto the thread-local and inject into them...
@@ -188,7 +187,7 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
     }
 
     private void postConstructOnRequestScopedServices() {
-        servicesInjector.streamServices()
+        serviceInjector.streamServices()
         .forEach(service->{
             if(service instanceof RequestScopedService) {
                 ((RequestScopedService)service).__isis_postConstruct();
@@ -197,10 +196,10 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
     }
 
     private void startRequestOnRequestScopedServices() {
-        servicesInjector.streamServices()
+        serviceInjector.streamServices()
         .forEach(service->{
             if(service instanceof RequestScopedService) {
-                ((RequestScopedService)service).__isis_startRequest(servicesInjector);
+                ((RequestScopedService)service).__isis_startRequest(serviceInjector);
             }
         });
     }
@@ -208,7 +207,7 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
     private Command createCommand() {
         final Command command = commandService.create();
 
-        servicesInjector.injectServicesInto(command);
+        serviceInjector.injectServicesInto(command);
         return command;
     }
 
@@ -273,7 +272,7 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
     }
 
     private void endRequestOnRequestScopeServices() {
-        servicesInjector.streamServices()
+        serviceInjector.streamServices()
         .forEach(service->{
             if(service instanceof RequestScopedService) {
                 ((RequestScopedService)service).__isis_endRequest();
@@ -282,7 +281,7 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
     }
 
     private void preDestroyOnRequestScopedServices() {
-        servicesInjector.streamServices()
+        serviceInjector.streamServices()
         .forEach(service->{
             if(service instanceof RequestScopedService) {
                 ((RequestScopedService)service).__isis_preDestroy();
@@ -757,7 +756,7 @@ implements IsisLifecycleListener.PersistenceSessionLifecycleManagement {
 
         // need to do eagerly, because (if a viewModel then) a
         // viewModel's #viewModelMemento might need to use services
-        servicesInjector.injectServicesInto(pojo);
+        serviceInjector.injectServicesInto(pojo);
 
         final Version datastoreVersion = getVersionIfAny(pc);
         final RootOid originalOid = objectAdapterContext.createPersistentOrViewModelOid(pojo);
diff --git a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory5.java b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory5.java
index 2d55476..5f9f2f5 100644
--- a/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory5.java
+++ b/core/plugins/jdo-datanucleus-5/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory5.java
@@ -26,11 +26,6 @@ import java.util.Set;
 import javax.enterprise.inject.Vetoed;
 import javax.jdo.PersistenceManagerFactory;
 
-import org.datanucleus.PropertyNames;
-import org.datanucleus.api.jdo.JDOPersistenceManagerFactory;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 import org.apache.isis.applib.annotation.Programmatic;
 import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.commons.internal.base._Lazy;
@@ -41,6 +36,10 @@ import org.apache.isis.core.runtime.persistence.FixturesInstalledFlag;
 import org.apache.isis.core.security.authentication.AuthenticationSession;
 import org.apache.isis.objectstore.jdo.datanucleus.JDOStateManagerForIsis;
 import org.apache.isis.objectstore.jdo.service.RegisterEntities;
+import org.datanucleus.PropertyNames;
+import org.datanucleus.api.jdo.JDOPersistenceManagerFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 /**
  *
@@ -186,7 +185,6 @@ implements PersistenceSessionFactory, FixturesInstalledFlag {
     @Programmatic
     @Override
     public PersistenceSession5 createPersistenceSession(
-            final ServiceInjector servicesInjector,
             final AuthenticationSession authenticationSession) {
 
         Objects.requireNonNull(applicationComponents.get(),
@@ -201,7 +199,6 @@ implements PersistenceSessionFactory, FixturesInstalledFlag {
                 applicationComponents.get().getPersistenceManagerFactory();
 
         return new PersistenceSession5(
-                servicesInjector,
                 authenticationSession, persistenceManagerFactory,
                 fixturesInstalledFlag);
     }
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionBase.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionBase.java
index 0834fc5..a287a0a 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionBase.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionBase.java
@@ -40,6 +40,7 @@ import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.plugins.ioc.RequestContextService;
 import org.apache.isis.core.runtime.persistence.FixturesInstalledFlag;
 import org.apache.isis.core.runtime.services.changes.ChangedObjectsServiceInternal;
+import org.apache.isis.core.runtime.system.context.IsisContext;
 import org.apache.isis.core.runtime.system.transaction.IsisTransactionManager;
 import org.apache.isis.core.security.authentication.AuthenticationSession;
 import org.apache.isis.objectstore.jdo.datanucleus.persistence.queries.PersistenceQueryProcessor;
@@ -61,7 +62,7 @@ abstract class PersistenceSessionBase implements PersistenceSession {
     protected final SpecificationLoader specificationLoader;
     protected final AuthenticationSession authenticationSession;
 
-    protected final ServiceInjector servicesInjector;
+    protected final ServiceInjector serviceInjector;
 
     protected final CommandContext commandContext;
     protected final CommandService commandService;
@@ -106,7 +107,6 @@ abstract class PersistenceSessionBase implements PersistenceSession {
      * persisted objects and persist changes to the object that are saved.
      */
     protected PersistenceSessionBase(
-            final ServiceInjector servicesInjector,
             final AuthenticationSession authenticationSession,
             final PersistenceManagerFactory jdoPersistenceManagerFactory,
             final FixturesInstalledFlag fixturesInstalledFlag) {
@@ -115,7 +115,7 @@ abstract class PersistenceSessionBase implements PersistenceSession {
             LOG.debug("creating {}", this);
         }
 
-        this.servicesInjector = servicesInjector;
+        this.serviceInjector = IsisContext.getServiceInjector();;
         this.jdoPersistenceManagerFactory = jdoPersistenceManagerFactory;
         this.fixturesInstalledFlag = fixturesInstalledFlag;
 
@@ -138,7 +138,7 @@ abstract class PersistenceSessionBase implements PersistenceSession {
         this.persistenceQueryFactory = new PersistenceQueryFactory(
                 obj->this.getObjectAdapterProvider().adapterFor(obj), 
                 this.specificationLoader);
-        this.transactionManager = new IsisTransactionManager(this, /*authenticationSession,*/ servicesInjector);
+        this.transactionManager = new IsisTransactionManager(this, serviceInjector);
 
         this.state = State.NOT_INITIALIZED;
     }
@@ -157,7 +157,7 @@ abstract class PersistenceSessionBase implements PersistenceSession {
      */
     @Override
     public ServiceInjector getServiceInjector() {
-        return servicesInjector;
+        return serviceInjector;
     }
 
     /**
@@ -257,11 +257,11 @@ abstract class PersistenceSessionBase implements PersistenceSession {
     }
 
     private <T> T lookupServiceIfAny(final Class<T> serviceType) {
-        return servicesInjector.lookupService(serviceType).orElse(null);
+        return serviceInjector.lookupService(serviceType).orElse(null);
     }
 
     protected <T> List<T> lookupServices(final Class<T> serviceClass) {
-        return servicesInjector.streamServices(serviceClass).collect(Collectors.toList());
+        return serviceInjector.streamServices(serviceClass).collect(Collectors.toList());
     }
 
     @Override
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
index f65c199..6967e21 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/persistence/PersistenceSessionFactory.java
@@ -16,7 +16,6 @@
  */
 package org.apache.isis.core.runtime.system.persistence;
 
-import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
 import org.apache.isis.core.security.authentication.AuthenticationSession;
 
@@ -25,9 +24,7 @@ public interface PersistenceSessionFactory {
     public void init();
     public boolean isInitialized();
     
-    public PersistenceSession createPersistenceSession(
-            ServiceInjector serviceInjector,
-            AuthenticationSession authenticationSession);
+    public PersistenceSession createPersistenceSession(AuthenticationSession authenticationSession);
     
     public void catalogNamedQueries(final SpecificationLoader specificationLoader);
 
diff --git a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java
index de16714..91c9f50 100644
--- a/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java
+++ b/core/runtime/src/main/java/org/apache/isis/core/runtime/system/session/IsisSessionFactoryDefault.java
@@ -231,7 +231,7 @@ public class IsisSessionFactoryDefault implements IsisSessionFactory {
         closeSession();
 
         final PersistenceSession persistenceSession =
-                persistenceSessionFactory.createPersistenceSession(serviceInjector, authenticationSession);
+                persistenceSessionFactory.createPersistenceSession(authenticationSession);
         IsisSession session = new IsisSession(authenticationSession, persistenceSession);
         currentSession.set(session);
         session.open();
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/SwaggerSpecResource.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/SwaggerSpecResource.java
index c331b2d..55bfd6a 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/SwaggerSpecResource.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/resources/SwaggerSpecResource.java
@@ -27,17 +27,13 @@ import javax.ws.rs.core.Context;
 import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
 
-import org.apache.isis.applib.services.inject.ServiceInjector;
 import org.apache.isis.applib.services.swagger.SwaggerService;
 import org.apache.isis.core.runtime.system.context.IsisContext;
-import org.apache.isis.core.runtime.system.persistence.PersistenceSession;
-import org.apache.isis.core.runtime.system.session.IsisSessionFactory;
 
 @Path("/swagger")
 public class SwaggerSpecResource {
 
-    @Context
-    HttpHeaders httpHeaders;
+    @Context HttpHeaders httpHeaders;
 
     @Path("/private")
     @GET
@@ -71,7 +67,7 @@ public class SwaggerSpecResource {
 
     private String swagger(final SwaggerService.Visibility visibility) {
         final SwaggerService.Format format = deriveFrom(httpHeaders);
-        String spec = getIsisSessionFactory().doInSession(new MyCallable(visibility, format));
+        String spec = IsisContext.getSessionFactory().doInSession(new MyCallable(visibility, format));
         return spec;
     }
 
@@ -96,6 +92,8 @@ public class SwaggerSpecResource {
 
     class MyCallable implements Callable<String> {
 
+    	SwaggerService swaggerService;
+    	
         private final SwaggerService.Visibility visibility;
         private final SwaggerService.Format format;
 
@@ -108,25 +106,10 @@ public class SwaggerSpecResource {
 
         @Override
         public String call() throws Exception {
-            getServicesInjector().injectServicesInto(this);
+        	swaggerService = IsisContext.getServiceRegistry().lookupServiceElseFail(SwaggerService.class);
             return swaggerService.generateSwaggerSpec(visibility, format);
         }
-
-        @javax.inject.Inject
-        SwaggerService swaggerService;
-
-        ServiceInjector getServicesInjector() {
-            return getPersistenceSession().getServiceInjector();
-        }
-
-        PersistenceSession getPersistenceSession() {
-            return getIsisSessionFactory().getCurrentSession().getPersistenceSession();
-        }
-    }
-
-    IsisSessionFactory getIsisSessionFactory() {
-        return IsisContext.getSessionFactory();
+        
     }
 
-
 }
diff --git a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/webapp/IsisTransactionFilterForRestfulObjects.java b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/webapp/IsisTransactionFilterForRestfulObjects.java
index 8739102..c763f96 100644
--- a/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/webapp/IsisTransactionFilterForRestfulObjects.java
+++ b/core/viewer-restfulobjects-server/src/main/java/org/apache/isis/viewer/restfulobjects/server/webapp/IsisTransactionFilterForRestfulObjects.java
@@ -41,7 +41,7 @@ public class IsisTransactionFilterForRestfulObjects implements Filter {
     @Override
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
         // no-op if no session available.
-        final IsisSessionFactory isisSessionFactory = isisSessionFactoryFrom(request);
+        final IsisSessionFactory isisSessionFactory = IsisContext.getSessionFactory();
         if(!isisSessionFactory.isInSession()) {
             chain.doFilter(request, response);
             return;
@@ -68,9 +68,6 @@ public class IsisTransactionFilterForRestfulObjects implements Filter {
     public void destroy() {
     }
 
-    protected IsisSessionFactory isisSessionFactoryFrom(final ServletRequest request) {
-        return IsisContext.getSessionFactory();
-    }
 
     protected IsisTransactionManager transactionManagerFrom(final IsisSessionFactory isisSessionFactory) {
         return isisSessionFactory.getCurrentSession().getPersistenceSession().getTransactionManager();
diff --git a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
index b0f91f9..bead733 100644
--- a/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
+++ b/core/viewer-wicket-impl/src/main/java/org/apache/isis/viewer/wicket/viewer/integration/wicket/WebRequestCycleForIsis.java
@@ -81,6 +81,8 @@ import lombok.extern.slf4j.Slf4j;
  * Isis-specific implementation of the Wicket's {@link RequestCycle},
  * automatically opening a {@link IsisSession} at the beginning of the request
  * and committing the transaction and closing the session at the end.
+ * 
+ * @since 2.0.0-M3
  */
 @Slf4j
 public class WebRequestCycleForIsis implements IRequestCycleListener {