<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="Apache Geronimo web site">
    <meta name="author" content="The Apache Software Foundation">
    <title>Apache Geronimo</title>

    <link rel="canonical" href="https://geronimo.apache.org/">

    <!-- Bootstrap core CSS -->
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">

        <!-- Favicons -->
    <link rel="apple-touch-icon" href="assets/img/favicons/apple-touch-icon.png" sizes="180x180">
    <link rel="icon" href="assets/img/favicons/favicon-32x32.png" sizes="32x32" type="image/png">
    <link rel="icon" href="assets/img/favicons/favicon-16x16.png" sizes="16x16" type="image/png">
    <link rel="icon" href="assets/img/favicons/favicon.ico">
    <meta name="msapplication-config" content="assets/img/favicons/browserconfig.xml">
    <meta name="theme-color" content="#418ecb">

    <style>
      .bd-placeholder-img {
        font-size: 1.125rem;
        text-anchor: middle;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
      }

      @media (min-width: 768px) {
        .bd-placeholder-img-lg {
          font-size: 3.5rem;
        }
      }
    </style>
    <!-- Custom styles for this template -->
    <link href="assets/css/geronimo.css" rel="stylesheet">
  </head>

  <body>
  <header>
    <div class="collapse bg-dark" id="navbarHeader">
      <div class="container">
        <div class="row">
          <div class="col-sm-8 col-md-7 py-4">
            <h4 class="text-white">About</h4>
            <p class="text-muted">
              Apache Geronimo is an open source server runtime that integrates the best open source projects to create Java/OSGi server runtimes that meet the needs of enterprise developers and system administrators.
              Our most popular distribution has previously been a fully certified Java EE 6 application server runtime.
              Now we are refocusing on providing JavaEE/JakartaEE libraries and Microprofile implementations.
              Please note that the Apache Geronimo Project does no longer actively maintain the Geronimo Application Server!
              If you are looking for a replacement then please look at the <a href="https://tomee.apache.org/">Apache TomEE</a> Application Server project.</p>
          </div>
          <div class="col-sm-4 offset-md-1 py-4">
            <h4 class="text-white">The ASF<span class="pl-2"><img src="assets/img/feather.png" width="25px" /></span></h4>
            <ul class="list-unstyled">
              <li><a href="https://www.apache.org/events/current-event.html" class="text-white">Apache Events</a></li>
              <li><a href="https://www.apache.org/licenses/" class="text-white">License</a></li>
              <li><a href="https://www.apache.org/foundation/sponsorship.html" class="text-white">Sponsorship</a></li>
              <li><a href="https://www.apache.org/foundation/thanks.html" class="text-white">Thanks</a></li>
              <li><a href="https://www.apache.org/security/" class="text-white">Security</a></li>
            </ul>
          </div>
        </div>
      </div>
    </div>
    <div class="navbar navbar-dark bg-dark shadow-sm">
      <div class="container d-flex justify-content-between">
        <a href="/" class="navbar-brand d-flex align-items-center">
          <img width="25" height="25" src="assets/img/logo.gif" />
          <span class="pl-2"><strong>Apache Geronimo</strong></span>
        </a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarHeader" aria-controls="navbarHeader" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
      </div>
    </div>
  </header>

