From 7162bfa80cbde70544b1d6dbd866812520595910 Mon Sep 17 00:00:00 2001 From: Anton Makeev Date: Wed, 30 Mar 2016 19:48:03 +0200 Subject: [PATCH] Platform: build numbers: support multi-component build numbers --- .../ide/plugins/IdeaPluginDescriptorImpl.java | 2 +- .../application/impl/ApplicationInfoImpl.java | 17 +++++++---------- .../wm/impl/welcomeScreen/FlatWelcomeFrame.java | 13 ++++++++++--- .../com/intellij/openapi/util/BuildNumber.java | 12 ------------ .../importWizard/EclipseImportBuilder.java | 10 +++++----- .../src/git/CommitMessageFormatter.kt | 6 +----- 6 files changed, 24 insertions(+), 36 deletions(-) diff --git a/platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.java b/platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.java index e28d31d5db81..e3ad45c7d100 100644 --- a/platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.java +++ b/platform/core-impl/src/com/intellij/ide/plugins/IdeaPluginDescriptorImpl.java @@ -226,7 +226,7 @@ public class IdeaPluginDescriptorImpl implements IdeaPluginDescriptor { myChangeNotes = pluginBean.changeNotes; myVersion = pluginBean.pluginVersion; if (myVersion == null) { - myVersion = PluginManagerCore.getBuildNumber().getBaselineVersion() + ".SNAPSHOT"; + myVersion = PluginManagerCore.getBuildNumber().asStringWithoutProductCode(); } myCategory = pluginBean.category; diff --git a/platform/core-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java b/platform/core-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java index 981d76ec7e36..30e81f2b7411 100644 --- a/platform/core-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java +++ b/platform/core-impl/src/com/intellij/openapi/application/impl/ApplicationInfoImpl.java @@ -262,6 +262,12 @@ public class ApplicationInfoImpl extends ApplicationInfoEx { @Override public String getFullVersion() { + String result = doGetFullVersion(); + if (isEAP()) result += " EAP"; + return result; + } + + private String doGetFullVersion() { if (myFullVersion == null) { if (!StringUtil.isEmptyOrSpaces(myMajorVersion)) { if (!StringUtil.isEmptyOrSpaces(myMinorVersion)) { @@ -503,16 +509,7 @@ public class ApplicationInfoImpl extends ApplicationInfoEx { @Override public String getFullApplicationName() { - StringBuilder buffer = new StringBuilder(); - buffer.append(getVersionName()); - buffer.append(" "); - if (getMajorVersion() != null && !isEAP() && !isBetaOrRC()) { - buffer.append(getFullVersion()); - } - else { - buffer.append(getBuild().asStringWithAllDetails()); - } - return buffer.toString(); + return getVersionName() + " " + getFullVersion(); } @Override diff --git a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java index d3697f21fd6c..d215d77557b9 100644 --- a/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java +++ b/platform/platform-impl/src/com/intellij/openapi/wm/impl/welcomeScreen/FlatWelcomeFrame.java @@ -424,12 +424,19 @@ public class FlatWelcomeFrame extends JFrame implements IdeFrame, AccessibleCont appName.setForeground(JBColor.foreground()); appName.setFont(font.deriveFont(JBUI.scale(36f)).deriveFont(Font.PLAIN)); appName.setHorizontalAlignment(SwingConstants.CENTER); - String appVersion = "Version " + app.getFullVersion(); + String appVersion = "Version "; - if (app.isEAP() && app.getBuild().getBuildNumber() < Integer.MAX_VALUE) { - appVersion += " (" + app.getBuild().asString() + ")"; + if (app.getBuild().getFormat() == BuildNumber.Format.YEAR_BASED) { + appVersion += app.isEAP() ? (app.getBuild().asStringWithoutProductCode() + " EAP") : app.getFullVersion(); } + else { + appVersion += app.getFullVersion(); + if (app.isEAP() && app.getBuild().getBuildNumber() < Integer.MAX_VALUE) { + appVersion += " (" + app.getBuild().asString() + ")"; + } + } + JLabel version = new JLabel(appVersion); version.setFont(getProductFont().deriveFont(JBUI.scale(16f))); version.setHorizontalAlignment(SwingConstants.CENTER); diff --git a/platform/util/src/com/intellij/openapi/util/BuildNumber.java b/platform/util/src/com/intellij/openapi/util/BuildNumber.java index bbfe08ee2471..35e94d9663c1 100644 --- a/platform/util/src/com/intellij/openapi/util/BuildNumber.java +++ b/platform/util/src/com/intellij/openapi/util/BuildNumber.java @@ -217,18 +217,6 @@ public class BuildNumber implements Comparable { return myComponents.length - o.myComponents.length; } - public int compareToWithVariableLength(@NotNull BuildNumber o) { - for (int i = 0; i < Math.min(myComponents.length, o.myComponents.length); i++) { - int result = myComponents[i] - o.myComponents[i]; - if (result != 0) return result; - - if (myComponents[i] == Integer.MAX_VALUE) return 0; // anything after first SNAPSHOT doesn't really matter - } - return myComponents.length - o.myComponents.length; - } - - - @NotNull public String getProductCode() { return myProductCode; diff --git a/plugins/eclipse/src/org/jetbrains/idea/eclipse/importWizard/EclipseImportBuilder.java b/plugins/eclipse/src/org/jetbrains/idea/eclipse/importWizard/EclipseImportBuilder.java index 7cb9ca82a35e..95ae2cde1bb0 100644 --- a/plugins/eclipse/src/org/jetbrains/idea/eclipse/importWizard/EclipseImportBuilder.java +++ b/plugins/eclipse/src/org/jetbrains/idea/eclipse/importWizard/EclipseImportBuilder.java @@ -19,8 +19,8 @@ import com.intellij.notification.Notification; import com.intellij.notification.NotificationType; import com.intellij.notification.Notifications; import com.intellij.openapi.application.ApplicationManager; +import com.intellij.openapi.application.ApplicationNamesInfo; import com.intellij.openapi.application.ModalityState; -import com.intellij.openapi.application.ex.ApplicationInfoEx; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.fileChooser.FileChooser; import com.intellij.openapi.fileChooser.FileChooserDescriptor; @@ -267,14 +267,14 @@ public class EclipseImportBuilder extends ProjectImportBuilder implement } } if (!files.isEmpty()) { - final int resultCode = Messages.showYesNoCancelDialog(ApplicationInfoEx.getInstanceEx().getFullApplicationName() + - " module files found:\n" + - StringUtil.join(files,new Function() { + final int resultCode = Messages.showYesNoCancelDialog(ApplicationNamesInfo.getInstance().getFullProductName() + + " module files found:\n" + + StringUtil.join(files,new Function() { public String fun(File file) { return file.getPath(); } }, "\n") + - ".\n Would you like to reuse them?", "Module Files Found", + ".\n Would you like to reuse them?", "Module Files Found", Messages.getQuestionIcon()); if (resultCode != Messages.YES) { if (resultCode == Messages.NO) { diff --git a/plugins/settings-repository/src/git/CommitMessageFormatter.kt b/plugins/settings-repository/src/git/CommitMessageFormatter.kt index 558a5667c598..027eb8364725 100644 --- a/plugins/settings-repository/src/git/CommitMessageFormatter.kt +++ b/plugins/settings-repository/src/git/CommitMessageFormatter.kt @@ -57,11 +57,7 @@ class IdeaCommitMessageFormatter : CommitMessageFormatter { append(appInfo.fullVersion) } else { - var buildString = build.asStringWithoutProductCode() - if (build.buildNumber == Integer.MAX_VALUE) { - buildString = buildString.replace(".SNAPSHOT", "") - } - append(buildString) + append(build.asStringWithoutProductCodeAndSnapshot()) } } }