Release 5.1.0.17
Date: Aug 3, 2015
Juno 5.1.0.17 is a major update.
Core
-
BeanMap.get(Object) and BeanMap.put(String,Object) now automatically performs filtering if filters are defined on the bean property or bean property class.
- Deleted the following methods which are now unnecessary:
BeanMap.getFiltered(String)
BeanMap.putFiltered(String,Object)
BeanMapEntry.getFiltered(String)
BeanMapEntry.putFiltered(String,Object)
BeanMapEntry.putFiltered(String,Object)
BeanPropertyMeta.getFiltered()
BeanPropertyMeta.setFiltered(Object)
BeanPropertyMeta.getTransformedClassMeta()
- BeanPropertyMeta.getClassMeta() now returns the filtered type of the property.
- Deleted the following methods which are now unnecessary:
-
StringVarResolvernow has support for chained resolvers. -
StringVarResolvernow resolves variables inside resolved values. i.e. if a resolved variable value itself contains a variable, it now resolves that variable too. -
Fixed bug where inner interface classes being used in
RestResource.filters()were being interpreted as surrogate classes because they have hidden 1-arg constructors due to being inner classes. -
Fixed bug in MultiSet where exception was being thrown if last set was empty.
-
New
ZipFileListclass for providing efficiently zipped directories through the REST interface. -
New
RdfProperties.RDF_useXmlNamespaces
property. -
New
XmlParserContext.XML_preserveRootElementproperty. -
Worked around bug in Sun VM on OS/X where XML parser was throwing an exception when trying to set a reporter.
Server
-
New
ZipFileListResponseHandlerclass. -
Simplified labels in servlet resource bundles:
"[ClassName].ResourceDescription"
is now"[ClassName].label"
."[ClassName].MethodDescription.[methodName]"
is now"[ClassName].[methodName]"
.
-
Several changes to RestRequest:
- Added new methods:
RestRequest.getQueryParameterMap()RestRequest.getQueryParameterNames()RestRequest.getPathInfoUndecoded()RestRequest.getPathRemainderUndecoded()RestRequest.getTrimmedRequestURI()RestRequest.getTrimmedRequestURL()RestRequest.getServletTitle()RestRequest.getServletDescription()RestRequest.getMethodDescription()
- Behavior changes to
RestRequest.getPathInfo()to follow Servlet specs. Returnsnull
instead of blank for no path info. RestRequest.getPathRemainder()now automatically decodes the path remainder. UseRestRequest.getPathRemainderUndecoded()to get the unencoded path remainder.- Bug fixes in
RestRequest.getRequestParentURI()when servlet is mapped to"/*"
. - Bug fixes in
RestRequest.getServletURI()when servlet is mapped to"/*"
.
- Added new methods:
-
New string replacement variables:
$R{contextPath}
- Returns value from RestRequest.getContextPath()$R{methodDescription}
- Returns value fromRestRequest.getMethodDescription()$R{resourceTitle}
- Returns value fromRestRequest.getServletTitle()$R{resourceDescription}
- Returns value fromRestRequest.getServletDescription()$R{trimmedRequestURI}
- Returns value fromRestRequest.getTrimmedRequestURI()$E{var}
- Environment variables.
-
Added methods
RestServlet.getDescription(RestRequest)andRestServlet.getLabel(RestRequest). -
BasicRestServletandRestServletJenaDefaultnow provide default HTML titles and descriptions:@Property(name=HTMLDOC_title, value="$R{resourceTitle}"),
@Property(name=HTMLDOC_description, value="$R{resourceDescription}") -
Options pages on
BasicRestServletandRestServletJenaDefaultnow provide default descriptions and back links:@Property(name=HTMLDOC_navlinks, value="{back:'$R{servletURI}"),
@Property(name=HTMLDOC_description, value="Resource options") -
New
BasicRestServletGroupclass. -
Removed
RestServletProperties.REST_trimTrailingUriSlashes
andRestServletProperties.REST_pathInfoBlankForNull
. -
New annotations for providing labels and descriptions. Useful if you don't plan on having to support other languages, so you don't want to provide labels in resource bundles.
RestResource.label()@RestResource(description)RestMethod.description() @RestMethod(description)RestMethod.responses()Attr.description()Content.description()HasParam.description()HasQParam.description()Header.description()Param.description()QParam.description()
-
Support for sorting resources by name in
ChildResourceDescriptions.
Samples
- Added
/tempDir/upload
showing how to useServletFileUpload
with multipart form posts.