Skip to content

Commit c46613c

Browse files
author
Michael Hörenbeg
committed
#68 include common sling request utility methods
1 parent f0756f2 commit c46613c

File tree

9 files changed

+838
-6
lines changed

9 files changed

+838
-6
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ these utilities offer the reliable core functionality required for modern AEM im
4545
| **[jcr](core/src/main/java/com/merkle/oss/aem/utils/jcr)** | <ul><li>[PermissionUtil](core/src/main/java/com/merkle/oss/aem/utils/jcr/PermissionUtil.java): JCR Access Control, User Management, and Permission checking</li></ul> |
4646
| **[link](core/src/main/java/com/merkle/oss/aem/utils/link)** | <ul><li>[Links](core/src/main/java/com/merkle/oss/aem/utils/link/constants/Links.java): Constants and definitions for URL handling and URI manipulation within AEM</li><li>[LinkExternalizerUtil](core/src/main/java/com/merkle/oss/aem/utils/link/LinkExternalizerUtil.java): Transforming resource paths into absolute, externalized URLs</li><li>[LinkMappingUtil](core/src/main/java/com/merkle/oss/aem/utils/link/LinkMappingUtil.java): Applying Sling Resource Mapping to paths</li><li>[LinkUtil](core/src/main/java/com/merkle/oss/aem/utils/link/LinkUtil.java): Validating, formatting, and manipulating URLs and JCR paths</li></ul> |
4747
| **[query](core/src/main/java/com/merkle/oss/aem/utils/query)** | <ul><li>[PredicateProperties](core/src/main/java/com/merkle/oss/aem/utils/query/PredicateProperties.java): Provides predicate property paths used for `com.day.cq.search.Query`</li><li>[QueryResultHelper](core/src/main/java/com/merkle/oss/aem/utils/query/QueryResultHelper.java): Safe and efficient retrieval of `com.day.cq.search.Query` results</li><li>[QuerySearch](core/src/main/java/com/merkle/oss/aem/utils/query/QuerySearch.java): A builder-style utility to simplify the creation of `com.day.cq.search.Query` objects</li><li>[QuerySearchUtil](core/src/main/java/com/merkle/oss/aem/utils/query/QuerySearchUtil.java): providing static helper methods for `com.day.cq.search.Query` construction</li></ul> |
48-
| **[sling](core/src/main/java/com/merkle/oss/aem/utils/sling)** | <ul><li>[ResourceUtil](core/src/main/java/com/merkle/oss/aem/utils/sling/ResourceUtil.java): For common `org.apache.sling.api.resource.Resource` operation focused on retrieval</li><li>[SlingUtil](core/src/main/java/com/merkle/oss/aem/utils/sling/SlingUtil.java): Provides type-safe shortcuts for object adaptation via `org.apache.sling.api.adapter.Adaptable`</li></ul> |
48+
| **[sling](core/src/main/java/com/merkle/oss/aem/utils/sling)** | <ul><li>[RequestUtil](core/src/main/java/com/merkle/oss/aem/utils/sling/RequestUtil.java): For common operations related to `org.apache.sling.api.SlingHttpServletRequest`</li><li>[ResourceUtil](core/src/main/java/com/merkle/oss/aem/utils/sling/ResourceUtil.java): For common `org.apache.sling.api.resource.Resource` operation focused on retrieval</li><li>[SlingUtil](core/src/main/java/com/merkle/oss/aem/utils/sling/SlingUtil.java): Provides type-safe shortcuts for object adaptation via `org.apache.sling.api.adapter.Adaptable`</li></ul> |
4949
| **[wcm](core/src/main/java/com/merkle/oss/aem/utils/wcm)** | <ul><li>[PageManagerUtil](core/src/main/java/com/merkle/oss/aem/utils/wcm/PageManagerUtil.java): Shortcuts to interacting with `com.day.cq.wcm.api.PageManager`</li><li>[PageUtil](core/src/main/java/com/merkle/oss/aem/utils/wcm/PageUtil.java): Generic `com.day.cq.wcm.api.Page` operations and content traversion</li></ul> |
5050

5151
### Services

all/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<parent>
1010
<groupId>com.merkle.oss.aem</groupId>
1111
<artifactId>aem-utils</artifactId>
12-
<version>1.0.1-SNAPSHOT</version>
12+
<version>1.1.0-SNAPSHOT</version>
1313
<relativePath>../pom.xml</relativePath>
1414
</parent>
1515

core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<parent>
1010
<groupId>com.merkle.oss.aem</groupId>
1111
<artifactId>aem-utils</artifactId>
12-
<version>1.0.1-SNAPSHOT</version>
12+
<version>1.1.0-SNAPSHOT</version>
1313
<relativePath>../pom.xml</relativePath>
1414
</parent>
1515

