Index: oak-run/pom.xml
===================================================================
--- oak-run/pom.xml (revision 1634459)
+++ oak-run/pom.xml (working copy)
@@ -384,6 +384,22 @@
lucene-queries
${lucene.version}
+
+ org.apache.lucene
+ lucene-suggest
+ ${lucene.version}
+
+
+ org.apache.solr
+ solr-solrj
+ ${lucene.version}
+
+
+ org.apache.solr
+ solr-core
+ ${lucene.version}
+
+
Index: oak-run/src/main/assembly/oak-run.xml
===================================================================
--- oak-run/src/main/assembly/oak-run.xml (revision 1634459)
+++ oak-run/src/main/assembly/oak-run.xml (working copy)
@@ -31,7 +31,7 @@
/
org.apache.jackrabbit:jackrabbit-core
- org.apache.lucene
+
org.apache.derby
true
Index: oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java
===================================================================
--- oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java (revision 1634459)
+++ oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/BenchmarkRunner.java (working copy)
@@ -77,6 +77,9 @@
OptionSpec withStorage = parser
.accepts("storage", "Index storage enabled").withOptionalArg()
.ofType(Boolean.class);
+ OptionSpec withServer = parser
+ .accepts("server", "Solr server host").withOptionalArg()
+ .ofType(String.class);
OptionSpec runAsAdmin = parser.accepts("runAsAdmin", "Run test using admin session")
.withRequiredArg().ofType(Boolean.class).defaultsTo(Boolean.FALSE);
OptionSpec runAsUser = parser.accepts("runAsUser", "Run test using admin, anonymous or a test user")
@@ -263,7 +266,11 @@
new FullTextSearchTest(
wikipedia.value(options),
flatStructure.value(options),
- report.value(options), withStorage.value(options))
+ report.value(options), withStorage.value(options)),
+ new FullTextSolrSearchTest(
+ wikipedia.value(options),
+ flatStructure.value(options),
+ report.value(options), withStorage.value(options), withServer.value(options))
};
Set argset = Sets.newHashSet(nonOption.values(options));
Index: oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/FullTextSearchTest.java
===================================================================
--- oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/FullTextSearchTest.java (revision 1634459)
+++ oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/FullTextSearchTest.java (working copy)
@@ -74,7 +74,7 @@
/**
* null means true; true means true
*/
- private Boolean storageEnabled;
+ protected Boolean storageEnabled;
public FullTextSearchTest(File dump, boolean flat, boolean doReport, Boolean storageEnabled) {
this.importer = new WikipediaImport(dump, flat, doReport) {
Index: oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/FullTextSolrSearchTest.java
===================================================================
--- oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/FullTextSolrSearchTest.java (revision 0)
+++ oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/FullTextSolrSearchTest.java (working copy)
@@ -0,0 +1,122 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.jackrabbit.oak.benchmark;
+
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.StringReader;
+import javax.jcr.Repository;
+
+import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
+import org.apache.jackrabbit.oak.Oak;
+import org.apache.jackrabbit.oak.fixture.JcrCreator;
+import org.apache.jackrabbit.oak.fixture.OakRepositoryFixture;
+import org.apache.jackrabbit.oak.fixture.RepositoryFixture;
+import org.apache.jackrabbit.oak.jcr.Jcr;
+import org.apache.jackrabbit.oak.plugins.index.solr.configuration.DefaultSolrConfiguration;
+import org.apache.jackrabbit.oak.plugins.index.solr.configuration.EmbeddedSolrServerConfiguration;
+import org.apache.jackrabbit.oak.plugins.index.solr.configuration.OakSolrConfiguration;
+import org.apache.jackrabbit.oak.plugins.index.solr.configuration.OakSolrConfigurationProvider;
+import org.apache.jackrabbit.oak.plugins.index.solr.configuration.RemoteSolrServerConfiguration;
+import org.apache.jackrabbit.oak.plugins.index.solr.index.SolrIndexEditorProvider;
+import org.apache.jackrabbit.oak.plugins.index.solr.query.SolrQueryIndexProvider;
+import org.apache.jackrabbit.oak.plugins.index.solr.server.DefaultSolrServerProvider;
+import org.apache.jackrabbit.oak.plugins.index.solr.server.SolrServerProvider;
+import org.apache.jackrabbit.oak.plugins.index.solr.util.SolrIndexInitializer;
+import org.apache.solr.client.solrj.SolrServer;
+import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer;
+
+public class FullTextSolrSearchTest extends FullTextSearchTest {
+
+ private SolrServerProvider serverProvider;
+ private String server;
+
+ public FullTextSolrSearchTest(File dump, boolean flat, boolean doReport, Boolean storageEnabled, String server) {
+ super(dump, flat, doReport, storageEnabled);
+ this.server = server;
+ }
+
+ @Override
+ protected Repository[] createRepository(RepositoryFixture fixture) throws Exception {
+ initializeProvider();
+ if (fixture instanceof OakRepositoryFixture) {
+ return ((OakRepositoryFixture) fixture).setUpCluster(1, new JcrCreator() {
+ @Override
+ public Jcr customize(Oak oak) {
+ OakSolrConfigurationProvider configurationProvider = new OakSolrConfigurationProvider() {
+ public OakSolrConfiguration getConfiguration() {
+ return new DefaultSolrConfiguration() {
+ @Override
+ public int getRows() {
+ return 50;
+ }
+ };
+ }
+ };
+ oak.with(new SolrQueryIndexProvider(serverProvider, configurationProvider))
+ .with(new SolrIndexEditorProvider(serverProvider, configurationProvider))
+ .with(new SolrIndexInitializer(false));
+ return new Jcr(oak);
+ }
+ });
+ }
+ return super.createRepository(fixture);
+ }
+
+ private void initializeProvider() throws Exception {
+ if (server == null || "embedded".equals(server)) {
+ String tempDirectoryPath = FileUtils.getTempDirectoryPath();
+ File solrHome = new File(tempDirectoryPath, "solr" + System.nanoTime());
+ EmbeddedSolrServerConfiguration embeddedSolrServerConfiguration = new EmbeddedSolrServerConfiguration(solrHome.getAbsolutePath(), "", "oak");
+ serverProvider = embeddedSolrServerConfiguration.getProvider();
+ SolrServer solrServer = serverProvider.getSolrServer();
+ if (storageEnabled != null && !storageEnabled) {
+ // change schema.xml and reload the core
+ File schemaXML = new File(solrHome.getAbsolutePath() + "/oak/conf", "schema.xml");
+ InputStream inputStream = getClass().getResourceAsStream("/solr/oak/conf/schema.xml");
+ String schemaString = IOUtils.toString(inputStream).replace("",
+ "");
+ FileOutputStream fileOutputStream = new FileOutputStream(schemaXML);
+ IOUtils.copy(new StringReader(schemaString), fileOutputStream);
+ fileOutputStream.flush();
+ ((EmbeddedSolrServer) solrServer).getCoreContainer().reload("oak");
+ }
+ }
+ else if (server != null && "default".equals(server)) {
+ serverProvider = new DefaultSolrServerProvider();
+ }
+ else if (server!= null && (server.startsWith("http") || server.matches("\\w+\\:\\d{3,5}"))) {
+ RemoteSolrServerConfiguration remoteSolrServerConfiguration = new RemoteSolrServerConfiguration(server, "oak", 2, 2, null, server);
+ serverProvider = remoteSolrServerConfiguration.getProvider();
+ }
+ else {
+ throw new IllegalArgumentException("server parameter value must be either 'embedded', 'default', an URL or an host:port String");
+ }
+ }
+
+ @Override
+ protected void afterSuite() throws Exception {
+ SolrServer solrServer = serverProvider.getSolrServer();
+ if (solrServer != null) {
+ solrServer.shutdown();
+ }
+ }
+}
Property changes on: oak-run/src/main/java/org/apache/jackrabbit/oak/benchmark/FullTextSolrSearchTest.java
___________________________________________________________________
Added: svn:eol-style
## -0,0 +1 ##
+native
\ No newline at end of property