[ https://issues.apache.org/jira/browse/SLING-6183?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15600006#comment-15600006 ]
Justin Edelson commented on SLING-6183: --------------------------------------- Here's a brief video walkthrough of this feature: https://www.dropbox.com/s/s5g1yzlbfy5n996/ExporterWalkthrough.mp4?dl=0 although note that at the time that video was made, the default selector was "export". During development, I thought it wiser to change this to "model". > 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 > Fix For: Sling Models API 1.3.0, Sling Models Impl 1.3.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)