diff options
author | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-11 23:08:37 +0000 |
---|---|---|
committer | lresende <lresende@13f79535-47bb-0310-9956-ffa450edef68> | 2009-11-11 23:08:37 +0000 |
commit | 4ef0430519e276c2bdecea75f7a0f42f49f0cf30 (patch) | |
tree | 19dd40a9336c52160da6671d2fb3d428725733d4 /branches/sca-java-1.5/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleProcessor.java | |
parent | 725006d4c47e63986ac042ade23a4d193298b1fe (diff) |
Moving 1.x branches
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@835132 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'branches/sca-java-1.5/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleProcessor.java')
-rw-r--r-- | branches/sca-java-1.5/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleProcessor.java | 141 |
1 files changed, 0 insertions, 141 deletions
diff --git a/branches/sca-java-1.5/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleProcessor.java b/branches/sca-java-1.5/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleProcessor.java deleted file mode 100644 index b3c2302f60..0000000000 --- a/branches/sca-java-1.5/modules/contribution-osgi/src/main/java/org/apache/tuscany/sca/contribution/osgi/impl/OSGiBundleProcessor.java +++ /dev/null @@ -1,141 +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.URL; -import java.util.List; -import java.util.jar.Attributes; -import java.util.jar.JarInputStream; -import java.util.jar.Manifest; - -import org.apache.tuscany.sca.contribution.Artifact; -import org.apache.tuscany.sca.contribution.Contribution; -import org.apache.tuscany.sca.contribution.osgi.BundleReference; -import org.apache.tuscany.sca.osgi.runtime.OSGiRuntime; - -/** - * OSGi bundle processor - * - * @version $Rev$ $Date$ - */ -public class OSGiBundleProcessor { - - private boolean initializedOSGi; - private OSGiRuntime osgiRuntime; - - public OSGiBundleProcessor() { - } - - public Object installContributionBundle(Contribution contribution) { - - JarInputStream jar = null; - Object bundle = null; - - try { - - URL contribURL = new URL(contribution.getLocation()); - jar = new JarInputStream(contribURL.openStream()); - - Manifest manifest = jar.getManifest(); - if (manifest != null && manifest.getMainAttributes() - .containsKey(new Attributes.Name("Bundle-SymbolicName"))) { - - initialize(); - if (osgiRuntime != null) - bundle = osgiRuntime.installBundle(contribURL.toString(), null); - } - } catch (Exception e) { - // If OSGi cannot process the jar, treat the bundle as a plain jar file. - } finally { - - try { - if (jar != null) - jar.close(); - } catch (IOException e) { - } - } - - return bundle; - } - - public BundleReference installNestedBundle(Contribution contribution, - String bundleSymbolicName, - String bundleVersion) { - - BundleReference bundleReference = null; - - initialize(); - if (osgiRuntime == null) - return null; - - List<Artifact> artifacts = contribution.getArtifacts(); - for (Artifact a : artifacts) { - if (a.getURI().endsWith(".jar")) { - - InputStream stream; - JarInputStream jar = null; - Object name; - Object version; - try { - - URL artifactURL = new URL(a.getLocation()); - stream = artifactURL.openStream(); - jar = new JarInputStream(artifactURL.openStream()); - Manifest manifest = jar.getManifest(); - name = manifest.getMainAttributes().get(new Attributes.Name("Bundle-SymbolicName")); - version = manifest.getMainAttributes().get(new Attributes.Name("Bundle-Version")); - - if (bundleSymbolicName.equals(name) && (bundleVersion == null || version == null || bundleVersion - .equals(version))) { - - Object bundle = osgiRuntime.installBundle(a.getLocation(), stream); - - bundleReference = new BundleReference(bundle, bundleSymbolicName, bundleVersion, a.getURI()); - - break; - } - - } catch (Exception e) { - - // If OSGi cannot process the jar, treat the bundle as a plain jar file. - } finally { - try { - if (jar != null) - jar.close(); - } catch (IOException e) { - } - } - } - } - return bundleReference; - } - - private void initialize() { - try { - if (!initializedOSGi) { - initializedOSGi = true; - osgiRuntime = OSGiRuntime.getRuntime(); - } - } catch (Exception e) { - } - } -} |