gnodet commented on code in PR #1205:
URL: https://github.com/apache/maven/pull/1205#discussion_r1446522303
##########
maven-model-builder/src/main/java/org/apache/maven/model/io/DefaultModelReader.java:
##########
@@ -100,14 +104,39 @@ private Path getRootDirectory(Map<String, ?> options) {
return (Path) value;
}
+ private boolean getXInclude(Map<String, ?> options) {
+ Object value = (options != null) ? options.get(XINCLUDE) : null;
+ return value instanceof Boolean && (Boolean) value;
+ }
+
private Model read(InputStream input, Path pomFile, Map<String, ?>
options) throws IOException {
try {
- XMLInputFactory factory = new com.ctc.wstx.stax.WstxInputFactory();
-
factory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, false);
- XMLStreamReader parser = factory.createXMLStreamReader(input);
-
InputSource source = getSource(options);
boolean strict = isStrict(options);
+ Path rootDirectory = getRootDirectory(options);
+
+ Source xmlSource;
+ if (pomFile != null) {
+ if (input != null) {
+ xmlSource = new StaxPathInputSource(pomFile, input);
+ } else {
+ xmlSource = new Stax2FileSource(pomFile.toFile());
+ }
+ } else {
+ xmlSource = new StreamSource(input);
+ }
+
+ XMLStreamReader parser;
+ // We only support xml entities and xinclude when reading a file
in strict mode
+ if (pomFile != null && strict && getXInclude(options)) {
+ parser = XInclude.xinclude(xmlSource, new
LocalXmlResolver(rootDirectory));
+ } else {
+ XMLInputFactory factory = new
com.ctc.wstx.stax.WstxInputFactory();
+
factory.setProperty(XMLInputFactory.IS_REPLACING_ENTITY_REFERENCES, false);
+
factory.setProperty(XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);
Review Comment:
> Nothing you can do here, but this property should have been named
SUPPORTS_EXTERNAL_ENTITIES
Agreed
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]