<!DOCTYPE html>
<html data-mobile-support="" data-search="" data-hero-banner="" data-platform-downloads="">
<head>
    <meta http-equiv="content-type" context="text/html; charset=UTF-8">
    <title>Apache Karaf</title>
    <meta content="width=device-width, initial-scale=1.0, maximum-scale=1, minimum-scale=1, user-scalable=no"
          id="Viewport" name="viewport">
    <link rel="shortcut icon" type="image/x-icon" href="images/favicon.ico">
    <link href="https://fonts.googleapis.com/css?family=Varela+Round|Montserrat:400,700" rel="stylesheet"
          type="text/css"/>
    <link href="css/karaf.css" rel="stylesheet" type="text/css">
    <link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/jquery.slick/1.5.7/slick.css"/>
    <script type="text/javascript" src="//cdn.jsdelivr.net/jquery.slick/1.5.7/slick.min.js"></script>
    <meta content="Apache Karaf" property="og:title">
    <meta content="images/karaf.png" property="og:image">
    <meta content="Upgrade to the Enterprise class platform. Karaf provides dual polymorphic container and application bootstrapping paradigms to the Enterprise. Focus on your business code and application, Karaf deals with the rest"
          property="og:description">
</head>
<body>
<div class="viewport">
    <header class="navbar header--navbar">
        <div class="navbar-inner">
            <div class="container-fluid">
                <div class="karaf-logo--container">
                    <a class="karaf-logo" href="index.html"><span></span></a>
                </div>
                <ul class="nav pull-right">
                    <li class="navbar-link">
                        <a href="download.html">Download</a>
                    </li>
                    <li class="navbar-link">
                        <a href="documentation.html">Documentation</a>
                    </li>
                    <li class="navbar-link">
                        <a href="projects.html">Projects</a>
                    </li>
                    <li class="navbar-link">
                        <a href="community.html">Community</a>
                    </li>
                    <li class="navbar-link">
                        <a href="http://www.apache.org"><img src="images/apache-feather-tm.png" width="45px"/></a>
                    </li>
                </ul>
            </div>
        </div>
    </header>
    <br/>
    <div class="container">
        <div id="menu" class="desktop-only">
            <h1>News</h1>
            <ul>
                <li><b><a href="#2016">2016</a></b></li>
                <li><b><a href="#2015">2015</a></b> </li>
                <li><b><a href="#2014">2014</a></b></li>
                <li><b><a href="#2013">2013</a></b></li>
                <li><b><a href="#2012">2012</a></b></li>
                <li><b><a href="#2011">2011</a></b> </li>
                <li><b><a href="#2010">2010</a></b></li>
            </ul>
        </div>
        <div id="content">
            <h2 id="2016">2016</h2>
            <p style="font-size:11px">
                    <b>The Karaf team is proud to announce the launch of our brand new website! (4/2/16)</b><br/>
                    After weeks of work, we are delighted to officially announce the launch of our new website.
                    Our goal is to provide a clear and up to date message about Apache Karaf, with a modern
                    look and feel.<br/>
                    We hope you like it. For any questions, suggestions, feedbacks, or comments please send an e-mail
                    to the <a href="community.html">mailing list</a> !
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.4.4 has been released! (25/1/16)</b><br/>
                <b>WARNING</b>: this is the last release on the 2.x series. This series is now in "Non Active" mode. We encourage users to upgrade to more recent Karaf Container versions.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp;
        &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?version=12332989&projectId=12311140')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.3.12 has been released! (25/1/16)</b><br/>
                <b>WARNING</b>: this is the last release on the 2.3.x series. This series is now in "Non Active" mode. We encourage users to upgrade to more recent Karaf Container versions.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp;
        &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12329877')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 4.0.4 has been released! (13/1/16)</b><br/>
                This is an update patch for Apache Karaf Container 4.0.x series, containing many bug fixes, dependency updates, and improvements.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp;
        &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12334047')">Release Notes</a>
            </p>
            <h2 id="2015">2015</h2>
            <p style="font-size:11px">
                <b>Karaf Decanter 1.0.1 has been released! (16/11/15)</b><br/>
                This is a fix version on the 1.x series. It also brings new features like the
                file collector.<br/>
                <a href="javascript:var w = window.open('decanter_installation.html')">Installation</a>&nbsp; &nbsp;
        &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12333858')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 4.0.3 has been released! (10/11/15)</b><br/>
                This is an update patch for Apache Karaf 4.0.x, containing many bug fixes,
                dependency updates, and improvements.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp;
        &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12333640')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 4.0.2 has been released! (13/10/15)</b><br/>
                This is an update patch for Apache Karaf 4.0.x, containing many bug fixes,
                dependency updates, and improvements.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp;
        &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12333259')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 3.0.5 has been released! (7/10/15)</b><br/>
                This is an update patch for Apache Karaf 3.0.x, containing many bug fixes,
                dependency updates, and improvements.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp;
        &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12332380')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cellar 4.0.0 has been released! (19/8/15)</b><br/>
                This release of Apache Karaf Cellar is the first one of the 4.0.x series.<br/>
                Apache Karaf Cellar 4.0.0 is a major new release of Cellar designed to work with
                Karaf 4.0.x versions.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp;
        &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12329385')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 4.0.1 has been released! (19/8/15)</b><br/>
                The Karaf team is pleased to announce the availability of Karaf 4.0.1.<br/>
                This is an update patch for Apache Karaf 4.0.x, containing many bug fixes, dependency updates, and improvements. New feature highlights include: Providing Spring 4.2.0.RELEASE, OpenJPA 2.4.0, and JTA 1.2 features. Important dependency upgrades include: Spring 4.1.7.RELEASE, Spring 3.2.14.RELEASE, transaction.blueprint 1.1.1, and Pax-Web 4.2.0.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12332798')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Decanter 1.0.0 has been released! (1/8/15)</b>
                The Karaf team is pleased to announce the availability of Karaf Decanter 1.0.0.<br/>
                Apache Karaf Decanter 1.0.0 is the first release of Decanter, a complete monitoring and alerting solution for Karaf and related projects (like Camel, ActiveMQ, etc).<br/>
                <a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12332996')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.4.3 has been released! (12/7/15)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.4.3.<br/>
                This is an update patch for Apache Karaf 2.4.x, containing many bug fixes, dependency updates, and improvements. New feature highlights include: Support for Karaf 4 feature repositories in degraded mode, support for Pax-web 4.x, and updates to Felix FileInstall 3.5.0 and Felix ConfigAdmin 1.8.4.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12332072')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cave 4.0.0 has been released! (8/7/15)</b>
                The Karaf team is pleased to announce the availability of Karaf Cave 4.0.0.<br/>
                This is a complete new Cave version, providing an implementation of OSGi Repository R5 specification. Take a look on the user guide for details.<br/>
                <a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12332260')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 3.0.4 has been released! (2/7/15)</b>
                The Karaf team is pleased to announce the availability of Karaf 3.0.4.<br/>
                This is an update patch for Apache Karaf 3.0.x, containing many bug fixes, dependency updates, and improvements. New features highlights include: Jaas commands to create and list group, bundles in etc/statup.properties shouldn't be uninstalled through feature services, and more secure host SSH key by default.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12329179')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 4.0.0 has been released! (26/6/15)</b>
                The Karaf team is pleased to announce the availability of Karaf 4.0.0.<br/>
                Apache Karaf 4.0.0 is the first production ready version of the new 4.0.0 branch.<br/>
                It's a major step forward, including a complete new features resolver, a large set of new features, improvements, and bug fixes.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12332045')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 4.0.0.M3 has been released! (8/6/15)</b>
                The Karaf team is pleased to announce the availability of Karaf 4.0.0.M3.<br/>
                <b>This is a technology preview release of Apache Karaf, and should NOT be considered production ready</b><br/>
                Apache Karaf 4.0.0.M3 represents a major refactoring of the project, and includes numerous new features. We ask that users provide the community with their feed back so that the full Apache Karaf 4.0.0 release can be as feature complete and stable as possible.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12316946')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cellar 3.0.3 has been released! (12/5/15)</b>
                The Karaf team is pleased to announce the availability of Karaf Cellar 3.0.3.<br/>
                Apache Karaf Cellar 3.0.3 is a major update on the 3.0.x series branch.<br/>
                It includes several big fixes, especially on the bundle sync support.<br/>
                <a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12332043')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cellar 2.3.6 has been released! (12/5/15)</b>
                The Karaf team is pleased to announce the availability of Karaf Cellar 2.3.6.<br/>
                Apache Karaf Cellar 2.3.6 is a major update on the 2.3.x series branch.<br/>
                It includes several big fixes, especially on the bundle sync support.<br/>
                <a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12332044')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.4.2 has been released! (25/4/15)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.4.2.<br/>
                This is an update patch for Apache Karaf 2.4.x, containing many bug fixes, dependency updates, and improvements. New feature highlights include: jaas commands to create and list groups, and bundles in etc/startup.properties should not be uninstalled through feature service (protecting essential features from accidental removal).<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12329081')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.3.11 has been released! (11/4/15)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.3.11.<br/>
                This is an update patch for Apache Karaf 2.3.x, containing several bug fixes. Amoung them are a fix for password encryption, txlog files locked during admin clone on windows, and an issue with using LDAPLoginModule with ActiveDirectory is resolved.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12329380')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cellar 3.0.2 has been released! (27/3/15)</b>
                The Karaf team is pleased to announce the availability of Karaf Cellar 3.0.2.<br/>
                Apache Karaf Cellar 3.0.2 is a major update on the 3.0.x series branch.<br/>
                It includes several big fixes, especially on the Synchronizers.<br/>
                <a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12329262')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cellar 2.3.5 has been released! (27/3/15)</b>
                The Karaf team is pleased to announce the availability of Karaf Cellar 2.3.5.<br/>
                Apache Karaf Cellar 2.3.5 is a major update on the 2.3.x series branch.<br/>
                It includes several big fixes, especially on the Synchronizers.<br/>
                <a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12329357')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 4.0.0.M2 has been released! (13/2/15)</b>
                The Karaf team is pleased to announce the availability of Karaf 4.0.0.M2.<br/>
                <b>This is a technology preview release of Apache Karaf, and should NOT be considered production ready.</b><br/>
                Apache Karaf 4.0.0.M2 represents a major refactoring of the project, and includes numerous new features. We ask that users provide the community with their feed back so that the full Apache Karaf 4.0.0 release can be as feature complete and stable as possible.<br/>
                The 4.0.x line will ship with OSGi Rev5 support via Felix 4.4.1 and Equinox 3.9.1-v20140110-1610, and a completely refactored internal framework without Blueprint for internal usage. From a users point of view these changes will yield a smaller, more efficient Karaf core. There will be a Blueprint feature present in Karaf so that you can easily install Blueprint based applications. You will always be capable of using Blueprint in Karaf. So the main difference from a user perspective is that you’d need to depend on the Blueprint service if you need it. New features since the M1 release include: Support for custom command parsers, a verify-features goal to validate the feature with a real OSGi resolution, and a backing engine serivce for org.apache.karaf.jaas.modules.publickey.PublickeyLoginModule.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12329322')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.3.10 has been released! (6/2/15)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.3.10.<br/>
                This is an update patch for Apache Karaf 2.3.x, containing several bug fixes, and a dependency update. Amoung them are a fix for when config:edit does not correctly handle configuration visibility for factory calls, when User name/password missing in connection factory created with jms:create, and when admin:stop Command Does Not Zero Out Root Container PID. This release contains an update to jandex in hibernate feature to avoid wrapping.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12328939')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 3.0.3 has been released! (30/1/15)</b>
                The Karaf team is pleased to announce the availability of Karaf 3.0.3.<br/>
                This is an update patch for Apache Karaf 3.0.x, containing many bug fixes, dependency updates, and improvements. New features highlights include: Spring 4.1.2.Release features, and provides ready to use jpa20 and jpa21 features.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12327341')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cellar 3.0.1 has been released! (23/1/15)</b>
                The Karaf team is pleased to announce the availability of Karaf Cellar 3.0.1.<br/>
                These releases are major upgrade of Cellar, including a change in the sync mechanism to provide a better and more predictable behaviour.<br/>
                <a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12327148')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cellar 2.3.4 has been released! (23/1/15)</b>
                The Karaf team is pleased to announce the availability of Karaf Cellar 3.0.1.<br/>
                These releases are major upgrade of Cellar, including a change in the sync mechanism to provide a better and more predictable behaviour.<br/>
                <a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12328968')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.4.1 has been released! (2/1/15)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.4.1.<br/>
                This is an update patch for Apache Karaf 2.4.x, containing many bug fixes, dependency updates, and improvements. New features highlights include: Regex support in features commands, added an option to uninstall transitive features, and renamed jpa feature as jpa/jpa20 and jpa21.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12327360')">Release Notes</a>
            </p>
            <h3 id="2014">2014</h3>
            <p style="font-size:11px">
                <b>Karaf Container 2.3.9 has been released! (9/11/14)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.3.9.<br/>
                This is an update patch for Apache Karaf 2.3.8, containing several bug fixes, and dependency updates. Amoung them are a fix for when Karaf throws a SocketTimeoutException and exits after 49 days, and env variables can now be read while running Karaf as a Linux service. An important dependency update has been made to Aries JPA API 1.0.2/JPA Container 1.0.2/JPA Blueprint Aries 1.0.4/JPA Container Context 1.0.4.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12328659')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 4.0.0.M1 has been released! (14/10/14)</b>
                The Karaf team is pleased to announce the availability of Karaf 4.0.0.M1.<br/>
                <b>This is a technology preview release of Apache Karaf, and should NOT be considered production ready.</b><br/>
                Apache Karaf 4.0.0.M1 represents a major refactoring of the project, and includes numerous new features. We ask that users provide the community with their feed back so that the full Apache Karaf 4.0.0 release can be as feature complete and stable as possible.<br/>
                The 4.0.x line will ship with OSGi Rev5 support via Felix 4.4.1 and Equinox 3.9.1-v20140110-1610, and a completely refactored internal framework without Blueprint for internal usage. From a users point of view these changes will yield a smaller, more efficient Karaf core. There will be a Blueprint feature present in Karaf so that you can easily install Blueprint based applications. You will always be capable of using Blueprint in Karaf. So the main difference from a user perspective is that you’d need to depend on the Blueprint service if you need it.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12328820')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 3.0.2 has been released! (13/10/14)</b>
                The Karaf team is pleased to announce the availability of Karaf 3.0.2.<br/>
                This is an update patch for Apache Karaf 3.0.x, containing many bug fixes, dependency updates, and improvements. New features highlights include: Support of !$ to recall the last command argument, a command to display bundle id, and automatically create data sources from configuration files.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12326261')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.4.0 has been released! (20/9/14)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.4.0.<br/>
                This release represents a new branch of Apache Karaf development. It includes the latest Aries and Pax libraries, Apache Pom 14, add support for role-based JMX authorization, includes heap dumps when we create debugging data from create dump command, blueprint-web feature, support for JAAS groups, and includes Pax CDI feature. There are several hundred items currently in this RC's release notes, so you'll want to spend some time discovering all the hidden gems.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12323352')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.3.8 has been released! (19/9/14)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.3.8.<br/>
                This is an update patch for Apache Karaf 2.3.7, containing several bug fixes, and dependency updates. We have introduced support of !$ to recall the last command argument, and improved the command description for osgi:shutdown.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12328245')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.3.7 has been released! (6/9/14)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.3.7.<br/>
                This is an update patch for Apache Karaf 2.3.6, containing many bug fixes, dependency updates, and improvements. New features include SyncopeLoginModule, and improved documentation for exposing JAAS BackendEngineFactory services for the login module and configfile override behavoir. This patch contains a high priority bug fix for Windows users experiencing console input issues.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12327382')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.3.6 has been released! (1/8/14)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.3.6.<br/>
                This is an update patch for Apache Karaf 2.3.5, containing many bug fixes, dependency updates, and improvements. New feature highlights include: Automatically create data sources from configuration files, add backing engine serivce for org.apache.karaf.jaas.modules.publickey.PublickeyLoginModule, add a flag to bin/client so that it can read private key from a specified location, and Provide shell:env command.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript: var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12326726')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cave 3.0.0 has been released! (4/7/14)</b>
                The Karaf team is pleased to announce the availability of Karaf Cave 3.0.0.<br/>
                This release is the first one of the Cave 3.0.x series, fully compatible with Karaf 3.0.x.<br/>
                It includes major updates and bug fixes.<br/>
                <a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12327169')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cellar 3.0.0 has been released! (27/6/14)</b>
                The Karaf team is pleased to announce the availability of Karaf Cellar 3.0.0.<br/>
                This release is the first one of the Cellar 3.0.x series, fully compatible with Karaf 3.0.x and powered by Hazelcast 3.2.3.<br/>
                It includes major updates and bug fixes.<br/>
                <a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12316442')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Update on the website</b>
                The Karaf website has changed a little bit. We added a new webpage (accessible directly from the navigation menu on the left) providing an overview of the different Karaf and subprojects branches
                and the releases schedule.<br/>
                The purpose is to give you more visibility on the release dates.<br/>
                <a href="download.html">Releases Schedule</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.3.5 has been released! (13/5/14)</b>
                This is an update patch for Apache Karaf 2.3.4, containing many bug fixes, dependency updates, and improvements. New feature highlights include: monitoring etc/user.properties with Felix fileInstall, and adding MSSQL datasource type.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12325886')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 3.0.1 has been released! (13/5/14)</b>
                This is an update patch for Apache Karaf 3.0.0, containing many bug fixes, dependency updates, and improvements. New feature highlights include: the addition of Pax CDI to Karaf enterprise feature, monitoring etc/user.properties with Felix fileInstall, and adding MSSQL datasource type.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12316945')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.3.4 has been released! (17/2/14)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.3.4.<br/>
                This patch update to the 2.3.x line contains multiple bug fixes, improvements, and dependency updates including; Clone and status commands for instances, Hibernate feature, improved managment & debugging, and dependency updates to Aries Blueprint core 1.4.0, json 20131018, bndlib 2.2.0, and various updates to maven plugins.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12325003')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cave 2.3.0 has been released! (21/1/14)</b>
                The Karaf team is pleased to announce the availability of Karaf Cave 2.3.0.<br/>
                Karaf Cave provides an OSGi Bundle Repository (OBR), simple Maven repository, and Karaf Features Repository (KFR).<br/>
                OBR provides a service that can automatically install a bundle, with its deployment dependencies, from a bundle
                repository.<br/>
                Apache Karaf Cave provides the following features:<br/>
                <ul style="font-size:11px">
                <li>Storage: Karaf Cave provides a filesystem storage. The storage backend is designed with a kind of plugin system, it means that we can change the default filesystem storage by another kind of storage</li>
                <li>OBR metadata generation: Karaf Cave automatically creates the OBR metadata for you, using the artifacts presents in the Cave repository.</li>
                <li>OBR registration: Karaf Cave allows you to directly register a Cave repository into the OBR RepositoryAdmin OSGi service.</li>
                <li>Artifact upload: you can update any OSGi bundle in a Cave repository, using advanced URL, e.g. mvn:groupId/artifactId/version</li>
                <li>HTTP Maven/OBR: Karaf Cave provides a HTTP service where you can download artifacts and get OBR information.</li>
                <li>"External" repository proxy: you can proxy an existing repository (like a Maven one) into a Cave repository. In that case, the artifacts are still resident on the proxied repository, Cave handles the OBR metadata. Cave supports file: and http: like URL, it means that Cave is able to browse a remote HTTP Maven repository.</li>
                <li>"External" repository population: you can populate your local Cave repository from an external repository. It means that Cave browse the external repository URL (file: or http:), looking for OSGi bundles in the artifacts, and copy the bundles in the Cave repository storage.</li>
                </ul>
                <a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12317874')">Release Notes</a>
            </p>
            <h2 id="2013">2013</h2>
            <p style="font-size:11px">
                <b>Karaf Container 3.0.0 has been released! (24/12/13)</b>
                The Karaf team is tremendously pleased to announce the availability of Karaf 3.0.0.<br/>
                This is a major new release of Apache Karaf, containing many refactorings, OSGi rev 5 support, wide ranging dependency upgrades, and new commands.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12316040')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cellar 2.3.2 has been released! (14/10/13)</b>
                The Karaf team is pleased to announce the availability of Karaf Cellar 2.3.2.<br/>
                This release is the second one on the Cellar 2.3.x branch, fully compatible with the Karaf 2.3.x series. All users of a Karaf 2.3.x have to use this Cellar version.<br/>
                It includes major bug fixes.<br/>
                <a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12324646')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.3.3 has been released! (20/9/13)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.3.3.<br/>
                This patch update to the 2.3.x line contains multiple bug fixes, improvements, and dependency updates including; improvements to the service wrapper to detect java, return correct exit codes, have correct karaf.data information on child instances and operate on Solaris, the log command can now list all the logging levels currently set, and dependency updates to Spring 3.2.4.RELEASE, Pax Logging 1.7.1, easymock 3.2, and jasypt 1.9.1.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12324657')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.3.2 has been released! (10/7/13)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.3.2.<br/>
                In this patch update to the 2.3.x line contains multiple bug fixes, improvements, and dependency updates including; restored IBM Java compatibility, DirectoryWatcher for deploy folder now waits for framework start level to reach 60, BundleWatcher now waits for refresh to be finished before updating another bundle, CXF DOSGI feature now included in Karaf repos config, HTTP feature now installs a default web config file, and dependency updates to Spring 3.2.3.RELEASE, Pax Web 1.1.14, Aries Transaction Blueprint 1.0.1, and Pax Url 1.3.6.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12323383')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cellar 2.3.1 has been released! (1/7/13)</b>
                The Karaf team is pleased to announce the availability of Karaf Cellar 2.3.1.<br/>
                This release is the second one on the Cellar 2.3.x branch, fully compatible with the Karaf 2.3.x series. All users of a Karaf 2.3.x have to use this Cellar version.<br/>
                It includes major bug fixes.<br/>
                <a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12324451')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cellar 2.3.0 has been released! (23/5/13)</b>
                The Karaf team is pleased to announce the availability of Karaf Cellar 2.3.0.<br/>
                This release is the first one on the Cellar 2.3.x branch, fully compatible with the Karaf 2.3.x series. All users of a Karaf 2.3.x have to use this Cellar version.<br/>
                It includes a lot of bug fixes and new features.<br/>
                <a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12323370')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cellar 2.2.6 has been released! (23/5/13)</b>
                The Karaf team is pleased to announce the availability of Karaf Cellar 2.2.6.<br/>
                This release of Apache Karaf Cellar is considered a high priority update for users of Apache Karaf Cellar 2.2.x. It includes a lot of bug fixes and new features.<br/>
                <a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12323556')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 3.0.0.RC1 has been released! (15/3/13)</b>
                The Karaf team is pleased to announce the availability of Karaf 3.0.0.RC1.<br/>
                <b>This is a technology preview release of Apache Karaf, and should NOT be considered a production ready version.</b><br/>
                Apache Karaf 3.0.0.RC1 represents a major refactoring of the project, and includes numerous new features. We ask that users provide the community with their feed back so that the full Apache Karaf 3.0.0 release can be as feature complete and stable as possible.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12321742')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.3.1 has been released! (3/3/13)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.3.1.<br/>
                In this patch update to the 2.3.x line contains multiple bug fixes, improvements, and dependency updates including; an upgrade to OSGi spec 4.3.1, Spring 3.1.4.RELEASE, Pax Exam 2.6.0, Pax Web 1.1.12, Jetty 7.6.8.v20121106, Aries Blueprint Core 1.1.0, and fixes to the LDAP login module, improved failover lock logic, removes a console shutdown -f hang, and adds a jre-1.8 to jre.properties.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12321743')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf EIK 0.9.0 has been released! (17/2/13)</b>
                The Karaf team is pleased to announce the availability of Karaf EIK 0.9.0.<br/>
                This is the first release of Karaf EIK, allowing you to integrate Karaf in your Eclipse environment.<br/>
                <a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12323286')">Release Notes</a>
            </p>
            <h2 id="2012">2012</h2>
            <p style="font-size:11px">
                <b>Karaf Container 2.2.10 has been released! (21/12/12)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.2.10.<br/>
                This release of Apache Karaf is based off of the 2.2.x series branch, representing an update to Apache Karaf 2.2.9. It contains bug fixes identified in the prior release, and introduces improvements including; Making pom.xml eclipse 3.7 m2e friendly, updating Spring to 2.5.6.SEC03, improved terminal behavior when sshing from windows to unix, and improved lock logic to wait while start level change occurs. Several dependencies were also updated, bringing Felix Webconsole to 4.0.0, pax-logging to 1.6.10, pax-web to 1.0.12, and the Apache pom to version 12.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12322541')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cellar 2.2.5 has been released! (6/12/12)</b>
                The Karaf team is pleased to announce the availability of Karaf Cellar 2.2.5.<br/>
                This release of Apache Karaf Cellar is based off of the 2.2.x series branch, representing a major update to Apache Karaf Cellar 2.2.4. It contains a lot of bug fixes and some important new features.<br/>
                Especially, the bundle and configuration synchronization mechanism have been improved, the local node state (group, producers, consumers, handlers) is now persistent, the cluster commands and MBeans haven been improved, including the addition of cluster:sync command.<br/>
                <a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12321268')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.3.0 has been released! (15/10/12)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.3.0.<br/>
                This release of Apache Karaf sets the stage for the 3.0.x line, introducing OSGi rev 4.3 support, new commands, features, improvements, and a mulititude of dependency updates. At Karaf's core you'll find Equinox 3.8.0.v20120529-1548 and Apache Felix framework 4.0.3. New additions such as Karaf-pax-exam, commands back ported from Karaf 3.x, and command aliases to help make migrating betwen 2.3.x and 3.x easier.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12320554')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Welcome Brian Topping as new Karaf committer (3/9/12)</b>
                The Karaf team is pleased to announce Brian Topping as a new committer.<br/>
                Welcome aboard Brian !
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.2.9 has been released! (18/8/12)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.2.9.<br/>
                This release of Apache Karaf is based off of the 2.2.x series branch, representing an update to Apache Karaf 2.2.8. It contains bug fixes identified in the prior release, and introduces improvements including; An update to fix a NullPointerException when using JDK 6 update 33 or JDK 7 update5, a new JDBC lock implementation for Postgres, a fix for using version with the wrap protocol, and renaming command-watch to watch. Several dependences were also updated, bringing Felix Framework to 3.2.2, pax-logging to 1.6.9, slf4j to 1.6.6, xbean to 3.11.1, aries proxy to 0.3.1, and a multitude of updates to maven plugins.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12321741')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.2.8 has been released! (25/6/12)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.2.8.<br/>
                This release of Apache Karaf is based off of the 2.2.x series branch, representing an update to Apache Karaf 2.2.7. It contains bug fixes identified in the prior release, and introduces improvements including; A command that can not be loaded no longer breaks the whole completion, removing a KAR now uninstalls the shipped features, and SSH keystore is now compatible with IBM JDK. Several dependences were also updated, bringing ServiceMix Specs to version 2.0, pax-logging to 1.6.7, Jansi to 1.9, JLine to 2.7, Felix Utils to 1.2.0, Felix FileInstall to 3.2.4, and sshd to 0.7.0.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12320756')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cellar 2.2.4 has been released! (20/5/12)</b>
                The Karaf team is pleased to announce the availability of Karaf Cellar 2.2.4.<br/>
                This release of Apache Karaf Cellar is considered a high priority update for users of Apache Karaf Cellar 2.2.3. It includes a lot of bug fixes and new features.<br/>
                <a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12319520')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.2.7 has been released! (27/4/12)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.2.7.<br/>
                This release of Apache Karaf is considered a high priority update for users of Apache Karaf 2.2.6. An issue in which configuration updates were not being persisted to storage was detected, an update to FileInstall version 3.2.2 was made necessary. In addition to the above other bug fixes have been resolved, including; updating the features repo pointer for pax-wicket, removing an unnecessary warning on missing repository name when the name is defined however not presently loaded, the SSHD authorized key provider now logs in DEBUG, and SSH now correctly uses the karaf.base variable. A version update to pax web 1.0.9 has also been included in the dependencies.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12320174')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.2.6 has been released! (8/4/12)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.2.6.<br/>
                This release of Apache Karaf is based off of the 2.2.x series branch, representing an update to Apache Karaf 2.2.5. It contains bug fixes identified in the prior release, and introduces improvements including; improved Windows, AIX, HP-UX, and Solaris support in the service wrapper, three new deployer demos showing how to make an OSGi bundle, a features file, and how to wrap a third party jar into a bundle, and support for ssh public key authentication and agent forwarding. A few new commands also appear in this release including; features:status to indicate feature loaded or not, feature:chooseurl to make it easy to install well known feature files, and a watch command to allow users to watch the output of a karaf command like when using the unix watch mechanism. Several dependencies were also updated, bringing Spring to 3.0.7-RELEASE, eventadmin to 1.2.14, Apache Pom to version 10, the maven bundle plugin to 2.3.7, and fileinstall to 3.2.0.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12319142')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cellar 2.2.3 has been released! (20/1/12)</b>
                The Karaf tema is pleased to announce the availability of Karaf Cellar 2.2.3.<br/>
                This release of Apache Karaf Cellar is based off of the 2.2.x series branch, representing an update to Apache Karaf Cellar 2.2.2. It contains bug fixes identified in the prior release, and introduces improvements including: cluster group support for bundles, full access on the Hazelcast configuration file, update to Hazelcast 1.9.4.6 and jclouds 1.3.1, first DOSGi support, new samples including usage with Apache Camel, OBR support in clusters.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12317140')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf projects</b>
                The Karaf team is pleased to announce three new sub-projects: Cave, EIK, WebConsole.
                Take a look on the <a href="projects.html">projects page</a> to have more information.
                We are working to provide a first release of these projects, but the sources are already available.
            </p>
            <h2 id="2011">2011</h2>
            <p style="font-size:11px">
                <b>Karaf Container 2.2.5 has been released! (25/12/11)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.2.5.<br/>
                This release of Apache Karaf is based off of the 2.2.x series branch, representing an update to Apache Karaf 2.2.4. It contains bug fixes identified in the prior release, and introduces improvements including; multiple JAAS support improvements, better support for Linux systems with certain versions of libc, SCP support, and demos for extending Karaf's console commands and using Karaf Archives (KARs). Several dependencies were also updated, bringing Pax Web to version 1.0.8, Jetty to 7.5.4.v20111024, and Jasypt to 1.8.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12317857')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.2.4 has been released! (16/10/11)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.2.4.<br/>
                This release of Apache Karaf is based off of the 2.2.x series branch, representing an update to Apache Karaf 2.2.3. It contains bug fixes identified in the prior release, and introduces improvements including; significant improvements to KAR support, and new MBeans (such as Dev, HTTP, Log, OBR, Bundles, Services and System). Several dependencies were also updated, bringing Apache Felix Gogo to version 0.10.0, and Pax Web to 1.0.7.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12317342')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.2.3 has been released! (1/9/11)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.2.3.<br/>
                This release of Apache Karaf is based off of the 2.2.x series branch, representing an update to Apache Karaf 2.2.2. It contains bug fixes identified in the prior release, and introduces improvements including; Optional JDK 7 support, a spring-jms feature, and a macro allowing users to identify the contents of a specific config file. Several dependencies were also updated, bringing Jetty to version 7.4.5.v20110725, Eclispe Equinox to 3.6.2.R36x_v20110210, and Pax web to 1.0.6.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12316685')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.1.6 has been released! (17/7/11)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.1.6.<br/>
                This release of Apache Karaf is based off of the 2.1.x series branch, representing an update to Apache Karaf 2.1.5 and the last planned patch to the 2.1.x branch. It contains a few small bug fixes and improvements, including; updated branding-console documentation, a new warning on osgi:shutdown to avoid inadvertently shutting down the container, and a correction to the Oracle JDBC locking mechanism behavior when the locking table is empty.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12316340')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Cellar 2.2.2 has been released! (10/7/11)</b>
                The Karaf team is pleased to announce the availability of Karaf Cellar 2.2.2.<br/>
                This is the first release of Apache Karaf Cellar. Karaf Cellar is clustering solution for Apache Karaf powered by Hazelcast.<br/>
                Karaf Cellar allows you to manage a cluster of Karaf instances, provising synchronisation between instances.<br/>
                This release includes bug fixes and new features like jclouds support.<br/>
                <a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12316740')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.2.2 has been released! (3/7/11)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.2.2.<br/>
                This release of Apache Karaf is based off of the 2.2.x series branch, representing an update to Apache Karaf 2.2.1. It contains bug fixes identified in the prior release, and introduces improvements including; improved behavior for the OracleDB locking mechanism and http feature jetty port usage. Several improvements to the shell have been incorporated, such as completion for shell aliases and a warning on osgi:shutdown to avoid inadvertently shutting down the container. There has also been a few small dependency upgrades to felix event admin, Pax URL, and jetty.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12316339')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.2.1 has been released! (15/5/11)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.2.1.<br/>
                This release of Apache Karaf is based off of the 2.2.x series branch, representing an update to Apache Karaf 2.2.0. It contains bug fixes identified in the prior release, and introduces improvements including; updates to pax-logging, pax-runner, pax-web, jetty, and felix versions. The config commands have has been updated, and kar features are now in features-maven-plugin.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12316164')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.1.5 has been released! (30/4/11)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.1.5.<br/>
                This release of Apache Karaf is based off of the 2.1.x series branch, representing an update to Apache Karaf 2.1.4. It contains several bug fixes identified in the prior release, including; improved Eclipse console karaf shell output, handling TAB characters in feature repository to avoid resoultion errors when adding features to repo, and multiple fixes to the config shell. IMPORTANT: This patch release also updates the Felix Framework from version 3.0.2 to 3.0.9.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12316170')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.2.0 has been released! (28/2/11)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.2.0.<br/>
                This release of Apache Karaf contains a multitude of new features, improvements, and bug fixes. Some highlights include many new or updated commands, a LDAP JAAS module with login support, an updated feature service, a feature for Aries transaction, JPA & JNDI modules, expanded documentation, and new versions of most dependencies. The help system and manual have also undergone major updates. Please note that if you are using pax-exam with scanFeatures that you also have to upgrade pax-exam to the latest version.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12315328')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.1.4 has been released! (15/2/11)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.1.4.<br/>
                This release of Apache Karaf is based off of the 2.1.x series branch, representing an update to Apache Karaf 2.1.3. It contains several bug fixes identified in the prior release, and introduces several improvements including; better behavior of the features-maven-plugin, documentation for making multiple configuration files available to the bundle context, and a more efficient bundle description for header display.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12316042')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.1.3 has been released! (11/1/11)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.1.3.<br/>
                This release of Apache Karaf is based off of the 2.1.x series branch, representing an update to Apache Karaf 2.1.2. It contains several bug fixes identified in the prior release, and updates the versions of SLF4j, pax-url-mvn, spring, and pax-exam. For more detail please see the change log below.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12315573')">Release Notes</a>
            </p>
            <h2 id="2010">2010</h2>
            <p style="font-size:11px">
                <b>Karaf Container 2.1.2 has been released! (25/11/10)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.1.2.<br/>
                This release of Apache Karaf is based off of the 2.1.x series branch, representing an update to Apache Karaf 2.1.1. It contains several bug fixes identified in the prior release, and updates the pax-url version.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12315566')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.1.1 has been released! (14/11/10)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.1.1.<br/>
                This release of Apache Karaf is based off of the 2.1.x series branch, representing an update to Apache Karaf 2.1.0. It contains multiple bug fixes, while introducing a minimal number of changes to dependencies from our last release.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12315433')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.1.0 has been released! (24/9/10)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.1.0.<br/>
                New to this release of Apache Karaf is a JAAS Database Login Module, a way to store passwords in a secured way, a mechanism that allows a karaf application to distinguish between UserPrincipal and RolePrincipal without depending from the Karaf JAAS Module.<br/>
                The shell console has been enhanced to be available in a plain non-OSGi environment and smart tab completion has been improved, along with various commands.<br/>
                We have also resolved a number of outstanding issues, and improved support on OS X and IBM Java based systems.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12315208')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf Container 2.0.0 has been released! (23/7/10)</b>
                The Karaf team is pleased to announce the availability of Karaf 2.0.0.<br/>
                This release is our first as a top level apache project, and includes a number of new features, improvements and bug fixes.<br/>
                <a href="download.html">Download</a>&nbsp; &nbsp; &nbsp;<a href="javascript:var w = window.open('https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12311140&version=12315145')">Release Notes</a>
            </p>
            <p style="font-size:11px">
                <b>Karaf is now a TLP</b>
                Today, the Apache Software Foundation board has just established Karaf as a new Top Level Project.<br/>
                The whole community is thrilled and will strive to make the project even better and more successful.
            </p>
        </div>
        </div>
    </div>
    <div class="body--container container-fluid "></div>
    <footer class="footer">
        <div class="container-fluid">
            <div class="row-fluid">
                <div class="span12">
                    &copy; <span>2016</span> <a href="http://www.apache.org">Apache Software Foundation</a> - <a href="privacy.html">Privacy Policy</a><br/>
                    Apache Karaf, Karaf, Apache, the Apache feather logo, and the Apache Karaf project logo are trademarks of The Apache Software Foundation.
                </div>
            </div>
        </div>
    </footer>
    <div id="scrim"></div>
</div>
</body>
</html>
