[
https://issues.apache.org/jira/browse/SOLR-712?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12625099#action_12625099
]
Henri Biestro commented on SOLR-712:
------------------------------------
Amit,
I reused your good idea and added an entity resolver so we can put properties
(variables) to get to the resource.
The crux of it is in Config.java ctor:
{code}
final SolrResourceLoader eloader = loader;
EntityResolver esolver = new EntityResolver() {
public InputSource resolveEntity(String publicId, String systemId) throws
SAXException, IOException {
if (systemId != null && systemId.startsWith("solr:")) {
String res = systemId.substring(5);
res = DOMUtil.substituteProperty(res, eloader.getProperties());
return new InputSource(eloader.openResource(res));
}
return null;
}
};
....
javax.xml.parsers.DocumentBuilder builder =
DocumentBuilderFactory.newInstance().newDocumentBuilder();
builder.setEntityResolver(esolver);
...
{code}
Oh, and I remove systematically xml:base form DOMUtil.toMapExcept
Thanks again.
> Support for relative path XML Entity Includes
> ---------------------------------------------
>
> Key: SOLR-712
> URL: https://issues.apache.org/jira/browse/SOLR-712
> Project: Solr
> Issue Type: Improvement
> Affects Versions: 1.2, 1.3
> Reporter: Amit Nithian
> Priority: Minor
> Fix For: 1.2
>
> Attachments: XMLEntityInclude.tgz
>
> Original Estimate: 1h
> Remaining Estimate: 1h
>
> This patch modifies the Config.java and IndexSchema.java to support XML
> entity includes of relative paths. When parsing an InputStream not providing
> a SystemID (i.e. base path for example) to the DOM parser will basically
> force all entity includes to be relative to the base project directory rather
> than the directory hosting the document. This patch simply passes in the
> configuration directory as the systemID thus making the entity includes
> relative to the home of solrconfig.xml and schema.xml.
> The IndexSchema.java was modified to ensure objects do NOT process the
> xml:base attribute. Newer Xerces-J parsers allow for the removal of this
> attribute in the DOM (by setting the appropriate feature); however, the DOM
> parser used by Java 5 doesn't support this feature.
> For example:
> Without the entity include, if my Solr app was running on C:\solr, then any
> entity includes would have to be relative to C:\solr regardless of
> solrconfig.xml and schema.xml. This patch allows for includes relative to the
> conf directory of solr.home (i.e. ../../my_base_schema.xml) would be located
> two directories above "conf".
> Please submit improvements or comments on this patch.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.