diff options
Diffstat (limited to 'bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/plugins/OldStylePluginTests.java')
-rw-r--r-- | bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/plugins/OldStylePluginTests.java | 284 |
1 files changed, 0 insertions, 284 deletions
diff --git a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/plugins/OldStylePluginTests.java b/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/plugins/OldStylePluginTests.java deleted file mode 100644 index 0a2eb018c..000000000 --- a/bundles/org.eclipse.osgi.tests/src/org/eclipse/osgi/tests/plugins/OldStylePluginTests.java +++ /dev/null @@ -1,284 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2013, 2016 IBM Corporation and others. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * IBM Corporation - initial API and implementation - *******************************************************************************/ -package org.eclipse.osgi.tests.plugins; - -import java.util.*; -import junit.framework.Test; -import junit.framework.TestSuite; -import org.eclipse.core.tests.harness.CoreTest; -import org.eclipse.osgi.service.pluginconversion.PluginConverter; -import org.eclipse.osgi.tests.OSGiTestsActivator; -import org.eclipse.osgi.tests.bundles.BundleInstaller; -import org.osgi.framework.*; -import org.osgi.framework.namespace.*; -import org.osgi.framework.wiring.*; -import org.osgi.resource.Namespace; - -public class OldStylePluginTests extends CoreTest { - public static int BUNDLE_LISTENER = 0x01; - public static int SYNC_BUNDLE_LISTENER = 0x02; - public static int SIMPLE_RESULTS = 0x04; - public static final String BUNDLES_ROOT = "bundle_tests"; - private BundleInstaller installer; - private boolean compatPluginInstalled = false; - - public static Test suite() { - return new TestSuite(OldStylePluginTests.class); - } - - protected void setUp() throws Exception { - compatPluginInstalled = false; - for (BundleWire hostWire : getContext().getBundle(Constants.SYSTEM_BUNDLE_LOCATION).adapt(BundleWiring.class).getProvidedWires(HostNamespace.HOST_NAMESPACE)) { - if ("org.eclipse.osgi.compatibility.plugins".equals(hostWire.getRequirer().getSymbolicName())) { - compatPluginInstalled = true; - break; - } - } - if (compatPluginInstalled) { - assertTrue("Plugin compatibility fragment not configured.", getContext().getServiceReference(PluginConverter.class) != null); - } - installer = new BundleInstaller(BUNDLES_ROOT, OSGiTestsActivator.getContext()); - installer.refreshPackages(null); - } - - protected void tearDown() throws Exception { - installer.shutdown(); - installer = null; - } - - public BundleContext getContext() { - return OSGiTestsActivator.getContext(); - } - - public void testSimplePlugin() { - if (!compatPluginInstalled) { - return; - } - String pluginName = "test.plugins.a"; - Version pluginVersion = Version.parseVersion("1.0.0"); - Bundle bundle = installPlugin(pluginName, false); - BundleRevision revision = bundle.adapt(BundleRevision.class); - assertIdentity(revision, pluginName, pluginVersion, false); - assertTrue("Did not expect any requirements.", revision.getDeclaredRequirements(null).isEmpty()); - } - - public void testImportPlugin() { - if (!compatPluginInstalled) { - return; - } - String pluginName = "test.plugins.b"; - Version pluginVersion = Version.parseVersion("1.0.0"); - Bundle bundle = installPlugin(pluginName, false); - BundleRevision revision = bundle.adapt(BundleRevision.class); - assertIdentity(revision, pluginName, pluginVersion, false); - - Collection<BundleRequirement> requirements = revision.getDeclaredRequirements(null); - assertEquals("Wrong number of requirements: " + requirements, 7, requirements.size()); - int index = 0; - for (BundleRequirement req : requirements) { - index++; - Map<String, Object> matchAttributes = new HashMap<String, Object>(); - Map<String, Object> noMatchAttributes = new HashMap<String, Object>(); - - matchAttributes.put(BundleNamespace.BUNDLE_NAMESPACE, "x" + index); - noMatchAttributes.put(BundleNamespace.BUNDLE_NAMESPACE, "x" + index); - - Version match = null; - Version noMatch = null; - switch (index) { - case 1 : - match = Version.parseVersion("1.0.0"); - noMatch = Version.parseVersion("1.0.0.x"); - break; - case 2 : - match = Version.parseVersion("1.0.100"); - noMatch = Version.parseVersion("1.1"); - break; - case 4 : - match = Version.parseVersion("90000"); - noMatch = Version.parseVersion("0.1"); - break; - default : - match = Version.parseVersion("1.1"); - noMatch = Version.parseVersion("2.0"); - break; - } - - matchAttributes.put(AbstractWiringNamespace.CAPABILITY_BUNDLE_VERSION_ATTRIBUTE, match); - noMatchAttributes.put(AbstractWiringNamespace.CAPABILITY_BUNDLE_VERSION_ATTRIBUTE, noMatch); - Filter f = null; - try { - f = getContext().createFilter(req.getDirectives().get(Namespace.REQUIREMENT_FILTER_DIRECTIVE)); - } catch (InvalidSyntaxException e) { - fail("Failed to create filter.", e); - } - assertTrue("Did not match requirement: " + req + ": against: " + matchAttributes, f.matches(matchAttributes)); - assertFalse("Unexpected match requirement: " + req + ": against: " + matchAttributes, f.matches(noMatchAttributes)); - - String resolution = req.getDirectives().get(Namespace.REQUIREMENT_RESOLUTION_DIRECTIVE); - if (resolution == null) { - resolution = Namespace.RESOLUTION_MANDATORY; - } - String visibility = req.getDirectives().get(BundleNamespace.REQUIREMENT_VISIBILITY_DIRECTIVE); - if (visibility == null) { - visibility = BundleNamespace.VISIBILITY_PRIVATE; - } - - if (index == 6) { - assertEquals("Wrong visibility: " + req, BundleNamespace.VISIBILITY_REEXPORT, visibility); - } else { - assertEquals("Wrong visibility: " + req, BundleNamespace.VISIBILITY_PRIVATE, visibility); - } - if (index == 7) { - assertEquals("Wrong resolution: " + req, Namespace.RESOLUTION_OPTIONAL, resolution); - } else { - assertEquals("Wrong resolution: " + req, Namespace.RESOLUTION_MANDATORY, resolution); - } - } - } - - public void testExportSinglePackage() { - if (!compatPluginInstalled) { - return; - } - String pluginName = "test.plugins.c"; - Version pluginVersion = Version.parseVersion("1.0.0"); - Bundle bundle = installPlugin(pluginName, false); - BundleRevision revision = bundle.adapt(BundleRevision.class); - assertIdentity(revision, pluginName, pluginVersion, false); - assertTrue("Did not expect any requirements.", revision.getDeclaredRequirements(null).isEmpty()); - - Collection<BundleCapability> packages = revision.getDeclaredCapabilities(PackageNamespace.PACKAGE_NAMESPACE); - assertEquals("Wrong number of exports: " + packages, 1, packages.size()); - assertEquals("Wrong package name.", pluginName + ".exported", packages.iterator().next().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); - } - - public void testExportAllPackage() { - if (!compatPluginInstalled) { - return; - } - String pluginName = "test.plugins.d"; - Version pluginVersion = Version.parseVersion("1.0.0"); - Bundle bundle = installPlugin(pluginName, false); - BundleRevision revision = bundle.adapt(BundleRevision.class); - assertIdentity(revision, pluginName, pluginVersion, false); - assertTrue("Did not expect any requirements.", revision.getDeclaredRequirements(null).isEmpty()); - - Collection<BundleCapability> packages = revision.getDeclaredCapabilities(PackageNamespace.PACKAGE_NAMESPACE); - assertEquals("Wrong number of exports: " + packages, 4, packages.size()); - Iterator<BundleCapability> iPackages = packages.iterator(); - // Note that '.' is exported because scaning for * found a resource (plugin.xml) in root of the bundle. - assertEquals("Wrong package name.", ".", iPackages.next().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); - assertEquals("Wrong package name.", pluginName, iPackages.next().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); - assertEquals("Wrong package name.", pluginName + ".exported", iPackages.next().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); - assertEquals("Wrong package name.", pluginName + ".exported.sub", iPackages.next().getAttributes().get(PackageNamespace.PACKAGE_NAMESPACE)); - } - - public void testActivator() { - if (!compatPluginInstalled) { - return; - } - String pluginName = "test.plugins.e"; - Version pluginVersion = Version.parseVersion("1.0.0"); - Bundle bundle = installPlugin(pluginName, false); - BundleRevision revision = bundle.adapt(BundleRevision.class); - assertIdentity(revision, pluginName, pluginVersion, false); - - try { - bundle.start(); - Collection<ServiceReference<Object>> testServices = getContext().getServiceReferences(Object.class, "(" + Constants.BUNDLE_SYMBOLICNAME_ATTRIBUTE + "=" + bundle.getSymbolicName() + ")"); - assertFalse("Did not find registered service.", testServices.isEmpty()); - } catch (BundleException e) { - fail("Failed to start bundle.", e); - } catch (InvalidSyntaxException e) { - fail("Failed to create filter.", e); - } - } - - public void testExtensionSingleton() { - if (!compatPluginInstalled) { - return; - } - String pluginName = "test.plugins.f"; - Version pluginVersion = Version.parseVersion("1.0.0"); - Bundle bundle = installPlugin(pluginName, false); - BundleRevision revision = bundle.adapt(BundleRevision.class); - assertIdentity(revision, pluginName, pluginVersion, true); - } - - public void testFragment() { - if (!compatPluginInstalled) { - return; - } - String pluginName = "test.plugins.g"; - Version pluginVersion = Version.parseVersion("1.0.0"); - Bundle bundle = installPlugin(pluginName, false); - BundleRevision revision = bundle.adapt(BundleRevision.class); - assertIdentity(revision, pluginName, pluginVersion, false); - assertTrue("revision is not a fragment.", (revision.getTypes() & BundleRevision.TYPE_FRAGMENT) != 0); - Collection<BundleRequirement> reqs = revision.getDeclaredRequirements(HostNamespace.HOST_NAMESPACE); - assertEquals("Wrong number of host requirements.", 1, reqs.size()); - BundleRequirement req = reqs.iterator().next(); - - Map<String, Object> matchAttributes = new HashMap<String, Object>(); - Map<String, Object> noMatchAttributes = new HashMap<String, Object>(); - - matchAttributes.put(HostNamespace.HOST_NAMESPACE, "x"); - noMatchAttributes.put(HostNamespace.HOST_NAMESPACE, "x"); - - Version match = Version.parseVersion("1.1"); - Version noMatch = Version.parseVersion("2.0"); - - matchAttributes.put(AbstractWiringNamespace.CAPABILITY_BUNDLE_VERSION_ATTRIBUTE, match); - noMatchAttributes.put(AbstractWiringNamespace.CAPABILITY_BUNDLE_VERSION_ATTRIBUTE, noMatch); - Filter f = null; - try { - f = getContext().createFilter(req.getDirectives().get(Namespace.REQUIREMENT_FILTER_DIRECTIVE)); - } catch (InvalidSyntaxException e) { - fail("Failed to create filter.", e); - } - assertTrue("Did not match requirement: " + req + ": against: " + matchAttributes, f.matches(matchAttributes)); - assertFalse("Unexpected match requirement: " + req + ": against: " + matchAttributes, f.matches(noMatchAttributes)); - - } - - private void assertIdentity(BundleRevision revision, String pluginName, Version pluginVersion, boolean isSingleton) { - assertEquals("Wrong symbolic name", pluginName, revision.getSymbolicName()); - assertEquals("Wrong version.", pluginVersion, revision.getVersion()); - Collection<BundleCapability> capabilities = new ArrayList<BundleCapability>(); - capabilities.addAll(revision.getDeclaredCapabilities(IdentityNamespace.IDENTITY_NAMESPACE)); - capabilities.addAll(revision.getDeclaredCapabilities(BundleNamespace.BUNDLE_NAMESPACE)); - capabilities.addAll(revision.getDeclaredCapabilities(HostNamespace.HOST_NAMESPACE)); - int expectedNumCaps = (revision.getTypes() & BundleRevision.TYPE_FRAGMENT) == 0 ? 3 : 1; - assertEquals("Wrong number of capabilities: " + capabilities, expectedNumCaps, capabilities.size()); - for (BundleCapability cap : capabilities) { - String namespace = cap.getNamespace(); - String versionKey = IdentityNamespace.IDENTITY_NAMESPACE.equals(namespace) ? IdentityNamespace.CAPABILITY_VERSION_ATTRIBUTE : AbstractWiringNamespace.CAPABILITY_BUNDLE_VERSION_ATTRIBUTE; - Map<String, Object> attrs = cap.getAttributes(); - assertEquals("Wrong name: " + namespace, pluginName, attrs.get(namespace)); - assertEquals("Wrong version: " + namespace, pluginVersion, attrs.get(versionKey)); - String singletonDirective = cap.getDirectives().get(IdentityNamespace.CAPABILITY_SINGLETON_DIRECTIVE); - singletonDirective = singletonDirective == null ? Boolean.FALSE.toString() : singletonDirective; - assertEquals("Wrong singleton directive.", isSingleton, Boolean.TRUE.toString().equals(singletonDirective)); - } - } - - private Bundle installPlugin(String plugin, boolean expectedFailure) { - try { - return installer.installBundle(plugin); - } catch (BundleException e) { - if (!expectedFailure) { - fail("Failed to install plugin.", e); - } - return null; - } - } -}
\ No newline at end of file |