blob: c8f57480a3be1e9db9ffc4cbbc1bb6ec9e434c14 [file] [log] [blame]
<!--
/***************************************************************************************************************************
* 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 minor release.
</p>
<h5 class='topic w800'>juneau-marshall</h5>
<ul class='spaced-list'>
<li>
Better representation of nulls for XML and HTML content properties.
<br>Old: <js>"&lt;myBean&gt;&lt;null&gt;&lt;/myBean&gt;"</js>
<br>New: <js>"&lt;myBean nil='true'&gt;&lt;/myBean&gt;"</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> which resolves to <js>"BEAN_debug"</js>, you can use either the system
property <js>"BeanContext.debug.b"</js> or environment variables <js>"BeanContext_debug_b"</js> or
<js>"BEANCONTEXT_DEBUG_B"</js>.
</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='bpcode 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='bpcode 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> --&gt; {@link oajr.annotation.Rest#reqAttrs() @Rest(reqAttrs)}
<li><ja>@Rest(defaultRequestHeaders)</ja> --&gt; {@link oajr.annotation.Rest#reqHeaders() @Rest(reqHeaders)}
<li><ja>@Rest(defaultResponseHeaders)</ja> --&gt; {@link oajr.annotation.Rest#resHeaders() @Rest(resHeaders)}
<li><ja>@RestMethod(attrs)</ja> --&gt; {@link oajr.annotation.RestMethod#reqAttrs() @RestMethod(reqAttrs)}
<li><ja>@RestMethod(defaultRequestHeaders)</ja> --&gt; {@link oajr.annotation.RestMethod#reqHeaders() @RestMethod(reqHeaders)}
</ul>
</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>