diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..9a6f0f7
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,107 @@
+<?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.servicemix.bundles</groupId>
+        <artifactId>bundles-pom</artifactId>
+        <version>11</version>
+        <relativePath>../bundles-pom/pom.xml</relativePath>        
+    </parent>
+
+    <groupId>org.apache.servicemix.bundles</groupId>
+    <artifactId>org.apache.servicemix.bundles.jsch-agentproxy-jsch</artifactId>
+    <packaging>bundle</packaging>
+    <version>0.0.7_1-SNAPSHOT</version>
+    <name>Apache ServiceMix :: Bundles :: ${pkgArtifactId}</name>
+    <description>This OSGi bundle wraps ${pkgArtifactId} ${pkgVersion} jar file.</description>
+
+    <properties>
+        <pkgGroupId>com.jcraft</pkgGroupId>
+        <pkgArtifactId>jsch.agentproxy.jsch</pkgArtifactId>
+        <pkgVersion>0.0.7</pkgVersion>
+        <servicemix.osgi.export.pkg>
+            com.jcraft.jsch.agentproxy
+        </servicemix.osgi.export.pkg>
+        <servicemix.osgi.import.pkg>
+            com.jcraft.jzlib;resolution:=optional;version="[1.1,2)",
+            keypairgen;resolution:=optional,
+            signature;resolution:=optional,
+            userauth;resolution:=optional,
+            org.ietf.jgss;resolution:=optional,
+            com.jcraft.jsch,
+            javax.crypto,
+            javax.crypto.interfaces,
+            javax.crypto.spec
+        </servicemix.osgi.import.pkg>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>${pkgGroupId}</groupId>
+            <artifactId>${pkgArtifactId}</artifactId>
+            <version>${pkgVersion}</version>
+        </dependency>
+
+        <!-- sources -->
+        <dependency>
+            <groupId>${pkgGroupId}</groupId>
+            <artifactId>${pkgArtifactId}</artifactId>
+            <version>${pkgVersion}</version>
+            <classifier>sources</classifier>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-shade-plugin</artifactId>
+                <executions>
+                    <execution>
+                        <phase>package</phase>
+                        <goals>
+                            <goal>shade</goal>
+                        </goals>
+                        <configuration>
+                            <artifactSet>
+                                <includes>
+                                    <include>${pkgGroupId}:${pkgArtifactId}</include>
+                                </includes>
+                            </artifactSet>
+                            <filters>
+                                <filter>
+                                    <artifact>${pkgGroupId}:${pkgArtifactId}</artifact>
+                                    <excludes>
+                                        <exclude>**</exclude>
+                                    </excludes>
+                                </filter>
+                            </filters>
+                            <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
+                            <createDependencyReducedPom>true</createDependencyReducedPom>
+                        </configuration>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+</project>
diff --git a/src/main/resources/OSGI-INF/bundle.info b/src/main/resources/OSGI-INF/bundle.info
new file mode 100644
index 0000000..ee328eb
--- /dev/null
+++ b/src/main/resources/OSGI-INF/bundle.info
@@ -0,0 +1,49 @@
+\u001B[1mSYNOPSIS\u001B[0m
+    ${project.description}
+
+    Original Maven URL:
+        \u001B[33mmvn:http://svn.apache.org/repos/asf/servicemix/m2-repo:${pkgGroupId}/${pkgArtifactId}/${pkgVersion}\u001B[0m
+
+\u001B[1mDESCRIPTION\u001B[0m
+    JSch is a pure Java implementation of SSH2.
+    JSch allows you to connect to an sshd server and use port forwarding, X11 forwarding, file transfer, etc., and you
+    can integrate its functionality into your own Java programs. JSch is licensed under BSD style license.
+
+    The current JSch has the following features.
+
+        * JSch is in pure Java, but it depends on JavaTM Cryptography Extension (JCE). JSch is know to work with:
+            o J2SE 1.4.0 or later (no additional libraries required).
+            o J2SE 1.3 and Sun's JCE reference implementation that can be obtained at
+              \u001B[36mhttp://java.sun.com/products/jce/\u001B[0m.
+            o J2SE 1.2.2 and later and Bouncycastle's JCE implementation that can be obtained at
+              \u001B[36mhttp://www.bouncycastle.org/\u001B[0m.
+        * SSH2 protocol support.
+        * Key exchange: diffie-hellman-group-exchange-sha1, diffie-hellman-group1-sha1
+        * Cipher: blowfish-cbc,3des-cbc,aes128-cbc,aes192-cbc,aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,3des-ctr,
+          arcfour,arcfour128,arcfour256
+        * MAC: hmac-md5, hmac-sha1, hmac-md5-96, hmac-sha1-96
+        * Host key type: ssh-dss,ssh-rsa
+        * Userauth: password
+        * Userauth: publickey(DSA,RSA)
+        * Userauth: keyboard-interactive
+        * Userauth: gss-api-with-mic
+        * X11 forwarding
+        * xauth spoofing
+        * connection through HTTP proxy.
+        * connection through SOCKS5 proxy.
+        * port forwarding.
+        * stream forwarding.
+        * signal sending. The unofficial patch for sshd of openssh will be found in this thread.
+        * envrironment variable passing.
+        * remote exec.
+        * generating DSA and RSA key pairs.
+        * changing the passphrase for a private key.
+        * partial authentication
+        * SSH File Transfer Protocol(version 0, 1, 2, 3)
+        * packet compression: zlib, zlib@openssh.com JZlib has been used.
+        * hashed known_hosts file.
+        * NONE Cipher switching. High Performace Enabled SSH/SCP supports NONE Cipher switching.
+        * JSch is licensed under BSD style license.
+
+\u001B[1mSEE ALSO\u001B[0m
+    \u001B[36mhttp://www.jcraft.com/jsch/\u001B[0m
