diff options
Diffstat (limited to 'plugins/maven/maven3-server-impl/src')
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"); } - } |