diff --git a/config/alfresco/script-services-context.xml b/config/alfresco/script-services-context.xml index 4030ab5faa..b736cb43ad 100644 --- a/config/alfresco/script-services-context.xml +++ b/config/alfresco/script-services-context.xml @@ -113,12 +113,6 @@ - - - - - - ${spaces.store} diff --git a/source/java/org/alfresco/repo/jscript/Search.java b/source/java/org/alfresco/repo/jscript/Search.java index ab0d7a01c3..58e1d998af 100644 --- a/source/java/org/alfresco/repo/jscript/Search.java +++ b/source/java/org/alfresco/repo/jscript/Search.java @@ -93,18 +93,11 @@ public class Search extends BaseScopableProcessorExtension implements Initializi protected Repository repository; private SwitchableApplicationContextFactory searchSubsystem; - - /** Solr facet helper */ - private SolrFacetHelper solrFacetHelper; - - private FacetLabelDisplayHandlerRegistry facetLabelDisplayHandlerRegistry; @Override public void afterPropertiesSet() throws Exception { PropertyCheck.mandatory(this, "services", services); - PropertyCheck.mandatory(this, "solrFacetHelper", solrFacetHelper); - PropertyCheck.mandatory(this, "facetLabelDisplayHandlerRegistry", facetLabelDisplayHandlerRegistry); } /** @@ -149,20 +142,6 @@ public class Search extends BaseScopableProcessorExtension implements Initializi // JavaScript API - /** - * @param solrFacetHelper the solrFacetHelper to set - */ - public void setSolrFacetHelper(SolrFacetHelper solrFacetHelper) - { - this.solrFacetHelper = solrFacetHelper; - } - /** - * @param facetLabelDisplayHandlerRegistry the facetLabelDisplayHandlerRegistry to set - */ - public void setFacetLabelDisplayHandlerRegistry(FacetLabelDisplayHandlerRegistry facetLabelDisplayHandlerRegistry) - { - this.facetLabelDisplayHandlerRegistry = facetLabelDisplayHandlerRegistry; - } public String getSearchSubsystem() { return (searchSubsystem == null) ? "" : searchSubsystem.getCurrentSourceBeanName(); @@ -732,6 +711,7 @@ public class Search extends BaseScopableProcessorExtension implements Initializi } if (facets != null) { + SolrFacetHelper solrFacetHelper = services.getSolrFacetHelper(); for (String field: facets) { final String modifiedField = "@" + field; @@ -953,6 +933,7 @@ public class Search extends BaseScopableProcessorExtension implements Initializi meta.put("numberFound", results.getNumberFound()); meta.put("hasMore", results.hasMore()); // results facets + FacetLabelDisplayHandlerRegistry facetLabelDisplayHandlerRegistry = services.getFacetLabelDisplayHandlerRegistry(); Map> facetMeta = new HashMap<>(); for (FieldFacet ff: sp.getFieldFacets()) { @@ -979,7 +960,7 @@ public class Search extends BaseScopableProcessorExtension implements Initializi // ACE-1615: Populate the facetMeta map with empty lists. If there is a // facet query with >0 hits, the relevant list will be populated // with the results, otherwise the list remains empty. - for(String bucketedField : solrFacetHelper.getBucketedFieldFacets()) + for(String bucketedField : services.getSolrFacetHelper().getBucketedFieldFacets()) { facetMeta.put(bucketedField, new ArrayList()); } @@ -1068,7 +1049,7 @@ public class Search extends BaseScopableProcessorExtension implements Initializi } else { - String fq = solrFacetHelper.createFacetQueriesFromSearchQuery(field, query); + String fq = services.getSolrFacetHelper().createFacetQueriesFromSearchQuery(field, query); if (fq != null) { sp.addFacetQuery(fq); diff --git a/source/java/org/alfresco/repo/service/ServiceDescriptorRegistry.java b/source/java/org/alfresco/repo/service/ServiceDescriptorRegistry.java index 135944450a..f3edd0aa6e 100644 --- a/source/java/org/alfresco/repo/service/ServiceDescriptorRegistry.java +++ b/source/java/org/alfresco/repo/service/ServiceDescriptorRegistry.java @@ -27,6 +27,8 @@ import org.alfresco.repo.forms.FormService; import org.alfresco.repo.imap.ImapService; import org.alfresco.repo.lock.JobLockService; import org.alfresco.repo.nodelocator.NodeLocatorService; +import org.alfresco.repo.search.impl.solr.facet.SolrFacetHelper; +import org.alfresco.repo.search.impl.solr.facet.handler.FacetLabelDisplayHandlerRegistry; import org.alfresco.repo.transaction.RetryingTransactionHelper; import org.alfresco.service.ServiceRegistry; import org.alfresco.service.cmr.action.ActionService; @@ -429,4 +431,18 @@ public class ServiceDescriptorRegistry { return (WebDavService)getService(WEBDAV_SERVICE); } + + @Override + public SolrFacetHelper getSolrFacetHelper() + { + final String beanName = "facet.solrFacetHelper"; + return (SolrFacetHelper) beanFactory.getBean(beanName); + } + + @Override + public FacetLabelDisplayHandlerRegistry getFacetLabelDisplayHandlerRegistry() + { + final String beanName = "facet.facetLabelDisplayHandlerRegistry"; + return (FacetLabelDisplayHandlerRegistry) beanFactory.getBean(beanName); + } } diff --git a/source/java/org/alfresco/service/ServiceRegistry.java b/source/java/org/alfresco/service/ServiceRegistry.java index c6171f3726..625a13ea71 100644 --- a/source/java/org/alfresco/service/ServiceRegistry.java +++ b/source/java/org/alfresco/service/ServiceRegistry.java @@ -28,6 +28,8 @@ import org.alfresco.repo.forms.FormService; import org.alfresco.repo.imap.ImapService; import org.alfresco.repo.lock.JobLockService; import org.alfresco.repo.nodelocator.NodeLocatorService; +import org.alfresco.repo.search.impl.solr.facet.SolrFacetHelper; +import org.alfresco.repo.search.impl.solr.facet.handler.FacetLabelDisplayHandlerRegistry; import org.alfresco.repo.transaction.RetryingTransactionHelper; import org.alfresco.service.cmr.action.ActionService; import org.alfresco.service.cmr.admin.RepoAdminService; @@ -493,5 +495,17 @@ public interface ServiceRegistry @NotAuditable WebDavService getWebDavService(); + /** + * Get the Solr facet helper bean + * @return the Solr facet helper bean + */ + @NotAuditable + SolrFacetHelper getSolrFacetHelper(); + /** + * Get the facet label display handler registry bean + * @return the Facet label display handler registry bean + */ + @NotAuditable + FacetLabelDisplayHandlerRegistry getFacetLabelDisplayHandlerRegistry(); } diff --git a/source/test-java/org/alfresco/repo/rendition/MockedTestServiceRegistry.java b/source/test-java/org/alfresco/repo/rendition/MockedTestServiceRegistry.java index d759875beb..f81a4894b8 100644 --- a/source/test-java/org/alfresco/repo/rendition/MockedTestServiceRegistry.java +++ b/source/test-java/org/alfresco/repo/rendition/MockedTestServiceRegistry.java @@ -29,6 +29,8 @@ import org.alfresco.repo.forms.FormService; import org.alfresco.repo.imap.ImapService; import org.alfresco.repo.lock.JobLockService; import org.alfresco.repo.nodelocator.NodeLocatorService; +import org.alfresco.repo.search.impl.solr.facet.SolrFacetHelper; +import org.alfresco.repo.search.impl.solr.facet.handler.FacetLabelDisplayHandlerRegistry; import org.alfresco.repo.transaction.RetryingTransactionHelper; import org.alfresco.service.ServiceRegistry; import org.alfresco.service.cmr.action.ActionService; @@ -461,4 +463,18 @@ public class MockedTestServiceRegistry implements ServiceRegistry // A mock response return null; } + + @Override + public SolrFacetHelper getSolrFacetHelper() + { + // A mock response + return null; + } + + @Override + public FacetLabelDisplayHandlerRegistry getFacetLabelDisplayHandlerRegistry() + { + // A mock response + return null; + } }