You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@karaf.apache.org by jb...@apache.org on 2011/01/17 15:36:05 UTC

svn commit: r1059934 - in /karaf/trunk: ./ assembly/ assembly/src/main/descriptors/ assembly/src/main/filtered-resources/etc/ deployer/ deployer/wrap/ deployer/wrap/src/ deployer/wrap/src/main/ deployer/wrap/src/main/java/ deployer/wrap/src/main/java/o...

Author: jbonofre
Date: Mon Jan 17 14:36:04 2011
New Revision: 1059934

URL: http://svn.apache.org/viewvc?rev=1059934&view=rev
Log:
[KARAF-380] Add a very simple wrap deployer for non OSGi jar files.

Added:
    karaf/trunk/deployer/wrap/
    karaf/trunk/deployer/wrap/pom.xml
    karaf/trunk/deployer/wrap/src/
    karaf/trunk/deployer/wrap/src/main/
    karaf/trunk/deployer/wrap/src/main/java/
    karaf/trunk/deployer/wrap/src/main/java/org/
    karaf/trunk/deployer/wrap/src/main/java/org/apache/
    karaf/trunk/deployer/wrap/src/main/java/org/apache/karaf/
    karaf/trunk/deployer/wrap/src/main/java/org/apache/karaf/deployer/
    karaf/trunk/deployer/wrap/src/main/java/org/apache/karaf/deployer/wrap/
    karaf/trunk/deployer/wrap/src/main/java/org/apache/karaf/deployer/wrap/WrapDeploymentListener.java
    karaf/trunk/deployer/wrap/src/main/resources/
    karaf/trunk/deployer/wrap/src/main/resources/OSGI-INF/
    karaf/trunk/deployer/wrap/src/main/resources/OSGI-INF/blueprint/
    karaf/trunk/deployer/wrap/src/main/resources/OSGI-INF/blueprint/wrap-deployer.xml
Modified:
    karaf/trunk/assembly/pom.xml
    karaf/trunk/assembly/src/main/descriptors/unix-bin.xml
    karaf/trunk/assembly/src/main/descriptors/windows-bin.xml
    karaf/trunk/assembly/src/main/filtered-resources/etc/startup.properties
    karaf/trunk/deployer/pom.xml
    karaf/trunk/pom.xml

Modified: karaf/trunk/assembly/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/assembly/pom.xml?rev=1059934&r1=1059933&r2=1059934&view=diff
==============================================================================
--- karaf/trunk/assembly/pom.xml (original)
+++ karaf/trunk/assembly/pom.xml Mon Jan 17 14:36:04 2011
@@ -80,6 +80,10 @@
             <artifactId>org.apache.karaf.deployer.war</artifactId>
         </dependency>
         <dependency>
+            <groupId>org.apache.karaf.deployer</groupId>
+            <artifactId>org.apache.karaf.deployer.wrap</artifactId>
+        </dependency>
+        <dependency>
             <groupId>org.apache.karaf.features</groupId>
             <artifactId>org.apache.karaf.features.core</artifactId>
         </dependency>

Modified: karaf/trunk/assembly/src/main/descriptors/unix-bin.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/assembly/src/main/descriptors/unix-bin.xml?rev=1059934&r1=1059933&r2=1059934&view=diff
==============================================================================
--- karaf/trunk/assembly/src/main/descriptors/unix-bin.xml (original)
+++ karaf/trunk/assembly/src/main/descriptors/unix-bin.xml Mon Jan 17 14:36:04 2011
@@ -235,6 +235,7 @@
                 <include>org.apache.karaf.deployer:org.apache.karaf.deployer.blueprint</include>
                 <include>org.apache.karaf.deployer:org.apache.karaf.deployer.features</include>
                 <include>org.apache.karaf.deployer:org.apache.karaf.deployer.kar</include>
+                <include>org.apache.karaf.deployer:org.apache.karaf.deployer.wrap</include>
             </includes>
         </dependencySet>
         <dependencySet>

