This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to branch master
in repository
https://gitbox.apache.org/repos/asf/sling-org-apache-sling-starter-test-services.git
The following commit(s) were added to refs/heads/master by this push:
new a8db873 SLING-13071 - HTL use objects that adapt from the javax
SlingHttpServletRequest cannot be instantiated a Jakarta context (#20)
a8db873 is described below
commit a8db873fac007b7cf13c9ef9a9f4f6b51cf718d3
Author: Robert Munteanu <[email protected]>
AuthorDate: Tue Jan 27 13:51:55 2026 +0100
SLING-13071 - HTL use objects that adapt from the javax
SlingHttpServletRequest cannot be instantiated a Jakarta context (#20)
Add a Pojo and adapter factory that can help reproduce the problem.
---
.../adapter/RequestHashCodeAdapterFactory.java | 50 ++++++++++++++++++++++
...{package-info.java => RequestHashCodePojo.java} | 31 +++++++++++++-
.../testservices/exported/package-info.java | 2 +-
3 files changed, 80 insertions(+), 3 deletions(-)
diff --git
a/src/main/java/org/apache/sling/starter/testservices/adapter/RequestHashCodeAdapterFactory.java
b/src/main/java/org/apache/sling/starter/testservices/adapter/RequestHashCodeAdapterFactory.java
new file mode 100644
index 0000000..f29304f
--- /dev/null
+++
b/src/main/java/org/apache/sling/starter/testservices/adapter/RequestHashCodeAdapterFactory.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.sling.starter.testservices.adapter;
+
+import org.apache.sling.api.SlingHttpServletRequest;
+import org.apache.sling.api.adapter.AdapterFactory;
+import org.apache.sling.starter.testservices.exported.RequestHashCodePojo;
+import org.jetbrains.annotations.NotNull;
+import org.osgi.service.component.annotations.Component;
+
+/**
+ * AdapterFactory that adapts SlingHttpServletRequest to RequestHashCodePojo.
+ * The POJO will contain the hash code of the request object as a string.
+ */
+@Component(
+ service = AdapterFactory.class,
+ property = {
+ AdapterFactory.ADAPTABLE_CLASSES +
":String=org.apache.sling.api.SlingHttpServletRequest",
+ AdapterFactory.ADAPTER_CLASSES
+ +
":String=org.apache.sling.starter.testservices.exported.RequestHashCodePojo"
+ })
+public class RequestHashCodeAdapterFactory implements AdapterFactory {
+
+ @Override
+ public <AdapterType> AdapterType getAdapter(@NotNull Object adaptable,
@NotNull Class<AdapterType> type) {
+ if (adaptable instanceof SlingHttpServletRequest && type ==
RequestHashCodePojo.class) {
+ SlingHttpServletRequest request = (SlingHttpServletRequest)
adaptable;
+ String hashCodeString = String.valueOf(request.hashCode());
+ RequestHashCodePojo pojo = new RequestHashCodePojo(hashCodeString);
+ return type.cast(pojo);
+ }
+ return null;
+ }
+}
diff --git
a/src/main/java/org/apache/sling/starter/testservices/exported/package-info.java
b/src/main/java/org/apache/sling/starter/testservices/exported/RequestHashCodePojo.java
similarity index 57%
copy from
src/main/java/org/apache/sling/starter/testservices/exported/package-info.java
copy to
src/main/java/org/apache/sling/starter/testservices/exported/RequestHashCodePojo.java
index 1d1ec8a..5c54ffe 100644
---
a/src/main/java/org/apache/sling/starter/testservices/exported/package-info.java
+++
b/src/main/java/org/apache/sling/starter/testservices/exported/RequestHashCodePojo.java
@@ -16,6 +16,33 @@
* specific language governing permissions and limitations
* under the License.
*/
-
[email protected]("2.2.0")
package org.apache.sling.starter.testservices.exported;
+
+/**
+ * POJO representing a request hash code.
+ *
+ * <p>Key characteristics: does not have a no-arg constructor and its
AdapterFactory adapts from
+ * the legacy SlingHttpServletRequest interface.</p>
+ */
+public class RequestHashCodePojo {
+
+ private final String hashCode;
+
+ /**
+ * Constructor that takes the hashCode.
+ *
+ * @param hashCode the hash code as a string
+ */
+ public RequestHashCodePojo(String hashCode) {
+ this.hashCode = hashCode;
+ }
+
+ /**
+ * Gets the hash code value.
+ *
+ * @return the hash code as a string
+ */
+ public String getHashCode() {
+ return hashCode;
+ }
+}
diff --git
a/src/main/java/org/apache/sling/starter/testservices/exported/package-info.java
b/src/main/java/org/apache/sling/starter/testservices/exported/package-info.java
index 1d1ec8a..37eaba9 100644
---
a/src/main/java/org/apache/sling/starter/testservices/exported/package-info.java
+++
b/src/main/java/org/apache/sling/starter/testservices/exported/package-info.java
@@ -17,5 +17,5 @@
* under the License.
*/
[email protected]("2.2.0")
[email protected]("2.3.0")
package org.apache.sling.starter.testservices.exported;