From 15a9ceb3f2d89498b6964e5e602610a133e8fbd3 Mon Sep 17 00:00:00 2001 From: Sergey Evdokimov Date: Thu, 27 Jun 2013 19:52:02 +0400 Subject: [PATCH] IDEA-109675 Absolute path in iml file (maven project) --- .../idea/maven/server/MavenServerSettings.java | 11 +++++++++++ .../maven/server/Maven3ServerEmbedderImpl.java | 4 ++++ .../idea/maven/server/MavenServerManager.java | 5 ++++- .../org/jetbrains/idea/maven/utils/MavenUtil.java | 15 +++++++++------ 4 files changed, 28 insertions(+), 7 deletions(-) diff --git a/plugins/maven/maven-server-api/src/org/jetbrains/idea/maven/server/MavenServerSettings.java b/plugins/maven/maven-server-api/src/org/jetbrains/idea/maven/server/MavenServerSettings.java index 0038eff102bd..6fcacb9ec8c2 100644 --- a/plugins/maven/maven-server-api/src/org/jetbrains/idea/maven/server/MavenServerSettings.java +++ b/plugins/maven/maven-server-api/src/org/jetbrains/idea/maven/server/MavenServerSettings.java @@ -37,6 +37,17 @@ public class MavenServerSettings implements Serializable, Cloneable { @NotNull private UpdatePolicy myPluginUpdatePolicy = UpdatePolicy.DO_NOT_UPDATE; @NotNull private UpdatePolicy mySnapshotUpdatePolicy = UpdatePolicy.ALWAYS_UPDATE; + private String projectJdk; + + @Nullable + public String getProjectJdk() { + return projectJdk; + } + + public void setProjectJdk(@Nullable String projectJdk) { + this.projectJdk = projectJdk; + } + public int getLoggingLevel() { return myLoggingLevel; } diff --git a/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3ServerEmbedderImpl.java b/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3ServerEmbedderImpl.java index d0dbbb8b19e3..ffb419c725a2 100644 --- a/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3ServerEmbedderImpl.java +++ b/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3ServerEmbedderImpl.java @@ -164,6 +164,10 @@ public class Maven3ServerEmbedderImpl extends MavenRemoteObject implements Maven mySystemProperties = FieldAccessor.get(cliRequestClass, cliRequest, "systemProperties"); + if (settings.getProjectJdk() != null) { + mySystemProperties.setProperty("java.home", settings.getProjectJdk()); + } + myMavenSettings = buildSettings(FieldAccessor.get(MavenCli.class, cli, "settingsBuilder"), settings, mySystemProperties, diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenServerManager.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenServerManager.java index fd3ce1d1ea7a..863594f687af 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenServerManager.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/server/MavenServerManager.java @@ -32,6 +32,7 @@ import com.intellij.openapi.projectRoots.JavaSdkType; import com.intellij.openapi.projectRoots.JdkUtil; import com.intellij.openapi.projectRoots.Sdk; import com.intellij.openapi.projectRoots.SimpleJavaSdkType; +import com.intellij.openapi.roots.ProjectRootManager; import com.intellij.openapi.util.ShutDownTracker; import com.intellij.openapi.util.SystemInfo; import com.intellij.util.Alarm; @@ -54,7 +55,6 @@ import org.jetbrains.idea.maven.utils.MavenProgressIndicator; import org.jetbrains.idea.maven.utils.MavenUtil; import java.io.File; -import java.nio.charset.Charset; import java.rmi.RemoteException; import java.rmi.server.UnicastRemoteObject; import java.util.ArrayList; @@ -336,6 +336,9 @@ public class MavenServerManager extends RemoteObjectWrapper impleme settings = settings.clone(); settings.setOffline(false); } + + settings.setProjectJdk(MavenUtil.getSdkPath(ProjectRootManager.getInstance(project).getProjectSdk())); + return MavenServerManager.this.getOrCreateWrappee().createEmbedder(settings); } }; diff --git a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java index 7b70213a3eab..e9f6c515a451 100644 --- a/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java +++ b/plugins/maven/src/main/java/org/jetbrains/idea/maven/utils/MavenUtil.java @@ -791,12 +791,7 @@ public class MavenUtil { return (int)crc.getValue(); } - @Nullable - public static String getModuleJre(@NotNull MavenProjectsManager mavenProjectsManager, @NotNull MavenProject mavenProject) { - Module module = mavenProjectsManager.findModule(mavenProject); - if (module == null) return null; - - Sdk sdk = ModuleRootManager.getInstance(module).getSdk(); + public static String getSdkPath(@Nullable Sdk sdk) { if (sdk == null) return null; VirtualFile homeDirectory = sdk.getHomeDirectory(); @@ -811,4 +806,12 @@ public class MavenUtil { return homeDirectory.getPath(); } + + @Nullable + public static String getModuleJre(@NotNull MavenProjectsManager mavenProjectsManager, @NotNull MavenProject mavenProject) { + Module module = mavenProjectsManager.findModule(mavenProject); + if (module == null) return null; + + return getSdkPath(ModuleRootManager.getInstance(module).getSdk()); + } }