summaryrefslogtreecommitdiff
path: root/plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3ServerEmbedderImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3ServerEmbedderImpl.java')
-rw-r--r--plugins/maven/maven3-server-impl/src/org/jetbrains/idea/maven/server/Maven3ServerEmbedderImpl.java33
1 files changed, 23 insertions, 10 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 {