11package net .servicestack .eclipse .maven ;
22
3+ import java .io .ByteArrayInputStream ;
34import java .io .File ;
45import java .io .FileReader ;
56import java .io .FileWriter ;
67import java .io .IOException ;
8+ import java .io .InputStream ;
9+ import java .io .StringWriter ;
10+ import java .nio .charset .StandardCharsets ;
711import java .util .List ;
812import java .util .Objects ;
913
1620
1721public class EclipseMavenHelper {
1822 public boolean addMavenDependencyIfRequired (IFile pomFile , String groupId , String packageId , String version ) throws Exception {
19- boolean noDependencyAdded = true ;
23+ boolean dependencyAdded = false ;
2024 MavenXpp3Reader reader = new MavenXpp3Reader ();
2125 Model pomModel ;
2226 try {
@@ -28,22 +32,26 @@ public boolean addMavenDependencyIfRequired(IFile pomFile, String groupId, Strin
2832 requiresPomDependency = false ;
2933 }
3034 }
31-
35+
36+ String content = null ;
3237 if (requiresPomDependency ) {
3338 Dependency dependency = new Dependency ();
3439 dependency .setGroupId (groupId );
3540 dependency .setArtifactId (packageId );
3641 dependency .setVersion (version );
37- FileWriter writer = new FileWriter (pomFile .getLocationURI ().getPath ());
3842 pomModel .addDependency (dependency );
39- new MavenXpp3Writer ().write (writer , pomModel );
40- noDependencyAdded = false ;
43+ StringWriter strWriter = new StringWriter ();
44+ new MavenXpp3Writer ().write (strWriter , pomModel );
45+ content = strWriter .toString ();
46+ InputStream stream = new ByteArrayInputStream (content .getBytes (StandardCharsets .UTF_8 ));
47+ pomFile .setContents (stream , false , false , null );
48+ dependencyAdded = true ;
4149 }
4250
4351 } catch (IOException | XmlPullParserException e ) {
4452 e .printStackTrace ();
4553 throw new Exception ("Unable to process pom.xml to add " + groupId + ":" + packageId + ":" + version );
4654 }
47- return noDependencyAdded ;
55+ return dependencyAdded ;
4856 }
4957}
0 commit comments