<main role="main">

  <section class="jumbotron text-center">
    <div class="container text-white">
      <h1>Apache Geronimo</h1>
      <p class="lead">Apache Geronimo is an open source set of projects that are focus on providing JavaEE/JakartaEE libraries and Microprofile implementations.<br>
        We are actively delivering reusable Java EE components though.<br>
        They are widely used and still actively maintained!</p>
    </div>
  </section>

  <div class="py-5 bg-light">
    <div class="container">

      <div class="row">
        <div class="col-md-6 pb-4">
          <div class="card mb-6 shadow-sm">
            <svg class="bd-placeholder-img card-img-top" width="100%" height="225" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img" aria-label="Placeholder: Thumbnail"><title>Placeholder</title><rect width="100%" height="100%" fill="#4faed1"/><text x="50%" y="50%" fill="#eceeef" dy=".3em" font-size="2em">JavaEE/JakartaEE</text></svg>
            <div class="card-body">
              <p class="card-text">Apache Geronimo provide libraries for the implementations of the Java EE and Jakarta EE specifications. The implementations are also focus on providing OSGi bundle metadatas.<br><br><br><br><br></p>
              <div class="d-flex justify-content-between float-right">             
                <a href="https://github.com/apache/geronimo-specs" class="btn btn-outline-primary">Learn more</a>
              </div>
            </div>
          </div>
        </div>
        <div class="col-md-6 pb-4">
          <div class="card mb-6 shadow-sm">
            <svg class="bd-placeholder-img card-img-top" width="100%" height="225" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img" aria-label="Placeholder: Thumbnail"><title>Placeholder</title><rect width="100%" height="100%" fill="#499fd5"/><text x="50%" y="50%" fill="#eceeef" dy=".3em" font-size="2em">XBean</text></svg>
            <div class="card-body">
              <p class="card-text">The goal of XBean project is to created a plugin based server analogous to Eclipse being a plugin based IDE. XBean will be able to discover, download and install server plugins from an Internet based repository. In addition, we include support for multiple IoC systems, support for running with no IoC system, JMX without JMX code, lifecycle and class loader management, and a rock solid Spring integration.</p>
              <div class="d-flex justify-content-between float-right">             
                <a href="https://github.com/apache/geronimo-xbean" class="btn btn-outline-primary">Learn more</a>
              </div>
            </div>
          </div>
        </div>
      </div>

      <div class="row">
        <div class="col-md-6 pb-4">
          <div class="card mb-6 shadow-sm">
            <svg class="bd-placeholder-img card-img-top" width="100%" height="225" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img" aria-label="Placeholder: Thumbnail"><title>Placeholder</title><rect width="100%" height="100%" fill="#4488da"/><text x="50%" y="50%" fill="#eceeef" dy=".3em" font-size="2em">Microprofile</text></svg>
            <div class="card-body">
              <p class="card-text">Apache Geronimo hosts several Microprofile Implementation:
                <ul>
                  <li>Config</li>
                  <li>Fault Tolerance (Safeguard)</li>
                  <li>JWT Auth, OpenTracing
                  <li>Health</li>
                  <li>Metrics</li>
                  <li>OpenAPI</li>
                </ul>
                There is also some extensions as a set of module integration with Microprofile and enriching it transparently with production/cloud ready features. It also provide μ~ (utilda) which is a pom with <a href="https://openwebbeans.apache.org/meecrowave/">Apache Meecrowave</a> and the Aggregator pom which makes you a one dependency Microprofile 2.0 server, ready to use.<br><br><br><br>
              </p>
              <div class="d-flex justify-content-between float-right">             
                <a href="https://geronimo.apache.org/microprofile/" class="btn btn-outline-primary">Learn more</a>
              </div>
            </div>
          </div>
        </div>
        <div class="col-md-6 pb-4">
          <div class="card mb-6 shadow-sm">
            <svg class="bd-placeholder-img card-img-top" width="100%" height="225" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img" aria-label="Placeholder: Thumbnail"><title>Placeholder</title><rect width="100%" height="100%" fill="#427fc9"/><text x="50%" y="50%" fill="#eceeef" dy=".3em" font-size="2em">Arthur</text></svg>
            <div class="card-body">
              <p class="card-text">Apache Geronimo Arthur is an effort to build a thin layer on top of Oracle GraalVM to build native binaries from your Java programs. 
                Arthur project is composed of multiple module:
                <ul>
                  <li><strong>API:</strong> it contains some end user API integrated with built-in extensions to simplify application graal-ification.</li>
                  <li><strong>SPI:</strong> it contains the extension API intended to be used by libraries or integrators to simplify the graal-ification of a coding pattern or framework coding style.</li>
                  <li><strong>Implementation:</strong> it does the orchestration of the extensions execution before the native-image command line generation and execution.</li>
                  <li><strong>Maven Plugin:</strong> it wraps the Implementation in a Maven Plugin and provides Docker helper mojos.</li>
                  <li><strong>Knights:</strong> knight are modules providing Arthur extensions.</li>
                </ul>
                <br>
              </p>
              <div class="d-flex justify-content-between float-right">             
                <a href="https://geronimo.apache.org/arthur" class="btn btn-outline-primary">Learn more</a>
              </div>
            </div>
          </div>
        </div>
      </div>

      <div class="row">
        <div class="col-md-6 pb-4">
          <div class="card mb-6 shadow-sm">
            <svg class="bd-placeholder-img card-img-top" width="100%" height="225" xmlns="http://www.w3.org/2000/svg" preserveAspectRatio="xMidYMid slice" focusable="false" role="img" aria-label="Placeholder: Thumbnail"><title>Placeholder</title><rect width="100%" height="100%" fill="#427dba"/><text x="50%" y="50%" fill="#eceeef" dy=".3em" font-size="2em">BatchEE</text></svg>
            <div class="card-body">
                <p class="card-text">Apache BatchEE is a project providing an implementation of JBatch (aka jsr-352) and a set of useful extension for this specification.
                The JBatch implementation is based on a fork of the Reference Implementation provided by IBM but it has now a set of enhancements.
                BatchEE provide:
                <ul>
                  <li><strong>Extensions:</strong> Beanio, Camel, Commons-csv, Extras, Groovy, Hazelcast, Jackson, Jsefa, Jsonp, Modelmapper.</li>
                  <li><strong>GUI:</strong> a Web-UI and 2 different ways to expose Batch details via REST, </li>
                  <li><strong>CLI:</strong> to make it easy to integrate with companies schedulers and let JBatch batches run as any program.</li>
                  <li><strong>Maven plugins:</strong> documentation, remote instance configuration.</li>
                </ul>
              <div class="d-flex justify-content-between float-right">             
                <a href="https://geronimo.apache.org/batchee" class="btn btn-outline-primary">Learn more</a>
              </div>
          </div>
        </div>
      </div>
    </div>
  </div>

  </div>

  <div class="py-5 bg-white">
    <div class="container">
      <h2>Disclaimer</h2>
      <p class="lead">
        Apache Geronimo&trade; is an open source server runtime that integrates the best open source projects to create Java/OSGi server runtimes that meet the needs of enterprise developers and system administrators.
        Our most popular distribution has previously been a fully certified Java EE 6 application server runtime.
        Now we are refocusing on providing JavaEE/JakartaEE libraries and Microprofile implementations.
        Please note that the Apache Geronimo Project does no longer actively maintain the Geronimo Application Server!
        If you are looking for a replacement then please look at the <a href="https://tomee.apache.org/">Apache TomEE</a> Application Server project.</p>
    </div>
  </div>



  <div class="py-5 bg-white">
    <div class="container">
      <div class="row mb-5 pt-5">
        <div class="col-md-7">
          <h2>Apache & OpenSource</h2>
          <p class="lead">
            Apache Geronimo&trade; is your project! Apache Geronimo&trade; is an Apache Software Foundation project, available under the Apache v2 license.
            It's a complete open community, always listening proposals and comments.
            Sources, mailing lists, issue tracker: it's fully open, you can access directly.
            We also love contributions : don't hesitate to contribute.
          </p>
        </div>
        <div class="col-md-5 align-items-center">
          <a href="https://apache.org" target="_blank">
            <img class="img-fluid mx-auto" src="assets/img/apache.png" alt="Apache Software Foundation">
          </a>
        </div>
      </div>
    </div>
  </div>

  
</main>

<footer class="text-muted bg-dark">
  <div class="container mb-5">
    <p class="float-right">
      <a href="https://www.apache.org/events/current-event.html" target="_blank">
        <img class="img-fluid mx-auto" src="https://www.apache.org/events/current-event-125x125.png" alt="ApacheEvents" />
      </a>
    </p>
    <p>
      <a target="_blank" href="https://www.apache.org/events/current-event.html" title="Apache Events">Apache Events</a> -
      <a target="_blank" href="https://www.apache.org/licenses/" title="Licenses">Licenses</a> -
      <a target="_blank" href="https://www.apache.org/security/" title="Security">Security</a> -
      <a target="_blank" href="https://www.apache.org/foundation/sponsorship.html" title="Sponsorship">Sponsorship</a> -
      <a target="_blank" href="https://www.apache.org/foundation/thanks.html" title="Thanks">Thanks</a><br/>
    </p>
    <p>
      Copyright © 2020 The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
    </p>
    <p>
      Apache Geronimo, Apache and the Apache feather logo are trademarks of <a href="https://www.apache.org/">The Apache Software Foundation</a>.
    </p>
  </div>
</footer>

<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
</body>
</html>
