diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..d2a58d4
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,165 @@
+<?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>10</version>
+        <relativePath>../bundles-pom/pom.xml</relativePath>
+    </parent>
+
+    <groupId>org.apache.servicemix.bundles</groupId>
+    <artifactId>org.apache.servicemix.bundles.spring-ldap</artifactId>
+    <version>1.3.1.RELEASE_1-SNAPSHOT</version>
+    <packaging>bundle</packaging>
+    <name>Apache ServiceMix :: Bundles :: spring-ldap</name>
+    <description>This OSGi bundle wraps spring-ldap-core, spring-ldap-core-tiger, spring-ldap-odm, spring-ldap-ldif-core ${pkgVersion} jar files.</description>
+
+    <properties>
+        <pkgGroupId>org.springframework.ldap</pkgGroupId>
+        <pkgVersion>1.3.1.RELEASE</pkgVersion>
+        <servicemix.osgi.export.pkg>
+            org.springframework.ldap
+        </servicemix.osgi.export.pkg>
+        <servicemix.osgi.import.pkg>
+            javax.naming*,
+            javax.net*,
+            org.apache.commons.lang*,
+            org.apache.commons.pool*,
+            org.springframework.beans*,
+            org.springframework.context*,
+            org.springframework.core*,
+            org.springframework.dao*,
+            org.springframework.jdbc*,
+            org.springframework.orm*,
+            org.springframework.transaction*,
+            org.springframework.util,
+            com.sun.jndi.ldap*;resolution:=optional,
+            freemarker.template;resolution:=optional,
+            org.apache.commons.cli;resolution:=optional,
+            org.apache.commons.logging;resolution:=optional,
+            sun.misc;resolution:=optional
+        </servicemix.osgi.import.pkg>
+        <servicemix.osgi.private.pkg>
+            org.springframework.transaction
+        </servicemix.osgi.private.pkg>
+    </properties>
+
+    <dependencies>
+        <dependency>
+            <groupId>${pkgGroupId}</groupId>
+            <artifactId>spring-ldap-core</artifactId>
+            <version>${pkgVersion}</version>
+        </dependency>
+        <dependency>
+            <groupId>${pkgGroupId}</groupId>
+            <artifactId>spring-ldap-core-tiger</artifactId>
+            <version>${pkgVersion}</version>
+        </dependency>
+        <dependency>
+            <groupId>${pkgGroupId}</groupId>
+            <artifactId>spring-ldap-odm</artifactId>
+            <version>${pkgVersion}</version>
+        </dependency>
+        <dependency>
+            <groupId>${pkgGroupId}</groupId>
+            <artifactId>spring-ldap-ldif-core</artifactId>
+            <version>${pkgVersion}</version>
+        </dependency>
+
+        <!-- sources
+        <dependency>
+            <groupId>${pkgGroupId}</groupId>
+            <artifactId>spring-ldap-core</artifactId>
+            <version>${pkgVersion}</version>
+            <classifier>sources</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${pkgGroupId}</groupId>
+            <artifactId>spring-ldap-core-tiger</artifactId>
+            <version>${pkgVersion}</version>
+            <classifier>sources</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${pkgGroupId}</groupId>
+            <artifactId>spring-ldap-odm</artifactId>
+            <version>${pkgVersion}</version>
+            <classifier>sources</classifier>
+        </dependency>
+        <dependency>
+            <groupId>${pkgGroupId}</groupId>
+            <artifactId>spring-ldap-ldif-core</artifactId>
+            <version>${pkgVersion}</version>
+            <classifier>sources</classifier>
+        </dependency>
+        -->
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.maven.plugins</groupId>
+                <artifactId>maven-shade-plugin</artifactId>
+                <configuration>
+                    <artifactSet>
+                        <includes>
+                            <include>${pkgGroupId}:spring-ldap-core</include>
+                            <include>${pkgGroupId}:spring-ldap-core-tiger</include>
+                            <include>${pkgGroupId}:spring-ldap-odm</include>
+                            <include>${pkgGroupId}:spring-ldap-ldif-core</include>
+                        </includes>
+                    </artifactSet>
+                    <filters>
+                        <filter>
+                            <artifact>${pkgGroupId}:spring-ldap-core</artifact>
+                            <excludes>
+                                <exclude>**/*</exclude>
+                            </excludes>
+                        </filter>
+                        <filter>
+                            <artifact>${pkgGroupId}:spring-ldap-core-tiger</artifact>
+                            <excludes>
+                                <exclude>**/*</exclude>
+                            </excludes>
+                        </filter>
+                        <filter>
+                            <artifact>${pkgGroupId}:spring-ldap-odm</artifact>
+                            <excludes>
+                                <exclude>**/*</exclude>
+                            </excludes>
+                        </filter>
+                        <filter>
+                            <artifact>${pkgGroupId}:spring-ldap-ldif-core</artifact>
+                            <excludes>
+                                <exclude>**/*</exclude>
+                            </excludes>
+                        </filter>
+                    </filters>
+                    <promoteTransitiveDependencies>true</promoteTransitiveDependencies>
+                    <createDependencyReducedPom>true</createDependencyReducedPom>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>
\ No newline at end of file
diff --git a/src/main/resources/OSGI-INF/bundle.info b/src/main/resources/OSGI-INF/bundle.info
new file mode 100644
index 0000000..966d0a4
--- /dev/null
+++ b/src/main/resources/OSGI-INF/bundle.info
@@ -0,0 +1,34 @@
+\u001B[1mSYNOPSIS\u001B[0m
+    ${project.description}
+
+    Original Maven URL:
+        \u001B[33mmvn:${pkgGroupId}/spring-ldap-core/${pkgVersion}\u001B[0m
+        \u001B[33mmvn:${pkgGroupId}/spring-ldap-core-tiger/${pkgVersion}\u001B[0m
+        \u001B[33mmvn:${pkgGroupId}/spring-ldap-odm/${pkgVersion}\u001B[0m
+        \u001B[33mmvn:${pkgGroupId}/spring-ldap-ldif-core/${pkgVersion}\u001B[0m
+
+\u001B[1mDESCRIPTION\u001B[0m
+    Spring LDAP is a Java library for simplifying LDAP operations, based on the
+    pattern of Spring's JdbcTemplate. The framework relieves the user of common
+    chores, such as looking up and closing contexts, looping through results,
+    encoding/decoding values and filters, and more.
+
+    The LdapTemplate class encapsulates all the plumbing work involved in
+    traditional LDAP programming, such as creating a DirContext, looping through
+    NamingEnumerations, handling exceptions and cleaning up resources. This leaves
+    the programmer to handle the important stuff - where to find data (DNs and Filters)
+    and what do do with it (map to and from domain objects, bind, modify, unbind, etc.),
+    in the same way that JdbcTemplate relieves the programmer of all but the actual SQL
+    and how the data maps to the domain model.
+
+    In addition to this, Spring LDAP provides transaction support, a pooling library,
+    an Object-Directory Mapping (ODM) framework, an LDIF parsing library with Spring
+    Batch integration, exception translation from NamingExceptions to a mirrored unchecked
+    Exception hierarchy, as well as several utilities for working with filters, LDAP paths
+    and Attributes.
+
+    Spring LDAP requires J2SE 1.4 or higher to run, and works with Spring Framework 2.0.x,
+    2.5.x as well as 3.0.x.
+
+\u001B[1mSEE ALSO\u001B[0m
+    \u001B[36mhttp://www.springsource.org/ldap\u001B[0m
