You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by to...@apache.org on 2015/07/20 17:34:23 UTC

svn commit: r1691966 - /jackrabbit/oak/branches/1.0/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/SolrServerProviderService.java

Author: tommaso
Date: Mon Jul 20 15:34:23 2015
New Revision: 1691966

URL: http://svn.apache.org/r1691966
Log:
OAK-3124 - using searching/indexing solr servers

Modified:
    jackrabbit/oak/branches/1.0/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/SolrServerProviderService.java

Modified: jackrabbit/oak/branches/1.0/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/SolrServerProviderService.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/SolrServerProviderService.java?rev=1691966&r1=1691965&r2=1691966&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/SolrServerProviderService.java (original)
+++ jackrabbit/oak/branches/1.0/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/SolrServerProviderService.java Mon Jul 20 15:34:23 2015
@@ -75,7 +75,6 @@ public class SolrServerProviderService i
 
     private String serverType;
 
-    private SolrServer cachedSolrServer;
     private SolrServer cachedSearchingSolrServer;
     private SolrServer cachedIndexingSolrServer;
 
@@ -91,15 +90,6 @@ public class SolrServerProviderService i
     }
 
     private void shutdownSolrServers() {
-        if (cachedSolrServer != null) {
-            try {
-                cachedSolrServer.shutdown();
-            } catch (Exception e) {
-                log.error("could not correctly shutdown Solr {} server {}", serverType, cachedSolrServer);
-            } finally {
-                cachedSolrServer = null;
-            }
-        }
         if (cachedIndexingSolrServer != null) {
             try {
                 cachedIndexingSolrServer.shutdown();
@@ -146,12 +136,7 @@ public class SolrServerProviderService i
 
     @Override
     public SolrServer getSolrServer() throws Exception {
-        synchronized (solrServerConfigurationProviders) {
-            if (cachedSolrServer == null) {
-                cachedSolrServer = getServer();
-            }
-            return cachedSolrServer;
-        }
+        return getSearchingSolrServer();
     }
 
     @CheckForNull
@@ -159,7 +144,7 @@ public class SolrServerProviderService i
     public SolrServer getIndexingSolrServer() throws Exception {
         synchronized (solrServerConfigurationProviders) {
             if (cachedIndexingSolrServer == null) {
-                cachedIndexingSolrServer = getServer();
+                cachedIndexingSolrServer = getServer(true);
             }
             return cachedIndexingSolrServer;
         }
@@ -170,13 +155,13 @@ public class SolrServerProviderService i
     public SolrServer getSearchingSolrServer() throws Exception {
         synchronized (solrServerConfigurationProviders) {
             if (cachedSearchingSolrServer == null) {
-                cachedSearchingSolrServer = getServer();
+                cachedSearchingSolrServer = getServer(false);
             }
             return cachedSearchingSolrServer;
         }
     }
 
-    private SolrServer getServer() {
+    private SolrServer getServer(boolean indexing) {
         SolrServer solrServer = null;
         if (serverType != null && !"none".equals(serverType)) {
             SolrServerConfigurationProvider solrServerConfigurationProvider = solrServerConfigurationProviders.get(serverType);
@@ -184,7 +169,12 @@ public class SolrServerProviderService i
                 try {
                     SolrServerConfiguration solrServerConfiguration = solrServerConfigurationProvider.getSolrServerConfiguration();
                     SolrServerProvider solrServerProvider = solrServerConfiguration.getProvider();
-                    solrServer = solrServerProvider.getSolrServer();
+                    if (indexing) {
+                        solrServer = solrServerProvider.getIndexingSolrServer();
+                    } else {
+                        solrServer = solrServerProvider.getSearchingSolrServer();
+                    }
+
                     log.info("created new SolrServer {}", solrServer);
                 } catch (Exception e) {
                     log.error("could not get a SolrServerProvider of type {}", serverType, e);