public void update() throws IOException {
        String symbolicName = descriptor.bundleSymbolicName();
        String classPath = buildClassPath();
        String bundleActivator = DefaultGoPluginActivator.class.getCanonicalName();

        if (!manifestLocation.exists()) {
            manifestLocation.createNewFile();
        }

        updateManifest(symbolicName, classPath, bundleActivator);
    }
@Test
    void shouldCreateABundleManifestFromTheGivenPluginDescriptor() throws Exception {
        assertThat(valueFor(BUNDLE_SYMBOLICNAME)).isNull();
        assertThat(valueFor(BUNDLE_CLASSPATH)).isNull();

        GoPluginBundleDescriptor descriptor = new GoPluginBundleDescriptor(GoPluginDescriptor.builder().id("pluginId").pluginJarFileLocation("some-plugin.jar").bundleLocation(bundleLocation).isBundledPlugin(true).build());
        GoPluginOSGiManifest manifest = new GoPluginOSGiManifest(descriptor);
        manifest.update();

        assertThat(valueFor(BUNDLE_SYMBOLICNAME)).isEqualTo("pluginId");
        assertThat(valueFor(BUNDLE_ACTIVATOR)).isEqualTo(DefaultGoPluginActivator.class.getCanonicalName());
        assertThat(valueFor(BUNDLE_CLASSPATH)).isEqualTo("lib/go-plugin-activator.jar,.,lib/dependency.jar");

        assertThat(descriptor.bundleSymbolicName()).isEqualTo("pluginId");
    }