/** Example/test Sling Servlet registered with two extensions */ @Component(immediate=true, metatype=false) @Service(value=javax.servlet.Servlet.class) @Properties({ @Property(name="service.description", value="Extension Test Servlet"), @Property(name="service.vendor", value="The Apache Software Foundation"), @Property(name="sling.servlet.resourceTypes", value="sling/servlet/default"), @Property(name="sling.servlet.extensions", value={ "TEST_EXT_1", "TEST_EXT_2" }) }) @SuppressWarnings("serial") public class ExtensionServlet extends TestServlet { }
@SlingServlet(paths = {"/bin/cqsm/history"}, methods = {"GET"}) @Service @Properties({@Property(name = Constants.SERVICE_DESCRIPTION, value = "CQSM History List Servlet"), @Property(name = Constants.SERVICE_VENDOR, value = Cqsm.VENDOR_NAME)}) public class HistoryListServlet extends SlingAllMethodsServlet { @Override protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException { List<Entry> executions = request.adaptTo(ExecutionHistoryModel.class).getExecutions(); ServletUtils.writeJson(response, executions); } }
/** Example/test Sling Servlet using a prefix to demonstrate how * PrefixServletZero overrides PrefixServletMinusOne */ @Component(immediate=true, metatype=false) @Service(value=javax.servlet.Servlet.class) @Properties({ @Property(name="service.description", value="Prefix Test Servlet Minus One"), @Property(name="service.vendor", value="The Apache Software Foundation"), @Property(name="sling.servlet.prefix", intValue=-1), @Property(name="sling.servlet.resourceTypes", value="sling/servlet/default"), @Property(name="sling.servlet.extensions", value={ "TEST_EXT_3", "TEST_EXT_4" }) }) @SuppressWarnings("serial") public class PrefixServletMinusOne extends TestServlet { }
@SlingServlet(paths = {"/bin/cqsm/history"}, methods = {"GET"}) @Service @Properties({@Property(name = Constants.SERVICE_DESCRIPTION, value = "CQSM History List Servlet"), @Property(name = Constants.SERVICE_VENDOR, value = Cqsm.VENDOR_NAME)}) public class HistoryListServlet extends SlingAllMethodsServlet { @Override protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException { List<Entry> executions = request.adaptTo(ExecutionHistoryModel.class).getExecutions(); ServletUtils.writeJson(response, executions); } }
/** Example/test BindingsValuesProvider targeting groovy scripts */ @Component(immediate=true, metatype=false) @Service @Properties({ @Property(name="service.description", value="Groovy BindingsValuesProvider"), @Property(name="service.vendor", value="The Apache Software Foundation"), @Property(name="javax.script.name", value="groovy") }) public class GroovyBindingsValuesProvider implements BindingsValuesProvider { public void addBindings(Bindings bindings) { bindings.put("groovyHelloWorld", "Hello World from Groovy!"); } }
/** * Wraps {@link org.apache.jackrabbit.server.io.DirListingExportHandler} in order to run it as a service. */ @Component(metatype = true, label = "%dirlistingexporthandler.name", description = "%dirlistingexporthandler.description") @Property(name = Constants.SERVICE_RANKING, intValue = 100, propertyPrivate = false) @Service(value = {IOHandler.class, PropertyHandler.class}) public class DirListingExportHandlerService extends DirListingExportHandler { }
@SlingServlet(paths = {"/bin/cqsm/list"}, methods = {"GET"}) @Service @Properties({ @Property(name = Constants.SERVICE_DESCRIPTION, value = "CQSM List Servlet"), @Property(name = Constants.SERVICE_VENDOR, value = Cqsm.VENDOR_NAME) }) public class ScriptListServlet extends SlingAllMethodsServlet { @Override protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException { List<FileModel> files = request.adaptTo(ImportInitModel.class).getFiles(); ServletUtils.writeJson(response, files); } }
/** Example/test Sling Servlet using a prefix to demonstrate how * PrefixServletZero overrides PrefixServletMinusOne */ @Component(immediate=true, metatype=false) @Service(value=javax.servlet.Servlet.class) @Properties({ @Property(name="service.description", value="Prefix Test Servlet Zero"), @Property(name="service.vendor", value="The Apache Software Foundation"), @Property(name="sling.servlet.prefix", intValue=0), @Property(name="sling.servlet.resourceTypes", value="sling/servlet/default"), @Property(name="sling.servlet.extensions", value={ "TEST_EXT_3", "TEST_EXT_5" }) }) @SuppressWarnings("serial") public class PrefixServletZero extends TestServlet { }
@SlingServlet(paths = {"/bin/cqsm/list"}, methods = {"GET"}) @Service @Properties({ @Property(name = Constants.SERVICE_DESCRIPTION, value = "CQSM List Servlet"), @Property(name = Constants.SERVICE_VENDOR, value = Cqsm.VENDOR_NAME) }) public class ScriptListServlet extends SlingAllMethodsServlet { @Override protected void doGet(final SlingHttpServletRequest request, final SlingHttpServletResponse response) throws ServletException, IOException { List<FileModel> files = request.adaptTo(ImportInitModel.class).getFiles(); ServletUtils.writeJson(response, files); } }
/** Example/test Filter with sling.filter.pattern see also SLING-4294 */ @Component(immediate=true, metatype=false) @Service(value=javax.servlet.Filter.class) @Properties({ @Property(name="service.description", value="SlingFilter Test Filter"), @Property(name="service.vendor", value="The Apache Software Foundation"), @Property(name="filter.scope", value="request"), @Property(name="sling.filter.scope", value="request"), @Property(name="sling.filter.pattern", value="/system.*") }) public class SlingFilterWithPattern extends TestFilter { @Override protected String getHeaderName() { return "FILTER_COUNTER_SLING_WITH_PATTERN"; } }
@Component(metatype = true) @Property(name = Constants.SERVICE_RANKING, intValue = 3, propertyPrivate = false) @Service(value = { org.apache.jackrabbit.server.io.IOHandler.class, org.apache.jackrabbit.server.io.PropertyHandler.class}) public class TestHandler1 extends AbstractHandler { @Override public String getHandlerName(){ return "test-io-handler-1"; } }
/** Example/test BindingsValuesProvider targeting JSP scripts */ @Component(immediate=true, metatype=false) @Service @Properties({ @Property(name="service.description", value="JSP BindingsValuesProvider"), @Property(name="service.vendor", value="The Apache Software Foundation") }) public class JSPBindingsValuesProvider implements BindingsValuesProvider { public void addBindings(Bindings bindings) { bindings.put("jspHelloWorld", "Hello World from JSP!"); } }
/** Example SlingPostProcessor used in integration tests */ @Component @Service @Property(name=Constants.SERVICE_RANKING, intValue=1) public class SlingPostProcessorTwo implements SlingPostProcessor { @Override public void process(SlingHttpServletRequest request, List<Modification> mods) throws Exception { DummyModification.maybeAdd(request, mods, getClass().getSimpleName()); } }
/** Example/test Filter */ @Component(immediate=true, metatype=false) @Service(value=javax.servlet.Filter.class) @Properties({ @Property(name="service.description", value="SlingFilter Test Filter"), @Property(name="service.vendor", value="The Apache Software Foundation"), @Property(name="filter.scope", value="request"), @Property(name="sling.filter.scope", value="request") }) public class SlingFilter extends TestFilter { @Override protected String getHeaderName() { return "FILTER_COUNTER_SLING"; } }
@Component(immediate = true) @Service(PageProvider.class) public class XliffDownloadPageProvider implements PageProvider { @Property(value = "/xliff") static final String PAGE_PATH = PageProvider.MOUNT_PATH_PROPERTY; @Override public Class<? extends Page> getPageClass() { return XliffDownloadPage.class; } }
/** Example/test BindingsValuesProvider targeting all scripts */ @Component(immediate=true, metatype=false) @Service @Properties({ @Property(name="service.description", value="StringBindingsValuesProvider"), @Property(name="service.vendor", value="The Apache Software Foundation") }) public class StringBindingsValuesProvider implements BindingsValuesProvider { public void addBindings(Bindings bindings) { bindings.put("helloWorld", "Hello World!"); } }
@Component(metatype = true) @Property(name = Constants.SERVICE_RANKING, intValue = 1, propertyPrivate = false) @Service(value = { org.apache.jackrabbit.server.io.IOHandler.class, org.apache.jackrabbit.server.io.PropertyHandler.class}) public class TestHandler3 extends AbstractHandler { @Override public String getHandlerName(){ return "test-io-handler-111"; } }