]> source.dussan.org Git - sonarqube.git/commitdiff
SONAR-6370 remove concept of core plugin
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Mon, 1 Jun 2015 21:43:39 +0000 (23:43 +0200)
committerSimon Brandhof <simon.brandhof@sonarsource.com>
Fri, 5 Jun 2015 07:54:05 +0000 (09:54 +0200)
14 files changed:
server/sonar-server/src/main/java/org/sonar/server/platform/DefaultServerFileSystem.java
server/sonar-server/src/main/java/org/sonar/server/platform/monitoring/PluginsMonitor.java
server/sonar-server/src/main/java/org/sonar/server/plugins/PluginReferentialMetadataConverter.java
server/sonar-server/src/main/java/org/sonar/server/plugins/ServerPluginRepository.java
server/sonar-server/src/main/java/org/sonar/server/plugins/ws/InstalledAction.java
server/sonar-server/src/test/java/org/sonar/server/plugins/PluginReferentialMetadataConverterTest.java
server/sonar-server/src/test/java/org/sonar/server/plugins/ServerPluginRepositoryTest.java
server/sonar-server/src/test/java/org/sonar/server/plugins/ws/InstalledActionTest.java
sonar-application/assembly.xml
sonar-batch/src/test/java/org/sonar/batch/bootstrap/BatchPluginInstallerTest.java
sonar-core/src/main/java/org/sonar/core/platform/PluginInfo.java
sonar-core/src/main/java/org/sonar/core/plugins/RemotePlugin.java
sonar-core/src/test/java/org/sonar/core/platform/PluginInfoTest.java
sonar-core/src/test/java/org/sonar/core/plugins/RemotePluginTest.java

index 5258e753057541fee2963221655a198b2878a681..4e4843fab1727f60afb26fbb7e380252afee03e9 100644 (file)
@@ -135,10 +135,6 @@ public class DefaultServerFileSystem implements ServerFileSystem, Startable {
     return new File(getHomeDir(), "lib/bundled-plugins");
   }
 
-  public File getCorePluginsDir() {
-    return new File(getHomeDir(), "lib/core-plugins");
-  }
-
   public File getDeprecatedPluginsDir() {
     return new File(getHomeDir(), "extensions/deprecated");
   }
index 591168f2831c226b980e9101361647ce2c0a3301..6317fe52773e90a2387d7599e8df5708080fc5ca 100644 (file)
 
 package org.sonar.server.platform.monitoring;
 
-import com.google.common.base.Predicate;
-import com.google.common.collect.Iterables;
+import java.util.LinkedHashMap;
 import org.sonar.core.platform.PluginInfo;
 import org.sonar.core.platform.PluginRepository;
 import org.sonar.updatecenter.common.Version;
 
-import javax.annotation.Nonnull;
-
-import java.util.LinkedHashMap;
-
 /**
  * Installed plugins (excluding core plugins)
  */
