List of usage examples for org.apache.maven.model.building ModelSource getInputStream
InputStream getInputStream() throws IOException;
From source file:org.sonatype.maven.polyglot.TeslaModelProcessor.java
License:Open Source License
@Override @SuppressWarnings({ "unchecked", "rawtypes" }) public Model read(final Reader input, final Map<String, ?> options) throws IOException, ModelParseException { assert manager != null; ModelSource source = (ModelSource) options.get(ModelProcessor.SOURCE); if (("" + source).contains(".polyglot.")) { log.debug(source.getLocation()); File pom = new File(source.getLocation()); source = new FileModelSource(new File(pom.getPath().replaceFirst("[.]polyglot[.]", ""))); ((Map) options).put(ModelProcessor.SOURCE, source); ModelReader reader = manager.getReaderFor(options); Model model = reader.read(source.getInputStream(), options); MavenXpp3Writer xmlWriter = new MavenXpp3Writer(); StringWriter xml = new StringWriter(); xmlWriter.write(xml, model);// w w w . j a v a2s . co m FileUtils.fileWrite(pom, xml.toString()); // dump pom if filename is given via the pom properties String dump = model.getProperties().getProperty("polyglot.dump.pom"); if (dump == null) { // just nice to dump the pom.xml via commandline switch dump = System.getProperty("polyglot.dump.pom"); } if (dump != null) { File dumpPom = new File(pom.getParentFile(), dump); if (!dumpPom.exists() || !FileUtils.fileRead(dumpPom).equals(xml.toString())) { dumpPom.setWritable(true); FileUtils.fileWrite(dumpPom, xml.toString()); if ("true".equals(model.getProperties().getProperty("polyglot.dump.readonly"))) { dumpPom.setReadOnly(); } } } model.setPomFile(pom); return model; } else { ModelReader reader = manager.getReaderFor(options); return reader.read(input, options); } }