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();
         }
     }