diff options
Diffstat (limited to 'sca-java-2.x/tags/2.0-Beta2-RC3/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleActivator.java')
-rw-r--r-- | sca-java-2.x/tags/2.0-Beta2-RC3/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleActivator.java | 152 |
1 files changed, 0 insertions, 152 deletions
diff --git a/sca-java-2.x/tags/2.0-Beta2-RC3/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleActivator.java b/sca-java-2.x/tags/2.0-Beta2-RC3/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleActivator.java deleted file mode 100644 index af13d2ee98..0000000000 --- a/sca-java-2.x/tags/2.0-Beta2-RC3/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleActivator.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.apache.tuscany.sca.contribution.osgi.impl; - -import java.io.IOException; -import java.io.InputStream; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.jar.JarInputStream; -import java.util.jar.Manifest; - -import org.osgi.framework.Bundle; -import org.osgi.framework.BundleActivator; -import org.osgi.framework.BundleContext; -import org.osgi.framework.BundleException; -import org.osgi.framework.Constants; - -/** - * The Bundle Activator that receives the BundleContext - */ -public class OSGiBundleActivator implements BundleActivator { - private static BundleContext bundleContext; - - public static BundleContext getBundleContext() { - return bundleContext; - } - - public void start(BundleContext context) throws Exception { - bundleContext = context; - } - - public void stop(BundleContext context) throws Exception { - bundleContext = null; - } - - public static Bundle findBundle(URL bundleURL) { - if (bundleContext == null) { - return null; - } - Bundle[] installedBundles = bundleContext.getBundles(); - for (Bundle bundle : installedBundles) { - URL root = bundle.getEntry("/"); - if (root != null && root.getHost() != null && root.getHost().equals(bundleURL.getHost())) { - return bundle; - } - } - return null; - } - - public static Bundle findBundle(String symbolicName, String version) { - if (bundleContext == null) { - return null; - } - Bundle[] bundles = bundleContext.getBundles(); - if (version == null) { - version = "0.0.0"; - } - for (Bundle b : bundles) { - String v = (String)b.getHeaders().get(Constants.BUNDLE_VERSION); - if (v == null) { - v = "0.0.0"; - } - if (b.getSymbolicName().equals(symbolicName) && (version.equals("0.0.0") || v.equals(version))) { - return b; - } - } - return null; - } - - public static Bundle installBundle(String location, InputStream is) throws BundleException { - getBundleContext(); - return bundleContext.installBundle(location, is); - } - - public static Bundle installBundle(String location) throws BundleException, IOException { - getBundleContext(); - - URL url = new URL(location); - Bundle bundle = null; - InputStream is = url.openStream(); - JarInputStream jar = new JarInputStream(is); - - Manifest manifest = jar.getManifest(); - jar.close(); - if (manifest != null) { - String symbolicName = manifest.getMainAttributes().getValue(Constants.BUNDLE_SYMBOLICNAME); - String version = manifest.getMainAttributes().getValue(Constants.BUNDLE_VERSION); - if (symbolicName != null) { - bundle = findBundle(symbolicName, version); - if (bundle != null) { - return bundle; - } - } else { - return null; - } - } else { - return null; - } - try { - is = url.openStream(); - bundle = bundleContext.installBundle(location, is); - } finally { - is.close(); - } - return bundle; - } - - public static Bundle findBundleByLocation(String bundleLocation) { - if (bundleContext != null) { - Bundle[] installedBundles = bundleContext.getBundles(); - for (Bundle bundle : installedBundles) { - if (bundle.getLocation().equals(bundleLocation)) - return bundle; - } - } - return null; - } - - public static Bundle findBundle(String bundleLocation) { - if (bundleContext != null) { - if (bundleLocation.startsWith("bundle:") || bundleLocation.startsWith("bundleresource:") - || bundleLocation.startsWith("bundleentry:")) { - try { - return findBundle(new URL(bundleLocation)); - } catch (MalformedURLException e) { - // ignore - } - } else { - return findBundleByLocation(bundleLocation); - } - } - return null; - } - -} |