public POM toModel(String pomAsString) throws IOException, XmlPullParserException { Model model = new MavenXpp3Reader().read(new StringReader(pomAsString)); POM gavModel = new POM( new GAV( model.getGroupId(), model.getArtifactId(), model.getVersion()) ); for (Repository repository : model.getRepositories()) { gavModel.addRepository(fromPomModelToClientModel(repository)); } for (Dependency dependency : model.getDependencies()) { gavModel.getDependencies().add(fromPomModelToClientModel(dependency)); } return gavModel; }
@Override public POM load( final Path path ) { try { final org.kie.commons.java.nio.file.Path nioPath = paths.convert( path ); final String content = ioService.readAllString( nioPath ); return pomContentHandler.toModel( content ); } catch ( IOException e ) { throw new org.kie.commons.java.nio.IOException( e.getMessage() ); } catch ( XmlPullParserException e ) { throw new org.kie.commons.java.nio.IOException( e.getMessage() ); } }
@Override public Path save( final Path path, final POM content, final Metadata metadata, final String comment ) { try { if ( metadata == null ) { ioService.write( paths.convert( path ), pomContentHandler.toString( content ), makeCommentedOption( comment ) ); } else { ioService.write( paths.convert( path ), pomContentHandler.toString( content ), metadataService.setUpAttributes( path, metadata ), makeCommentedOption( comment ) ); } //Invalidate Project-level DMO cache as POM has changed. invalidateDMOProjectCache.fire( new InvalidateDMOProjectCacheEvent( path ) ); //Signal update to interested parties resourceUpdatedEvent.fire( new ResourceUpdatedEvent( path ) ); return path; } catch ( IOException e ) { throw new org.kie.commons.java.nio.IOException( e.getMessage() ); } }
public String toString(POM gavModel) throws IOException { Model model = new Model(); model.setGroupId(gavModel.getGav().getGroupId()); model.setArtifactId(gavModel.getGav().getArtifactId()); model.setVersion(gavModel.getGav().getVersion()); model.setModelVersion(gavModel.getModelVersion()); for (org.kie.guvnor.project.model.Repository repository : gavModel.getRepositories()) { model.addRepository(fromClientModelToPom(repository)); } for (org.kie.guvnor.project.model.Dependency dependency : gavModel.getDependencies()) { model.addDependency(fromClientModelToPom(dependency)); } StringWriter stringWriter = new StringWriter(); new MavenXpp3Writer().write(stringWriter, model); return stringWriter.toString(); }
@Override public Path create( final Path projectRoot, final String baseURL ) { org.kie.commons.java.nio.file.Path pathToPOMXML = null; try { final POM pomModel = new POM(); final Repository repository = new Repository(); repository.setId( "guvnor-m2-repo" ); repository.setName( "Guvnor M2 Repo" ); repository.setUrl( m2RepoService.getRepositoryURL( baseURL ) ); pomModel.addRepository( repository ); final org.kie.commons.java.nio.file.Path nioRoot = paths.convert( projectRoot ); pathToPOMXML = nioRoot.resolve( "pom.xml" ); ioService.createFile( pathToPOMXML ); ioService.write( pathToPOMXML, pomContentHandler.toString( pomModel ) ); //Don't raise a NewResourceAdded event as this is handled at the Project level in ProjectServices return paths.convert( pathToPOMXML ); } catch ( IOException e ) { throw new org.kie.commons.java.nio.IOException( e.getMessage() ); } }