1414import com .intellij .psi .*;
1515import com .intellij .psi .search .FilenameIndex ;
1616import com .intellij .psi .search .GlobalSearchScope ;
17- import com .intellij .psi .xml .XmlFile ;
1817import com .intellij .ui .JBColor ;
19- import com .intellij .util .PlatformUtils ;
2018import org .apache .http .client .utils .URIBuilder ;
2119import org .apache .maven .model .Dependency ;
2220import org .apache .maven .model .Model ;
23- import org .apache .maven .model .Profile ;
2421import org .apache .maven .model .io .xpp3 .MavenXpp3Reader ;
2522import org .apache .maven .model .io .xpp3 .MavenXpp3Writer ;
2623import org .codehaus .plexus .util .xml .pull .XmlPullParserException ;
@@ -293,50 +290,12 @@ private void onOK() {
293290
294291 boolean isMavenModule = mavenProjectsManager != null && mavenProjectsManager .isMavenizedModule (module );
295292 if (isMavenModule ) {
296- PsiFile [] pomLibFiles = FilenameIndex .getFilesByName (module .getProject (), "pom.xml" , GlobalSearchScope .allScope (module .getProject ()));
297- File pomLibFile = new File (pomLibFiles [0 ].getVirtualFile ().getPath ());
298- MavenXpp3Reader reader = new MavenXpp3Reader ();
299- Model pomModel ;
300- try {
301- pomModel = reader .read (new FileReader (pomLibFile ));
302- final List <Dependency > dependencies = pomModel .getDependencies ();
303- boolean requiresPomDependency = true ;
304- for (Dependency dep : dependencies ) {
305- if (Objects .equals (dep .getGroupId (), dependencyGroupId ) && Objects .equals (dep .getArtifactId (), "client" )) {
306- requiresPomDependency = false ;
307- }
308- }
309-
310- if (requiresPomDependency ) {
311- Dependency dependency = new Dependency ();
312- dependency .setGroupId (dependencyGroupId );
313- dependency .setArtifactId ("client" );
314- dependency .setVersion (dependencyVersion );
315- FileWriter writer = new FileWriter (pomLibFile .getAbsolutePath ());
316- pomModel .addDependency (dependency );
317- new MavenXpp3Writer ().write (writer , pomModel );
318- }
319-
320- } catch (IOException e ) {
321- e .printStackTrace ();
322- errorMessage = "Unable to process pom.xml to add " + dependencyGroupId + ":" + "client" + ":" + dependencyVersion ;
323- } catch (XmlPullParserException e ) {
324- errorMessage = "Unable to process pom.xml to add " + dependencyGroupId + ":" + "client" + ":" + dependencyVersion ;
325- e .printStackTrace ();
326- }
327-
328-
293+ showDto = addMavenDependencyIfRequired ();
329294 } else {
330- //Android studio
331- if (gradleBuildFileHelper .addDependency (dependencyGroupId , dependencyPackageId , dependencyVersion )) {
332- refreshBuildFile ();
333- } else {
334- showDto = true ;
335- }
295+ //Gradle
296+ showDto = addGradleDependencyIfRequired (gradleBuildFileHelper );
336297 }
337298
338-
339-
340299 String dtoPath ;
341300 try {
342301 dtoPath = getDtoPath ();
@@ -352,6 +311,52 @@ private void onOK() {
352311 dispose ();
353312 }
354313
314+ private boolean addGradleDependencyIfRequired (GradleBuildFileHelper gradleBuildFileHelper ) {
315+ boolean result = true ;
316+ if (gradleBuildFileHelper .addDependency (dependencyGroupId , dependencyPackageId , dependencyVersion )) {
317+ result = false ;
318+ refreshBuildFile ();
319+ }
320+ return result ;
321+ }
322+
323+ private boolean addMavenDependencyIfRequired () {
324+ boolean noDependencyAdded = true ;
325+ PsiFile [] pomLibFiles = FilenameIndex .getFilesByName (module .getProject (), "pom.xml" , GlobalSearchScope .allScope (module .getProject ()));
326+ File pomLibFile = new File (pomLibFiles [0 ].getVirtualFile ().getPath ());
327+ MavenXpp3Reader reader = new MavenXpp3Reader ();
328+ Model pomModel ;
329+ try {
330+ pomModel = reader .read (new FileReader (pomLibFile ));
331+ final List <Dependency > dependencies = pomModel .getDependencies ();
332+ boolean requiresPomDependency = true ;
333+ for (Dependency dep : dependencies ) {
334+ if (Objects .equals (dep .getGroupId (), dependencyGroupId ) && Objects .equals (dep .getArtifactId (), "client" )) {
335+ requiresPomDependency = false ;
336+ }
337+ }
338+
339+ if (requiresPomDependency ) {
340+ Dependency dependency = new Dependency ();
341+ dependency .setGroupId (dependencyGroupId );
342+ dependency .setArtifactId ("client" );
343+ dependency .setVersion (dependencyVersion );
344+ FileWriter writer = new FileWriter (pomLibFile .getAbsolutePath ());
345+ pomModel .addDependency (dependency );
346+ new MavenXpp3Writer ().write (writer , pomModel );
347+ noDependencyAdded = false ;
348+ }
349+
350+ } catch (IOException e ) {
351+ e .printStackTrace ();
352+ errorMessage = "Unable to process pom.xml to add " + dependencyGroupId + ":" + "client" + ":" + dependencyVersion ;
353+ } catch (XmlPullParserException e ) {
354+ errorMessage = "Unable to process pom.xml to add " + dependencyGroupId + ":" + "client" + ":" + dependencyVersion ;
355+ e .printStackTrace ();
356+ }
357+ return noDependencyAdded ;
358+ }
359+
355360 private boolean writeDtoFile (List <String > javaCode , String path ) {
356361 BufferedWriter writer = null ;
357362 boolean result = true ;
0 commit comments