11 Changelog
Version: 3.1.0
11 Changelog
11.1 Grails 3.x
Version 3.1.0
- Upgrade to support Grails 3.3.x (huge thanks Alex Stoia!)
Version 3.0.4
- Integrate Swagger into the
jaxrs-jersey1
plugin. - Introduce the
jaxrs-swagger-ui
plugin.
Version 3.0.3
- Added missing
jersey-client
dependency for the jersey1 plugin. (#25) - Refactored JAX-RS servlet initialization order due to call order differences between the embedded tomcat server and the standalone tomcat server. (#26)
Version 3.0.2
- Add
ResourceRegistrar
andScanningResourceRegistrar
so that applications and plugins can provide a set of resources or providers outside of the normal artefact scanning process. - Move integration tests out of the
jaxrs-core
plugin and into thejaxrs-integration-test
plugin. - Add tests to the
jaxrs-restlet
plugin. - Changed how URL mappings work:
- URL mappings are no longer configured statically via application configuration.
- URL mappings are compiled by scanning resource classes and their methods, and a new URL mapping entry will be added
per unique path. This works for both resource classes present in
grails-app/resources
and other resource classes registered via other means. - Update restlet to 2.3.6.
Version 3.0.1
- Fix jaxrs-core plugin descriptor class name.
- Compile the plugin with JDK 1.7 compatibility.
- Update authors.
- Fill in missing information in plugin descriptor files.
- Lowered Grails version requirement to 3.0.0.
Version 3.0.0
This is the initial release of the jaxrs project for Grails 3. Structurally, this is a major refactor from the existing codebase. Procedurally, the plugin has not changed much.Major changes include:- Plugin has been broken up into several plugins.
- jaxrs-core contains the base logic for the plugin but will not work standalone.
- jaxrs-jersey1 uses the Jersey 1.9 implementation.
- jaxrs-restlet uses the Restlet 2.1.4 implementation.
- jaxrs-integration-test provides base classes to test resources in integration tests.
- Most source files have been changed from
*.java
to*.groovy
files. - Many class packages have changed, and all class packages have been moved under
org.grails.plugins.jaxrs
. - Grails-generated documentation has been created.
- Ownership and maintenance of the project has been transferred.
11.2 Grails 2.x
Version 0.11
Version 0.11 of the plugin is a release of the Grails 2.4.x compatibility branch and is probably not compatible with any previous versions.
- Grails 2.4.x compatibility modifications.
Version 0.10
Version 0.10 of the plugin is a release of the Grails 2.3.x compatibility branch and is probably not compatible with any previous versions.
- Re-introduced Spock testing infrastructure using Spock bundled with Grails 2.3.x
- Includes all fixes and features added to the release of version 0.9.
- Grails 2.3.x compatibility modifications.
- Upgrade to Restlet 2.1.4.
Version 0.9
To improve the compatibility of this plugin across Groovy and Grails versions, the Spock test infrastructure has been removed and is now available through the new Grails JAXRS-Spock plugin. Please review the new plugin's README file for installation instructions.
- Added exclusions for un-required dependencies.
- Modified the order of the servlet configuration; the load-on-startup field is now specified last.
- Add the ability to specify query parameters in the test request path.
- Take Encoding into consideration when decoding the input stream.
- Remove copy-pasted MockHttpServletRequest from plugin.
- Allow for multiple resources creation at once.
- Downgraded the Grails version requirement to 2.0.x.
Version 0.8
This version enables the plugin to be used by Grails 2.2.x applications but breaks backwards compatibility for versions prior to 2.2.x.
Version 0.7
- Enhancement: Added infrastructure to enable Spock integration testing
- Fix: Cannot use jaxrs 0.6 with servlet 2.5 (it needs servlet api 3.0).
- Fix: Removed usages of the deprecated Grails ConfigurationHolder.
Version 0.6
- Upgrade to Grails 2.0.0
- Upgrade to Jersey 1.8
- Enhancement: Allow applications to configure init parameters for the
JerseyServlet
- Enhancement: Separate service class used by generated resources
- Enhancement: Transaction boundaries in generated resource code
- Enhancement: Support deep object conversion in domain object providers
- Fix: Support for alphanumeric domain object identifiers
- Fix: POST method doesn't work
- Fix:
java.lang.IllegalStateException: getOutputStream() has already been called for this response
Version 0.5-m1
- New integration test framework
- Upgrade to Grails 1.3.7
- Upgrade to Jersey 1.5
- Enhancement: Add support for configuring Jersey with additional provider paths
- Enhancement: Switch to Grails' dependency management mechanism
- Enhancement:
JaxrsController
moved to packageorg.grails.jaxrs
- Fix: Responses with Content-Type
text/html
eaten by Grails - Fix: Service injection into resources doesn't work in integration tests
Version 0.4
- Automated generation of WADL documents (with some known limitations)
- Upgrade to Grails 1.3.1
- Upgrade to Jersey 1.2
- Upgrade to Restlet 2.0-RC3
- Fix: Object ids in XML or JSON requests are not set on the domain object.
- Fix: Unmarshalling from JSON (and XML) to nested domain objects doesn't work properly
There's a bug (issue 971) in Restlet 2.0-RC3 that forces implementors ofMessageBodyReader
andMessageBodyWriter
to directly implement these interfaces. Extending a class that implements these interfaces doesn't work. Restlet will ignore the provider in this case.
Version 0.3
- Domain object providers
- Convert between Grails domain objects and XML or JSON representations
- Allow usage of Grails domain classes in resource method signatures
- Support for content negotiation using the Accept request header
- Can be disabled by means of configuration
- Custom entity provider support
- Base classes for custom domain object providers
org.grails.jaxrs.support.DomainObjectReaderSupport
org.grails.jaxrs.support.DomainObjectWriterSupport
- Base classes for more general entity providers (improved)
org.grails.jaxrs.support.MessageBodyReaderSupport
org.grails.jaxrs.support.MessageBodyWriterSupport
- Scaffolding enhancements
- XML and JSON representations
- Content negotiation support
- Auto-detection of JAX-RS resource classes better aligned with the JAX-RS specification (incl. support for annotation inheritance)
- Auto-detection of JAX-RS provider classes better aligned with the JAX-RS specification
- Default URL mapping for
JaxrsController
changed - Upgrade to Grails 1.1.2
- Upgrade to Jersey 1.1.4.1
- Upgrade to Restlet 2.0-M6
Version 0.2
In version 0.2 the way how JAX-RS resources and providers are auto-detected has changed. In version 0.1 plain Spring mechanisms were used (<context:component-scan />
, Component
annotation, etc.) whereas in version 0.2 the plugin
follows Grails conventions regarding how to detect and manage resources. Now, there's no need to provide a custom Spring
application context. The jaxrs plugin is now making these changes behind the scenes.Similar changes have been introduced for injection of other beans into JAX-RS resources and providers. In version 0.1
plain Spring mechanisms were necessary such as the Autowired
annotation whereas in version 0.2 other beans are
auto-injected by name similar to Grails controllers, for example.