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 {