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/10/29 20:00:08 UTC
[isis] 03/03: ISIS-2158: fixing issues after last commit
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch v2
in repository https://gitbox.apache.org/repos/asf/isis.git
commit 40f2adc64132de9551c4a8a5226f7da2a004b236
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Oct 29 20:59:51 2019 +0100
ISIS-2158: fixing issues after last commit
---
.../isis/applib/services/iactn/Interaction.java | 1 +
.../isis/metamodel/adapter/ObjectAdapter.java | 17 ++----------
...ctionInvocationFacetForDomainEventAbstract.java | 8 ++----
.../autocomplete/AutoCompleteFacetAbstract.java | 8 +++---
.../apache/isis/metamodel/spec/ManagedObject.java | 6 ++++
.../metamodel/facets/ObjectAdapterUtilsTest.java | 4 +--
.../ixn/InteractionDtoServiceInternalDefault.java | 3 +-
.../isis/webapp/modules/WebModuleContext.java | 7 -----
.../system/OneToManyAssociationDefaultTest.java | 32 ++++++++++++++++------
.../sse/webapp/ServerSentEventsServlet.java | 13 ++++++++-
10 files changed, 54 insertions(+), 45 deletions(-)
diff --git a/core/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java b/core/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java
index 73dda2c..ec7df6d 100644
--- a/core/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java
+++ b/core/applib/src/main/java/org/apache/isis/applib/services/iactn/Interaction.java
@@ -347,6 +347,7 @@ public class Interaction implements HasUniqueId {
final Object target,
final String targetMember,
final String targetClass) {
+
this.interaction = interaction;
this.interactionType = interactionType;
this.memberIdentifier = memberIdentifier;
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/ObjectAdapter.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/ObjectAdapter.java
index 092f0dd..3c5c784 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/ObjectAdapter.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/adapter/ObjectAdapter.java
@@ -157,22 +157,11 @@ public interface ObjectAdapter extends ManagedObject {
final ManagedObject collectionAdapter,
final InteractionInitiatedBy interactionInitiatedBy) {
- final Stream<ManagedObject> objectAdapters =
- CollectionFacet.Utils.streamAdapters(collectionAdapter);
-
- return visibleAdapters(objectAdapters, interactionInitiatedBy);
+ return CollectionFacet.Utils.streamAdapters(collectionAdapter)
+ .filter(ManagedObject.Visibility.filterOn(interactionInitiatedBy))
+ .collect(Collectors.toList());
}
- public static List<ManagedObject> visibleAdapters(
- final Stream<ManagedObject> objectAdapters,
- final InteractionInitiatedBy interactionInitiatedBy) {
-
- return objectAdapters
- .filter(adapter->ManagedObject.Visibility.isVisible(adapter, interactionInitiatedBy))
- .collect(Collectors.toList());
- }
-
-
}
boolean isTransient();
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
index 9cd4a37..9e4e51f 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/actions/action/invocation/ActionInvocationFacetForDomainEventAbstract.java
@@ -52,7 +52,6 @@ import org.apache.isis.commons.internal.base._Casts;
import org.apache.isis.commons.internal.base._Strings;
import org.apache.isis.commons.internal.collections._Arrays;
import org.apache.isis.commons.internal.ioc.BeanSort;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.commons.MethodInvocationPreprocessor;
import org.apache.isis.metamodel.commons.ThrowableExtensions;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
@@ -72,7 +71,6 @@ import org.apache.isis.metamodel.spec.feature.ObjectAction;
import org.apache.isis.schema.ixn.v1.ActionInvocationDto;
import static org.apache.isis.commons.internal.base._Casts.uncheckedCast;
-import static org.apache.isis.commons.internal.base._NullSafe.stream;
import lombok.val;
@@ -450,12 +448,10 @@ implements ImperativeFacet {
final Stream<ManagedObject> adapters = CollectionFacet.Utils.streamAdapters(resultAdapter);
- final List<ManagedObject> visibleAdapters =
- ObjectAdapter.Util.visibleAdapters(adapters, interactionInitiatedBy);
-
final Object visibleObjects =
CollectionUtils.copyOf(
- stream(visibleAdapters)
+ adapters
+ .filter(ManagedObject.Visibility.filterOn(interactionInitiatedBy))
.map(ManagedObject::unwrapPojo)
.collect(Collectors.toList()),
method.getReturnType());
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
index 8079138..6e7ddae 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
@@ -24,9 +24,8 @@ import java.lang.reflect.Method;
import java.util.Collections;
import java.util.List;
import java.util.Map;
-import java.util.stream.Stream;
+import java.util.stream.Collectors;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.metamodel.facetapi.Facet;
import org.apache.isis.metamodel.facetapi.FacetAbstract;
@@ -95,9 +94,10 @@ implements AutoCompleteFacet {
return Collections.emptyList();
}
- final Stream<ManagedObject> adapterList = CollectionFacet.Utils.streamAdapters(resultAdapter) ;
+ return CollectionFacet.Utils.streamAdapters(resultAdapter)
+ .filter(ManagedObject.Visibility.filterOn(interactionInitiatedBy))
+ .collect(Collectors.toList());
- return ObjectAdapter.Util.visibleAdapters(adapterList, interactionInitiatedBy);
}
private Object getRepository() {
diff --git a/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/ManagedObject.java b/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/ManagedObject.java
index 4f6dc13..349bb86 100644
--- a/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/ManagedObject.java
+++ b/core/metamodel/src/main/java/org/apache/isis/metamodel/spec/ManagedObject.java
@@ -24,6 +24,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Optional;
import java.util.function.Function;
+import java.util.function.Predicate;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@@ -372,6 +373,11 @@ public interface ManagedObject {
// -- VISIBILITY UTILITIES
static final class Visibility {
+
+ public static Predicate<? super ManagedObject> filterOn(InteractionInitiatedBy interactionInitiatedBy) {
+ return $->ManagedObject.Visibility.isVisible($, interactionInitiatedBy);
+ }
+
/**
* @param adapter - an adapter around the domain object whose visibility is being checked
* @param interactionInitiatedBy
diff --git a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/ObjectAdapterUtilsTest.java b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/ObjectAdapterUtilsTest.java
index 43b1af3..ff9c3f0 100644
--- a/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/ObjectAdapterUtilsTest.java
+++ b/core/metamodel/src/test/java/org/apache/isis/metamodel/facets/ObjectAdapterUtilsTest.java
@@ -24,7 +24,6 @@ import org.jmock.auto.Mock;
import org.junit.Rule;
import org.junit.Test;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2;
import org.apache.isis.unittestsupport.jmocking.JUnitRuleMockery2.Mode;
@@ -37,8 +36,7 @@ public class ObjectAdapterUtilsTest {
@Rule
public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_ONLY);
- @Mock
- private ObjectAdapter mockObjectAdapter;
+ @Mock private ManagedObject mockObjectAdapter;
private Object underlyingDomainObject;
diff --git a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/ixn/InteractionDtoServiceInternalDefault.java b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/ixn/InteractionDtoServiceInternalDefault.java
index 797b7d4..81537da 100644
--- a/core/runtime-services/src/main/java/org/apache/isis/runtime/services/ixn/InteractionDtoServiceInternalDefault.java
+++ b/core/runtime-services/src/main/java/org/apache/isis/runtime/services/ixn/InteractionDtoServiceInternalDefault.java
@@ -30,7 +30,6 @@ import org.apache.isis.applib.services.bookmark.BookmarkService;
import org.apache.isis.applib.services.iactn.Interaction;
import org.apache.isis.applib.services.iactn.InteractionContext;
import org.apache.isis.applib.services.user.UserService;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.services.command.CommandDtoServiceInternal;
import org.apache.isis.metamodel.services.ixn.InteractionDtoServiceInternal;
import org.apache.isis.metamodel.spec.ManagedObject;
@@ -72,7 +71,7 @@ public class InteractionDtoServiceInternalDefault implements InteractionDtoServi
final ActionDto actionDto = new ActionDto();
commandDtoServiceInternal.addActionArgs(
- objectAction, actionDto, argumentAdapters.toArray(new ObjectAdapter[]{}));
+ objectAction, actionDto, argumentAdapters.toArray(new ManagedObject[]{}));
final List<ParamDto> parameterDtos = CommandDtoUtils.parametersFor(actionDto).getParameter();
return InteractionDtoUtils.newActionInvocation(
diff --git a/core/runtime-web/src/main/java/org/apache/isis/webapp/modules/WebModuleContext.java b/core/runtime-web/src/main/java/org/apache/isis/webapp/modules/WebModuleContext.java
index 4abecf2..a76b692 100644
--- a/core/runtime-web/src/main/java/org/apache/isis/webapp/modules/WebModuleContext.java
+++ b/core/runtime-web/src/main/java/org/apache/isis/webapp/modules/WebModuleContext.java
@@ -49,13 +49,6 @@ import lombok.extern.log4j.Log4j2;
@Log4j2 @RequiredArgsConstructor
public class WebModuleContext {
- // /**
- // * This key was deprecated from config, but we still use it for reference. It is auto-populated
- // * such that it can be looked up, to see what viewers have been discovered by the framework.
- // */
- // private final static String ISIS_VIEWERS = "isis.viewers";
- // private final static String ISIS_PROTECTED = "isis.protected";
-
private boolean hasBootstrapper = false;
private final StringBuilder viewers = new StringBuilder();
private final StringBuilder protectedPath = new StringBuilder();
diff --git a/core/runtime/src/test/java/org/apache/isis/runtime/system/OneToManyAssociationDefaultTest.java b/core/runtime/src/test/java/org/apache/isis/runtime/system/OneToManyAssociationDefaultTest.java
index 401562f..5c5c082 100644
--- a/core/runtime/src/test/java/org/apache/isis/runtime/system/OneToManyAssociationDefaultTest.java
+++ b/core/runtime/src/test/java/org/apache/isis/runtime/system/OneToManyAssociationDefaultTest.java
@@ -28,13 +28,13 @@ import org.junit.Test;
import org.apache.isis.applib.Identifier;
import org.apache.isis.applib.services.message.MessageService;
import org.apache.isis.metamodel.MetaModelContext_forTesting;
-import org.apache.isis.metamodel.adapter.ObjectAdapter;
import org.apache.isis.metamodel.consent.InteractionInitiatedBy;
import org.apache.isis.metamodel.facets.FacetedMethod;
import org.apache.isis.metamodel.facets.all.named.NamedFacet;
import org.apache.isis.metamodel.facets.collections.modify.CollectionAddToFacet;
import org.apache.isis.metamodel.facets.propcoll.notpersisted.NotPersistedFacet;
import org.apache.isis.metamodel.services.persistsession.PersistenceSessionServiceInternal;
+import org.apache.isis.metamodel.spec.ManagedObject;
import org.apache.isis.metamodel.spec.ObjectSpecification;
import org.apache.isis.metamodel.spec.feature.OneToManyAssociation;
import org.apache.isis.metamodel.specloader.SpecificationLoader;
@@ -62,10 +62,11 @@ public class OneToManyAssociationDefaultTest {
@Rule
public JUnitRuleMockery2 context = JUnitRuleMockery2.createFor(Mode.INTERFACES_AND_CLASSES);
- @Mock private ObjectAdapter mockOwnerAdapter;
- @Mock private ObjectAdapter mockAssociatedAdapter;
+ @Mock private ManagedObject mockOwnerAdapter;
+ @Mock private ManagedObject mockAssociatedAdapter;
@Mock private AuthenticationSessionProvider mockAuthenticationSessionProvider;
@Mock private SpecificationLoader mockSpecificationLoader;
+ @Mock private ObjectSpecification mockOwnerAdapterSpec;
@Mock private MessageService mockMessageService;
@Mock private PersistenceSessionServiceInternal mockPersistenceSessionServiceInternal;
@Mock private FacetedMethod mockPeer;
@@ -126,14 +127,29 @@ public class OneToManyAssociationDefaultTest {
oneOf(mockPeer).containsFacet(NotPersistedFacet.class);
will(returnValue(false));
-// oneOf(mockOwnerAdapter).promote();
-// will(returnValue(mockOwnerAdapter));
+ oneOf(mockOwnerAdapter).getSpecification();
+ will(returnValue(mockOwnerAdapterSpec));
- oneOf(mockOwnerAdapter).isRepresentingPersistent();
+ oneOf(mockOwnerAdapterSpec).isManagedBean();
+ will(returnValue(false));
+
+ oneOf(mockOwnerAdapterSpec).isViewModel();
will(returnValue(true));
-
- oneOf(mockAssociatedAdapter).isTransient();
+
+ oneOf(mockOwnerAdapterSpec).isParented();
will(returnValue(false));
+
+ oneOf(mockOwnerAdapterSpec).isEntity();
+ will(returnValue(false));
+
+ oneOf(mockAssociatedAdapter).getSpecification();
+ will(returnValue(mockOwnerAdapterSpec));
+
+// oneOf(mockOwnerAdapter).isRepresentingPersistent();
+// will(returnValue(true));
+//
+// oneOf(mockAssociatedAdapter).isTransient();
+// will(returnValue(false));
oneOf(mockPeer).getFacet(CollectionAddToFacet.class);
will(returnValue(mockCollectionAddToFacet));
diff --git a/extensions/sse/src/main/java/org/apache/isis/extensions/sse/webapp/ServerSentEventsServlet.java b/extensions/sse/src/main/java/org/apache/isis/extensions/sse/webapp/ServerSentEventsServlet.java
index 67e8b2b..f247ac9 100644
--- a/extensions/sse/src/main/java/org/apache/isis/extensions/sse/webapp/ServerSentEventsServlet.java
+++ b/extensions/sse/src/main/java/org/apache/isis/extensions/sse/webapp/ServerSentEventsServlet.java
@@ -36,6 +36,9 @@ import org.apache.isis.commons.internal.context._Context;
import org.apache.isis.extensions.sse.api.SseChannel;
import org.apache.isis.extensions.sse.api.SseService;
import org.apache.isis.extensions.sse.markup.ListeningMarkup;
+import org.apache.isis.webapp.IsisWebAppUtils;
+
+import static org.apache.isis.commons.internal.base._With.requires;
import lombok.val;
@@ -58,6 +61,13 @@ public class ServerSentEventsServlet extends HttpServlet {
public void init() throws ServletException {
super.init();
threadPool = ForkJoinPool.commonPool();
+
+ if(sseService==null) {
+ sseService = IsisWebAppUtils.getManagedBean(SseService.class, super.getServletContext());
+ }
+
+ requires(sseService, "sseService");
+
}
@Override
@@ -151,7 +161,8 @@ public class ServerSentEventsServlet extends HttpServlet {
}
try {
return Optional.of(_Context.loadClass(eventStreamId));
- } catch (Exception e) {
+ } catch (Throwable e) {
+ e.printStackTrace();
return Optional.empty();
}
}