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/01 11:35:56 UTC

svn commit: r1451559 - in /jackrabbit/oak/trunk/oak-solr-embedded: pom.xml src/main/java/org/apache/jackrabbit/oak/plugins/index/solr/embedded/EmbeddedSolrServerProvider.java src/main/resources/solr/oak/conf/solrconfig.xml

Author: tommaso
Date: Fri Mar  1 10:35:55 2013
New Revision: 1451559

URL: http://svn.apache.org/r1451559
Log:
OAK-651 - fixed dependencies and classloading in embedded ss

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/EmbeddedSolrServerProvider.java
    jackrabbit/oak/trunk/oak-solr-embedded/src/main/resources/solr/oak/conf/solrconfig.xml

Modified: jackrabbit/oak/trunk/oak-solr-embedded/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-embedded/pom.xml?rev=1451559&r1=1451558&r2=1451559&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-solr-embedded/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-solr-embedded/pom.xml Fri Mar  1 10:35:55 2013
@@ -36,6 +36,10 @@
   </description>
   <packaging>bundle</packaging>
 
+  <properties>
+    <jetty.version>8.1.2.v20120308</jetty.version>
+  </properties>
+
   <build>
     <plugins>
       <plugin>
@@ -46,22 +50,33 @@
             <Export-Package>
               org.apache.jackrabbit.oak.plugins.index.solr.embedded
             </Export-Package>
+            <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
             <Import-Package>
-              !com.carrotsearch.*,
-              !com.sun.*,
+              !com.ibm.icu.*,
               !com.vividsolutions.*,
-              !javax.jms.*,
-              !javax.portlet.*,
               !org.apache.lucene.sandbox.queries,
-              !org.mortbay.*,
-              !sun.misc.*,
-              !org.relaxng.*,
+              !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>
-            <Embed-Dependency>*;scope=compile|runtime;inline=true
-            </Embed-Dependency>
-            <Embed-Transitive>true</Embed-Transitive>
+            <DynamicImport-Package>*</DynamicImport-Package>
           </instructions>
         </configuration>
       </plugin>
@@ -123,15 +138,26 @@
       <artifactId>solr-solrj</artifactId>
       <version>${solr.version}</version>
     </dependency>
+
     <dependency>
       <groupId>org.apache.solr</groupId>
       <artifactId>solr-core</artifactId>
       <version>${solr.version}</version>
+      <exclusions>
+        <exclusion>
+            <groupId>org.slf4j</groupId>
+            <artifactId>jcl-over-slf4j</artifactId>
+        </exclusion>
+        <exclusion>
+            <groupId>org.slf4j</groupId>
+            <artifactId>slf4j-jdk14</artifactId>
+        </exclusion>
+      </exclusions>
     </dependency>
     <dependency>
-      <groupId>org.eclipse.jetty</groupId>
-      <artifactId>jetty-servlet</artifactId>
-      <version>8.1.2.v20120308</version>
+      <groupId>org.apache.lucene</groupId>
+      <artifactId>lucene-core</artifactId>
+      <version>${solr.version}</version>
     </dependency>
 
     <dependency>
@@ -139,6 +165,158 @@
       <artifactId>org.apache.felix.scr.annotations</artifactId>
       <scope>provided</scope>
     </dependency>
