ISIS-1422: use PublishingServiceInternal's withPublishingSuppressed wormhole to 
stop publishing when invoke an action for autoComplete.


Project: http://git-wip-us.apache.org/repos/asf/isis/repo
Commit: http://git-wip-us.apache.org/repos/asf/isis/commit/a3225182
Tree: http://git-wip-us.apache.org/repos/asf/isis/tree/a3225182
Diff: http://git-wip-us.apache.org/repos/asf/isis/diff/a3225182

Branch: refs/heads/master
Commit: a322518276504ab788b46a7a777b30230727f909
Parents: 0f55080
Author: Dan Haywood <d...@haywood-associates.co.uk>
Authored: Fri Jun 3 15:21:07 2016 +0100
Committer: Dan Haywood <d...@haywood-associates.co.uk>
Committed: Fri Jun 3 16:43:54 2016 +0100

----------------------------------------------------------------------
 .../autocomplete/AutoCompleteFacetAbstract.java   | 18 ++++++++++++++++--
 1 file changed, 16 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/isis/blob/a3225182/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
----------------------------------------------------------------------
diff --git 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
index 5f489ef..2c999cf 100644
--- 
a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
+++ 
b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/facets/object/autocomplete/AutoCompleteFacetAbstract.java
@@ -23,6 +23,7 @@ import java.lang.reflect.Method;
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.isis.applib.services.publish.PublisherService;
 import org.apache.isis.core.commons.authentication.AuthenticationSession;
 import 
org.apache.isis.core.commons.authentication.AuthenticationSessionProvider;
 import org.apache.isis.core.metamodel.adapter.ObjectAdapter;
@@ -37,6 +38,7 @@ import 
org.apache.isis.core.metamodel.facets.actions.action.invocation.ActionInv
 import 
org.apache.isis.core.metamodel.facets.collections.modify.CollectionFacet;
 import org.apache.isis.core.metamodel.facets.param.autocomplete.MinLengthUtil;
 import org.apache.isis.core.metamodel.services.ServicesInjector;
+import 
org.apache.isis.core.metamodel.services.publishing.PublishingServiceInternal;
 import org.apache.isis.core.metamodel.spec.ActionType;
 import org.apache.isis.core.metamodel.spec.ObjectSpecification;
 import org.apache.isis.core.metamodel.specloader.SpecificationLoader;
@@ -100,8 +102,16 @@ public abstract class AutoCompleteFacetAbstract extends 
FacetAbstract implements
         
         final ObjectAdapter repositoryAdapter = 
adapterManager.getAdapterFor(repository);
         final ObjectAdapter searchAdapter = adapterManager.adapterFor(search);
-        final ObjectAdapter resultAdapter = 
repositoryAction.execute(repositoryAdapter, null, new ObjectAdapter[] { 
searchAdapter},
-                interactionInitiatedBy);
+
+        final ObjectAdapter resultAdapter =
+                getPublishingServiceInternal().withPublishingSuppressed(new 
PublishingServiceInternal.Block<ObjectAdapter>() {
+            @Override
+            public ObjectAdapter exec() {
+                return repositoryAction.execute(repositoryAdapter, null, new 
ObjectAdapter[] { searchAdapter},
+                        interactionInitiatedBy);
+            }
+        });
+
         // check a collection was returned
         if(CollectionFacet.Utils.getCollectionFacetFromSpec(resultAdapter) == 
null) {
             return Collections.emptyList();
@@ -114,6 +124,10 @@ public abstract class AutoCompleteFacetAbstract extends 
FacetAbstract implements
                         adapterList, interactionInitiatedBy);
     }
 
+    private PublishingServiceInternal getPublishingServiceInternal() {
+        return servicesInjector.lookupService(PublishingServiceInternal.class);
+    }
+
 
     private void cacheRepositoryAndRepositoryActionIfRequired() {
         if(!cachedRepositoryAction) {

Reply via email to