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 2013/03/13 19:04:41 UTC
svn commit: r1456066 - in /jackrabbit/oak/trunk/oak-solr-embedded: ./
src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/
Author: tommaso
Date: Wed Mar 13 18:04:41 2013
New Revision: 1456066
URL: http://svn.apache.org/r1456066
Log:
OAK-700 - fixing export packages directive, using Lucene Codecs to inject SPIs in classloader
Modified:
jackrabbit/oak/trunk/oak-solr-embedded/pom.xml
jackrabbit/oak/trunk/oak-solr-embedded/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/EmbeddedSolrConfigurationProvider.java
jackrabbit/oak/trunk/oak-solr-embedded/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/EmbeddedSolrServerProvider.java
Modified: jackrabbit/oak/trunk/oak-solr-embedded/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-embedded/pom.xml?rev=1456066&r1=1456065&r2=1456066&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-solr-embedded/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-solr-embedded/pom.xml Wed Mar 13 18:04:41 2013
@@ -58,22 +58,8 @@
!org.ietf.*,
!org.eclipse.jetty.jmx.*,
!org.apache.zookeeper.server.quorum.flexible.*,
- !org.mortbay.jetty.*,
!org.mortbay.util.*,
!org.mortbay.log,
- !com.sun.msv.*,
- !org.relaxng.datatype,
- !org.apache.tika.*,
- !javax.servlet.jsp.*,
- !org.apache.commons.digester.*,
- !org.apache.commons.validator.*,
- !org.apache.log.*,
- !org.apache.struts.*,
- !org.apache.tools.ant.*,
- !org.dom4j.*,
- !org.jdom.*,
- !com.werken.*,
- !org.apache.oro.*,
*
</Import-Package>
<DynamicImport-Package>*</DynamicImport-Package>
@@ -159,6 +145,12 @@
<artifactId>lucene-core</artifactId>
<version>${solr.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.lucene</groupId>
+ <artifactId>lucene-codecs</artifactId>
+ <version>${solr.version}</version>
+ </dependency>
+
<dependency>
<groupId>org.apache.felix</groupId>
Modified: jackrabbit/oak/trunk/oak-solr-embedded/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/EmbeddedSolrConfigurationProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-embedded/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/EmbeddedSolrConfigurationProvider.java?rev=1456066&r1=1456065&r2=1456066&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-solr-embedded/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/EmbeddedSolrConfigurationProvider.java (original)
+++ jackrabbit/oak/trunk/oak-solr-embedded/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/EmbeddedSolrConfigurationProvider.java Wed Mar 13 18:04:41 2013
@@ -24,7 +24,7 @@ import org.apache.jackrabbit.oak.plugins
/**
* An {@link OakSolrConfigurationProvider} for the embedded Solr server
*/
-@Component
+@Component(immediate = true)
@Service(OakSolrConfigurationProvider.class)
public class EmbeddedSolrConfigurationProvider implements OakSolrConfigurationProvider {
Modified: jackrabbit/oak/trunk/oak-solr-embedded/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/EmbeddedSolrServerProvider.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-embedded/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/EmbeddedSolrServerProvider.java?rev=1456066&r1=1456065&r2=1456066&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-solr-embedded/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/EmbeddedSolrServerProvider.java (original)
+++ jackrabbit/oak/trunk/oak-solr-embedded/src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/EmbeddedSolrServerProvider.java Wed Mar 13 18:04:41 2013
@@ -27,7 +27,7 @@ import org.apache.felix.scr.annotations.
import org.apache.felix.scr.annotations.Service;
import org.apache.jackrabbit.oak.plugins.index.solr.OakSolrUtils;
import org.apache.jackrabbit.oak.plugins.index.solr.SolrServerProvider;
-import org.apache.lucene.codecs.lucene40.Lucene40Codec;
+import org.apache.lucene.codecs.Codec;
import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
@@ -99,14 +99,22 @@ public class EmbeddedSolrServerProvider
@Override
public SolrServer getSolrServer() throws Exception {
+ // hack needed to let lucene SPIs work in an OSGi deploy
+// Thread thread = Thread.currentThread();
+// ClassLoader loader = thread.getContextClassLoader();
+// thread.setContextClassLoader(Lucene40Codec.class.getClassLoader());
+// thread.setContextClassLoader(loader);
+
+ Codec.reloadCodecs(Thread.currentThread().getContextClassLoader());
+
if (solrServer == null) {
try {
solrServer = initializeWithNewHttpServer();
- } catch (Exception e2) {
+ } catch (Exception e) {
log.warn("unable to spawn a new Solr server and initialize the default Solr HTTP client");
try {
solrServer = initializeWithEmbeddedSolrServer();
- } catch (Exception e3) {
+ } catch (Exception e2) {
log.warn("unable to initialize embedded Solr client");
throw new IOException("unable to initialize an embedded Solr server", e2);
}
@@ -121,12 +129,6 @@ public class EmbeddedSolrServerProvider
private SolrServer initializeWithNewHttpServer() throws Exception {
// try spawning a new Solr server using Jetty and connect to it via HTTP
- // hack needed to let lucene SPIs work in an OSGi deploy
- Thread thread = Thread.currentThread();
- ClassLoader loader = thread.getContextClassLoader();
- thread.setContextClassLoader(Lucene40Codec.class.getClassLoader());
- thread.setContextClassLoader(loader);
-
enableSolrCloud(solrHome, DEFAULT_CORE_NAME);
JettySolrRunner jettySolrRunner = new JettySolrRunner(solrHome, CONTEXT, solrHttpPort, "solrconfig.xml", "schema.xml", true);
jettySolrRunner.start(true);