You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ol...@apache.org on 2019/06/02 08:21:37 UTC

[sling-org-apache-sling-clam] branch master updated (bdf2cc8 -> 0e5d981)

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

olli pushed a change to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-clam.git.


    from bdf2cc8  SLING-8304 Use Observer Whiteboard for NodeObservingJcrPropertyDigger
     new 7b25bba  SLING-8455 Add size of sent bytes to properties
     new c3cd5ab  SLING-8258 Provide HTTP API for Sling Clam
     new 11c1da0  SLING-8456 Make resource type of JCR Property scan result more specific
     new 78b1b6e  fix nullability annotation for user id
     new b251267  SLING-8258 Provide HTTP API for Sling Clam
     new 5de5f1b  SLING-8258 Provide HTTP API for Sling Clam
     new e26723a  SLING-8460 Use Sling Bundle Parent 35
     new a5dfedd  SLING-8461 Update Pax Exam to 4.13.1
     new 0e5d981  SLING-8462 Update Testing PaxExam to 3.0.0

The 9 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 pom.xml                                            |  19 +-
 .../clam/http/internal/ClamEventsServlet.java      | 192 +++++++++++++++++++++
 ...lamScanServlet.java => ClamJcrScanServlet.java} |  25 +--
 ...n.java => ClamJcrScanServletConfiguration.java} |   4 +-
 .../sling/clam/http/internal/RequestUtil.java      |  54 +++---
 .../sling/clam/http/internal/ResponseUtil.java     |  20 +++
 .../org/apache/sling/clam/internal/ClamUtil.java   |   1 +
 .../ResourcePersistingScanResultHandler.java       |   6 +-
 8 files changed, 274 insertions(+), 47 deletions(-)
 create mode 100644 src/main/java/org/apache/sling/clam/http/internal/ClamEventsServlet.java
 rename src/main/java/org/apache/sling/clam/http/internal/{ClamScanServlet.java => ClamJcrScanServlet.java} (83%)
 rename src/main/java/org/apache/sling/clam/http/internal/{ClamScanServletConfiguration.java => ClamJcrScanServletConfiguration.java} (96%)


[sling-org-apache-sling-clam] 02/09: SLING-8258 Provide HTTP API for Sling Clam

Posted by ol...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit c3cd5ab21b3d76cec56b780c5cfc4f7d98ca7f79
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Fri May 31 18:30:51 2019 +0200

    SLING-8258 Provide HTTP API for Sling Clam
    
    * rename scan servlet
    * change path
    * use constants
    * add debug logging
---
 pom.xml                                            | 11 ++++++++++
 ...lamScanServlet.java => ClamJcrScanServlet.java} | 25 ++++++++++++----------
 ...n.java => ClamJcrScanServletConfiguration.java} |  4 ++--
 3 files changed, 27 insertions(+), 13 deletions(-)

diff --git a/pom.xml b/pom.xml
index 2467452..0e571d1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -177,6 +177,12 @@
     </dependency>
     <dependency>
       <groupId>org.apache.sling</groupId>
+      <artifactId>org.apache.sling.auth.core</artifactId>
+      <version>1.2.0</version>
+      <scope>provided</scope>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.sling</groupId>
       <artifactId>org.apache.sling.event</artifactId>
       <version>4.2.10</version>
       <scope>provided</scope>
@@ -195,6 +201,11 @@
     </dependency>
     <dependency>
       <groupId>org.apache.sling</groupId>
+      <artifactId>org.apache.sling.servlets.resolver</artifactId>
+      <version>2.1.0</version>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.sling</groupId>
       <artifactId>org.apache.sling.serviceusermapper</artifactId>
       <version>1.3.0</version>
       <scope>provided</scope>
diff --git a/src/main/java/org/apache/sling/clam/http/internal/ClamScanServlet.java b/src/main/java/org/apache/sling/clam/http/internal/ClamJcrScanServlet.java
similarity index 83%
rename from src/main/java/org/apache/sling/clam/http/internal/ClamScanServlet.java
rename to src/main/java/org/apache/sling/clam/http/internal/ClamJcrScanServlet.java
index 837acff..02be234 100644
--- a/src/main/java/org/apache/sling/clam/http/internal/ClamScanServlet.java
+++ b/src/main/java/org/apache/sling/clam/http/internal/ClamJcrScanServlet.java
@@ -32,7 +32,9 @@ import org.apache.sling.api.SlingHttpServletRequest;
 import org.apache.sling.api.SlingHttpServletResponse;
 import org.apache.sling.api.resource.Resource;
 import org.apache.sling.api.servlets.SlingAllMethodsServlet;
