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) {