diff --git a/plugins/maven/maven.iml b/plugins/maven/maven.iml
index 96b9d4ef6736..12426a10325c 100644
--- a/plugins/maven/maven.iml
+++ b/plugins/maven/maven.iml
@@ -54,6 +54,7 @@
+
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 c66c35f7dffd..d576f6f5bebf 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
@@ -16,7 +16,19 @@
package org.jetbrains.idea.maven.server;
import com.intellij.util.SystemProperties;
+import gnu.trove.THashSet;
import org.apache.maven.cli.MavenCli;
+import org.apache.maven.model.Activation;
+import org.apache.maven.model.Model;
+import org.apache.maven.model.Profile;
+import org.apache.maven.model.profile.DefaultProfileInjector;
+import org.apache.maven.profiles.activation.*;
+import org.apache.maven.project.DefaultProjectBuilderConfiguration;
+import org.apache.maven.project.ProjectBuilderConfiguration;
+import org.apache.maven.project.interpolation.AbstractStringBasedModelInterpolator;
+import org.apache.maven.project.interpolation.ModelInterpolationException;
+import org.apache.maven.project.path.DefaultPathTranslator;
+import org.apache.maven.project.path.PathTranslator;
import org.apache.maven.settings.Settings;
import org.apache.maven.settings.building.DefaultSettingsBuildingRequest;
import org.apache.maven.settings.building.SettingsBuilder;
@@ -25,11 +37,15 @@ import org.apache.maven.settings.building.SettingsBuildingRequest;
import org.codehaus.plexus.DefaultPlexusContainer;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.classworlds.ClassWorld;
+import org.codehaus.plexus.context.ContextException;
+import org.codehaus.plexus.context.DefaultContext;
import org.codehaus.plexus.logging.BaseLoggerManager;
import org.codehaus.plexus.logging.Logger;
+import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.idea.maven.model.*;
+import org.jetbrains.idea.maven.server.embedder.CustomMaven3ModelInterpolator;
import org.jetbrains.idea.maven.server.embedder.FieldAccessor;
import java.io.File;
@@ -65,34 +81,27 @@ public class Maven3ServerEmbedderImpl extends MavenRemoteObject implements Maven
}
};
- List methods = Arrays.asList("initialize",
- "cli",
- "properties",
- "container");
-
Class cliRequestClass = null;
- Class[] classes = MavenCli.class.getDeclaredClasses();
- for (Class> each : classes) {
- if (each.getSimpleName().equals("CliRequest")) {
- cliRequestClass = each;
- break;
- }
+ try {
+ cliRequestClass = MavenCli.class.getClassLoader().loadClass("org.apache.maven.cli.MavenCli$CliRequest");
+ }
+ catch (ClassNotFoundException e) {
+ throw new RuntimeException("Class \"org.apache.maven.cli.MavenCli$CliRequest\" not found");
}
- if (cliRequestClass == null) throw new RuntimeException("'CliRequest' class not found among '" + Arrays.toString(classes) + "'");
Object cliRequest;
try {
- List commandLineOptions = new ArrayList(settings.getUserProperties().size());
+ String[] commandLineOptions = new String[settings.getUserProperties().size()];
+ int idx = 0;
for (Map.Entry