Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'bundles')
-rw-r--r--bundles/org.eclipse.osgi.compatibility.state/META-INF/MANIFEST.MF2
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/builders/OSGiManifestBuilderFactory.java6
-rw-r--r--bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/namespaces/EquinoxModuleDataNamespace.java5
3 files changed, 12 insertions, 1 deletions
diff --git a/bundles/org.eclipse.osgi.compatibility.state/META-INF/MANIFEST.MF b/bundles/org.eclipse.osgi.compatibility.state/META-INF/MANIFEST.MF
index 02641aeed..61fe6aa1f 100644
--- a/bundles/org.eclipse.osgi.compatibility.state/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.osgi.compatibility.state/META-INF/MANIFEST.MF
@@ -3,6 +3,6 @@ Bundle-ManifestVersion: 2
Bundle-Name: State
Bundle-SymbolicName: org.eclipse.osgi.compatibility.state
Bundle-Version: 1.0.0.qualifier
-Bundle-Activator: org.eclipse.osgi.compatibility.state.Activator
+ExtensionBundle-Activator: org.eclipse.osgi.compatibility.state.Activator
Fragment-Host: org.eclipse.osgi;bundle-version="3.10.0"
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/builders/OSGiManifestBuilderFactory.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/builders/OSGiManifestBuilderFactory.java
index 12fd02911..c4c688961 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/builders/OSGiManifestBuilderFactory.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/builders/OSGiManifestBuilderFactory.java
@@ -522,6 +522,12 @@ public final class OSGiManifestBuilderFactory {
// Get the activator
String activator = manifest.get(Constants.BUNDLE_ACTIVATOR);
+ if (activator == null && manifest.get(Constants.FRAGMENT_HOST) != null) {
+ // we look for the extension activator for fragments
+ // probably should do this only for framework extensions, but there is no harm to check for others
+ // it is only acted upon for framework extension fragments
+ activator = manifest.get(EquinoxModuleDataNamespace.EXTENSION_ACTIVATOR_HEADER);
+ }
if (activator != null) {
attributes.put(EquinoxModuleDataNamespace.CAPABILITY_ACTIVATOR, activator);
}
diff --git a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/namespaces/EquinoxModuleDataNamespace.java b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/namespaces/EquinoxModuleDataNamespace.java
index 4866efcc2..3c1dc9021 100644
--- a/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/namespaces/EquinoxModuleDataNamespace.java
+++ b/bundles/org.eclipse.osgi/container/src/org/eclipse/osgi/container/namespaces/EquinoxModuleDataNamespace.java
@@ -69,6 +69,11 @@ public class EquinoxModuleDataNamespace extends Namespace {
public static final String AUTOSTART_HEADER = "Eclipse-AutoStart"; //$NON-NLS-1$
/**
+ * The Equinox specific header that framework extension can used to specify an activator class.
+ */
+ public static final String EXTENSION_ACTIVATOR_HEADER = "ExtensionBundle-Activator"; //$NON-NLS-1$
+
+ /**
* Namespace name for equinox module data. Unlike typical name spaces
* this namespace is not intended to be used as an attribute.
*/

Back to the top