diff --git a/commons/jline/LICENSE b/commons/jline/LICENSE
new file mode 100644
index 0000000..d9e3f26
--- /dev/null
+++ b/commons/jline/LICENSE
@@ -0,0 +1,33 @@
+Copyright (c) 2002-2007, Marc Prud'hommeaux <mwp1@cornell.edu>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or
+without modification, are permitted provided that the following
+conditions are met:
+
+Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+
+Redistributions in binary form must reproduce the above copyright
+notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with
+the distribution.
+
+Neither the name of JLine nor the names of its contributors
+may be used to endorse or promote products derived from this
+software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING,
+BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
+EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY,
+OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
+IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
+OF THE POSSIBILITY OF SUCH DAMAGE.
+
diff --git a/commons/jline/NOTICE b/commons/jline/NOTICE
new file mode 100644
index 0000000..bf936cc
--- /dev/null
+++ b/commons/jline/NOTICE
@@ -0,0 +1,6 @@
+JLine
+Copyright (c) 2002-2007, Marc Prud'hommeaux <mwp1@cornell.edu>
+All rights reserved.
+
+This product includes software developed at
+JLine (http://jline.sourceforge.net/).
diff --git a/commons/jline/pom.xml b/commons/jline/pom.xml
new file mode 100644
index 0000000..26e9981
--- /dev/null
+++ b/commons/jline/pom.xml
@@ -0,0 +1,78 @@
+<?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. 
+-->
+<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/maven-v4_0_0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.apache.felix.commons</groupId>
+        <artifactId>commons-build</artifactId>
+        <version>1.0.1-SNAPSHOT</version>
+        <relativePath>../pom</relativePath>
+    </parent>
+    <properties>
+        <pkgArtifactId>jline</pkgArtifactId>
+        <pkgVersion>0.9.91</pkgVersion>
+        <pomVersion>0001</pomVersion>
+        <osgiVersion>${pkgVersion}</osgiVersion>
+    </properties>
+    <groupId>org.apache.felix.commons</groupId>
+    <artifactId>${pom.groupId}.${pkgArtifactId}</artifactId>
+    <version>${osgiVersion}-${pomVersion}-SNAPSHOT</version>
+    <packaging>bundle</packaging>
+    <name>${pkgArtifactId} bundle</name>
+    <description>
+        This bundle simply wraps ${pkgArtifactId}-${pkgVersion}.jar.
+    </description>
+    <organization>
+        <name>Apache Felix Project</name>
+        <url>http://felix.apache.org/</url>
+    </organization>
+    <scm>
+      <connection>scm:svn:http://svn.apache.org/repos/asf/felix/trunk/commons/commons-collections</connection>
+      <developerConnection>scm:svn:https://svn.apache.org/repos/asf/felix/trunk/commons/commons-collections</developerConnection>
+      <url>http://svn.apache.org/viewcvs/felix/trunk/commons/commons-collections</url>
+    </scm>
+    <dependencies>
+        <dependency>
+            <groupId>jline</groupId>
+            <artifactId>${pkgArtifactId}</artifactId>
+            <version>${pkgVersion}</version>
+        </dependency>
+    </dependencies>
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.apache.felix</groupId>
+                <artifactId>maven-bundle-plugin</artifactId>
+                <extensions>true</extensions>
+                <configuration>
+                    <instructions>
+                        <Bundle-SymbolicName>
+                            ${pom.artifactId}
+                        </Bundle-SymbolicName>
+                        <Export-Package>*;version=${pkgVersion}</Export-Package>
+                        <Import-Package>
+                            !jline.*
+                        </Import-Package>
+                    </instructions>
+                </configuration>
+            </plugin>
+        </plugins>
+    </build>
+</project>
\ No newline at end of file
diff --git a/commons/pom.xml b/commons/pom.xml
index 5c66190..6e89a77 100644
--- a/commons/pom.xml
+++ b/commons/pom.xml
@@ -58,6 +58,7 @@
         <module>ehcache</module>
         <module>hibernate</module>
         <module>hsqldb</module>
+	<module>jline</module>
         <module>jms</module>
         <!-- <module>jmxtools</module>  -->
         <module>jstl</module>
