@Component(immediate=true) @Service(value=AnalysedTextFactory.class) @Properties(value={ @Property(name=Constants.SERVICE_RANKING,intValue=Integer.MIN_VALUE) }) public class AnalysedTextFactoryImpl extends AnalysedTextFactory { @Override public AnalysedText createAnalysedText(Blob blob) throws IOException { String text = ContentItemHelper.getText(blob); return new AnalysedTextImpl(blob,text); } }
@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); } }
@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); } }
@Component(immediate=true) @Service(value=AnalysedTextFactory.class) @Properties(value={ @Property(name=Constants.SERVICE_RANKING,intValue=Integer.MIN_VALUE) }) public class AnalysedTextFactoryImpl extends AnalysedTextFactory { @Override public AnalysedText createAnalysedText(Blob blob) throws IOException { String text = ContentItemHelper.getText(blob); return new AnalysedTextImpl(blob,text); } }
@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 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!"); } }
@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); } }
@Component @Service @Properties({@Property(name = Constants.SERVICE_DESCRIPTION, value = "Resolves the instance type"), @Property(name = Constants.SERVICE_VENDOR, value = Cqsm.VENDOR_NAME)}) public class InstanceTypeProviderImpl implements InstanceTypeProvider { private static final String RUNMODE_AUTHOR = "author"; @Reference private SlingSettingsService settingsService; @Override public boolean isOnAuthor() { return settingsService.getRunModes().contains(RUNMODE_AUTHOR); } }
/** 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 @Service @Properties({ @Property(name="mode", value="lowercase"), @Property(name="service.ranking", intValue=-10) }) public class LowerRankingStringTransformer implements StringTransformer { public String transform(String str) { throw new UnsupportedOperationException("This " + getClass().getSimpleName() + " shouldn't be called in tests due to lower ranking"); } }
@Component(immediate = true) @Service({ Function.class, AbstractCommand.class }) @org.apache.felix.scr.annotations.Properties({ @Property(name = "osgi.command.scope", value = "jasypt"), @Property(name = "osgi.command.function", value = "encrypt") }) public class EncryptPassword extends AbstractCommand { @Override public Action createNewAction() { return new EncryptPasswordAction(); } }
@Component @Service @Properties({@Property(name = Constants.SERVICE_DESCRIPTION, value = "Resolves the instance type"), @Property(name = Constants.SERVICE_VENDOR, value = Cqsm.VENDOR_NAME)}) public class InstanceTypeProviderImpl implements InstanceTypeProvider { private static final String RUNMODE_AUTHOR = "author"; @Reference private SlingSettingsService settingsService; @Override public boolean isOnAuthor() { return settingsService.getRunModes().contains(RUNMODE_AUTHOR); } }
/** 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 { }
/** 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!"); } }
/** * Service which looks like an adapter factory, but isn't. See SLING-2522. */ @Component @Service(NotReallyAnAdapterFactory.class) @Properties({ @Property(name=AdapterFactory.ADAPTABLE_CLASSES, value="org.apache.sling.api.resource.Resource"), @Property(name=AdapterFactory.ADAPTER_CLASSES, value="something_which_shouldnt_appear") }) public class NotReallyAnAdapterFactory implements AdapterFactory { public <AdapterType> AdapterType getAdapter(Object adaptable, Class<AdapterType> type) { // TODO Auto-generated method stub return null; } }
/** * Component which loads the JCR test content on startup. */ @Component(enabled=false, metatype=false) @Properties({ @Property(name="service.description", value="Test Content Loader"), @Property(name="service.vendor", value="The Apache Software Foundation") }) public class StartupTestContentLoader { @Reference private TestContentLoader loader; protected void activate(ComponentContext context) throws RepositoryException, IOException { loader.loadTestContent(); } }
/** Servlet that registers itself for specific paths */ @Component(immediate=true, metatype=false) @Service(value=javax.servlet.Servlet.class) @Properties({ @Property(name="service.description", value="Paths Test Servlet"), @Property(name="service.vendor", value="The Apache Software Foundation"), @Property(name="sling.servlet.paths", value={ "/testing/PathsServlet/foo", "/testing/PathsServlet/bar/more/foo.html" }) }) @SuppressWarnings("serial") public class PathsServlet extends TestServlet { }
/** Example/test filter */ @Component(immediate=true, metatype=false) @Service(value=javax.servlet.Filter.class) @Properties({ @Property(name="service.description", value="NoProperty Test Filter"), @Property(name="service.vendor", value="The Apache Software Foundation"), @Property(name="sling.filter.scope", value="request") }) public class NoPropertyFilter extends TestFilter { @Override protected String getHeaderName() { return "FILTER_COUNTER_NOPROP"; } }
/** * Service which actually is an adapter factory. See SLING-2522. */ @Component @Service(AdapterFactory.class) @Properties({ @Property(name=AdapterFactory.ADAPTABLE_CLASSES, value="org.apache.sling.api.resource.Resource"), @Property(name=AdapterFactory.ADAPTER_CLASSES, value="something_which_should_appear") }) public class ReallyAnAdapterFactory implements AdapterFactory { public <AdapterType> AdapterType getAdapter(Object adaptable, Class<AdapterType> type) { // TODO Auto-generated method stub return null; } }
@Component( label = "Ionic AEM Apps Link Transformer Factory", description = "Transforms a tag hrefs into fragment references when in Preview and Publish.", metatype = true) @Service @Properties( value = { @Property(name="pipeline.mode",value="global") , @Property(name="service.ranking",value="-5000") }) public class LinkTransformerFactory implements TransformerFactory { public Transformer createTransformer() { return new LinkTransformer(); } }