Modified: karaf/trunk/assembly/src/main/descriptors/windows-bin.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/assembly/src/main/descriptors/windows-bin.xml?rev=1059934&r1=1059933&r2=1059934&view=diff
==============================================================================
--- karaf/trunk/assembly/src/main/descriptors/windows-bin.xml (original)
+++ karaf/trunk/assembly/src/main/descriptors/windows-bin.xml Mon Jan 17 14:36:04 2011
@@ -222,6 +222,7 @@
                 <include>org.apache.karaf.deployer:org.apache.karaf.deployer.blueprint</include>
                 <include>org.apache.karaf.deployer:org.apache.karaf.deployer.features</include>
                 <include>org.apache.karaf.deployer:org.apache.karaf.deployer.kar</include>
+                <include>org.apache.karaf.deployer:org.apache.karaf.deployer.wrap</include>
             </includes>
         </dependencySet>
         <dependencySet>

Modified: karaf/trunk/assembly/src/main/filtered-resources/etc/startup.properties
URL: http://svn.apache.org/viewvc/karaf/trunk/assembly/src/main/filtered-resources/etc/startup.properties?rev=1059934&r1=1059933&r2=1059934&view=diff
==============================================================================
--- karaf/trunk/assembly/src/main/filtered-resources/etc/startup.properties (original)
+++ karaf/trunk/assembly/src/main/filtered-resources/etc/startup.properties Mon Jan 17 14:36:04 2011
@@ -72,3 +72,4 @@ org/apache/karaf/deployer/org.apache.kar
 org/apache/karaf/deployer/org.apache.karaf.deployer.blueprint/${project.version}/org.apache.karaf.deployer.blueprint-${project.version}.jar=30
 org/apache/karaf/deployer/org.apache.karaf.deployer.features/${project.version}/org.apache.karaf.deployer.features-${project.version}.jar=30
 org/apache/karaf/deployer/org.apache.karaf.deployer.kar/${project.version}/org.apache.karaf.deployer.kar-${project.version}.jar=30
+org/apache/karaf/deployer/org.apache.karaf.deployer.wrap/${project.version}/org.apache.karaf.deployer.wrap-${project.version}.jar=30

Modified: karaf/trunk/deployer/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/deployer/pom.xml?rev=1059934&r1=1059933&r2=1059934&view=diff
==============================================================================
--- karaf/trunk/deployer/pom.xml (original)
+++ karaf/trunk/deployer/pom.xml Mon Jan 17 14:36:04 2011
@@ -38,6 +38,7 @@
         <module>features</module>
         <module>war</module>
         <module>kar</module>
+        <module>wrap</module>
     </modules>
 
 </project>

Added: karaf/trunk/deployer/wrap/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/deployer/wrap/pom.xml?rev=1059934&view=auto
==============================================================================
--- karaf/trunk/deployer/wrap/pom.xml (added)
+++ karaf/trunk/deployer/wrap/pom.xml Mon Jan 17 14:36:04 2011
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+    <!--
+
+        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.
+    -->
+
+    <modelVersion>4.0.0</modelVersion>
+
+    <parent>
+        <groupId>org.apache.karaf.deployer</groupId>
+        <artifactId>deployer</artifactId>
+        <version>2.1.99-SNAPSHOT</version>
+    </parent>
+
+    <artifactId>org.apache.karaf.deployer.wrap</artifactId>
+    <packaging>bundle</packaging>
+    <name>Apache Karaf :: Deployer :: Wrap Non OSGi Jar</name>
+
+    <description>This deployer transforms non OSGi jar files to a deployable bundle</description>
+
+    <properties>
+        <appendedResourcesDirectory>${basedir}/../../etc/appended-resources</appendedResourcesDirectory>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.osgi</groupId>
+            <artifactId>org.osgi.core</artifactId>
+            <scope>provided</scope>
+        </dependency>
+        <dependency>
+            <groupId>commons-logging</groupId>
+            <artifactId>commons-logging</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.felix</groupId>
+            <artifactId>org.apache.felix.fileinstall</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.servicemix.bundles</groupId>
+            <artifactId>org.apache.servicemix.bundles.junit</artifactId>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <configuration>
+                    <instructions>
+                        <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName>
+                        <Export-Package>${project.artifactId}*;version=${project.version}</Export-Package>
+                        <Import-Package>!${project.artifactId}*,*</Import-Package>
+                        <Private-Package>org.apache.karaf.deployer.wrap</Private-Package>
+                        <_versionpolicy>${bnd.version.policy}</_versionpolicy>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
\ No newline at end of file

