You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by je...@apache.org on 2019/09/04 15:11:12 UTC

[sling-whiteboard] 01/02: service selection

This is an automated email from the ASF dual-hosted git repository.

jeb pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git

commit 30bd8b5c613fd9ad8e867ad22bf5bf16fec53d44
Author: JE Bailey <je...@apache.org>
AuthorDate: Thu Aug 29 08:17:11 2019 -0400

    service selection
---
 .../apache/sling/transformer/TransformationContext.java  |  2 +-
 .../org/apache/sling/transformer/TransformationStep.java |  9 +++++++++
 .../apache/sling/transformer/impl/NonceTransformer.java  |  2 +-
 .../transformer/impl/TransformationContextImpl.java      |  2 +-
 .../transformer/impl/TransformationManagerImpl.java      | 16 ++++++++++++++--
 5 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/transformer/src/main/java/org/apache/sling/transformer/TransformationContext.java b/transformer/src/main/java/org/apache/sling/transformer/TransformationContext.java
index 245517d..621b09c 100644
--- a/transformer/src/main/java/org/apache/sling/transformer/TransformationContext.java
+++ b/transformer/src/main/java/org/apache/sling/transformer/TransformationContext.java
@@ -39,7 +39,7 @@ public interface TransformationContext {
 
     Map<String, Object> getState();
 
-    void next(HtmlElement... elements);
+    void doNext(HtmlElement... elements);
 
     Stream<HtmlElement> getElements();
     
diff --git a/transformer/src/main/java/org/apache/sling/transformer/TransformationStep.java b/transformer/src/main/java/org/apache/sling/transformer/TransformationStep.java
index d343ba5..3f2f565 100644
--- a/transformer/src/main/java/org/apache/sling/transformer/TransformationStep.java
+++ b/transformer/src/main/java/org/apache/sling/transformer/TransformationStep.java
@@ -18,8 +18,17 @@ package org.apache.sling.transformer;
 
 import org.apache.sling.commons.html.HtmlElement;
 
+/**
+ * Defines the service that will be used to modify the html as it's passed back
+ *
+ */
 public interface TransformationStep {
 
+    /**
+     * Called at the beginning of the filter once the steps for a request are identified
+     * 
+     * @param context
+     */
     default void init(TransformationContext context) {
     }
 
diff --git a/transformer/src/main/java/org/apache/sling/transformer/impl/NonceTransformer.java b/transformer/src/main/java/org/apache/sling/transformer/impl/NonceTransformer.java
index b5be4d1..a69728a 100644
--- a/transformer/src/main/java/org/apache/sling/transformer/impl/NonceTransformer.java
+++ b/transformer/src/main/java/org/apache/sling/transformer/impl/NonceTransformer.java
@@ -46,7 +46,7 @@ public class NonceTransformer implements TransformationStep {
             }
         }
         
-        context.next(element);
+        context.doNext(element);
     }
 
 }
diff --git a/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationContextImpl.java b/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationContextImpl.java
index 601348b..8676213 100644
--- a/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationContextImpl.java
+++ b/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationContextImpl.java
@@ -61,7 +61,7 @@ public class TransformationContextImpl implements TransformationContext {
      * the accept method of the consumer so that they may be passed on to the next
      * process.
      */
-    public void next(HtmlElement... elements) {
+    public void doNext(HtmlElement... elements) {
         if (reset) {
             list.clear();
             reset = false;
diff --git a/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationManagerImpl.java b/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationManagerImpl.java
index 6d9970d..144c60e 100644
--- a/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationManagerImpl.java
+++ b/transformer/src/main/java/org/apache/sling/transformer/impl/TransformationManagerImpl.java
@@ -17,6 +17,7 @@
 package org.apache.sling.transformer.impl;
 
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 import java.util.TreeMap;
@@ -61,9 +62,20 @@ public class TransformationManagerImpl implements TransformationManager {
     }
 
     private boolean doStep(Map<String, Object> properties, SlingHttpServletRequest request) {
-        properties.keySet().forEach(key -> {
+        Iterator<String> it = properties.keySet().iterator();
+        while (it.hasNext()) {
+            String key = it.next();
+            switch (key) {
+            case "path":
+                String value = (String) properties.get(key);
+                if (!request.getRequestURI().matches(value)) {
+                    return false;
+                }
+                break;
+            default:
+            }
 
-        });
+        }
         return true;
     }