| <!-- |
| /*************************************************************************************************************************** |
| * 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. |
| ***************************************************************************************************************************/ |
| --> |
| |
| 8.1.3 (TBD) |
| |
| <p> |
| Juneau 8.1.3 is a moderate release. |
| </p> |
| |
| <h5 class='topic w800'>juneau-marshall</h5> |
| <ul class='spaced-list'> |
| <li> |
| Dynamically applied annotations: {@doc juneau-marshall.DynamicallyAppliedAnnotations} |
| <li> |
| Better representation of nulls for XML and HTML content properties. |
| <br>Old: <js>"<myBean><null></myBean>"</js> |
| <br>New: <js>"<myBean nil='true'></myBean>"</js> |
| <li> |
| Configurable properties such as {@link oaj.BeanContext#BEAN_debug} can now be set globally by either |
| system properties or environment variables. |
| <br>For <jsf>BEAN_debug</jsf> you can use either the system |
| property <js>"BeanContext.debug"</js> or environment variables <js>"BEANCONTEXT_DEBUG"</js>. |
| <li> |
| Fixed an initialization time race condition that can cause initial parse errors when concurrently parsing into |
| array types like so: |
| <p class='bcode w800'> |
| JsonParser.<jsf>DEFAULT</jsf>.parse(input, MyBean[].<jk>class</jk>); |
| </p> |
| </ul> |
| |
| <h5 class='topic w800'>juneau-rest-server</h5> |
| <ul class='spaced-list'> |
| <li> |
| Fixed bug in {@link oajr.BasicRestCallHandler} where if you have the following REST methods... |
| <p class='bcode w800'> |
| <ja>@RestMethod</ja>(name=<js>"GET"</js>, path=<js>"/foo"</js>) |
| <ja>@RestMethod</ja>(name=<js>"*"</js>, path=<js>"/bar"</js>) |
| </p> |
| ...and you tried to make a GET request to /bar, you'd erroneously get a 404 error instead of matching the 2nd method. |
| <li> |
| Fixed an issue involving using Juneau REST with Spring Security. When Spring Security cannot authenticate a |
| request, it sets the URL on the request to <js>"/error"</js> with a 401 status. When Juneau then processes |
| this request, it cannot find that mapping and changes the status to 404 which messes with HTTP clients. |
| <br>Solution was to add a default no-op error method to the {@link oajr.BasicRestConfig} (and implementers): |
| <p class='bcode w800'> |
| <ja>@RestMethod</ja>(name=<js>"*"</js>, path=<js>"/error"</js>) |
| <jk>public void</jk> error() {} |
| </p> |
| <li> |
| Fixed a bug where <c><ja>@RestResource</ja>(debug=<js>"true"</js>)</c> wouldn't log requests if a |
| <ja>@RestMethod</ja>-annotated method was not matched. |
| <li> |
| Renamed the following annotations: |
| <ul> |
| <li><ja>@Rest(attrs)</ja> --> {@link oajr.annotation.Rest#reqAttrs() @Rest(reqAttrs)} |
| <li><ja>@Rest(defaultRequestHeaders)</ja> --> {@link oajr.annotation.Rest#reqHeaders() @Rest(reqHeaders)} |
| <li><ja>@Rest(defaultResponseHeaders)</ja> --> {@link oajr.annotation.Rest#resHeaders() @Rest(resHeaders)} |
| <li><ja>@RestMethod(attrs)</ja> --> {@link oajr.annotation.RestMethod#reqAttrs() @RestMethod(reqAttrs)} |
| <li><ja>@RestMethod(defaultRequestHeaders)</ja> --> {@link oajr.annotation.RestMethod#reqHeaders() @RestMethod(reqHeaders)} |
| </ul> |
| <li> |
| New auto-generated REST method execution statistics: {@doc juneau-rest-server.ExecutionStatistics} |
| </ul> |
| |
| <h5 class='topic w800'>juneau-rest-client</h5> |
| <ul class='spaced-list'> |
| <li> |
| Several convenience methods defined in {@link oajrc.RestClientBuilder} that were deprecated in 8.1.2 have been |
| undeprecated in this release due to user feedback. |
| </ul> |
| |
| <h5 class='topic w800'>juneau-doc</h5> |
| <ul class='spaced-list'> |
| <li> |
| New auto-generated glossary of all configurable properties: {@doc Glossaries.ConfigurablePropertiesGlossary} |
| </ul> |