diff --git a/CHANGELOG.md b/CHANGELOG.md index ca4cc7a4..bc9374f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ # CheckStyle-IDEA Changelog +* **5.67.3** Fix: Bundled configurations now have constant IDs when recreated or ported from earlier versions (#569). * **5.67.3** Fix: Bundled configurations are restored if absent. * **5.67.2** Fix: NPE in active modules configurations (#576). * **5.67.1** Fix: Improve serialisation from legacy formats (#574). diff --git a/src/main/java/org/infernus/idea/checkstyle/csapi/BundledConfig.java b/src/main/java/org/infernus/idea/checkstyle/csapi/BundledConfig.java index 770a6739..03538728 100644 --- a/src/main/java/org/infernus/idea/checkstyle/csapi/BundledConfig.java +++ b/src/main/java/org/infernus/idea/checkstyle/csapi/BundledConfig.java @@ -13,12 +13,14 @@ public enum BundledConfig { /** the Sun checks */ - SUN_CHECKS("(bundled)", "Sun Checks", "/sun_checks.xml"), + SUN_CHECKS("bundled-sun-checks", "(bundled)", "Sun Checks", "/sun_checks.xml"), /** the Google checks */ - GOOGLE_CHECKS("(bundled)", "Google Checks", "/google_checks.xml"); + GOOGLE_CHECKS("bundled-google-checks", "(bundled)", "Google Checks", "/google_checks.xml"); + private final String id; + private final String location; private final String description; @@ -26,13 +28,19 @@ public enum BundledConfig { private final String path; - BundledConfig(@NotNull final String location, @NotNull final String description, + BundledConfig(@NotNull final String id, + @NotNull final String location, + @NotNull final String description, @NotNull final String path) { + this.id = id; this.location = location; this.description = description; this.path = path; } + public String getId() { + return id; + } @NotNull public String getLocation() { diff --git a/src/main/java/org/infernus/idea/checkstyle/model/BundledConfigurationLocation.java b/src/main/java/org/infernus/idea/checkstyle/model/BundledConfigurationLocation.java index b40cd506..88da3012 100644 --- a/src/main/java/org/infernus/idea/checkstyle/model/BundledConfigurationLocation.java +++ b/src/main/java/org/infernus/idea/checkstyle/model/BundledConfigurationLocation.java @@ -15,10 +15,9 @@ public class BundledConfigurationLocation extends ConfigurationLocation { @NotNull private final BundledConfig bundledConfig; - BundledConfigurationLocation(@NotNull final String id, - @NotNull final BundledConfig bundledConfig, + BundledConfigurationLocation(@NotNull final BundledConfig bundledConfig, @NotNull final Project project) { - super(id, ConfigurationType.BUNDLED, project); + super(bundledConfig.getId(), ConfigurationType.BUNDLED, project); super.setLocation(bundledConfig.getLocation()); super.setDescription(bundledConfig.getDescription()); @@ -62,6 +61,6 @@ public boolean isRemovable() { @Override @NotNull public BundledConfigurationLocation clone() { - return new BundledConfigurationLocation(getId(), bundledConfig, getProject()); + return new BundledConfigurationLocation(bundledConfig, getProject()); } } diff --git a/src/main/java/org/infernus/idea/checkstyle/model/ConfigurationLocationFactory.java b/src/main/java/org/infernus/idea/checkstyle/model/ConfigurationLocationFactory.java index b30b8eb5..4f60b647 100644 --- a/src/main/java/org/infernus/idea/checkstyle/model/ConfigurationLocationFactory.java +++ b/src/main/java/org/infernus/idea/checkstyle/model/ConfigurationLocationFactory.java @@ -67,7 +67,7 @@ public class ConfigurationLocationFactory { break; case BUNDLED: - configurationLocation = new BundledConfigurationLocation(id, BundledConfig.fromDescription(description), project); + configurationLocation = new BundledConfigurationLocation(BundledConfig.fromDescription(description), project); break; case LEGACY_CLASSPATH: @@ -95,7 +95,7 @@ public class ConfigurationLocationFactory { public @NotNull BundledConfigurationLocation create(@NotNull final BundledConfig bundledConfig, @NotNull final Project project) { - return new BundledConfigurationLocation(UUID.randomUUID().toString(), bundledConfig, project); + return new BundledConfigurationLocation(bundledConfig, project); } } diff --git a/src/main/resources/META-INF/plugin.xml b/src/main/resources/META-INF/plugin.xml index 00b58deb..b6c0bec0 100644 --- a/src/main/resources/META-INF/plugin.xml +++ b/src/main/resources/META-INF/plugin.xml @@ -24,6 +24,7 @@ +
  • 5.67.3: Fix: Bundled configurations now have constant IDs when recreated or ported from earlier versions (#569).
  • 5.67.3: Fix: Bundled configurations are restored if absent.
  • 5.67.2: Fix: NPE in active modules configurations (#576).
  • 5.67.1: Fix: Improve serialisation from legacy formats (#574).
  • diff --git a/src/test/java/org/infernus/idea/checkstyle/model/ConfigurationLocationTest.java b/src/test/java/org/infernus/idea/checkstyle/model/ConfigurationLocationTest.java index 2c8391fc..601e344b 100644 --- a/src/test/java/org/infernus/idea/checkstyle/model/ConfigurationLocationTest.java +++ b/src/test/java/org/infernus/idea/checkstyle/model/ConfigurationLocationTest.java @@ -248,21 +248,21 @@ public void testSorting() { rfcl1.setDescription("descA"); rfcl1.setLocation("locA"); list.add(rfcl1); - list.add(new BundledConfigurationLocation("id3", BundledConfig.SUN_CHECKS, project)); + list.add(new BundledConfigurationLocation(BundledConfig.SUN_CHECKS, project)); RelativeFileConfigurationLocation rfcl2 = new RelativeFileConfigurationLocation(project, "id4"); rfcl2.setDescription("descC"); rfcl2.setLocation("locC"); list.add(rfcl2); - list.add(new BundledConfigurationLocation("id5", BundledConfig.GOOGLE_CHECKS, project)); + list.add(new BundledConfigurationLocation(BundledConfig.GOOGLE_CHECKS, project)); Collections.sort(list); assertEquals(BundledConfigurationLocation.class, list.get(0).getClass()); assertTrue(list.get(0).getDescription().contains("Sun Checks")); - assertTrue(list.contains(new BundledConfigurationLocation("id6", BundledConfig.SUN_CHECKS, project))); + assertTrue(list.contains(new BundledConfigurationLocation(BundledConfig.SUN_CHECKS, project))); assertEquals(BundledConfigurationLocation.class, list.get(1).getClass()); assertTrue(list.get(1).getDescription().contains("Google Checks")); - assertTrue(list.contains(new BundledConfigurationLocation("id7", BundledConfig.GOOGLE_CHECKS, project))); + assertTrue(list.contains(new BundledConfigurationLocation(BundledConfig.GOOGLE_CHECKS, project))); assertEquals(RelativeFileConfigurationLocation.class, list.get(2).getClass()); assertEquals("descA", list.get(2).getDescription()); assertEquals(FileConfigurationLocation.class, list.get(3).getClass());