This module is part of the Apache Sling project.
This bundle provides Sling's default GET and HEAD servlet implementations for:
- HTML rendering
- Plain-text rendering
- JSON rendering
- XML rendering
- Binary stream delivery
- Redirect handling (
jcr:contentresources) - Sling runtime info and JCR version info endpoints
- Java 17
- Maven 3.9+
# Build shaded bundle and sources
mvn clean package
# Run unit/integration tests
mvn test
# Run a single test class
mvn test -Dtest=JsonRendererServletTest
# Run a single test method
mvn test -Dtest=JsonRendererServletTest#testMethod
# Check or apply formatting (Spotless via sling-bundle-parent)
mvn spotless:check
mvn spotless:apply
# Verify license headers
mvn apache-rat:check
# Install locally without tests
mvn install -DskipTestsTo deploy to a running Sling instance (there is no local dev server in this module):
mvn sling:install- The package phase produces the deployable shaded bundle:
target/org.apache.sling.servlets.get-<version>.jar
- Original (pre-shade) artifacts are also generated:
target/original-org.apache.sling.servlets.get-<version>.jar
- Source JARs are generated for both shaded and original variants.
- OSGi baseline comparison reports are generated under
target/baseline/.
- Uses OSGi R7 Declarative Services annotations (
org.osgi.service.component.annotations). - Uses OSGi Metatype annotations (
org.osgi.service.metatype.annotations) for servlet configuration. - Uses Jakarta Servlet (
jakarta.servlet) and Jakarta JSON (jakarta.json) APIs at runtime, while keepingjavax.servlet-apias a provided compatibility dependency. - Targets Sling API
3.x(SlingJakartaHttpServletRequest/SlingJakartaHttpServletResponse). - Produces a shaded JAR at package time.
- Relocates
org.apache.jackrabbit.utiltoorg.apache.sling.servlets.get.impl.jackrabbitand inlinesISO8601. - Keeps
javax.jcrimports optional inbnd.bndfor environments without JCR packages. - Uses OWASP Java Encoder (
org.owasp.encoder) in rendering paths. - Uses SLF4J (
org.slf4j) for logging. - This module does not export a public API package; implementation lives under
org.apache.sling.servlets.get.impl.
pom.xml Maven build descriptor
bnd.bnd OSGi import and inlined resource instructions
src/
main/java/org/apache/sling/servlets/get/impl/
DefaultGetServlet.java Dispatcher for GET/HEAD by selector/extension
RedirectServlet.java Redirect handling
SlingInfoServlet.java Sling runtime info endpoint
VersionInfoServlet.java JCR version info endpoint
helpers/
Renderer.java
HtmlRenderer.java
JsonRenderer.java
PlainTextRenderer.java
XMLRenderer.java
StreamRenderer.java
HeadServletResponse.java
util/
JsonObjectCreator.java
JsonToText.java
ResourceTraversor.java
test/java/... JUnit 4 + Mockito + Sling Mock tests
test/resources/ JSON fixtures (for example `data.json`, `samplefile.json`)
target/baseline/ OSGi baseline comparison output (build-time)
