diff --git a/platform/core-api/src/com/intellij/openapi/util/BuildNumber.java b/platform/core-api/src/com/intellij/openapi/util/BuildNumber.java index 322954c1cdbf..c1061d69c387 100644 --- a/platform/core-api/src/com/intellij/openapi/util/BuildNumber.java +++ b/platform/core-api/src/com/intellij/openapi/util/BuildNumber.java @@ -29,8 +29,8 @@ public class BuildNumber implements Comparable { public static final int SNAPSHOT_VALUE = Integer.MAX_VALUE; - private final @NotNull String myProductCode; - private final @NotNull int[] myComponents; + @NotNull private final String myProductCode; + @NotNull private final int[] myComponents; public BuildNumber(@NotNull String productCode, int baselineVersion, int buildNumber) { this(productCode, new int[]{baselineVersion, buildNumber}); @@ -41,7 +41,8 @@ public class BuildNumber implements Comparable { myComponents = components; } - public @NotNull String getProductCode() { + @NotNull + public String getProductCode() { return myProductCode; } @@ -49,7 +50,8 @@ public class BuildNumber implements Comparable { return myComponents[0]; } - public @NotNull int[] getComponents() { + @NotNull + public int[] getComponents() { return myComponents.clone(); } @@ -57,23 +59,28 @@ public class BuildNumber implements Comparable { return ArrayUtil.indexOf(myComponents, SNAPSHOT_VALUE) >= 0; } + @NotNull @Contract(pure = true) - public @NotNull BuildNumber withoutProductCode() { + public BuildNumber withoutProductCode() { return myProductCode.isEmpty() ? this : new BuildNumber("", myComponents); } + @NotNull public String asString() { return asString(true, true); } + @NotNull public String asStringWithoutProductCode() { return asString(false, true); } + @NotNull public String asStringWithoutProductCodeAndSnapshot() { return asString(false, false); } + @NotNull private String asString(boolean includeProductCode, boolean withSnapshotMarker) { StringBuilder builder = new StringBuilder(); @@ -99,7 +106,7 @@ public class BuildNumber implements Comparable { return fromString(version, null, null); } - public static BuildNumber fromStringWithProductCode(String version, String productCode) { + public static BuildNumber fromStringWithProductCode(String version, @NotNull String productCode) { return fromString(version, null, productCode); } @@ -122,8 +129,6 @@ public class BuildNumber implements Comparable { } int baselineVersionSeparator = code.indexOf('.'); - int baselineVersion; - int buildNumber; if (baselineVersionSeparator > 0) { String baselineVersionString = code.substring(0, baselineVersionSeparator); @@ -142,18 +147,18 @@ public class BuildNumber implements Comparable { return new BuildNumber(productCode, intComponents); } else { - buildNumber = parseBuildNumber(version, code, pluginName); + int buildNumber = parseBuildNumber(version, code, pluginName); if (buildNumber <= 2000) { // it's probably a baseline, not a build number return new BuildNumber(productCode, buildNumber, 0); } - baselineVersion = getBaseLineForHistoricBuilds(buildNumber); + int baselineVersion = getBaseLineForHistoricBuilds(buildNumber); return new BuildNumber(productCode, baselineVersion, buildNumber); } } - private static int parseBuildNumber(String version, String code, String pluginName) { + private static int parseBuildNumber(String version, @NotNull String code, String pluginName) { if (SNAPSHOT.equals(code) || BUILD_NUMBER_PLACEHOLDERS.contains(code) || STAR.equals(code)) { return SNAPSHOT_VALUE; } @@ -190,9 +195,7 @@ public class BuildNumber implements Comparable { BuildNumber that = (BuildNumber)o; if (!myProductCode.equals(that.myProductCode)) return false; - if (!Arrays.equals(myComponents, that.myComponents)) return false; - - return true; + return Arrays.equals(myComponents, that.myComponents); } @Override diff --git a/platform/core-impl/src/com/intellij/ide/plugins/PluginManagerCore.java b/platform/core-impl/src/com/intellij/ide/plugins/PluginManagerCore.java index 5b590fbedc2c..e10da34b0df2 100644 --- a/platform/core-impl/src/com/intellij/ide/plugins/PluginManagerCore.java +++ b/platform/core-impl/src/com/intellij/ide/plugins/PluginManagerCore.java @@ -8,6 +8,7 @@ import com.intellij.ide.StartupProgress; import com.intellij.ide.plugins.cl.PluginClassLoader; import com.intellij.openapi.application.Application; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.JetBrainsProtocolHandler; import com.intellij.openapi.application.PathManager; import com.intellij.openapi.application.ex.ApplicationInfoEx; import com.intellij.openapi.application.impl.ApplicationInfoImpl; @@ -51,7 +52,6 @@ import java.util.concurrent.CopyOnWriteArrayList; import java.util.zip.ZipEntry; import java.util.zip.ZipFile; -import static com.intellij.openapi.application.JetBrainsProtocolHandler.REQUIRED_PLUGINS_KEY; import static com.intellij.util.ObjectUtils.notNull; import static java.util.Collections.singletonList; @@ -85,7 +85,7 @@ public class PluginManagerCore { private static List ourDisabledPlugins; private static MultiMap ourBrokenPluginVersions; private static IdeaPluginDescriptor[] ourPlugins; - private static boolean ourUnitTestWithBundledPlugins = false; + private static boolean ourUnitTestWithBundledPlugins; static String myPluginError; static List myPlugins2Disable; @@ -137,7 +137,7 @@ public class PluginManagerCore { File file = new File(configPath, DISABLED_PLUGINS_FILENAME); if (file.isFile()) { ApplicationInfoEx appInfo = ApplicationInfoImpl.getShadowInstance(); - List requiredPlugins = StringUtil.split(System.getProperty(REQUIRED_PLUGINS_KEY, ""), ","); + List requiredPlugins = StringUtil.split(System.getProperty(JetBrainsProtocolHandler.REQUIRED_PLUGINS_KEY, ""), ","); try { boolean updateDisablePluginsList = false; try (BufferedReader reader = new BufferedReader(new FileReader(file))) { @@ -429,8 +429,7 @@ public class PluginManagerCore { return loadPlugins == null || Boolean.TRUE.toString().equals(loadPlugins); } - // used in upsource - public static void configureExtensions() { + private static void configureExtensions() { Extensions.registerAreaClass(ExtensionAreas.IDEA_PROJECT, null); Extensions.registerAreaClass(ExtensionAreas.IDEA_MODULE, ExtensionAreas.IDEA_PROJECT); } @@ -879,9 +878,9 @@ public class PluginManagerCore { return false; } - public static void resolveOptionalDescriptors(@NotNull String fileName, - @NotNull IdeaPluginDescriptorImpl descriptor, - @NotNull Function optionalDescriptorLoader) { + private static void resolveOptionalDescriptors(@NotNull String fileName, + @NotNull IdeaPluginDescriptorImpl descriptor, + @NotNull Function optionalDescriptorLoader) { Map> optionalConfigs = descriptor.getOptionalConfigs(); if (optionalConfigs != null && !optionalConfigs.isEmpty()) { Map> descriptors = new THashMap<>(optionalConfigs.size()); @@ -1067,7 +1066,7 @@ public class PluginManagerCore { descriptor.setUseCoreClassLoader(true); result.add(descriptor); if (progress != null && !SPECIAL_IDEA_PLUGIN.equals(descriptor.getName())) { - progress.showProgress("Plugin loaded: " + descriptor.getName(), PLUGINS_PROGRESS_PART * (float)(++i) / urls.size()); + progress.showProgress("Plugin loaded: " + descriptor.getName(), PLUGINS_PROGRESS_PART * (++i) / urls.size()); } } } @@ -1153,8 +1152,8 @@ public class PluginManagerCore { return topoSortPlugins(result, errors); } - @NotNull // used in upsource - public static IdeaPluginDescriptorImpl[] topoSortPlugins(@NotNull List result, @NotNull List errors) { + @NotNull + private static IdeaPluginDescriptorImpl[] topoSortPlugins(@NotNull List result, @NotNull List errors) { IdeaPluginDescriptorImpl[] pluginDescriptors = result.toArray(IdeaPluginDescriptorImpl.EMPTY_ARRAY); Map idToDescriptorMap = new THashMap<>(); @@ -1372,7 +1371,7 @@ public class PluginManagerCore { } if (progress != null) { - progress.showProgress("", PLUGINS_PROGRESS_PART + (i++ / (float)result.size()) * LOADERS_PROGRESS_PART); + progress.showProgress("", PLUGINS_PROGRESS_PART + i++ / (float)result.size() * LOADERS_PROGRESS_PART); } } @@ -1390,14 +1389,13 @@ public class PluginManagerCore { ourPlugins = pluginDescriptors; } - // used in upsource - public static void fixDescriptors(@NotNull IdeaPluginDescriptorImpl[] pluginDescriptors, - @NotNull ClassLoader parentLoader, - @NotNull Map idToDescriptorMap, - @NotNull Map disabledPluginNames, - @NotNull List brokenPluginsList, - @NotNull List result, - @NotNull List errors) { + private static void fixDescriptors(@NotNull IdeaPluginDescriptorImpl[] pluginDescriptors, + @NotNull ClassLoader parentLoader, + @NotNull Map idToDescriptorMap, + @NotNull Map disabledPluginNames, + @NotNull List brokenPluginsList, + @NotNull List result, + @NotNull List errors) { checkCanLoadPlugins(pluginDescriptors, parentLoader, disabledPluginNames, brokenPluginsList, result); filterBadPlugins(result, disabledPluginNames, errors); diff --git a/platform/platform-impl/src/com/intellij/concurrency/JobLauncherImpl.java b/platform/platform-impl/src/com/intellij/concurrency/JobLauncherImpl.java index 65ba75231614..221d6a87d54d 100644 --- a/platform/platform-impl/src/com/intellij/concurrency/JobLauncherImpl.java +++ b/platform/platform-impl/src/com/intellij/concurrency/JobLauncherImpl.java @@ -66,7 +66,7 @@ public class JobLauncherImpl extends JobLauncher { // call checkCanceled a bit more often than .invoke() while (!applier.isDone()) { ProgressManager.checkCanceled(); - // does automatic compensation against starvation + // does automatic compensation against starvation (in ForkJoinPool.awaitJoin) try { applier.get(1, TimeUnit.MILLISECONDS); } diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java b/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java index 25ab00c62366..761873d0a332 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/PluginInstaller.java @@ -132,7 +132,7 @@ public class PluginInstaller { installedDependant.add(pluginNode); // check for dependent plugins at first. - if (pluginNode.getDepends() != null && pluginNode.getDepends().size() > 0) { + if (pluginNode.getDepends() != null && !pluginNode.getDepends().isEmpty()) { // prepare plugins list for install final PluginId[] optionalDependentPluginIds = pluginNode.getOptionalDependentPluginIds(); final List depends = new ArrayList<>(); @@ -141,7 +141,7 @@ public class PluginInstaller { PluginId depPluginId = pluginNode.getDepends().get(i); if (PluginManager.isPluginInstalled(depPluginId) || PluginManagerCore.isModuleDependency(depPluginId) || InstalledPluginsState.getInstance().wasInstalled(depPluginId) || - (pluginIds != null && pluginIds.contains(depPluginId))) { + pluginIds != null && pluginIds.contains(depPluginId)) { // ignore installed or installing plugins continue; } @@ -150,7 +150,8 @@ public class PluginInstaller { PluginNode depPlugin; if (depPluginDescriptor instanceof PluginNode) { depPlugin = (PluginNode) depPluginDescriptor; - } else { + } + else { depPlugin = new PluginNode(depPluginId, depPluginId.getIdString(), "-1"); } @@ -164,7 +165,7 @@ public class PluginInstaller { } } - if (depends.size() > 0) { // has something to install prior installing the plugin + if (!depends.isEmpty()) { // has something to install prior installing the plugin final boolean[] proceed = new boolean[1]; try { ApplicationManager.getApplication().invokeAndWait(() -> { @@ -182,7 +183,7 @@ public class PluginInstaller { } } - if (optionalDeps.size() > 0) { + if (!optionalDeps.isEmpty()) { final boolean[] proceed = new boolean[1]; try { ApplicationManager.getApplication().invokeAndWait(() -> { diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/PluginNode.java b/platform/platform-impl/src/com/intellij/ide/plugins/PluginNode.java index 801ff368537b..2fe7f324c93f 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/PluginNode.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/PluginNode.java @@ -56,17 +56,17 @@ public class PluginNode implements IdeaPluginDescriptor { public PluginNode() { } - public PluginNode(PluginId id) { + public PluginNode(@NotNull PluginId id) { this.id = id; } - public PluginNode(PluginId id, String name, String size) { + public PluginNode(@NotNull PluginId id, String name, String size) { this.id = id; this.name = name; this.size = size; } - public void setCategory(String category) { + public void setCategory(@NotNull String category) { this.category = category; } @@ -75,14 +75,14 @@ public class PluginNode implements IdeaPluginDescriptor { return name; } - public void setName(String name) { + public void setName(@NotNull String name) { if (id == null) { id = PluginId.getId(name); } this.name = name; } - public void setId(String id) { + public void setId(@NotNull String id) { this.id = PluginId.getId(id); } @@ -140,7 +140,7 @@ public class PluginNode implements IdeaPluginDescriptor { return vendor; } - public void setVendor(String vendor) { + public void setVendor(@NotNull String vendor) { this.vendor = vendor; } @@ -158,7 +158,7 @@ public class PluginNode implements IdeaPluginDescriptor { return changeNotes; } - public void setChangeNotes(String changeNotes) { + public void setChangeNotes(@NotNull String changeNotes) { this.changeNotes = changeNotes; } @@ -263,12 +263,12 @@ public class PluginNode implements IdeaPluginDescriptor { return myDependencies; } - public void setDepends(List depends, @Nullable PluginId[] optionalDependencies) { + public void setDepends(@NotNull List depends, @Nullable PluginId[] optionalDependencies) { myDependencies = new ArrayList<>(depends); myOptionalDependencies = optionalDependencies; } - public void addDepends(String id) { + public void addDepends(@NotNull String id) { (myDependencies != null ? myDependencies : (myDependencies = new ArrayList<>())).add(PluginId.getId(id)); } @@ -276,11 +276,11 @@ public class PluginNode implements IdeaPluginDescriptor { return myTags; } - public void setTags(List tags) { + public void setTags(@NotNull List tags) { myTags = new ArrayList<>(tags); } - void addTags(String tag) { + void addTags(@NotNull String tag) { (myTags != null ? myTags : (myTags = new ArrayList<>())).add(tag); } diff --git a/platform/platform-impl/src/com/intellij/ide/plugins/RepositoryContentHandler.java b/platform/platform-impl/src/com/intellij/ide/plugins/RepositoryContentHandler.java index f8b53a1cf27f..532e25eb2613 100644 --- a/platform/platform-impl/src/com/intellij/ide/plugins/RepositoryContentHandler.java +++ b/platform/platform-impl/src/com/intellij/ide/plugins/RepositoryContentHandler.java @@ -151,6 +151,7 @@ class RepositoryContentHandler extends DefaultHandler { currentValue.append(ch, start, length); } + @NotNull private String buildCategoryName() { if (categoryName == null) { StringBuilder builder = new StringBuilder();