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;
+ }
}