+import org.apache.sling.auth.core.AuthConstants;
 import org.apache.sling.clam.jcr.NodeDescendingJcrPropertyDigger;
+import org.apache.sling.servlets.resolver.internal.ServletResolverConstants;
 import org.jetbrains.annotations.NotNull;
 import org.osgi.framework.Constants;
 import org.osgi.service.component.annotations.Activate;
@@ -57,16 +59,16 @@ import static org.apache.sling.clam.internal.ClamUtil.propertyTypesFromNames;
 @Component(
     service = Servlet.class,
     property = {
-        Constants.SERVICE_DESCRIPTION + "=Apache Sling Clam Scan Servlet",
+        Constants.SERVICE_DESCRIPTION + "=Apache Sling Clam JCR Scan Servlet",
         Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
-        "sling.servlet.paths=/bin/clam/scan",
-        "sling.auth.requirements=/bin/clam/scan"
+        ServletResolverConstants.SLING_SERVLET_PATHS + "=/system/clam-jcr-scan",
+        AuthConstants.AUTH_REQUIREMENTS + "=/system/clam-jcr-scan"
     }
 )
 @Designate(
-    ocd = ClamScanServletConfiguration.class
+    ocd = ClamJcrScanServletConfiguration.class
 )
-public class ClamScanServlet extends SlingAllMethodsServlet {
+public class ClamJcrScanServlet extends SlingAllMethodsServlet {
 
     @Reference(
         policy = ReferencePolicy.DYNAMIC,
@@ -74,26 +76,26 @@ public class ClamScanServlet extends SlingAllMethodsServlet {
     )
     private volatile NodeDescendingJcrPropertyDigger digger;
 
-    private ClamScanServletConfiguration configuration;
+    private ClamJcrScanServletConfiguration configuration;
 
     private Pattern pattern;
 
     private Set<Integer> propertyTypes;
 
-    private final Logger logger = LoggerFactory.getLogger(ClamScanServlet.class);
+    private final Logger logger = LoggerFactory.getLogger(ClamJcrScanServlet.class);
 
-    public ClamScanServlet() {
+    public ClamJcrScanServlet() {
     }
 
     @Activate
-    private void activate(final ClamScanServletConfiguration configuration) throws Exception {
+    private void activate(final ClamJcrScanServletConfiguration configuration) throws Exception {
         logger.debug("activating");
         this.configuration = configuration;
         configure(configuration);
     }
 
     @Modified
-    private void modified(final ClamScanServletConfiguration configuration) throws Exception {
+    private void modified(final ClamJcrScanServletConfiguration configuration) throws Exception {
         logger.debug("modifying");
         this.configuration = configuration;
         configure(configuration);
@@ -107,7 +109,7 @@ public class ClamScanServlet extends SlingAllMethodsServlet {
         propertyTypes = null;
     }
 
-    private void configure(final ClamScanServletConfiguration configuration) throws Exception {
+    private void configure(final ClamJcrScanServletConfiguration configuration) throws Exception {
         pattern = Pattern.compile(configuration.digger_default_property_path_pattern());
         propertyTypes = propertyTypesFromNames(configuration.digger_default_property_types());
     }
@@ -154,6 +156,7 @@ public class ClamScanServlet extends SlingAllMethodsServlet {
         }
 
         try {
+            logger.debug("digging in {} (not deeper than {} levels) for properties of types {} matching {} limited by {} bytes", node.getPath(), maxDepth, propertyTypes, pattern, maxLength);
             digger.dig(node, pattern, propertyTypes, maxLength, maxDepth);
         } catch (Exception e) {
             handleError(response, HttpServletResponse.SC_INTERNAL_SERVER_ERROR, e.getMessage());
diff --git a/src/main/java/org/apache/sling/clam/http/internal/ClamScanServletConfiguration.java b/src/main/java/org/apache/sling/clam/http/internal/ClamJcrScanServletConfiguration.java
similarity index 96%
rename from src/main/java/org/apache/sling/clam/http/internal/ClamScanServletConfiguration.java
rename to src/main/java/org/apache/sling/clam/http/internal/ClamJcrScanServletConfiguration.java
index 9fcf4ec..b8b9b76 100644
--- a/src/main/java/org/apache/sling/clam/http/internal/ClamScanServletConfiguration.java
+++ b/src/main/java/org/apache/sling/clam/http/internal/ClamJcrScanServletConfiguration.java
@@ -23,10 +23,10 @@ import org.osgi.service.metatype.annotations.ObjectClassDefinition;
 import org.osgi.service.metatype.annotations.Option;
 
 @ObjectClassDefinition(
-    name = "Apache Sling Clam Scan Servlet",
+    name = "Apache Sling Clam JCR Scan Servlet",
     description = "..."
 )
-@interface ClamScanServletConfiguration {
+@interface ClamJcrScanServletConfiguration {
 
     @AttributeDefinition(
         name = "scan authorized groups",


[sling-org-apache-sling-clam] 06/09: SLING-8258 Provide HTTP API for Sling Clam

Posted by ol...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 5de5f1b6b6622c51c6385c8c47898581dd77c0ee
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Sat Jun 1 18:47:12 2019 +0200

    SLING-8258 Provide HTTP API for Sling Clam
    
    * add events servlet
---
 .../clam/http/internal/ClamEventsServlet.java      | 192 +++++++++++++++++++++
 .../sling/clam/http/internal/ResponseUtil.java     |  20 +++
 2 files changed, 212 insertions(+)

diff --git a/src/main/java/org/apache/sling/clam/http/internal/ClamEventsServlet.java b/src/main/java/org/apache/sling/clam/http/internal/ClamEventsServlet.java
new file mode 100644
index 0000000..9123f10
--- /dev/null
+++ b/src/main/java/org/apache/sling/clam/http/internal/ClamEventsServlet.java
@@ -0,0 +1,192 @@
+/*
+ * 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.clam.http.internal;
+
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Queue;
+import java.util.concurrent.ConcurrentLinkedQueue;
+import java.util.concurrent.atomic.AtomicLong;
+
+import javax.servlet.AsyncContext;
+import javax.servlet.AsyncEvent;
+import javax.servlet.AsyncListener;
+import javax.servlet.Servlet;
+import javax.servlet.ServletException;
+import javax.servlet.ServletOutputStream;
+import javax.servlet.WriteListener;
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.sling.auth.core.AuthConstants;
+import org.apache.sling.clam.result.JcrPropertyScanResultHandler;
+import org.apache.sling.commons.clam.ScanResult;
+import org.jetbrains.annotations.NotNull;
+import org.jetbrains.annotations.Nullable;
+import org.osgi.framework.Constants;
+import org.osgi.service.component.annotations.Component;
+import org.osgi.service.http.whiteboard.HttpWhiteboardConstants;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.apache.sling.clam.http.internal.ResponseUtil.json;
+
+@Component(
+    service = {
+        Servlet.class,
+        JcrPropertyScanResultHandler.class
+    },
+    property = {
+        Constants.SERVICE_DESCRIPTION + "=Apache Sling Clam Events Servlet",
+        Constants.SERVICE_VENDOR + "=The Apache Software Foundation",
+        HttpWhiteboardConstants.HTTP_WHITEBOARD_CONTEXT_SELECT + "=(osgi.http.whiteboard.context.name=org.osgi.service.http)",
+        HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_PATTERN + "=/system/clam-events",
+        HttpWhiteboardConstants.HTTP_WHITEBOARD_SERVLET_ASYNC_SUPPORTED + "=true",
+        AuthConstants.AUTH_REQUIREMENTS + "=/system/clam-events"
+    }
+)
+public class ClamEventsServlet extends HttpServlet implements JcrPropertyScanResultHandler {
+
+    private List<Client> clients = Collections.synchronizedList(new ArrayList<>());
+
+    private final AtomicLong counter = new AtomicLong(0);
+
+    private static final String JCR_RESULT_EVENT_TYPE = "sling/clam/jcr/result";
+
+    private final Logger logger = LoggerFactory.getLogger(ClamEventsServlet.class);
+
+    @Override
+    protected void doGet(final HttpServletRequest request, final HttpServletResponse response) throws ServletException, IOException {
+        response.setCharacterEncoding(StandardCharsets.UTF_8.name());
+        response.setContentType("text/event-stream");
+        response.addHeader("Connection", "close");
+        final AsyncContext context = request.startAsync();
+        context.setTimeout(30000);
+        final Client client = new Client(context);
+        context.getResponse().getOutputStream().setWriteListener(client);
+        clients.add(client);
+    }
+
+    @Override
+    public void handleJcrPropertyScanResult(final @NotNull ScanResult scanResult, final @NotNull String path, final int propertyType, final @Nullable String userId) {
+        final String data = json(scanResult, path, null, propertyType, userId);
+        addEvent(JCR_RESULT_EVENT_TYPE, data);
+    }
+
+    @Override
+    public void handleJcrPropertyScanResult(final @NotNull ScanResult scanResult, final @NotNull String path, final int index, final int propertyType, final @Nullable String userId) {
+        final String data = json(scanResult, path, index, propertyType, userId);
+        addEvent(JCR_RESULT_EVENT_TYPE, data);
+    }
+
+    private void addEvent(final String type, final String data) {
+        final Event event = new Event(type, data);
+        clients.iterator().forEachRemaining(client -> client.addEvent(event));
+    }
+
+    private class Event {
+
+        final String type;
+
+        final String data;
+
+        public Event(final String type, final String data) {
+            this.type = type;
+            this.data = data;
+        }
+
+    }
+
+    private class Client implements AsyncListener, WriteListener {
+
+        private final AsyncContext context;
+
+        private final Queue<Event> events = new ConcurrentLinkedQueue<>();
+
+        private Client(final AsyncContext context) {
+            this.context = context;
+            context.addListener(this);
+        }
+
+        @Override
+        public void onComplete(final AsyncEvent event) throws IOException {
+            logger.debug("on complete: {}", event.getAsyncContext());
+            clients.remove(this);
+        }
+
+        @Override
+        public void onTimeout(final AsyncEvent event) throws IOException {
+            logger.debug("on timeout: {}", event.getAsyncContext());
+            clients.remove(this);
+        }
+
+        @Override
+        public void onError(final AsyncEvent event) throws IOException {
+            logger.debug("on error: {}", event.getAsyncContext());
+            clients.remove(this);
+        }
+
+        @Override
+        public void onStartAsync(final AsyncEvent event) throws IOException {
+            logger.debug("on start async: {}", event.getAsyncContext());
+        }
+
+        @Override
+        public void onWritePossible() throws IOException {
+            final ServletOutputStream outputStream = context.getResponse().getOutputStream();
+            while (outputStream.isReady() && events.peek() != null) {
+                final Event event = events.poll();
+                final String data = String.format("event: %s\ndata: %s\n\n", event.type, event.data);
+                outputStream.write(data.getBytes(StandardCharsets.UTF_8));
+                flushIfReady(outputStream);
+            }
+            flushIfReady(outputStream);
+        }
+
+        @Override
+        public void onError(final Throwable t) {
+            logger.error("on error: {}", t.getMessage(), t);
+            clients.remove(this);
+            context.complete();
+        }
+
+        private void flushIfReady(final ServletOutputStream outputStream) throws IOException {
+            if (outputStream.isReady()) {
+                outputStream.flush();
+            }
+        }
+
+        private void addEvent(final Event event) {
+            final long count = counter.incrementAndGet();
+            logger.info("adding event: {}", count);
+            events.add(event);
+            try {
+                onWritePossible();
+            } catch (Exception e) {
+                logger.error(e.getMessage(), e);
+            }
+        }
+
+    }
+
+}
diff --git a/src/main/java/org/apache/sling/clam/http/internal/ResponseUtil.java b/src/main/java/org/apache/sling/clam/http/internal/ResponseUtil.java
index c0d8723..de8a09c 100644
--- a/src/main/java/org/apache/sling/clam/http/internal/ResponseUtil.java
+++ b/src/main/java/org/apache/sling/clam/http/internal/ResponseUtil.java
@@ -21,12 +21,14 @@ package org.apache.sling.clam.http.internal;
 import java.io.IOException;
 import java.nio.charset.StandardCharsets;
 
+import javax.jcr.PropertyType;
 import javax.json.Json;
 import javax.json.JsonException;
 import javax.json.JsonObjectBuilder;
 import javax.servlet.ServletException;
 
 import org.apache.sling.api.SlingHttpServletResponse;
+import org.apache.sling.commons.clam.ScanResult;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -50,4 +52,22 @@ public class ResponseUtil {
         }
     }
 
+    static String json(@NotNull ScanResult scanResult, @NotNull String path, @Nullable Integer index, int propertyType, @Nullable String userId) {
+        final JsonObjectBuilder event = Json.createObjectBuilder();
+        event.add("timestamp", scanResult.getTimestamp());
+        event.add("status", scanResult.getStatus().name());
+        event.add("message", scanResult.getMessage());
+        event.add("started", scanResult.getStarted());
+        event.add("size", scanResult.getSize());
+        event.add("path", path);
+        if (index != null) {
+            event.add("index", index);
+        }
+        event.add("propertyType", PropertyType.nameFromValue(propertyType));
+        if (userId != null) {
+            event.add("userId", userId);
+        }
+        return event.build().toString();
+    }
+
 }


[sling-org-apache-sling-clam] 04/09: fix nullability annotation for user id

Posted by ol...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 78b1b6e5489d2fefc6e2b54ccefa26bf4e727c4d
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Fri May 31 18:42:23 2019 +0200

    fix nullability annotation for user id
---
 .../sling/clam/result/internal/ResourcePersistingScanResultHandler.java | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/clam/result/internal/ResourcePersistingScanResultHandler.java b/src/main/java/org/apache/sling/clam/result/internal/ResourcePersistingScanResultHandler.java
index 6b6ac2e..40b06d8 100644
--- a/src/main/java/org/apache/sling/clam/result/internal/ResourcePersistingScanResultHandler.java
+++ b/src/main/java/org/apache/sling/clam/result/internal/ResourcePersistingScanResultHandler.java
@@ -117,7 +117,7 @@ public class ResourcePersistingScanResultHandler implements JcrPropertyScanResul
     }
 
     @Override
-    public void handleJcrPropertyScanResult(@NotNull ScanResult scanResult, @NotNull String path, int propertyType, @NotNull String userId) {
+    public void handleJcrPropertyScanResult(@NotNull ScanResult scanResult, @NotNull String path, int propertyType, @Nullable String userId) {
         if (checkPersist(scanResult)) {
             persistResult(scanResult, path, null, propertyType, userId);
         }


[sling-org-apache-sling-clam] 08/09: SLING-8461 Update Pax Exam to 4.13.1

Posted by ol...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit a5dfeddff26746d7b847550c21441acf1f691e87
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Sat Jun 1 18:48:30 2019 +0200

    SLING-8461 Update Pax Exam to 4.13.1
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 17e55b9..7638956 100644
--- a/pom.xml
+++ b/pom.xml
@@ -38,7 +38,7 @@
     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
     <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
     <sling.java.version>8</sling.java.version>
-    <org.ops4j.pax.exam.version>4.12.0</org.ops4j.pax.exam.version>
+    <org.ops4j.pax.exam.version>4.13.1</org.ops4j.pax.exam.version>
   </properties>
 
   <scm>


[sling-org-apache-sling-clam] 09/09: SLING-8462 Update Testing PaxExam to 3.0.0

Posted by ol...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 0e5d981a29c0b14b3598744f2eda4c790bf07bdf
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Sat Jun 1 18:49:01 2019 +0200

    SLING-8462 Update Testing PaxExam to 3.0.0
---
 pom.xml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/pom.xml b/pom.xml
index 7638956..d7f633f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -213,7 +213,7 @@
     <dependency>
       <groupId>org.apache.sling</groupId>
       <artifactId>org.apache.sling.testing.paxexam</artifactId>
-      <version>2.0.0</version>
+      <version>3.0.0</version>
       <scope>test</scope>
     </dependency>
     <!-- nullability -->


[sling-org-apache-sling-clam] 05/09: SLING-8258 Provide HTTP API for Sling Clam

Posted by ol...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit b251267a4b3c1f203e064bb9a07e9881af9d538f
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Fri May 31 18:48:27 2019 +0200

    SLING-8258 Provide HTTP API for Sling Clam
    
    * rename parameter propertyType to propertyTypes
    * rename method parameters
---
 .../sling/clam/http/internal/RequestUtil.java      | 54 +++++++++++-----------
 1 file changed, 27 insertions(+), 27 deletions(-)

diff --git a/src/main/java/org/apache/sling/clam/http/internal/RequestUtil.java b/src/main/java/org/apache/sling/clam/http/internal/RequestUtil.java
index 774a85c..c946439 100644
--- a/src/main/java/org/apache/sling/clam/http/internal/RequestUtil.java
+++ b/src/main/java/org/apache/sling/clam/http/internal/RequestUtil.java
@@ -37,61 +37,61 @@ public class RequestUtil {
     }
 
     static String path(@NotNull final SlingHttpServletRequest request) throws Exception {
-        final String path = request.getParameter("path");
-        if (path == null) {
+        final String value = request.getParameter("path");
+        if (value == null) {
             throw new Exception("Mandatory parameter path is missing");
         } else {
-            return path;
+            return value;
         }
     }
 
-    static Pattern pattern(@NotNull final SlingHttpServletRequest request, @NotNull final Pattern pattern) throws Exception {
-        final String parameter = request.getParameter("pattern");
-        if (parameter == null) {
-            return pattern;
+    static Pattern pattern(@NotNull final SlingHttpServletRequest request, @NotNull final Pattern defaultPattern) throws Exception {
+        final String value = request.getParameter("pattern");
+        if (value == null) {
+            return defaultPattern;
         } else {
             try {
-                return Pattern.compile(parameter);
+                return Pattern.compile(value);
             } catch (Exception e) {
-                throw new Exception("Invalid parameter value for pattern: " + parameter);
+                throw new Exception("Invalid parameter value for pattern: " + value);
             }
         }
     }
 
-    static Set<Integer> propertyTypes(@NotNull final SlingHttpServletRequest request, @NotNull final Set<Integer> propertyTypes) throws Exception {
-        final String[] parameter = request.getParameterValues("propertyType");
-        if (parameter == null || parameter.length == 0) {
-            return propertyTypes;
+    static Set<Integer> propertyTypes(@NotNull final SlingHttpServletRequest request, @NotNull final Set<Integer> defaultPropertyTypes) throws Exception {
+        final String[] values = request.getParameterValues("propertyTypes");
+        if (values == null || values.length == 0) {
+            return defaultPropertyTypes;
         }
         try {
-            return propertyTypesFromNames(parameter);
+            return propertyTypesFromNames(values);
         } catch (Exception e) {
-            throw new Exception("Invalid parameter value for propertyType: " + Arrays.toString(parameter));
+            throw new Exception("Invalid parameter value for propertyTypes: " + Arrays.toString(values));
         }
     }
 
-    static long maxLength(@NotNull final SlingHttpServletRequest request, final long maxLength) throws Exception {
-        final String parameter = request.getParameter("maxLength");
-        if (parameter == null) {
-            return maxLength;
+    static long maxLength(@NotNull final SlingHttpServletRequest request, final long defaultMaxLength) throws Exception {
+        final String value = request.getParameter("maxLength");
+        if (value == null) {
+            return defaultMaxLength;
         } else {
             try {
-                return Long.parseLong(parameter);
+                return Long.parseLong(value);
             } catch (Exception e) {
-                throw new Exception("Invalid parameter value for maxLength: " + parameter);
+                throw new Exception("Invalid parameter value for maxLength: " + value);
             }
         }
     }
 
-    static int maxDepth(@NotNull final SlingHttpServletRequest request, final int maxDepth) throws Exception {
-        final String parameter = request.getParameter("maxDepth");
-        if (parameter == null) {
-            return maxDepth;
+    static int maxDepth(@NotNull final SlingHttpServletRequest request, final int defaultMaxDepth) throws Exception {
+        final String value = request.getParameter("maxDepth");
+        if (value == null) {
+            return defaultMaxDepth;
         } else {
             try {
-                return Integer.parseInt(parameter);
+                return Integer.parseInt(value);
             } catch (Exception e) {
-                throw new Exception("Invalid parameter value for maxDepth: " + parameter);
+                throw new Exception("Invalid parameter value for maxDepth: " + value);
             }
         }
     }


[sling-org-apache-sling-clam] 07/09: SLING-8460 Use Sling Bundle Parent 35

Posted by ol...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit e26723acb9900bb7b6fff0a4eea3ab52224bdee3
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Sat Jun 1 18:47:49 2019 +0200

    SLING-8460 Use Sling Bundle Parent 35
---
 pom.xml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/pom.xml b/pom.xml
index 0e571d1..17e55b9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -23,8 +23,8 @@
 
   <parent>
     <groupId>org.apache.sling</groupId>
-    <artifactId>sling</artifactId>
-    <version>34</version>
+    <artifactId>sling-bundle-parent</artifactId>
+    <version>35</version>
     <relativePath />
   </parent>
 


[sling-org-apache-sling-clam] 03/09: SLING-8456 Make resource type of JCR Property scan result more specific

Posted by ol...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 11c1da0926dfe86046a5700d9807748013da3490
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Fri May 31 18:32:11 2019 +0200

    SLING-8456 Make resource type of JCR Property scan result more specific
---
 .../clam/result/internal/ResourcePersistingScanResultHandler.java     | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/main/java/org/apache/sling/clam/result/internal/ResourcePersistingScanResultHandler.java b/src/main/java/org/apache/sling/clam/result/internal/ResourcePersistingScanResultHandler.java
index 8a44cc5..6b6ac2e 100644
--- a/src/main/java/org/apache/sling/clam/result/internal/ResourcePersistingScanResultHandler.java
+++ b/src/main/java/org/apache/sling/clam/result/internal/ResourcePersistingScanResultHandler.java
@@ -89,7 +89,7 @@ public class ResourcePersistingScanResultHandler implements JcrPropertyScanResul
 
     private static final String SLING_RESOURCE_TYPE_PROPERTY = "sling:resourceType";
 
-    private static final String RESULT_RESOURCE_TYPE = "sling/clam/result";
+    private static final String JCR_RESULT_RESOURCE_TYPE = "sling/clam/jcr/result";
 
     private static final String SUBSERVICE = "result-writer";
 
@@ -139,7 +139,7 @@ public class ResourcePersistingScanResultHandler implements JcrPropertyScanResul
             final Map<String, Object> properties = properties(path, index, userId, scanResult);
             properties.put(JCR_PRIMARYTYPE, NT_UNSTRUCTURED);
             properties.put(JCR_MIXINTYPES, MIX_CREATED);
-            properties.put(SLING_RESOURCE_TYPE_PROPERTY, RESULT_RESOURCE_TYPE);
+            properties.put(SLING_RESOURCE_TYPE_PROPERTY, JCR_RESULT_RESOURCE_TYPE);
             final Resource parent = getOrCreateParent(resourceResolver);
             final String name = String.format("%s-%s", PropertyType.nameFromValue(propertyType), UUID.randomUUID());
             final Resource result = resourceResolver.create(parent, name, properties);


[sling-org-apache-sling-clam] 01/09: SLING-8455 Add size of sent bytes to properties

Posted by ol...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

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

commit 7b25bbacdf4fce328d32134b6ee47910477a35a1
Author: Oliver Lietz <ol...@apache.org>
AuthorDate: Fri May 31 17:20:20 2019 +0200

    SLING-8455 Add size of sent bytes to properties
---
 src/main/java/org/apache/sling/clam/internal/ClamUtil.java | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/main/java/org/apache/sling/clam/internal/ClamUtil.java b/src/main/java/org/apache/sling/clam/internal/ClamUtil.java
index e85b0f3..9c5244a 100644
--- a/src/main/java/org/apache/sling/clam/internal/ClamUtil.java
+++ b/src/main/java/org/apache/sling/clam/internal/ClamUtil.java
@@ -75,6 +75,7 @@ public final class ClamUtil {
         properties.put("message", scanResult.getMessage());
         properties.put("status", scanResult.getStatus().name());
         properties.put("started", scanResult.getStarted());
+        properties.put("size", scanResult.getSize());
         return properties;
     }