You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by ju...@apache.org on 2010/04/09 11:42:12 UTC
svn commit: r932319 -
/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java
Author: jukka
Date: Fri Apr 9 09:42:11 2010
New Revision: 932319
URL: http://svn.apache.org/viewvc?rev=932319&view=rev
Log:
JCR-2504: Allow indexingConfiguration to be loaded from the classpath
Patch by Fabrizio Giustina
Modified:
jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java
Modified: jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java
URL: http://svn.apache.org/viewvc/jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java?rev=932319&r1=932318&r2=932319&view=diff
==============================================================================
--- jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java (original)
+++ jackrabbit/trunk/jackrabbit-core/src/main/java/org/apache/jackrabbit/core/query/lucene/SearchIndex.java Fri Apr 9 09:42:11 2010
@@ -16,6 +16,8 @@
*/
package org.apache.jackrabbit.core.query.lucene;
+import java.io.InputStream;
+
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
@@ -355,7 +357,8 @@ public class SearchIndex extends Abstrac
private Class<?> excerptProviderClass = DefaultHTMLExcerpt.class;
/**
- * The path to the indexing configuration file.
+ * The path to the indexing configuration file (can be an absolute path to a
+ * file or a classpath resource).
*/
private String indexingConfigPath;
@@ -1291,9 +1294,17 @@ public class SearchIndex extends Abstrac
return null;
}
File config = new File(indexingConfigPath);
+ InputStream configStream = null;
+
if (!config.exists()) {
- log.warn("File does not exist: " + indexingConfigPath);
- return null;
+ // check if it's a classpath resource
+ configStream = getClass().getResourceAsStream(indexingConfigPath);
+
+ if (configStream == null) {
+ // only warn if not available also in the classpath
+ log.warn("File does not exist: " + indexingConfigPath);
+ return null;
+ }
} else if (!config.canRead()) {
log.warn("Cannot read file: " + indexingConfigPath);
return null;
@@ -1303,13 +1314,28 @@ public class SearchIndex extends Abstrac
DocumentBuilderFactory.newInstance();
DocumentBuilder builder = factory.newDocumentBuilder();
builder.setEntityResolver(new IndexingConfigurationEntityResolver());
- indexingConfiguration = builder.parse(config).getDocumentElement();
+
+ if (configStream != null) {
+ indexingConfiguration = builder
+ .parse(configStream).getDocumentElement();
+ } else {
+ indexingConfiguration = builder
+ .parse(config).getDocumentElement();
+ }
} catch (ParserConfigurationException e) {
log.warn("Unable to create XML parser", e);
} catch (IOException e) {
log.warn("Exception parsing " + indexingConfigPath, e);
} catch (SAXException e) {
log.warn("Exception parsing " + indexingConfigPath, e);
+ } finally {
+ if (configStream != null) {
+ try {
+ configStream.close();
+ } catch (IOException e) {
+ // ignore
+ }
+ }
}
return indexingConfiguration;
}