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/04/28 16:11:23 UTC
svn commit: r1676539 - in
/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr:
configuration/nodestate/ osgi/ server/
Author: tommaso
Date: Tue Apr 28 14:11:23 2015
New Revision: 1676539
URL: http://svn.apache.org/r1676539
Log:
OAK-2820 - SSP service using OakSolrServer
Modified:
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/nodestate/NodeStateSolrServersObserver.java
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/SolrServerProviderService.java
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/OakSolrServer.java
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/SolrServerRegistry.java
Modified: jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/nodestate/NodeStateSolrServersObserver.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/nodestate/NodeStateSolrServersObserver.java?rev=1676539&r1=1676538&r2=1676539&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/nodestate/NodeStateSolrServersObserver.java (original)
+++ jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/nodestate/NodeStateSolrServersObserver.java Tue Apr 28 14:11:23 2015
@@ -46,20 +46,20 @@ public class NodeStateSolrServersObserve
}
private void shutdownRegisteredSolrServers(NodeState nodeState) {
- log.debug("shutting down servers at {}", nodeState);
+ log.info("shutting down servers at {}", nodeState);
NodeStateSolrServerConfigurationProvider nodeStateSolrServerConfigurationProvider = new NodeStateSolrServerConfigurationProvider(nodeState);
SolrServerConfiguration<SolrServerProvider> solrServerConfiguration = nodeStateSolrServerConfigurationProvider.getSolrServerConfiguration();
SolrServer searchingSolrServer = SolrServerRegistry.get(solrServerConfiguration, SolrServerRegistry.Strategy.SEARCHING);
if (searchingSolrServer != null) {
searchingSolrServer.shutdown();
- log.debug("searching SolrServer shut down");
+ log.info("searching SolrServer shut down");
SolrServerRegistry.unregister(solrServerConfiguration, SolrServerRegistry.Strategy.SEARCHING);
}
SolrServer indexingSolrServer = SolrServerRegistry.get(solrServerConfiguration, SolrServerRegistry.Strategy.INDEXING);
if (indexingSolrServer != null) {
indexingSolrServer.shutdown();
- log.debug("indexing SolrServer shut down");
+ log.info("indexing SolrServer shut down");
SolrServerRegistry.unregister(solrServerConfiguration, SolrServerRegistry.Strategy.INDEXING);
}
}
Modified: jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/SolrServerProviderService.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/SolrServerProviderService.java?rev=1676539&r1=1676538&r2=1676539&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/SolrServerProviderService.java (original)
+++ jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/osgi/SolrServerProviderService.java Tue Apr 28 14:11:23 2015
@@ -33,6 +33,7 @@ import org.apache.felix.scr.annotations.
import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.plugins.index.solr.configuration.SolrServerConfiguration;
import org.apache.jackrabbit.oak.plugins.index.solr.configuration.SolrServerConfigurationProvider;
+import org.apache.jackrabbit.oak.plugins.index.solr.server.OakSolrServer;
import org.apache.jackrabbit.oak.plugins.index.solr.server.SolrServerProvider;
import org.apache.solr.client.solrj.SolrServer;
import org.osgi.service.component.ComponentContext;
@@ -102,24 +103,6 @@ public class SolrServerProviderService i
cachedSolrServer = null;
}
}
- if (cachedIndexingSolrServer != null) {
- try {
- cachedIndexingSolrServer.shutdown();
- } catch (Exception e) {
- log.error("could not correctly shutdown Solr {} server {}", serverType, cachedIndexingSolrServer);
- } finally {
- cachedIndexingSolrServer = null;
- }
- }
- if (cachedSearchingSolrServer != null) {
- try {
- cachedSearchingSolrServer.shutdown();
- } catch (Exception e) {
- log.error("could not correctly shutdown Solr {} server {}", serverType, cachedSearchingSolrServer);
- } finally {
- cachedSearchingSolrServer = null;
- }
- }
}
protected void bindSolrServerConfigurationProvider(final SolrServerConfigurationProvider solrServerConfigurationProvider, Map<String, Object> properties) {
@@ -172,23 +155,13 @@ public class SolrServerProviderService i
@CheckForNull
@Override
public SolrServer getIndexingSolrServer() throws Exception {
- synchronized (solrServerConfigurationProviders) {
- if (cachedIndexingSolrServer == null) {
- cachedIndexingSolrServer = getServer();
- }
- return cachedIndexingSolrServer;
- }
+ return getSolrServer();
}
@CheckForNull
@Override
public SolrServer getSearchingSolrServer() throws Exception {
- synchronized (solrServerConfigurationProviders) {
- if (cachedSearchingSolrServer == null) {
- cachedSearchingSolrServer = getServer();
- }
- return cachedSearchingSolrServer;
- }
+ return getSolrServer();
}
private SolrServer getServer() {
@@ -197,9 +170,7 @@ public class SolrServerProviderService i
SolrServerConfigurationProvider solrServerConfigurationProvider = solrServerConfigurationProviders.get(serverType);
if (solrServerConfigurationProvider != null) {
try {
- SolrServerConfiguration solrServerConfiguration = solrServerConfigurationProvider.getSolrServerConfiguration();
- SolrServerProvider solrServerProvider = solrServerConfiguration.getProvider();
- solrServer = solrServerProvider.getSolrServer();
+ solrServer = new OakSolrServer(solrServerConfigurationProvider);
log.info("created new SolrServer {}", solrServer);
} catch (Exception e) {
log.error("could not get a SolrServerProvider of type {}", serverType, e);
Modified: jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/OakSolrServer.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/OakSolrServer.java?rev=1676539&r1=1676538&r2=1676539&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/OakSolrServer.java (original)
+++ jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/OakSolrServer.java Tue Apr 28 14:11:23 2015
@@ -19,6 +19,7 @@ package org.apache.jackrabbit.oak.plugin
import java.io.IOException;
import javax.annotation.Nonnull;
+import org.apache.jackrabbit.oak.plugins.index.solr.configuration.EmbeddedSolrServerConfiguration;
import org.apache.jackrabbit.oak.plugins.index.solr.configuration.SolrServerConfiguration;
import org.apache.jackrabbit.oak.plugins.index.solr.configuration.SolrServerConfigurationProvider;
import org.apache.solr.client.solrj.SolrRequest;
@@ -61,8 +62,15 @@ public class OakSolrServer extends SolrS
SolrServerRegistry.Strategy strategy = isIndex ? SolrServerRegistry.Strategy.INDEXING : SolrServerRegistry.Strategy.SEARCHING;
SolrServer solrServer = SolrServerRegistry.get(solrServerConfiguration, strategy);
if (solrServer == null) {
- solrServer = isIndex ? solrServerProvider.getIndexingSolrServer() : solrServerProvider.getSearchingSolrServer();
- SolrServerRegistry.register(solrServerConfiguration, solrServer, strategy);
+ if (solrServerConfiguration instanceof EmbeddedSolrServerConfiguration) {
+ solrServer = solrServerProvider.getSolrServer();
+ // the same Solr server has to be used for both
+ SolrServerRegistry.register(solrServerConfiguration, solrServer, SolrServerRegistry.Strategy.INDEXING);
+ SolrServerRegistry.register(solrServerConfiguration, solrServer, SolrServerRegistry.Strategy.SEARCHING);
+ } else {
+ solrServer = isIndex ? solrServerProvider.getIndexingSolrServer() : solrServerProvider.getSearchingSolrServer();
+ SolrServerRegistry.register(solrServerConfiguration, solrServer, strategy);
+ }
}
return solrServer;
}
@@ -71,6 +79,8 @@ public class OakSolrServer extends SolrS
public void shutdown() {
try {
solrServerProvider.close();
+ SolrServerRegistry.unregister(solrServerConfiguration, SolrServerRegistry.Strategy.INDEXING);
+ SolrServerRegistry.unregister(solrServerConfiguration, SolrServerRegistry.Strategy.SEARCHING);
} catch (IOException e) {
// do nothing
}
Modified: jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/SolrServerRegistry.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/SolrServerRegistry.java?rev=1676539&r1=1676538&r2=1676539&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/SolrServerRegistry.java (original)
+++ jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/SolrServerRegistry.java Tue Apr 28 14:11:23 2015
@@ -63,7 +63,7 @@ public class SolrServerRegistry {
return null;
}
- public static void unregister(SolrServerConfiguration<SolrServerProvider> configuration, @Nonnull Strategy strategy) {
+ public static void unregister(SolrServerConfiguration configuration, @Nonnull Strategy strategy) {
switch (strategy) {
case INDEXING:
synchronized (indexingServerRegistry) {