+
+    <!-- OSGi deployment related dependencies -->
+    <!-- internal Jetty -->
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-servlet</artifactId>
+      <version>${jetty.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-io</artifactId>
+      <version>${jetty.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-security</artifactId>
+      <version>${jetty.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-http</artifactId>
+      <version>${jetty.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-util</artifactId>
+      <version>${jetty.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-continuation</artifactId>
+      <version>${jetty.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.eclipse.jetty</groupId>
+      <artifactId>jetty-server</artifactId>
+      <version>${jetty.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+
+    <!-- Solr -->
+    <dependency>
+      <groupId>org.apache.solr</groupId>
+      <artifactId>solr-analysis-extras</artifactId>
+      <version>${solr.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+
+    <!-- Lucene -->
+    <dependency>
+      <groupId>org.apache.lucene</groupId>
+      <artifactId>lucene-analyzers-common</artifactId>
+      <version>${solr.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.lucene</groupId>
+      <artifactId>lucene-codecs</artifactId>
+      <version>${solr.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.lucene</groupId>
+      <artifactId>lucene-queries</artifactId>
+      <version>${solr.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.lucene</groupId>
+      <artifactId>lucene-queryparser</artifactId>
+      <version>${solr.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.lucene</groupId>
+      <artifactId>lucene-spatial</artifactId>
+      <version>${solr.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.lucene</groupId>
+      <artifactId>lucene-grouping</artifactId>
+      <version>${solr.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.lucene</groupId>
+      <artifactId>lucene-join</artifactId>
+      <version>${solr.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.lucene</groupId>
+      <artifactId>lucene-suggest</artifactId>
+      <version>${solr.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.lucene</groupId>
+      <artifactId>lucene-highlighter</artifactId>
+      <version>${solr.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.lucene</groupId>
+      <artifactId>lucene-memory</artifactId>
+      <version>${solr.version}</version>
+      <scope>runtime</scope>
+    </dependency>
+
+    <!-- Spatial -->
+    <dependency>
+      <groupId>com.spatial4j</groupId>
+      <artifactId>spatial4j</artifactId>
+      <version>0.3</version>
+      <scope>runtime</scope>
+    </dependency>
+
+    <!-- servlet API -->
+    <dependency>
+      <groupId>javax.servlet</groupId>
+      <artifactId>javax.servlet-api</artifactId>
+      <version>3.0.1</version>
+      <scope>runtime</scope>
+    </dependency>
+
+    <!-- Commons -->
+    <dependency>
+      <groupId>commons-lang</groupId>
+      <artifactId>commons-lang</artifactId>
+      <version>2.6</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>commons-cli</groupId>
+      <artifactId>commons-cli</artifactId>
+      <version>1.2</version>
+      <scope>runtime</scope>
+    </dependency>
+    <dependency>
+      <groupId>commons-codec</groupId>
+      <artifactId>commons-codec</artifactId>
+      <version>1.7</version>
+      <scope>runtime</scope>
+    </dependency>
+
   </dependencies>
 
 </project>

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=1451559&r1=1451558&r2=1451559&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 Fri Mar  1 10:35:55 2013
@@ -27,6 +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.solr.client.solrj.SolrServer;
 import org.apache.solr.client.solrj.SolrServerException;
 import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
@@ -60,7 +61,7 @@ public class EmbeddedSolrServerProvider 
     @Property(value = DEFAULT_PORT)
     private static final String SOLR_HTTP_PORT = "solr.http.port";
 
-    private SolrServer solrServer;
+    private static SolrServer solrServer;
 
     private String solrHome;
     private Integer solrHttpPort;
@@ -119,6 +120,13 @@ 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);

Modified: jackrabbit/oak/trunk/oak-solr-embedded/src/main/resources/solr/oak/conf/solrconfig.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-solr-embedded/src/main/resources/solr/oak/conf/solrconfig.xml?rev=1451559&r1=1451558&r2=1451559&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-solr-embedded/src/main/resources/solr/oak/conf/solrconfig.xml (original)
+++ jackrabbit/oak/trunk/oak-solr-embedded/src/main/resources/solr/oak/conf/solrconfig.xml Fri Mar  1 10:35:55 2013
@@ -458,8 +458,8 @@ Lucene will flush based on whichever lim
                  and old cache.
         -->
         <filterCache class="solr.FastLRUCache"
-                     size="512"
-                     initialSize="512"
+                     size="0"
+                     initialSize="0"
                      autowarmCount="0"/>
 
         <!-- Query Result Cache
@@ -468,8 +468,8 @@ Lucene will flush based on whichever lim
            (DocList) based on a query, a sort, and the range of documents requested.
         -->
         <queryResultCache class="solr.LRUCache"
-                          size="512"
-                          initialSize="512"
+                          size="0"
+                          initialSize="0"
                           autowarmCount="0"/>
 
         <!-- Document Cache
@@ -479,8 +479,8 @@ Lucene will flush based on whichever lim
            this cache will not be autowarmed.
         -->
         <documentCache class="solr.LRUCache"
-                       size="512"
-                       initialSize="512"
+                       size="0"
+                       initialSize="0"
                        autowarmCount="0"/>
 
         <!-- Field Value Cache