Author: tommaso
Date: Mon Mar 17 09:50:20 2014
New Revision: 1578281
URL: http://svn.apache.org/r1578281
Log:
OAK-1547 - Simplified configuration management in SolrServerProviderService
Removed:
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/util/OakSolrUtils.java
Modified:
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/EmbeddedSolrServerConfiguration.java
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/SolrServerConfiguration.java
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/package-info.java
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexEditorProvider.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/query/SolrQueryIndexProvider.java
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/DefaultSolrServerProvider.java
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/EmbeddedSolrServerProvider.java
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/util/package-info.java
jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/SolrServerConfigurationTest.java
Modified:
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/EmbeddedSolrServerConfiguration.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/EmbeddedSolrServerConfiguration.java?rev=1578281&r1=1578280&r2=1578281&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/EmbeddedSolrServerConfiguration.java
(original)
+++
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/EmbeddedSolrServerConfiguration.java
Mon Mar 17 09:50:20 2014
@@ -80,8 +80,8 @@ public class EmbeddedSolrServerConfigura
}
public class HttpConfiguration {
- private String context;
- private Integer httpPort;
+ private final String context;
+ private final Integer httpPort;
HttpConfiguration(String context, Integer httpPort) {
this.context = context;
Modified:
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/SolrServerConfiguration.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/SolrServerConfiguration.java?rev=1578281&r1=1578280&r2=1578281&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/SolrServerConfiguration.java
(original)
+++
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/SolrServerConfiguration.java
Mon Mar 17 09:50:20 2014
@@ -42,7 +42,7 @@ public abstract class SolrServerConfigur
return this.type;
}
- public S newInstance()
+ public S getProvider()
throws NoSuchMethodException, IllegalAccessException,
InvocationTargetException, InstantiationException {
if (constructor == null) {
Modified:
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/package-info.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/package-info.java?rev=1578281&r1=1578280&r2=1578281&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/package-info.java
(original)
+++
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/package-info.java
Mon Mar 17 09:50:20 2014
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-@Version("0.17")
+@Version("0.18")
@Export(optional = "provide:=true")
package org.apache.jackrabbit.oak.plugins.index.solr.configuration;
Modified:
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexEditorProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexEditorProvider.java?rev=1578281&r1=1578280&r2=1578281&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexEditorProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/index/SolrIndexEditorProvider.java
Mon Mar 17 09:50:20 2014
@@ -38,9 +38,9 @@ public class SolrIndexEditorProvider imp
private final Logger log = LoggerFactory.getLogger(getClass());
- private SolrServerProvider solrServerProvider;
+ private final SolrServerProvider solrServerProvider;
- private OakSolrConfigurationProvider oakSolrConfigurationProvider;
+ private final OakSolrConfigurationProvider oakSolrConfigurationProvider;
public SolrIndexEditorProvider(
SolrServerProvider solrServerProvider,
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=1578281&r1=1578280&r2=1578281&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
Mon Mar 17 09:50:20 2014
@@ -59,8 +59,6 @@ public class SolrServerProviderService i
private SolrServer cachedSolrServer;
- private SolrServerConfiguration cachedSolrServerConfiguration;
-
@Activate
protected void activate(ComponentContext context) throws Exception {
serverType = String.valueOf(context.getProperties().get(SERVER_TYPE));
@@ -69,6 +67,10 @@ public class SolrServerProviderService i
@Deactivate
protected void deactivate() throws Exception {
solrServerConfigurationProviders.clear();
+ shutdownSolrServer();
+ }
+
+ private void shutdownSolrServer() {
if (cachedSolrServer != null) {
try {
cachedSolrServer.shutdown();
@@ -84,6 +86,7 @@ public class SolrServerProviderService i
synchronized (solrServerConfigurationProviders) {
String name = String.valueOf(properties.get("name"));
solrServerConfigurationProviders.put(name,
solrServerConfigurationProvider);
+ shutdownSolrServer();
}
}
@@ -91,6 +94,7 @@ public class SolrServerProviderService i
synchronized (solrServerConfigurationProviders) {
String name = String.valueOf(properties.get("name"));
solrServerConfigurationProviders.remove(name);
+ shutdownSolrServer();
}
}
@@ -98,35 +102,27 @@ public class SolrServerProviderService i
synchronized (solrServerConfigurationProviders) {
String name = String.valueOf(properties.get("name"));
solrServerConfigurationProviders.put(name,
solrServerConfigurationProvider);
+ shutdownSolrServer();
}
}
@Override
public SolrServer getSolrServer() throws Exception {
- SolrServer solrServer = null;
synchronized (solrServerConfigurationProviders) {
- if (serverType != null && !"none".equals(serverType)) {
- SolrServerConfigurationProvider
solrServerConfigurationProvider =
solrServerConfigurationProviders.get(serverType);
- try {
- if (solrServerConfigurationProvider != null) {
+ if (cachedSolrServer == null) {
+ if (serverType != null && !"none".equals(serverType)) {
+ SolrServerConfigurationProvider
solrServerConfigurationProvider =
solrServerConfigurationProviders.get(serverType);
+ try {
SolrServerConfiguration solrServerConfiguration =
solrServerConfigurationProvider.getSolrServerConfiguration();
- if (solrServerConfiguration !=
cachedSolrServerConfiguration) {
- SolrServerProvider solrServerProvider =
solrServerConfiguration.newInstance();
- cachedSolrServerConfiguration =
solrServerConfiguration;
- if (cachedSolrServer != null) {
- cachedSolrServer.shutdown();
- }
- cachedSolrServer =
solrServerProvider.getSolrServer();
- } else {
- solrServer = cachedSolrServer;
- }
+ SolrServerProvider solrServerProvider =
solrServerConfiguration.getProvider();
+ cachedSolrServer = solrServerProvider.getSolrServer();
+ } catch (Exception e) {
+ log.error("could not get a SolrServerProvider of type
{}, {}", serverType, e);
}
- } catch (Exception e) {
- log.error("could not get a SolrServerProvider of type {},
{}", serverType, e);
}
}
+ return cachedSolrServer;
}
- return solrServer;
}
}
Modified:
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndexProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndexProvider.java?rev=1578281&r1=1578280&r2=1578281&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndexProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/query/SolrQueryIndexProvider.java
Mon Mar 17 09:50:20 2014
@@ -41,9 +41,9 @@ public class SolrQueryIndexProvider impl
private final Logger log =
LoggerFactory.getLogger(SolrQueryIndexProvider.class);
- private SolrServerProvider solrServerProvider;
+ private final SolrServerProvider solrServerProvider;
- private OakSolrConfigurationProvider oakSolrConfigurationProvider;
+ private final OakSolrConfigurationProvider oakSolrConfigurationProvider;
public SolrQueryIndexProvider(SolrServerProvider solrServerProvider,
OakSolrConfigurationProvider oakSolrConfigurationProvider) {
this.oakSolrConfigurationProvider = oakSolrConfigurationProvider;
Modified:
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/DefaultSolrServerProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/DefaultSolrServerProvider.java?rev=1578281&r1=1578280&r2=1578281&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/DefaultSolrServerProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/DefaultSolrServerProvider.java
Mon Mar 17 09:50:20 2014
@@ -27,10 +27,9 @@ public class DefaultSolrServerProvider i
@Override
public SolrServer getSolrServer() throws Exception {
if (solrServer == null) {
- String url = new
StringBuilder(SolrServerConfigurationDefaults.LOCAL_BASE_URL)
-
.append(':').append(SolrServerConfigurationDefaults.HTTP_PORT)
-
.append(SolrServerConfigurationDefaults.CONTEXT).append('/')
-
.append(SolrServerConfigurationDefaults.CORE_NAME).toString();
+ String url = SolrServerConfigurationDefaults.LOCAL_BASE_URL + ':' +
+ SolrServerConfigurationDefaults.HTTP_PORT +
SolrServerConfigurationDefaults.CONTEXT +
+ '/' + SolrServerConfigurationDefaults.CORE_NAME;
solrServer = new HttpSolrServer(url);
}
return solrServer;
Modified:
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/EmbeddedSolrServerProvider.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/EmbeddedSolrServerProvider.java?rev=1578281&r1=1578280&r2=1578281&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/EmbeddedSolrServerProvider.java
(original)
+++
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/server/EmbeddedSolrServerProvider.java
Mon Mar 17 09:50:20 2014
@@ -99,12 +99,11 @@ public class EmbeddedSolrServerProvider
if (log.isInfoEnabled()) {
log.info("starting HTTP Solr server");
}
- HttpSolrServer httpSolrServer = new HttpSolrServer(new
StringBuilder(
+ return new HttpSolrServer(new StringBuilder(
SolrServerConfigurationDefaults.LOCAL_BASE_URL).append(':')
.append(httpPort).append(context)
.append('/').append(coreName)
.toString());
- return httpSolrServer;
} else {
ClassLoader classLoader =
Thread.currentThread().getContextClassLoader();
Thread.currentThread().setContextClassLoader(CoreContainer.class.getClassLoader());
Modified:
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/util/package-info.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/util/package-info.java?rev=1578281&r1=1578280&r2=1578281&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/util/package-info.java
(original)
+++
jackrabbit/oak/trunk/oak-solr-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/util/package-info.java
Mon Mar 17 09:50:20 2014
@@ -14,7 +14,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-@Version("0.17")
+@Version("0.18")
@Export(optional = "provide:=true")
package org.apache.jackrabbit.oak.plugins.index.solr.util;
Modified:
jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/SolrServerConfigurationTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/SolrServerConfigurationTest.java?rev=1578281&r1=1578280&r2=1578281&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/SolrServerConfigurationTest.java
(original)
+++
jackrabbit/oak/trunk/oak-solr-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/solr/configuration/SolrServerConfigurationTest.java
Mon Mar 17 09:50:20 2014
@@ -30,14 +30,14 @@ public class SolrServerConfigurationTest
@Test
public void testCreateRemoteServerFromConfig() throws Exception {
SolrServerConfiguration<RemoteSolrServerProvider>
remoteSolrServerProviderSolrServerConfiguration = new
RemoteSolrServerConfiguration(null, null, 1, 1, null);
- RemoteSolrServerProvider remoteSolrServerProvider =
remoteSolrServerProviderSolrServerConfiguration.newInstance();
+ RemoteSolrServerProvider remoteSolrServerProvider =
remoteSolrServerProviderSolrServerConfiguration.getProvider();
assertNotNull(remoteSolrServerProvider);
}
@Test
public void testCreteEmbeddedServerFromConfig() throws Exception {
SolrServerConfiguration<EmbeddedSolrServerProvider>
embeddedSolrServerSolrServerConfiguration = new
EmbeddedSolrServerConfiguration(null, null, null);
- EmbeddedSolrServerProvider embeddedSolrServerProvider =
embeddedSolrServerSolrServerConfiguration.newInstance();
+ EmbeddedSolrServerProvider embeddedSolrServerProvider =
embeddedSolrServerSolrServerConfiguration.getProvider();
assertNotNull(embeddedSolrServerProvider);
}
}