@@ -48,7 +43,7 @@ public class PluginsMonitor implements Monitor {
   @Override
   public LinkedHashMap<String, Object> attributes() {
     LinkedHashMap<String, Object> attributes = new LinkedHashMap<>();
-    for (PluginInfo plugin : plugins()) {
+    for (PluginInfo plugin : repository.getPluginInfos()) {
       LinkedHashMap<String, Object> pluginAttributes = new LinkedHashMap<>();
       pluginAttributes.put("Name", plugin.getName());
       Version version = plugin.getVersion();
@@ -59,13 +54,4 @@ public class PluginsMonitor implements Monitor {
     }
     return attributes;
   }
-
-  private Iterable<PluginInfo> plugins() {
-    return Iterables.filter(repository.getPluginInfos(), new Predicate<PluginInfo>() {
-      @Override
-      public boolean apply(@Nonnull PluginInfo info) {
-        return !info.isCore();
-      }
-    });
-  }
 }
index 1355a971f0c1a63cfc4d41199fa0f2b70b2b03fa..6d991d8ee316255808140a161cd8fd13cd463c9b 100644 (file)
@@ -48,9 +48,7 @@ public class PluginReferentialMetadataConverter {
   private static List<PluginManifest> getPluginManifestList(Collection<PluginInfo> metadata) {
     List<PluginManifest> pluginManifestList = newArrayList();
     for (PluginInfo plugin : metadata) {
-      if (!plugin.isCore()) {
-        pluginManifestList.add(toPluginManifest(plugin));
-      }
+      pluginManifestList.add(toPluginManifest(plugin));
     }
     return pluginManifestList;
   }
index 83b4f060fc2385f36d4cd584172ef1c8a423140f..ea29ff323f73237a25fb6c6a8048a870bffde538 100644 (file)
@@ -25,7 +25,16 @@ import com.google.common.base.Joiner;
 import com.google.common.base.Strings;
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.Ordering;
+import java.io.File;
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
 import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import javax.annotation.Nonnull;
 import org.apache.commons.io.FileUtils;
 import org.picocontainer.Startable;
 import org.sonar.api.Plugin;
@@ -38,17 +47,6 @@ import org.sonar.core.platform.PluginInfo;
 import org.sonar.core.platform.PluginLoader;
 import org.sonar.core.platform.PluginRepository;
 import org.sonar.server.platform.DefaultServerFileSystem;
-
-import javax.annotation.Nonnull;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
 import org.sonar.updatecenter.common.Version;
 
 import static com.google.common.collect.Iterables.transform;
@@ -73,7 +71,7 @@ import static org.sonar.core.platform.PluginInfo.jarToPluginInfo;
 public class ServerPluginRepository implements PluginRepository, Startable {
 
   private static final Logger LOG = Loggers.get(ServerPluginRepository.class);
-  private static final String[] JAR_FILE_EXTENSIONS = new String[]{"jar"};
+  private static final String[] JAR_FILE_EXTENSIONS = new String[] {"jar"};
   private static final Set<String> DEFAULT_BLACKLISTED_PLUGINS = ImmutableSet.of("scmactivity", "issuesreport");
   private static final Joiner SLASH_JOINER = Joiner.on(" / ").skipNulls();
 
@@ -105,7 +103,6 @@ public class ServerPluginRepository implements PluginRepository, Startable {
     loadPreInstalledPlugins();
     copyBundledPlugins();
     moveDownloadedPlugins();
-    loadCorePlugins();
     unloadIncompatiblePlugins();
     logInstalledPlugins();
     loadInstances();
@@ -208,13 +205,6 @@ public class ServerPluginRepository implements PluginRepository, Startable {
     }
   }
 
-  private void loadCorePlugins() {
-    for (File file : listJarFiles(fs.getCorePluginsDir())) {
-      PluginInfo info = PluginInfo.create(file).setCore(true);
-      registerPluginInfo(info);
-    }
-  }
-
   /**
    * Removes the plugins that are not compatible with current environment.
    */
@@ -294,15 +284,13 @@ public class ServerPluginRepository implements PluginRepository, Startable {
 
     for (String uninstallKey : uninstallKeys) {
       PluginInfo info = pluginInfosByKeys.get(uninstallKey);
-      if (!info.isCore()) {
-        try {
-          LOG.info("Uninstalling plugin {} [{}]", info.getName(), info.getKey());
-          // we don't reuse info.getFile() just to be sure that file is located in from extensions/plugins
-          File masterFile = new File(fs.getInstalledPluginsDir(), info.getNonNullJarFile().getName());
-          moveFileToDirectory(masterFile, uninstalledPluginsDir(), true);
-        } catch (IOException e) {
-          throw new IllegalStateException(format("Fail to uninstall plugin %s [%s]", info.getName(), info.getKey()), e);
-        }
+      try {
+        LOG.info("Uninstalling plugin {} [{}]", info.getName(), info.getKey());
+        // we don't reuse info.getFile() just to be sure that file is located in from extensions/plugins
+        File masterFile = new File(fs.getInstalledPluginsDir(), info.getNonNullJarFile().getName());
+        moveFileToDirectory(masterFile, uninstalledPluginsDir(), true);
+      } catch (IOException e) {
+        throw new IllegalStateException(format("Fail to uninstall plugin %s [%s]", info.getName(), info.getKey()), e);
       }
     }
   }
index bd0addab6882151c90cef7d9dfe6632db93bcb77..97946e070bee93039a906055852286aebd79207e 100644 (file)
@@ -34,6 +34,7 @@ import javax.annotation.Nullable;
 import java.util.Collection;
 import java.util.SortedSet;
 
+import static com.google.common.collect.ImmutableSortedSet.copyOf;
 import static com.google.common.collect.Iterables.filter;
 import static org.sonar.server.plugins.ws.PluginWSCommons.NAME_KEY_PLUGIN_METADATA_COMPARATOR;
 
@@ -76,10 +77,7 @@ public class InstalledAction implements PluginsWsAction {
   }
 
   private SortedSet<PluginInfo> retrieveAndSortPluginMetadata() {
-    return ImmutableSortedSet.copyOf(
-      NAME_KEY_PLUGIN_METADATA_COMPARATOR,
-      filter(pluginRepository.getPluginInfos(), NotCorePluginsPredicate.INSTANCE)
-      );
+    return copyOf(NAME_KEY_PLUGIN_METADATA_COMPARATOR, pluginRepository.getPluginInfos());
   }
 
   private void writeMetadataList(JsonWriter jsonWriter, Collection<PluginInfo> pluginMetadatas) {
@@ -90,13 +88,4 @@ public class InstalledAction implements PluginsWsAction {
     }
     jsonWriter.endArray();
   }
-
-  private enum NotCorePluginsPredicate implements Predicate<PluginInfo> {
-    INSTANCE;
-
-    @Override
-    public boolean apply(@Nullable PluginInfo input) {
-      return input != null && !input.isCore();
-    }
-  }
 }
index c7891203caae4bf85a4f4470763c603839274cc5..f75b8b34b8ccab4dae60dedaf96351e5b7aa12bf 100644 (file)
@@ -38,12 +38,4 @@ public class PluginReferentialMetadataConverterTest {
     assertThat(pluginReferential.getPlugins().get(0).getKey()).isEqualTo("foo");
   }
 
-  @Test
-  public void should_not_add_core_plugin() {
-    PluginInfo info = new PluginInfo("foo").setCore(true);
-
-    PluginReferential pluginReferential = PluginReferentialMetadataConverter.getInstalledPluginReferential(newArrayList(info));
-    assertThat(pluginReferential).isNotNull();
-    assertThat(pluginReferential.getPlugins()).hasSize(0);
-  }
 }
index 9381a722e9b56004764a02943af54c6c4152315a..238d76f0f8c4c33b9d56f0a93cc299f9250c9cb7 100644 (file)
@@ -63,7 +63,6 @@ public class ServerPluginRepositoryTest {
   @Before
   public void setUp() throws IOException {
     when(fs.getBundledPluginsDir()).thenReturn(temp.newFolder());
-    when(fs.getCorePluginsDir()).thenReturn(temp.newFolder());
     when(fs.getDeployedPluginsDir()).thenReturn(temp.newFolder());
     when(fs.getDownloadedPluginsDir()).thenReturn(temp.newFolder());
     when(fs.getHomeDir()).thenReturn(temp.newFolder());
@@ -78,18 +77,17 @@ public class ServerPluginRepositoryTest {
   }
 
   /**
-   * The first server startup (fresh db) installs bundled plugins and instantiates bundled + core plugins.
+   * The first server startup (fresh db) installs bundled plugins and instantiates bundled plugins.
    */
   @Test
   public void first_startup_installs_bundled_plugins() throws Exception {
     copyTestPluginTo("test-base-plugin", fs.getBundledPluginsDir());
-    copyTestPluginTo("test-core-plugin", fs.getCorePluginsDir());
     when(upgradeStatus.isFreshInstall()).thenReturn(true);
 
     underTest.start();
 
     // both plugins are installed
-    assertThat(underTest.getPluginInfosByKeys()).containsOnlyKeys("core", "testbase");
+    assertThat(underTest.getPluginInfosByKeys()).containsOnlyKeys("testbase");
   }
 
   @Test
@@ -103,20 +101,14 @@ public class ServerPluginRepositoryTest {
   }
 
   @Test
-  public void standard_startup_loads_core_and_installed_plugins() throws Exception {
+  public void standard_startup_loads_installed_plugins() throws Exception {
     copyTestPluginTo("test-base-plugin", fs.getInstalledPluginsDir());
-    copyTestPluginTo("test-core-plugin", fs.getCorePluginsDir());
 
     underTest.start();
 
-    // both plugins are installed
-    assertThat(underTest.getPluginInfosByKeys()).containsOnlyKeys("core", "testbase");
+    assertThat(underTest.getPluginInfosByKeys()).containsOnlyKeys("testbase");
   }
 
-  /**
-   * That sounds impossible, there are still core plugins for now, but it's still valuable
-   * to test sensibility to null values.
-   */
   @Test
   public void no_plugins_at_all_on_startup() {
     underTest.start();
index 15d405ccfa71cd06bd8158c3dd9277c57bc9fc89..2087259a96e9000d8bea93894dddc67a0eae5dfc 100644 (file)
@@ -19,6 +19,7 @@
  */
 package org.sonar.server.plugins.ws;
 
+import java.io.File;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.rules.TemporaryFolder;
@@ -29,8 +30,6 @@ import org.sonar.server.plugins.ServerPluginRepository;
 import org.sonar.server.ws.WsTester;
 import org.sonar.updatecenter.common.Version;
 
-import java.io.File;
-
 import static com.google.common.collect.ImmutableList.of;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.mockito.Mockito.mock;
@@ -77,20 +76,11 @@ public class InstalledActionTest {
     assertJson(response.outputAsString()).setStrictArrayOrder(true).isSimilarTo(JSON_EMPTY_PLUGIN_LIST);
   }
 
-  @Test
-  public void core_plugin_are_not_returned() throws Exception {
-    when(pluginRepository.getPluginInfos()).thenReturn(of(corePlugin("core1", "1.0")));
-
-    underTest.handle(request, response);
-
-    assertJson(response.outputAsString()).setStrictArrayOrder(true).isSimilarTo(JSON_EMPTY_PLUGIN_LIST);
-  }
-
   @Test
   public void empty_fields_are_not_serialized_to_json() throws Exception {
     when(pluginRepository.getPluginInfos()).thenReturn(
       of(
-      new PluginInfo("").setName("").setCore(false)
+      new PluginInfo("").setName("")
       )
       );
 
@@ -105,7 +95,6 @@ public class InstalledActionTest {
     when(pluginRepository.getPluginInfos()).thenReturn(of(
       new PluginInfo("plugKey")
         .setName("plugName")
-        .setCore(false)
         .setDescription("desc_it")
         .setVersion(Version.create("1.0"))
         .setLicense("license_hey")
@@ -189,11 +178,7 @@ public class InstalledActionTest {
     assertThat(response.outputAsString()).containsOnlyOnce("name2");
   }
 
-  private PluginInfo corePlugin(String key, String version) {
-    return new PluginInfo(key).setName(key).setCore(true).setVersion(Version.create(version));
-  }
-
   private PluginInfo plugin(String key, String name) {
-    return new PluginInfo(key).setName(name).setCore(false).setVersion(Version.create("1.0"));
+    return new PluginInfo(key).setName(name).setVersion(Version.create("1.0"));
   }
 }
index 88bb3d322250ab68beaa99a5f07b277f102d4adf..3571189d7cdebf78a25b4c9fe9ffb419ee4a3421 100644 (file)
       <scope>provided</scope>
     </dependencySet>
     <!-- Plugins -->
-    <dependencySet>
-      <outputDirectory>lib/core-plugins</outputDirectory>
-      <useTransitiveDependencies>false</useTransitiveDependencies>
-      <includes>
-        <include>org.codehaus.sonar.plugins:*</include>
-      </includes>
-      <scope>provided</scope>
-    </dependencySet>
     <dependencySet>
       <outputDirectory>lib/bundled-plugins</outputDirectory>
       <useTransitiveDependencies>false</useTransitiveDependencies>
index 03c3707919b41a5c0e2b993c8e8c93977d626e60..319f056dda1876cf097348b663d72560343d08ae 100644 (file)
@@ -51,7 +51,7 @@ public class BatchPluginInstallerTest {
   public void listRemotePlugins() {
 
     ServerClient server = mock(ServerClient.class);
-    when(server.request("/deploy/plugins/index.txt")).thenReturn("checkstyle,false\nsqale,false");
+    when(server.request("/deploy/plugins/index.txt")).thenReturn("checkstyle\nsqale");
     BatchPluginInstaller installer = new BatchPluginInstaller(server, fileCache, pluginPredicate);
 
     List<RemotePlugin> remotePlugins = installer.listRemotePlugins();
@@ -66,7 +66,7 @@ public class BatchPluginInstallerTest {
     ServerClient server = mock(ServerClient.class);
     BatchPluginInstaller installer = new BatchPluginInstaller(server, fileCache, pluginPredicate);
 
-    RemotePlugin remote = new RemotePlugin("checkstyle", true).setFile("checkstyle-plugin.jar", "fakemd5_1");
+    RemotePlugin remote = new RemotePlugin("checkstyle").setFile("checkstyle-plugin.jar", "fakemd5_1");
     File file = installer.download(remote);
 
     assertThat(file).isEqualTo(pluginJar);
index c11a618b0fd1342b342bbf8ffeace87c62bf3d71..63938311df02d499a9d6d60dbb56319c48aed19f 100644 (file)
@@ -133,8 +133,6 @@ public class PluginInfo implements Comparable<PluginInfo> {
   @CheckForNull
   private String basePlugin;
 
-  private boolean core = false;
-
   @CheckForNull
   private String implementationBuild;
 
@@ -223,10 +221,6 @@ public class PluginInfo implements Comparable<PluginInfo> {
     return basePlugin;
   }
 
-  public boolean isCore() {
-    return core;
-  }
-
   @CheckForNull
   public String getImplementationBuild() {
     return implementationBuild;
@@ -305,11 +299,6 @@ public class PluginInfo implements Comparable<PluginInfo> {
     return this;
   }
 
-  public PluginInfo setCore(boolean b) {
-    this.core = b;
-    return this;
-  }
-
   public PluginInfo setImplementationBuild(@Nullable String implementationBuild) {
     this.implementationBuild = implementationBuild;
     return this;
index 559faeb5a1a88630e3a6b04f12eb8f18fe6d70fc..f460118d44564681cb6beee8e9b3a9aff1511c7c 100644 (file)
  */
 package org.sonar.core.plugins;
 
+import java.io.File;
 import org.apache.commons.lang.StringUtils;
 import org.sonar.core.platform.PluginInfo;
 import org.sonar.home.cache.FileHashes;
 
-import java.io.File;
-
 public class RemotePlugin {
   private String pluginKey;
   private RemotePluginFile file = null;
-  private boolean core;
 
-  public RemotePlugin(String pluginKey, boolean core) {
+  public RemotePlugin(String pluginKey) {
     this.pluginKey = pluginKey;
-    this.core = core;
   }
 
   public static RemotePlugin create(PluginInfo pluginInfo) {
-    RemotePlugin result = new RemotePlugin(pluginInfo.getKey(), pluginInfo.isCore());
+    RemotePlugin result = new RemotePlugin(pluginInfo.getKey());
     result.setFile(pluginInfo.getNonNullJarFile());
     return result;
   }
 
   public static RemotePlugin unmarshal(String row) {
     String[] fields = StringUtils.split(row, ",");
-    RemotePlugin result = new RemotePlugin(fields[0], Boolean.parseBoolean(fields[1]));
-    if (fields.length > 2) {
-      String[] nameAndHash = StringUtils.split(fields[2], "|");
+    RemotePlugin result = new RemotePlugin(fields[0]);
+    if (fields.length >= 2) {
+      String[] nameAndHash = StringUtils.split(fields[1], "|");
       result.setFile(nameAndHash[0], nameAndHash[1]);
     }
     return result;
@@ -53,8 +50,7 @@ public class RemotePlugin {
 
   public String marshal() {
     StringBuilder sb = new StringBuilder();
-    sb.append(pluginKey).append(",");
-    sb.append(String.valueOf(core));
+    sb.append(pluginKey);
     sb.append(",").append(file.getFilename()).append("|").append(file.getHash());
     return sb.toString();
   }
@@ -63,10 +59,6 @@ public class RemotePlugin {
     return pluginKey;
   }
 
-  public boolean isCore() {
-    return core;
-  }
-
   public RemotePlugin setFile(String filename, String hash) {
     file = new RemotePluginFile(filename, hash);
     return this;
index d64a7323ff7c655a767e9d27360cc68a270f2a87..22f5e462afe3dfc65e736be6eba16a1e0c2d6796 100644 (file)
  */
 package org.sonar.core.platform;
 
+import java.io.File;
+import java.io.IOException;
+import java.util.Arrays;
+import java.util.List;
+import javax.annotation.Nullable;
 import org.apache.commons.io.FileUtils;
 import org.junit.Rule;
 import org.junit.Test;
@@ -26,13 +31,6 @@ import org.junit.rules.TemporaryFolder;
 import org.sonar.updatecenter.common.PluginManifest;
 import org.sonar.updatecenter.common.Version;
 
-import javax.annotation.Nullable;
-
-import java.io.File;
-import java.io.IOException;
-import java.util.Arrays;
-import java.util.List;
-
 import static com.google.common.collect.Ordering.natural;
 import static org.assertj.core.api.Assertions.assertThat;
 import static org.junit.Assert.fail;
@@ -60,7 +58,7 @@ public class PluginInfoTest {
   }
 
   @Test
-   public void test_comparison() {
+  public void test_comparison() {
     PluginInfo java1 = new PluginInfo("java").setVersion(Version.create("1.0"));
     PluginInfo java2 = new PluginInfo("java").setVersion(Version.create("2.0"));
     PluginInfo javaNoVersion = new PluginInfo("java");
@@ -142,7 +140,6 @@ public class PluginInfoTest {
     assertThat(pluginInfo.getVersion().getName()).isEqualTo("1.0");
     assertThat(pluginInfo.getJarFile()).isSameAs(jarFile);
     assertThat(pluginInfo.getMainClass()).isEqualTo("org.foo.FooPlugin");
-    assertThat(pluginInfo.isCore()).isFalse();
     assertThat(pluginInfo.getBasePlugin()).isNull();
     assertThat(pluginInfo.getDescription()).isNull();
     assertThat(pluginInfo.getHomepageUrl()).isNull();
@@ -171,10 +168,10 @@ public class PluginInfoTest {
     manifest.setOrganization("SonarSource");
     manifest.setOrganizationUrl("http://sonarsource.com");
     manifest.setIssueTrackerUrl("http://jira.com");
-    manifest.setRequirePlugins(new String[]{"java:2.0", "pmd:1.3"});
+    manifest.setRequirePlugins(new String[] {"java:2.0", "pmd:1.3"});
 
     File jarFile = temp.newFile();
-    PluginInfo pluginInfo = PluginInfo.create(jarFile, manifest).setCore(true);
+    PluginInfo pluginInfo = PluginInfo.create(jarFile, manifest);
 
     assertThat(pluginInfo.getBasePlugin()).isEqualTo("findbugs");
     assertThat(pluginInfo.getDescription()).isEqualTo("the desc");
@@ -186,7 +183,6 @@ public class PluginInfoTest {
     assertThat(pluginInfo.getOrganizationUrl()).isEqualTo("http://sonarsource.com");
     assertThat(pluginInfo.getMinimalSqVersion().getName()).isEqualTo("4.5.1");
     assertThat(pluginInfo.getRequiredPlugins()).extracting("key").containsOnly("java", "pmd");
-    assertThat(pluginInfo.isCore()).isTrue();
   }
 
   @Test
index 210813650b484152c37cd1205f07928435aa784a..7649e0e13a147696c6b5a5650030fd990377947f 100644 (file)
@@ -27,9 +27,9 @@ import static org.junit.Assert.assertThat;
 public class RemotePluginTest {
   @Test
   public void shouldEqual() {
-    RemotePlugin clirr1 = new RemotePlugin("clirr", false);
-    RemotePlugin clirr2 = new RemotePlugin("clirr", false);
-    RemotePlugin checkstyle = new RemotePlugin("checkstyle", true);
+    RemotePlugin clirr1 = new RemotePlugin("clirr");
+    RemotePlugin clirr2 = new RemotePlugin("clirr");
+    RemotePlugin checkstyle = new RemotePlugin("checkstyle");
     assertThat(clirr1.equals(clirr2), is(true));
     assertThat(clirr1.equals(clirr1), is(true));
     assertThat(clirr1.equals(checkstyle), is(false));
@@ -37,16 +37,15 @@ public class RemotePluginTest {
 
   @Test
   public void shouldMarshal() {
-    RemotePlugin clirr = new RemotePlugin("clirr", false).setFile("clirr-1.1.jar", "fakemd5");
+    RemotePlugin clirr = new RemotePlugin("clirr").setFile("clirr-1.1.jar", "fakemd5");
     String text = clirr.marshal();
-    assertThat(text, is("clirr,false,clirr-1.1.jar|fakemd5"));
+    assertThat(text, is("clirr,clirr-1.1.jar|fakemd5"));
   }
 
   @Test
   public void shouldUnmarshal() {
-    RemotePlugin clirr = RemotePlugin.unmarshal("clirr,false,clirr-1.1.jar|fakemd5");
+    RemotePlugin clirr = RemotePlugin.unmarshal("clirr,clirr-1.1.jar|fakemd5");
     assertThat(clirr.getKey(), is("clirr"));
-    assertThat(clirr.isCore(), is(false));
     assertThat(clirr.file().getFilename(), is("clirr-1.1.jar"));
     assertThat(clirr.file().getHash(), is("fakemd5"));
   }