diff options
Diffstat (limited to 'bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/hooks/framework/StorageHookTests.java')
-rw-r--r-- | bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/hooks/framework/StorageHookTests.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/hooks/framework/StorageHookTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/hooks/framework/StorageHookTests.java index 9e8c2d63d..b776cfb76 100644 --- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/hooks/framework/StorageHookTests.java +++ b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/hooks/framework/StorageHookTests.java @@ -29,6 +29,8 @@ import org.osgi.framework.Bundle; import org.osgi.framework.BundleException; import org.osgi.framework.Constants; import org.osgi.framework.launch.Framework; +import org.osgi.framework.namespace.BundleNamespace; +import org.osgi.framework.wiring.BundleCapability; import org.osgi.framework.wiring.BundleRevision; import org.osgi.resource.Capability; import org.osgi.service.packageadmin.PackageAdmin; @@ -44,6 +46,7 @@ public class StorageHookTests extends AbstractFrameworkHookTests { private static final String HOOK_CONFIGURATOR_FIELD_VALIDATE_CALLED = "validateCalled"; private static final String HOOK_CONFIGURATOR_FIELD_DELETING_CALLED = "deletingGenerationCalled"; private static final String HOOK_CONFIGURATOR_FIELD_ADAPT_MANIFEST = "adaptManifest"; + private static final String HOOK_CONFIGURATOR_FIELD_ADAPT_CAPABILITY_ATTRIBUTE = "adaptCapabilityAttribute"; private static final String HOOK_CONFIGURATOR_FIELD_REPLACE_BUILDER = "replaceModuleBuilder"; private static final String HOOK_CONFIGURATOR_FIELD_HANDLE_CONTENT = "handleContentConnection"; private static final String HOOK_CONFIGURATOR_FIELD_NULL_STORAGE_HOOK = "returnNullStorageHook"; @@ -223,6 +226,15 @@ public class StorageHookTests extends AbstractFrameworkHookTests { assertEquals("Wrong BSN.", "replace", b.getSymbolicName()); testCaps = b.adapt(BundleRevision.class).getCapabilities("replace"); assertEquals("Wrong number of capabilities.", 1, testCaps.size()); + + setFactoryClassReplaceBuilder(false); + setFactoryClassAdaptCapabilityAttribute(true); + b.uninstall(); + installBundle(); + b = framework.getBundleContext().getBundle(location); + BundleCapability bundleCap = b.adapt(BundleRevision.class).getDeclaredCapabilities(BundleNamespace.BUNDLE_NAMESPACE).iterator().next(); + assertEquals("Wrong attribute value", "testAttribute", bundleCap.getAttributes().get("matching.attribute")); + assertEquals("Wrong attribute value", "testDirective", bundleCap.getDirectives().get("matching.directive")); } @SuppressWarnings("deprecation") @@ -390,6 +402,11 @@ public class StorageHookTests extends AbstractFrameworkHookTests { clazz.getField(HOOK_CONFIGURATOR_FIELD_ADAPT_MANIFEST).set(null, value); } + private void setFactoryClassAdaptCapabilityAttribute(boolean value) throws Exception { + Class<?> clazz = classLoader.loadClass(HOOK_CONFIGURATOR_CLASS); + clazz.getField(HOOK_CONFIGURATOR_FIELD_ADAPT_CAPABILITY_ATTRIBUTE).set(null, value); + } + private void setFactoryClassReplaceBuilder(boolean value) throws Exception { Class<?> clazz = classLoader.loadClass(HOOK_CONFIGURATOR_CLASS); clazz.getField(HOOK_CONFIGURATOR_FIELD_REPLACE_BUILDER).set(null, value); |