mirror of https://github.com/apache/lucene.git
SOLR-427: Allow IndexSchema to be loadable from an InputStream.
git-svn-id: https://svn.apache.org/repos/asf/lucene/solr/trunk@602443 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
9b79f1af3a
commit
bd0e6827f2
|
@ -55,6 +55,8 @@ import java.util.logging.Logger;
|
||||||
* @version $Id$
|
* @version $Id$
|
||||||
*/
|
*/
|
||||||
public final class IndexSchema {
|
public final class IndexSchema {
|
||||||
|
public static final String DEFAULT_SCHEMA_FILE = "schema.xml";
|
||||||
|
|
||||||
final static Logger log = Logger.getLogger(IndexSchema.class.getName());
|
final static Logger log = Logger.getLogger(IndexSchema.class.getName());
|
||||||
private final SolrConfig solrConfig;
|
private final SolrConfig solrConfig;
|
||||||
private final String schemaFile;
|
private final String schemaFile;
|
||||||
|
@ -67,10 +69,16 @@ public final class IndexSchema {
|
||||||
*
|
*
|
||||||
* @see Config#openResource
|
* @see Config#openResource
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public IndexSchema(SolrConfig solrConfig, String schemaFile) {
|
public IndexSchema(SolrConfig solrConfig, String schemaFile) {
|
||||||
|
this(solrConfig, solrConfig.getResourceLoader().openResource(schemaFile));
|
||||||
|
}
|
||||||
|
|
||||||
|
public IndexSchema(SolrConfig solrConfig, InputStream is) {
|
||||||
this.solrConfig = solrConfig;
|
this.solrConfig = solrConfig;
|
||||||
this.schemaFile=schemaFile;
|
this.schemaFile = DEFAULT_SCHEMA_FILE;
|
||||||
readSchema(solrConfig);
|
|
||||||
|
readSchema(is);
|
||||||
|
|
||||||
SolrResourceLoader loader = solrConfig.getResourceLoader();
|
SolrResourceLoader loader = solrConfig.getResourceLoader();
|
||||||
loader.inform( loader );
|
loader.inform( loader );
|
||||||
|
@ -79,11 +87,13 @@ public final class IndexSchema {
|
||||||
public SolrConfig getSolrConfig() {
|
public SolrConfig getSolrConfig() {
|
||||||
return solrConfig;
|
return solrConfig;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Direct access to the InputStream for the schemaFile used by this instance.
|
* Direct access to the InputStream for the schemaFile used by this instance.
|
||||||
*
|
*
|
||||||
* @see Config#openResource
|
* @see Config#openResource
|
||||||
*/
|
*/
|
||||||
|
@Deprecated
|
||||||
public InputStream getInputStream() {
|
public InputStream getInputStream() {
|
||||||
return solrConfig.getResourceLoader().openResource(schemaFile);
|
return solrConfig.getResourceLoader().openResource(schemaFile);
|
||||||
}
|
}
|
||||||
|
@ -295,8 +305,7 @@ public final class IndexSchema {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void readSchema(InputStream is) {
|
||||||
private void readSchema(final SolrConfig solrConfig) {
|
|
||||||
log.info("Reading Solr Schema");
|
log.info("Reading Solr Schema");
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -305,7 +314,7 @@ public final class IndexSchema {
|
||||||
Document document = builder.parse(getInputStream());
|
Document document = builder.parse(getInputStream());
|
||||||
***/
|
***/
|
||||||
|
|
||||||
Config schemaConf = new Config("schema", getInputStream(), "/schema/");
|
Config schemaConf = new Config("schema", is, "/schema/");
|
||||||
Document document = schemaConf.getDocument();
|
Document document = schemaConf.getDocument();
|
||||||
final XPath xpath = schemaConf.getXPath();
|
final XPath xpath = schemaConf.getXPath();
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue