[ https://issues.apache.org/jira/browse/SLING-902?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Carsten Ziegeler closed SLING-902. ---------------------------------- Resolution: Won't Fix We'll add the annotations directly in the Felix scr-annotations project (see FELIX-1056) > add java annotation support for sling scr components/servlets > ------------------------------------------------------------- > > Key: SLING-902 > URL: https://issues.apache.org/jira/browse/SLING-902 > Project: Sling > Issue Type: New Feature > Components: Servlets Resolver > Reporter: Stefan Seifert > Attachments: 090329_sling_scr_annotations.zip > > > please note: this proposal depends on a felix-scr-plugin proposal described in > https://issues.apache.org/jira/browse/FELIX-1010 > with the described scr plugin enhancement it is possible to define SCR > component definitions via annotations. furthermore it is possible for > felix/SCR based projects to define their own and less verbose annotations for > specific need, together with a provider class mapping them to the SCR tags > needed by the plugin internally. > the attached zip file provides such a implemented for one new annotation > "SlingServlet", see example below. > i was not sure into which project and classpath this classes should be > placed, so i attached a ZIP file for discussion and try-out. the best > solution would be to split them up into two projects - one project containing > only the annotation, and the other containing the provider and tag mapping. > the first project has no dependencies and can be referenced by any other > project needing the annotation. the second has to import the felix-scr-plugin > as dependency, this results in a lot of transitive dependency not to be > wished in a normal project. > Example > ------- > QDox version: > /** > * Sample servlet with sling mappings. > * > * @scr.component immediate="true" > * @scr.service interface="javax.servlet.Servlet" > * @scr.property name="sling.servlet.methods" value="GET" > * @scr.property name="sling.servlet.resourceTypes" > * value="/apps/test/components/samplecomponent" > * @scr.property name="sling.servlet.extensions" values.0="html" > values.1="json" > */ > public class SlingServletQDox implements Servlet { > Annotation version: > /** > * Sample servlet with sling mappings. > */ > @SlingServlet(methods = "GET", resourceTypes = > "/apps/test/components/samplecomponent", extensions = { "html", "json" }) > public class SlingServletAnnotation implements Servlet { > Custom annotation mappings can be integrated by defining a class implementing > "org.apache.felix.scrplugin.tags.annotation.AnnotationTagProvider" for the > new plugin property "annotationTagProviders" in the pom. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.