Added: karaf/trunk/deployer/wrap/src/main/java/org/apache/karaf/deployer/wrap/WrapDeploymentListener.java
URL: http://svn.apache.org/viewvc/karaf/trunk/deployer/wrap/src/main/java/org/apache/karaf/deployer/wrap/WrapDeploymentListener.java?rev=1059934&view=auto
==============================================================================
--- karaf/trunk/deployer/wrap/src/main/java/org/apache/karaf/deployer/wrap/WrapDeploymentListener.java (added)
+++ karaf/trunk/deployer/wrap/src/main/java/org/apache/karaf/deployer/wrap/WrapDeploymentListener.java Mon Jan 17 14:36:04 2011
@@ -0,0 +1,61 @@
+/**
+ *
+ * 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.karaf.deployer.wrap;
+
+import org.apache.felix.fileinstall.ArtifactUrlTransformer;
+
+import java.io.File;
+import java.net.URL;
+import java.util.jar.Attributes;
+import java.util.jar.JarFile;
+import java.util.jar.Manifest;
+
+/**
+ * <p>
+ * A deployment listener that listens for non OSGi jar deployements.
+ * </p>
+ *
+ * @author jbonofre
+ */
+public class WrapDeploymentListener implements ArtifactUrlTransformer {
+
+    public boolean canHandle(File artifact) {
+        try {
+            JarFile jar = new JarFile(artifact);
+            // only handle non OSGi jar
+            Manifest manifest = jar.getManifest();
+            if (manifest != null &&
+                manifest.getMainAttributes().getValue(new Attributes.Name("Bundle-SymbolicName")) != null &&
+                manifest.getMainAttributes().getValue(new Attributes.Name("Bundle-Version")) != null) {
+                return false;
+            }
+            return true;
+        } catch (Exception e) {
+            return false;
+        }
+    }
+
+    public URL transform(URL artifact) throws Exception {
+        String path = artifact.getPath();
+        String protocol = artifact.getProtocol();
+
+        // TODO add Bundle-SymbolicName and Bundle-Version to the wrap URL
+        return new URL("wrap", null, protocol + ":" + path);
+    }
+
+}

Added: karaf/trunk/deployer/wrap/src/main/resources/OSGI-INF/blueprint/wrap-deployer.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/deployer/wrap/src/main/resources/OSGI-INF/blueprint/wrap-deployer.xml?rev=1059934&view=auto
==============================================================================
--- karaf/trunk/deployer/wrap/src/main/resources/OSGI-INF/blueprint/wrap-deployer.xml (added)
+++ karaf/trunk/deployer/wrap/src/main/resources/OSGI-INF/blueprint/wrap-deployer.xml Mon Jan 17 14:36:04 2011
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+    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.
+
+-->
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+           default-activation="lazy">
+
+    <bean id="wrapDeploymentListener" class="org.apache.karaf.deployer.wrap.WrapDeploymentListener"/>
+
+    <reference id="wrapUrlHandlerRef" interface="org.osgi.service.url.URLStreamHandlerService" filter="url.handler.protocol=wrap"/>
+
+    <service ref="wrapDeploymentListener" auto-export="interfaces" depends-on="wrapDeploymentListener"/>
+
+</blueprint>
\ No newline at end of file

Modified: karaf/trunk/pom.xml
URL: http://svn.apache.org/viewvc/karaf/trunk/pom.xml?rev=1059934&r1=1059933&r2=1059934&view=diff
==============================================================================
--- karaf/trunk/pom.xml (original)
+++ karaf/trunk/pom.xml Mon Jan 17 14:36:04 2011
@@ -286,6 +286,11 @@
                 <version>${project.version}</version>
             </dependency>
             <dependency>
+                <groupId>org.apache.karaf.deployer</groupId>
+                <artifactId>org.apache.karaf.deployer.wrap</artifactId>
+                <version>${project.version}</version>
+            </dependency>
+            <dependency>
                 <groupId>org.apache.karaf</groupId>
                 <artifactId>org.apache.karaf.management</artifactId>
                 <version>${project.version}</version>