| <!-- |
| /*************************************************************************************************************************** |
| * 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. |
| ***************************************************************************************************************************/ |
| --> |
| |
| Juneau JAX-RS Provider |
| |
| <p> |
| The Juneau framework contains the <l>juneau-rest-server-jaxrs</l> bundle for performing simple |
| integration of Juneau serializers and parsers in JAX-RS compliant environments. |
| </p> |
| <p> |
| It should be noted that although some of the functionality of the Juneau Server API is provided through the JAX-RS |
| integration components, it is not nearly as flexible as using the {@link oajr.RestServlet} class directly. |
| </p> |
| <p> |
| What you can do with the Juneau JAX-RS provider classes: |
| </p> |
| <ul class='spaced-list'> |
| <li> |
| Use existing Juneau serializers and parsers for converting streams to POJOs and vis-versa. |
| <li> |
| Use annotations to specify filters and properties using the {@link oajr.annotation.RestMethod @RestMethod} |
| and {@link oajr.jaxrs.JuneauProvider} annotations. |
| </ul> |
| <p> |
| What you can't do with the Juneau JAX-RS provider classes: |
| </p> |
| <ul class='spaced-list'> |
| <li> |
| Specify or override serializers/parsers at the Java class and method levels. |
| <br>JAX-RS does not provide the capability to use different providers for the same media types |
| at the class or method levels. |
| <li> |
| Specify or override filters and properties at the Java class level. |
| <li> |
| Default stylesheets for the {@link oaj.html.HtmlDocSerializer} class. |
| <br>It will produce HTML, but it won't contain any styles applied. |
| <li> |
| The ability to specify HTTP method, headers, and content using GET parameters. |
| <br>These make debugging REST interfaces using only a browser possible. |
| <li> |
| Class or method level encoding. |
| <li> |
| Class or method level guards. |
| <li> |
| Class or method level converters. |
| </ul> |
| |
| <p> |
| The Juneau JAX-RS provider API consists of the following classes: |
| </p> |
| <ul class='javatree'> |
| <li class='jc'> |
| {@link oajr.jaxrs.BaseProvider} - The base provider class that implements the JAX-RS |
| <c>MessageBodyReader</c> and <c>MessageBodyWriter</c> interfaces. |
| <li class='jc'> |
| {@link oajr.jaxrs.JuneauProvider} - Annotation that is applied to subclasses of <c>BaseProvider</c> |
| to specify the serializers/parsers associated with a provider, and optionally filters and properties to |
| apply to those serializers and parsers. |
| <li class='jc'> |
| {@link oajr.jaxrs.BasicProvider} - A default provider that provides the same level |
| of media type support as the {@link oajr.BasicRestServlet} class. |
| </ul> |
| <p> |
| For the most part, when using these components, you'll either use the existing <l>BasicProvider</l>, |
| or define your own by subclassing <l>BaseProvider</l>. |
| </p> |