[ https://issues.apache.org/jira/browse/SLING-6183?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Justin Edelson resolved SLING-6183. ----------------------------------- Resolution: Fixed patch committed in http://svn.apache.org/viewvc?view=revision&revision=1767030 If another exporter which meets some of the features [~dan_mcweeney] describes is necessary, it can always be added in the future. > Sling Models - Provide a mechanism to export model objects via servlets > ----------------------------------------------------------------------- > > Key: SLING-6183 > URL: https://issues.apache.org/jira/browse/SLING-6183 > Project: Sling > Issue Type: New Feature > Components: Extensions > Reporter: Justin Edelson > Assignee: Justin Edelson > Fix For: Sling Models API 1.3.0, Sling Models Impl 1.3.0, Sling > Models Jackson Exporter 1.0.0 > > Attachments: SLING-6183.patch > > > I would like to introduce a new feature to Sling Models named Exporters. > Exporters allow for a model class to be exported into a specific Java object > type in a automated fashion. The simplest example is to support String > serialization, although different Exporters may support whatever target > classes they see fit. > Exporters are implemented through an SPI. This initial contribution includes > an exporter using the Jackson library which supports both {{String}} and > {{Map}} exports. > Interfacing with the registered Exporters is done through three new methods > on the {{ModelFactory}} interface: > * {{exportMode}} > * {{exportModelForResource}} > * {{exportModelForRequest}} > In addition, using these functionality, model objects can have > automatically-registered servlets which export the model (from either the > request or the request's resource) as a {{String}} and then serve that > {{String}} to the client. > Registering these servlets is done through a new annotation named > {{@Exporter}} > For example, you might add this annotation to a Model class > {{@Exporter(name = 'jackson', extension = 'json')}} > This will register a servlet for the model's resource type with the extension > `json` and a selector of `model` (by default, the {{@Exporter}} annotation > can also define a different selector). -- This message was sent by Atlassian JIRA (v6.3.4#6332)