diff --git a/pmd-exclude.properties b/pmd-exclude.properties
new file mode 100644
index 0000000..85cc37e
--- /dev/null
+++ b/pmd-exclude.properties
@@ -0,0 +1,20 @@
+################################################################################
+#
+#    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.
+#
+################################################################################
+org.apache.sling.clam.jcr.NodeDescendingJcrPropertyDigger=UnnecessaryModifier
+org.apache.sling.clam.result.JcrPropertyScanResultHandler=UnnecessaryModifier
diff --git a/pom.xml b/pom.xml
index 0f9e773..77d8d85 100644
--- a/pom.xml
+++ b/pom.xml
@@ -116,6 +116,7 @@
         <version>3.15.0</version>
         <configuration>
           <targetJdk>${sling.java.version}</targetJdk>
+          <excludeFromFailureFile>pmd-exclude.properties</excludeFromFailureFile>
         </configuration>
         <executions>
           <execution>
diff --git a/src/main/java/org/apache/sling/clam/jcr/NodeDescendingJcrPropertyDigger.java b/src/main/java/org/apache/sling/clam/jcr/NodeDescendingJcrPropertyDigger.java
index 472bcb8..00d1a40 100644
--- a/src/main/java/org/apache/sling/clam/jcr/NodeDescendingJcrPropertyDigger.java
+++ b/src/main/java/org/apache/sling/clam/jcr/NodeDescendingJcrPropertyDigger.java
@@ -37,6 +37,6 @@
      * @param maxDepth      The maximum depth from entry node for digging
      * @throws Exception if digging in JCR fails
      */
-    void dig(@NotNull final Node node, @NotNull final Pattern pattern, @NotNull final Set<Integer> propertyTypes, final long maxLength, final int maxDepth) throws Exception;
+    public abstract void dig(@NotNull final Node node, @NotNull final Pattern pattern, @NotNull final Set<Integer> propertyTypes, final long maxLength, final int maxDepth) throws Exception;
 
 }
diff --git a/src/main/java/org/apache/sling/clam/result/JcrPropertyScanResultHandler.java b/src/main/java/org/apache/sling/clam/result/JcrPropertyScanResultHandler.java
index 291d4c2..fb28ffa 100644
--- a/src/main/java/org/apache/sling/clam/result/JcrPropertyScanResultHandler.java
+++ b/src/main/java/org/apache/sling/clam/result/JcrPropertyScanResultHandler.java
@@ -32,7 +32,7 @@
      * @param propertyType The type of the scanned property
      * @param userId       The id of the user who added or changed the property
      */
-    void handleJcrPropertyScanResult(@NotNull final ScanResult scanResult, @NotNull final String path, final int propertyType, @Nullable final String userId);
+    public abstract void handleJcrPropertyScanResult(@NotNull final ScanResult scanResult, @NotNull final String path, final int propertyType, @Nullable final String userId);
 
     /**
      * @param scanResult   The scan result from Clam service
@@ -41,6 +41,6 @@
      * @param propertyType The type of the scanned property
      * @param userId       The id of the user who added or changed the property
      */
-    void handleJcrPropertyScanResult(@NotNull final ScanResult scanResult, @NotNull final String path, final int index, final int propertyType, @Nullable final String userId);
+    public abstract void handleJcrPropertyScanResult(@NotNull final ScanResult scanResult, @NotNull final String path, final int index, final int propertyType, @Nullable final String userId);
 
 }
