<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!--

    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

       https://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.
-->
  <head>
    <title>Apache Felix - Apache Felix Commons</title>
    <link rel="icon" href="/res/favicon.ico">
    <link rel="stylesheet" href="/res/site.css" type="text/css" media="all">
    <link rel="stylesheet" href="/res/codehilite.css" type="text/css" media="all">
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
  </head>
  <body>
    <div class="title">
      <div class="logo">
        <a href="https://felix.apache.org/">
          <img border="0" alt="Apache Felix" src="/res/logo.png">
        </a>
      </div>
      <div class="header">
        <a href="https://www.apache.org/">
          <img border="0" alt="Apache" src="/res/apache.png">
        </a>
      </div>
    </div>
    
    <div class="menu"> 
      <style type="text/css">
/* The following code is added by mdx_elementid.py
   It was originally lifted from http://subversion.apache.org/style/site.css */
/*
 * Hide class="elementid-permalink", except when an enclosing heading
 * has the :hover property.
 */
.headerlink, .elementid-permalink {
  visibility: hidden;
}
h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
<p><a href="/news.html">News</a>  <br />
<a href="/license.html">License</a>  <br />
<a href="/downloads.cgi">Downloads</a>  <br />
<a href="/documentation.html">Documentation</a>  <br />
<a href="/documentation/community/project-info.html">Project Info</a>  <br />
<a href="/documentation/community/contributing.html">Contributing</a>  <br />
<a href="/sitemap.html">Site Map</a>  <br />
<a href="https://www.apache.org/">ASF</a>  <br />
<a href="https://www.apache.org/security/">Security</a>  <br />
<a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a>  <br />
<a href="https://www.apache.org/foundation/thanks.html">Sponsors</a>    </p>
<iframe
    src="https://www.apache.org/ads/button.html"
    style="border-width:0; float: left"
    frameborder="0"
    scrolling="no"
    width="135"
    height="135">
</iframe>
    </div>
    
    <div class="main">
      <div class="breadcrump" style="font-size: 80%;">
        <a href="/">Home</a>&nbsp;&raquo&nbsp;<a href="/documentation.html">Documentation</a>
      </div>

      <h1>Apache Felix Commons</h1>
      <style type="text/css">
/* The following code is added by mdx_elementid.py
   It was originally lifted from http://subversion.apache.org/style/site.css */
/*
 * Hide class="elementid-permalink", except when an enclosing heading
 * has the :hover property.
 */
.headerlink, .elementid-permalink {
  visibility: hidden;
}
h2:hover > .headerlink, h3:hover > .headerlink, h1:hover > .headerlink, h6:hover > .headerlink, h4:hover > .headerlink, h5:hover > .headerlink, dt:hover > .elementid-permalink { visibility: visible }</style>
<h3 id="purpose">Purpose<a class="headerlink" href="#purpose" title="Permanent link">&para;</a></h3>
<p>Apache Felix Commons is a community effort to create OSGi bundle ("bundlized") versions of popular third-party open-source libraries.  Today, OSGi developers must create bundles out of third-party libraries within their own development communities.  The purpose of Felix Commons is to avoid duplicating the effort of bundle creation by sharing these bundlized artifacts.  Our hope is that over time, the original developers of the third-party libraries can use these bundlized libraries to learn how to add OSGi metadata to their project artifacts and to become comfortable with the overall non-invasive process.  Felix Commons is thus a large "project" of POMs where each bundle POM simply has a dependency on the library it wants to convert.  The Felix Maven Bundle Plugin will then convert the dependency automatically and the bundle will be available via existing Maven infrastructure.</p>
<p>This web page will be used to document who is doing what and to provide pointers to more information.</p>
<h3 id="how-can-i-help">How Can I Help?<a class="headerlink" href="#how-can-i-help" title="Permanent link">&para;</a></h3>
<p>If you have libraries you have turned into bundles, then you can offer to contribute them.  Additionally, you may request that a certain bundle be created.  If you wish to submit a POM file for a specific library, you can attach it to a <a href="http://issues.apache.org/jira/browse/Felix">Felix JIRA issue</a> under the "Felix Commons" component.  For Apache purposes, contributing a bundle POM is the same as contributing code.</p>
<h3 id="getting-started">Getting Started<a class="headerlink" href="#getting-started" title="Permanent link">&para;</a></h3>
<p>In most cases, creating bundlized versions of a library is as simple as creating a POM file for the library using Felix' new <a href="/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html">Maven Bundle Plugin</a>.  The OSGi headers are non-intrusive.  A JAR can be made in such a way that it runs on the Classpath as well as a bundle in an OSGi framework.  In short you:
1. Set the groupId to:</p>
<div class="codehilite"><pre><span class="nt">&lt;groupId&gt;</span>org.apache.felix.commons<span class="nt">&lt;/groupId&gt;</span>
</pre></div>


