summaryrefslogtreecommitdiff
path: root/plugins/maven/maven3-server-impl/src/org/jetbrains/idea
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/maven/maven3-server-impl/src/org/jetbrains/idea')
-rw-r--r--plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3ServerEmbedderImpl.java33
-rw-r--r--plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3ServerImpl.java3
-rw-r--r--plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/MavenEffectivePomDumper.java6
-rw-r--r--plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/MavenLeakDetector.java5
4 files changed, 31 insertions, 16 deletions
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 66a5943211c7..854c099d25b4 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
@@ -300,20 +300,22 @@ public class Maven3ServerEmbedderImpl extends MavenRemoteObject implements Maven
@NotNull
@Override
- public MavenServerExecutionResult resolveProject(@NotNull File file, @NotNull Collection<String> activeProfiles)
+ public MavenServerExecutionResult resolveProject(@NotNull File file,
+ @NotNull Collection<String> activeProfiles,
+ @NotNull Collection<String> inactiveProfiles)
throws RemoteException, MavenServerProcessCanceledException {
DependencyTreeResolutionListener listener = new DependencyTreeResolutionListener(myConsoleWrapper);
- MavenExecutionResult result =
- doResolveProject(file, new ArrayList<String>(activeProfiles), Arrays.<ResolutionListener>asList(listener));
+ MavenExecutionResult result = doResolveProject(file, new ArrayList<String>(activeProfiles), new ArrayList<String>(inactiveProfiles),
+ Arrays.<ResolutionListener>asList(listener));
return createExecutionResult(file, result, listener.getRootNode());
}
@Nullable
@Override
- public String evaluateEffectivePom(@NotNull File file, @NotNull List<String> activeProfiles)
+ public String evaluateEffectivePom(@NotNull File file, @NotNull List<String> activeProfiles, @NotNull List<String> inactiveProfiles)
throws RemoteException, MavenServerProcessCanceledException {
- return MavenEffectivePomDumper.evaluateEffectivePom(this, file, activeProfiles);
+ return MavenEffectivePomDumper.evaluateEffectivePom(this, file, activeProfiles, inactiveProfiles);
}
public void executeWithMavenSession(MavenExecutionRequest request, Runnable runnable) {
@@ -350,9 +352,9 @@ public class Maven3ServerEmbedderImpl extends MavenRemoteObject implements Maven
@NotNull
public MavenExecutionResult doResolveProject(@NotNull final File file,
@NotNull final List<String> activeProfiles,
+ @NotNull final List<String> inactiveProfiles,
final List<ResolutionListener> listeners) throws RemoteException {
- final MavenExecutionRequest request =
- createRequest(file, activeProfiles, Collections.<String>emptyList(), Collections.<String>emptyList());
+ final MavenExecutionRequest request = createRequest(file, activeProfiles, inactiveProfiles, Collections.<String>emptyList());
request.setUpdateSnapshots(myAlwaysUpdateSnapshots);
@@ -899,21 +901,29 @@ public class Maven3ServerEmbedderImpl extends MavenRemoteObject implements Maven
public static ProfileApplicationResult applyProfiles(MavenModel model,
File basedir,
- Collection<String> explicitProfiles,
+ MavenExplicitProfiles explicitProfiles,
Collection<String> alwaysOnProfiles) throws RemoteException {
Model nativeModel = MavenModelConverter.toNativeModel(model);
+ Collection<String> enabledProfiles = explicitProfiles.getEnabledProfiles();
+ Collection<String> disabledProfiles = explicitProfiles.getDisabledProfiles();
List<Profile> activatedPom = new ArrayList<Profile>();
List<Profile> activatedExternal = new ArrayList<Profile>();
List<Profile> activeByDefault = new ArrayList<Profile>();
List<Profile> rawProfiles = nativeModel.getProfiles();
List<Profile> expandedProfilesCache = null;
+ List<Profile> deactivatedProfiles = new ArrayList<Profile>();
for (int i = 0; i < rawProfiles.size(); i++) {
Profile eachRawProfile = rawProfiles.get(i);
- boolean shouldAdd = explicitProfiles.contains(eachRawProfile.getId()) || alwaysOnProfiles.contains(eachRawProfile.getId());
+ if (disabledProfiles.contains(eachRawProfile.getId())) {
+ deactivatedProfiles.add(eachRawProfile);
+ continue;
+ }
+
+ boolean shouldAdd = enabledProfiles.contains(eachRawProfile.getId()) || alwaysOnProfiles.contains(eachRawProfile.getId());
Activation activation = eachRawProfile.getActivation();
if (activation != null) {
@@ -955,7 +965,10 @@ public class Maven3ServerEmbedderImpl extends MavenRemoteObject implements Maven
new DefaultProfileInjector().injectProfile(nativeModel, each, null, null);
}
- return new ProfileApplicationResult(MavenModelConverter.convertModel(nativeModel, null), collectProfilesIds(activatedProfiles));
+ return new ProfileApplicationResult(MavenModelConverter.convertModel(nativeModel, null),
+ new MavenExplicitProfiles(collectProfilesIds(activatedProfiles),
+ collectProfilesIds(deactivatedProfiles))
+ );
}
private static Model doInterpolate(Model result, File basedir) throws RemoteException {
diff --git a/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3ServerImpl.java b/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3ServerImpl.java
index 0e4d468297f3..cc33728cd46b 100644
--- a/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3ServerImpl.java
+++ b/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3ServerImpl.java
@@ -15,6 +15,7 @@
*/
package org.jetbrains.idea.maven.server;
+import org.jetbrains.idea.maven.model.MavenExplicitProfiles;
import org.jetbrains.idea.maven.model.MavenModel;
import java.io.File;
@@ -74,7 +75,7 @@ public class Maven3ServerImpl extends MavenRemoteObject implements MavenServer {
public ProfileApplicationResult applyProfiles(MavenModel model,
File basedir,
- Collection<String> explicitProfiles,
+ MavenExplicitProfiles explicitProfiles,
Collection<String> alwaysOnProfiles) {
try {
return Maven3ServerEmbedderImpl.applyProfiles(model, basedir, explicitProfiles, alwaysOnProfiles);
diff --git a/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/MavenEffectivePomDumper.java b/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/MavenEffectivePomDumper.java
index 2d0c90dd3c0a..75d45f59fd08 100644
--- a/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/MavenEffectivePomDumper.java
+++ b/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/MavenEffectivePomDumper.java
@@ -47,14 +47,14 @@ public class MavenEffectivePomDumper {
@Nullable
public static String evaluateEffectivePom(final Maven3ServerEmbedderImpl embedder,
@NotNull final File file,
- @NotNull List<String> activeProfiles)
+ @NotNull List<String> activeProfiles,
+ @NotNull List<String> inactiveProfiles)
throws RemoteException, MavenServerProcessCanceledException {
final StringWriter w = new StringWriter();
try {
- final MavenExecutionRequest
- request = embedder.createRequest(file, activeProfiles, Collections.<String>emptyList(), Collections.<String>emptyList());
+ final MavenExecutionRequest request = embedder.createRequest(file, activeProfiles, inactiveProfiles, Collections.<String>emptyList());
embedder.executeWithMavenSession(request, new Runnable() {
@Override
diff --git a/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/MavenLeakDetector.java b/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/MavenLeakDetector.java
index 15899e7aa38f..a51ddfe0210a 100644
--- a/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/MavenLeakDetector.java
+++ b/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/MavenLeakDetector.java
@@ -18,6 +18,7 @@ package org.jetbrains.idea.maven.server;
import com.intellij.util.ReflectionUtil;
import java.rmi.RemoteException;
+import java.util.Collections;
import java.util.IdentityHashMap;
import java.util.Map;
@@ -54,14 +55,14 @@ public class MavenLeakDetector {
}
private Map<Thread, Thread> getShutdownHooks() {
- Class clazz = null;
+ Class clazz;
try {
clazz = Class.forName("java.lang.ApplicationShutdownHooks");
}
catch (ClassNotFoundException e) {
// we can ignore this one
+ return Collections.emptyMap();
}
return ReflectionUtil.getField(clazz, null, Map.class, "hooks");
}
-
}