mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
do not instantiate MavenServerManager, setup shutdown hook and all that crap if there is no need to
This commit is contained in:
+24
-20
@@ -93,8 +93,25 @@ public class MavenServerManager extends RemoteObjectWrapper<MavenServer> impleme
|
||||
private final Alarm myShutdownAlarm = new Alarm(Alarm.ThreadToUse.SHARED_THREAD);
|
||||
|
||||
private State myState = new State();
|
||||
private final File myBundledMaven2Home;
|
||||
private final File myBundledMaven3Home;
|
||||
private static class BundledMavenPathHolder {
|
||||
private static final File myBundledMaven2Home;
|
||||
private static final File myBundledMaven3Home;
|
||||
|
||||
static {
|
||||
final File pluginFileOrDir = new File(PathUtil.getJarPathForClass(MavenServerManager.class));
|
||||
final String root = pluginFileOrDir.getParent();
|
||||
|
||||
if (pluginFileOrDir.isDirectory()) {
|
||||
File parentFile = getMavenPluginParentFile();
|
||||
myBundledMaven2Home = new File(parentFile, "maven2-server-impl/lib/maven2");
|
||||
myBundledMaven3Home = new File(parentFile, "maven30-server-impl/lib/maven3");
|
||||
}
|
||||
else {
|
||||
myBundledMaven2Home = new File(root, "maven2");
|
||||
myBundledMaven3Home = new File(root, "maven3");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static class State {
|
||||
@Deprecated
|
||||
@@ -117,19 +134,6 @@ public class MavenServerManager extends RemoteObjectWrapper<MavenServer> impleme
|
||||
public MavenServerManager() {
|
||||
super(null);
|
||||
|
||||
final File pluginFileOrDir = new File(PathUtil.getJarPathForClass(MavenServerManager.class));
|
||||
final String root = pluginFileOrDir.getParent();
|
||||
|
||||
if (pluginFileOrDir.isDirectory()) {
|
||||
File parentFile = getMavenPluginParentFile();
|
||||
myBundledMaven2Home = new File(parentFile, "maven2-server-impl/lib/maven2");
|
||||
myBundledMaven3Home = new File(parentFile, "maven30-server-impl/lib/maven3");
|
||||
}
|
||||
else {
|
||||
myBundledMaven2Home = new File(root, "maven2");
|
||||
myBundledMaven3Home = new File(root, "maven3");
|
||||
}
|
||||
|
||||
mySupport = new RemoteProcessSupport<Object, MavenServer, Object>(MavenServer.class) {
|
||||
@Override
|
||||
protected void fireModificationCountChanged() {
|
||||
@@ -386,7 +390,7 @@ public class MavenServerManager extends RemoteObjectWrapper<MavenServer> impleme
|
||||
|
||||
public List<File> collectClassPathAndLibsFolder(boolean forceMaven2) {
|
||||
final String currentMavenVersion = forceMaven2 ? "2.2.1" : getCurrentMavenVersion();
|
||||
File mavenHome = forceMaven2 ? myBundledMaven2Home : currentMavenVersion == null ? myBundledMaven3Home : getCurrentMavenHomeFile();
|
||||
File mavenHome = forceMaven2 ? BundledMavenPathHolder.myBundledMaven2Home : currentMavenVersion == null ? BundledMavenPathHolder.myBundledMaven3Home : getCurrentMavenHomeFile();
|
||||
|
||||
final File pluginFileOrDir = new File(PathUtil.getJarPathForClass(MavenServerManager.class));
|
||||
final List<File> classpath = new ArrayList<File>();
|
||||
@@ -400,7 +404,7 @@ public class MavenServerManager extends RemoteObjectWrapper<MavenServer> impleme
|
||||
addDir(classpath, new File(parentFile, "maven2-server-impl/lib"));
|
||||
// use bundled maven 2.2.1 for all 2.0.x version (since we use org.apache.maven.project.interpolation.StringSearchModelInterpolator introduced in 2.1.0)
|
||||
if (StringUtil.compareVersionNumbers(currentMavenVersion, "2.1.0") < 0) {
|
||||
mavenHome = myBundledMaven2Home;
|
||||
mavenHome = BundledMavenPathHolder.myBundledMaven2Home;
|
||||
}
|
||||
}
|
||||
else {
|
||||
@@ -615,13 +619,13 @@ public class MavenServerManager extends RemoteObjectWrapper<MavenServer> impleme
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public File getMavenHomeFile(@Nullable String mavenHome) {
|
||||
public static File getMavenHomeFile(@Nullable String mavenHome) {
|
||||
if(mavenHome == null) return null;
|
||||
if (StringUtil.equals(BUNDLED_MAVEN_2, mavenHome)) {
|
||||
return myBundledMaven2Home;
|
||||
return BundledMavenPathHolder.myBundledMaven2Home;
|
||||
}
|
||||
if (StringUtil.equals(BUNDLED_MAVEN_3, mavenHome)) {
|
||||
return myBundledMaven3Home;
|
||||
return BundledMavenPathHolder.myBundledMaven3Home;
|
||||
}
|
||||
final File home = new File(mavenHome);
|
||||
return MavenUtil.isValidMavenHome(home) ? home : null;
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2000-2009 JetBrains s.r.o.
|
||||
* Copyright 2000-2015 JetBrains s.r.o.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
@@ -561,7 +561,7 @@ public class MavenUtil {
|
||||
}
|
||||
}
|
||||
|
||||
return MavenServerManager.getInstance().getMavenHomeFile(MavenServerManager.BUNDLED_MAVEN_3);
|
||||
return MavenServerManager.getMavenHomeFile(MavenServerManager.BUNDLED_MAVEN_3);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
|
||||
Reference in New Issue
Block a user