<!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://batchee.incubator.apache.org" 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>
