| <!-- |
| /*************************************************************************************************************************** |
| * Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations under the License. |
| ***************************************************************************************************************************/ |
| --> |
| |
| Introduction |
| |
| <p> |
| Apache Juneau™ is a single cohesive Java ecosystem consisting of the following parts: |
| </p> |
| <table class='styled w800'> |
| <tr> |
| <th>Group</th><th>Component</th><th>Description</th> |
| </tr> |
| |
| <tr class='dark bb'> |
| <td rowspan="4" style='text-align:center;font-weight:bold;padding:20px;'>Juneau Core</td> |
| <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-{@property juneauVersion}/overview-summary.html#juneau-marshall'>juneau-marshall</a></td> |
| <td> |
| A universal toolkit for marshalling POJOs to a wide variety of content types using a common framework with no external library dependencies. |
| </td> |
| </tr> |
| <tr class='dark bb'> |
| <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-{@property juneauVersion}/overview-summary.html#juneau-marshall-rdf'>juneau-marshall-rdf</a></td> |
| <td> |
| Extended marshalling support for RDF languages. |
| </td> |
| </tr> |
| <tr class='dark bb'> |
| <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-{@property juneauVersion}/overview-summary.html#juneau-dto'>juneau-dto</a></td> |
| <td> |
| A variety of predefined DTOs for serializing and parsing languages such as HTML5, Swagger and ATOM. |
| </td> |
| </tr> |
| <tr class='dark bb'> |
| <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-{@property juneauVersion}/overview-summary.html#juneau-config'>juneau-config</a></td> |
| <td> |
| A sophisticated configuration file API. |
| </td> |
| </tr> |
| |
| <tr class='light bb'> |
| <td rowspan="5" style='text-align:center;font-weight:bold;padding:20px;'>Juneau REST</td> |
| <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-{@property juneauVersion}/overview-summary.html#juneau-rest-server'>juneau-rest-server</a></td> |
| <td> |
| A universal REST server API for creating Swagger-based self-documenting REST interfaces using POJOs, simply deployed as |
| one or more top-level servlets in any Servlet 3.1.0+ container. |
| </td> |
| </tr> |
| <tr class='light bb'> |
| <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-{@property juneauVersion}/overview-summary.html#juneau-rest-server-springboot'>juneau-rest-server-springboot</a></td> |
| <td> |
| Spring boot integration support. |
| </td> |
| </tr> |
| <tr class='light bb'> |
| <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-{@property juneauVersion}/overview-summary.html#juneau-rest-server-jaxrs'>juneau-rest-server-jaxrs</a></td> |
| <td> |
| JAX/RS integration support. |
| </td> |
| </tr> |
| <tr class='light bb'> |
| <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-{@property juneauVersion}/overview-summary.html#juneau-rest-client'>juneau-rest-client</a></td> |
| <td> |
| A universal REST client API for interacting with Juneau or 3rd-party REST interfaces using POJOs and proxy interfaces. |
| </td> |
| </tr> |
| <tr class='light bb'> |
| <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-{@property juneauVersion}/overview-summary.html#juneau-rest-mock'>juneau-rest-mock</a></td> |
| <td> |
| Mocking APIs for server-less end-to-end testing of REST server and client APIs. |
| </td> |
| </tr> |
| |
| <tr class='dark bb'> |
| <td rowspan="4" style='text-align:center;font-weight:bold;padding:20px;'>Examples</td> |
| <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-{@property juneauVersion}/overview-summary.html#juneau-examples-core'>juneau-examples-core</a></td> |
| <td> |
| Juneau Core API examples. |
| </td> |
| </tr> |
| <tr class='dark bb'> |
| <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-{@property juneauVersion}/overview-summary.html#juneau-examples-rest'>juneau-examples-rest</a></td> |
| <td> |
| Juneau REST API examples. |
| </td> |
| </tr> |
| <tr class='dark bb'> |
| <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-{@property juneauVersion}/overview-summary.html#juneau-examples-rest-jetty'>juneau-examples-rest-jetty</a></td> |
| <td> |
| Juneau REST API examples using Jetty deployment. |
| </td> |
| </tr> |
| <tr class='dark bb'> |
| <td class='code'><a class='doclink' href='http://juneau.apache.org/site/apidocs-{@property juneauVersion}/overview-summary.html#juneau-examples-rest-springboot'>juneau-examples-rest-springboot</a></td> |
| <td> |
| Juneau REST API examples using Spring Boot deployment. |
| </td> |
| </tr> |
| |
| </table> |
| <p> |
| Questions via email to <a class='doclink' href='mailto:dev@juneau.apache.org?Subject=Apache%20Juneau%20question'>dev@juneau.apache.org</a> are always welcome. |
| </p> |
| <p> |
| Juneau is packed with features that may not be obvious at first. |
| Users are encouraged to ask for code reviews by providing links to specific source files such as through GitHub. |
| Not only can we help you with feedback, but it helps us understand usage patterns to further improve the product. |
| </p> |
| |
| <h5 class='topic'>History</h5> |
| <p> |
| Juneau started off as a popular internal IBM toolkit called Juno. |
| Originally used for serializing POJOs to and from JSON (at a time when the concept was new), it later expanded in |
| scope to include a variety of content types, and then later REST servlet, client, and microservice APIs. |
| It's use grew to more than 50 projects and was one of the most popular community source projects within IBM. |
| </p> |
| <p> |
| In June of 2016, the code was donated to the Apache Foundation under the project <l>Apache Juneau</l> where it |
| has continued to evolve to where it is today. |
| </p> |