core/src/main/java/com/merkle/oss/aem/utils/sling/README.md

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,9 @@
11
## Example usage
22

3+
* [RequestUtil](#requestutil)
4+
* [Selector handling](#selector-handling)
5+
* [Suffix handling](#suffix-handling)
6+
* [Parameter handling](#parameter-handling)
37
* [ResourceUtil](#resourceutil)
48
* [isValid()](#isvalid)
59
* [childrenAsStream()](#childrenasstream)
@@ -10,6 +14,97 @@
1014
* [to()](#to)
1115
* [caConfigOf()](#caconfigof)
1216

17+
### RequestUtil
18+
19+
#### Selector handling
20+
21+
```java
22+
23+
import com.merkle.oss.aem.utils.sling.RequestUtil;
24+
import org.apache.sling.api.SlingHttpServletRequest;
25+
//other imports...
26+
27+
@Override
28+
protected void doGet(@NonNull final SlingHttpServletRequest request,
29+
@NonNull final SlingHttpServletResponse response) {
30+
31+
/* <--- EXAMPLE ---> */
32+
final boolean hasSelector = RequestUtil.hasSelector(request, "selectorValue");
33+
/* <--- EXAMPLE ---> */
34+
final List<String> selectors = RequestUtil.getSelectors(request);
35+
/* <--- EXAMPLE ---> */
36+
final String selector = RequestUtil.getSelector(request, 1, "defaultValue");
37+
/* <--- EXAMPLE ---> */
38+
final String firstSelector = RequestUtil.getFirstSelector(request, "defaultValue");
39+
40+
//handle servlet logic...
41+
}
42+
43+
44+
```
45+
46+
#### Suffix handling
47+
48+
```java
49+
50+
import com.merkle.oss.aem.utils.sling.RequestUtil;
51+
import org.apache.sling.api.SlingHttpServletRequest;
52+
//other imports...
53+
54+
@Override
55+
protected void doGet(@NonNull final SlingHttpServletRequest request,
56+
@NonNull final SlingHttpServletResponse response) {
57+
58+
/* <--- EXAMPLE ---> */
59+
final boolean hasSuffix = RequestUtil.hasSuffix(request);
60+
/* <--- EXAMPLE ---> */
61+
final String suffix = RequestUtil.getSuffix(request);
62+
/* <--- EXAMPLE ---> */
63+
final List<String> suffixSegments = RequestUtil.getSuffixSegments(request);
64+
/* <--- EXAMPLE ---> */
65+
final String suffixSegment = RequestUtil.getSuffixSegment(request, 1, "defaultValue");
66+
/* <--- EXAMPLE ---> */
67+
final String firstSuffixSegment = RequestUtil.getFirstSuffixSegment(request, "defaultValue");
68+
69+
//handle servlet logic...
70+
}
71+
72+
73+
```
74+
75+
#### Parameter handling
76+
77+
```java
78+
79+
import com.merkle.oss.aem.utils.sling.RequestUtil;
80+
import org.apache.sling.api.SlingHttpServletRequest;
81+
//other imports...
82+
83+
@Override
84+
protected void doGet(@NonNull final SlingHttpServletRequest request,
85+
@NonNull final SlingHttpServletResponse response) {
86+
87+
/* <--- EXAMPLE ---> */
88+
final boolean hasParameter = RequestUtil.hasParameter(request, "parameterName");
89+
/* <--- EXAMPLE ---> */
90+
final List<String> parameterList = RequestUtil.getParameterList(request, "arrayParameterName");
91+
/* <--- EXAMPLE ---> */
92+
final String parameterValue = RequestUtil.getParameter(request, "parameterName", "defaultValue");
93+
/* <--- EXAMPLE ---> */
94+
final int parameterIntValue = RequestUtil.getParameterAsInt(request, "parameterName", 0);
95+
/* <--- EXAMPLE ---> */
96+
final long parameterLongValue = RequestUtil.getParameterAsLong(request, "parameterName", 0L);
97+
/* <--- EXAMPLE ---> */
98+
final float parameterFloatValue = RequestUtil.getParameterAsFloat(request, "parameterName", 0.0f);
99+
/* <--- EXAMPLE ---> */
100+
final boolean parameterBooleanValue = RequestUtil.getParameterAsBoolean(request, "parameterName", false);
101+
102+
//handle servlet logic...
103+
}
104+
105+
106+
```
107+
13108
### ResourceUtil
14109

15110
#### isValid()

0 commit comments

Comments
 (0)