<ol>
<li>
<p>Append "-osgi" to the name of the artifact:</p>
<p><artifactId>FOO-osgi</artifactId></p>
</li>
<li>
<p>Set the "packaging" to use the Maven Bundle Plugin:</p>
<p><packaging>bundle</packaging></p>
</li>
<li>
<p>Set any configuration options in the <a href="/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html">Maven Bundle Plugin</a>.</p>
</li>
</ol>
<p>We recommend you read the longer <a href="/documentation/subprojects/apache-felix-commons/creating-bundles-using-bnd.html">steps for converting a library to a bundle</a>.</p>
<h3 id="contributions">Contributions<a class="headerlink" href="#contributions" title="Permanent link">&para;</a></h3>
<table class="table">
<thead>
<tr>
<th>Library</th>
<th>Version</th>
<th>Description</th>
<th>Contributor</th>
<th>Grant OK</th>
<th>Committed</th>
</tr>
</thead>
<tbody>
<tr>
<td>cglib</td>
<td>2.0.2</td>
<td>CGLib</td>
<td>Felix Meschberger</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td>commons-beanutils</td>
<td>1.7.0</td>
<td>BeanUtils</td>
<td>Felix Meschberger</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td>commons-codec</td>
<td>1.2</td>
<td>Codec</td>
<td>Felix Meschberger</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td>commons-configuration</td>
<td>1.3</td>
<td>Configuration</td>
<td>Felix Meschberger</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td>commons-digester</td>
<td>1.8</td>
<td>Digester</td>
<td>Felix Meschberger</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td>commons-el</td>
<td>1.0</td>
<td>EL</td>
<td>Felix Meschberger</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td>commons-fileupload</td>
<td>1.1.1</td>
<td>FileUpload</td>
<td>Felix Meschberger</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td>commons-httpclient</td>
<td>3.0.1</td>
<td>Client-side HTTP.</td>
<td>Felix Meschberger</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td>commons-io</td>
<td>1.3</td>
<td>IO</td>
<td>Felix Meschberger</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td>commons-lang</td>
<td>2.2</td>
<td>Lang</td>
<td>Felix Meschberger</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td>antlr</td>
<td>2.7.6</td>
<td>Parser generator.</td>
<td>John Conlon</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td>commons-collections</td>
<td>3.2</td>
<td>Data structures for collections.</td>
<td>John Conlon</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td>jzlib</td>
<td>1.0.7</td>
<td>Data compression library.</td>
<td>John Conlon</td>
<td>Yes</td>
<td>Yes</td>
</tr>
<tr>
<td>commons-email</td>
<td>1.0</td>
<td>An API for sending email.</td>
<td>Felix Meschberger</td>
<td>Yes</td>
<td>Yes</td>
</tr>
</tbody>
</table>
<h3 id="supporting-libraries">Supporting Libraries<a class="headerlink" href="#supporting-libraries" title="Permanent link">&para;</a></h3>
<p>These are projects that have expressed support for the Felix Commons initiative and that are working directly within their respective projects to support OSGi.</p>
<table class="table">
<thead>
<tr>
<th>Project</th>
<th>Description</th>
<th>Supporter(s)</th>
<th>More Information</th>
</tr>
</thead>
<tbody>
<tr>
<td>Spring</td>
<td></td>
<td>Adrian Colyer, Andy Piper</td>
<td><a href="http://www.springframework.org/osgi">Spring-OSGi</a></td>
</tr>
<tr>
<td>SLF4J</td>
<td></td>
<td>Ceki Gülcü</td>
<td><a href="http://www.slf4j.org/">SLF4J</a></td>
</tr>
<tr>
<td>Logback</td>
<td></td>
<td>Ceki Gülcü</td>
<td><a href="http://logback.qos.ch/">Logback</a></td>
</tr>
<tr>
<td>MINA</td>
<td>NIO framework</td>
<td>Trustin Lee</td>
<td><a href="http://issues.apache.org/jira/browse/DIRMINA-27">DIRMINA-27</a></td>
</tr>
<tr>
<td>HTTP Client</td>
<td>Client-side HTTP.</td>
<td>Roland Weber</td>
<td><a href="https://issues.apache.org/jira/browse/HTTPCLIENT-639">HTTPCLIENT-639</a></td>
</tr>
<tr>
<td>Apache OFBiz</td>
<td>Enterprise automation.</td>
<td>Christopher Snow</td>
<td><a href="http://mail-archives.apache.org/mod_mbox/incubator-felix-dev/200704.mbox/%3c8A31258D-1FB4-4F42-A145-94136D750EF0@coralms.com%3e">Mailing list archives</a></td>
</tr>
<tr>
<td>Jetty</td>
<td>Servlet engine.</td>
<td>Jan Bartel</td>
<td>Jetty 6.1.5 and onwards uses the 'maven-bundle-plugin'.</td>
</tr>
<tr>
<td>### Similar Efforts</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>Eclipse Orbit - http://www.eclipse.org/orbit/</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td quote="quote"></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>... will provide a repository of bundled versions of third party libraries that are approved for use in one or more Eclipse projects.</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td quote="quote"></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
      <div class="timestamp" style="margin-top: 30px; font-size: 80%; text-align: right;">
        Rev. 1700393 by cziegeler on Tue, 1 Sep 2015 06:04:06 +0000
      </div>
      <div class="trademarkFooter"> 
        Apache Felix, Felix, Apache, the Apache feather logo, and the Apache Felix project
        logo are trademarks of The Apache Software Foundation. All other marks mentioned
        may be trademarks or registered trademarks of their respective owners.
      </div>
    </div>
  </body>
</html>
