Removed custom exception
diff --git a/src/main/java/org/apache/sling/resource/filter/ResourceFilter.java b/src/main/java/org/apache/sling/resource/filter/ResourceFilter.java
index f3f2802..dcc6aba 100644
--- a/src/main/java/org/apache/sling/resource/filter/ResourceFilter.java
+++ b/src/main/java/org/apache/sling/resource/filter/ResourceFilter.java
@@ -32,7 +32,7 @@
* @return
* @throws ResourceFilterException
*/
- public Predicate<Resource> parse(String filter) throws ResourceFilterException;
+ public Predicate<Resource> parse(String filter);
/**
* Creates a Predicate<Resource> based on the script
@@ -42,7 +42,7 @@
* @return
* @throws ResourceFilterException
*/
- public Predicate<Resource> parse(String filter, String charEncoding) throws ResourceFilterException;
+ public Predicate<Resource> parse(String filter, String charEncoding);
/**
* Add a series of key - value pairs that can then be evaluated as part of the
diff --git a/src/main/java/org/apache/sling/resource/filter/ResourceFilterException.java b/src/main/java/org/apache/sling/resource/filter/ResourceFilterException.java
deleted file mode 100644
index 99db709..0000000
--- a/src/main/java/org/apache/sling/resource/filter/ResourceFilterException.java
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- * 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.resource.filter;
-
-/**
- * Used to wrap internally generated Parser exceptions when a malformed script
- * is provided
- *
- *
- */
-public class ResourceFilterException extends Exception {
-
- public ResourceFilterException(Throwable cause) {
- super(cause);
- }
-
- private static final long serialVersionUID = 5893818236312416308L;
-
-}
diff --git a/src/main/java/org/apache/sling/resource/filter/ResourceFilterStream.java b/src/main/java/org/apache/sling/resource/filter/ResourceFilterStream.java
index e2dd9d8..6e7e9c6 100644
--- a/src/main/java/org/apache/sling/resource/filter/ResourceFilterStream.java
+++ b/src/main/java/org/apache/sling/resource/filter/ResourceFilterStream.java
@@ -49,7 +49,7 @@
* @return ResourceStreamFilter
* @throws ResourceFilterException
*/
- public ResourceFilterStream setBranchSelector(String branchSelector) throws ResourceFilterException {
+ public ResourceFilterStream setBranchSelector(String branchSelector) {
this.branchSelector = resourceFilter.parse(branchSelector);
return this;
}
@@ -63,7 +63,7 @@
* @return ResourceStreamFilter
* @throws ResourceFilterException
*/
- public ResourceFilterStream setChildSelector(String childSelector) throws ResourceFilterException {
+ public ResourceFilterStream setChildSelector(String childSelector) {
this.childSelector = resourceFilter.parse(childSelector);
return this;
}
diff --git a/src/main/java/org/apache/sling/resource/filter/impl/ResourceFilterImpl.java b/src/main/java/org/apache/sling/resource/filter/impl/ResourceFilterImpl.java
index 3f5a160..7aa51bf 100644
--- a/src/main/java/org/apache/sling/resource/filter/impl/ResourceFilterImpl.java
+++ b/src/main/java/org/apache/sling/resource/filter/impl/ResourceFilterImpl.java
@@ -19,7 +19,6 @@
import org.apache.sling.api.resource.Resource;
import org.apache.sling.resource.filter.ResourceFilter;
-import org.apache.sling.resource.filter.ResourceFilterException;
import org.apache.sling.resource.filter.impl.node.Node;
import org.apache.sling.resource.filter.impl.script.FilterParser;
import org.apache.sling.resource.filter.impl.script.ParseException;
@@ -58,26 +57,26 @@
@Override
- public Predicate<Resource> parse(String filter) throws ResourceFilterException {
+ public Predicate<Resource> parse(String filter) {
Node rootNode;
try {
rootNode = new FilterParser(new ByteArrayInputStream(filter.getBytes())).parse();
return rootNode.accept(getContext().getLogicVisitor());
} catch (ParseException e) {
- throw new ResourceFilterException(e);
+ throw new IllegalArgumentException(e);
}
}
@Override
- public Predicate<Resource> parse(String filter, String charEncoding) throws ResourceFilterException {
+ public Predicate<Resource> parse(String filter, String charEncoding) {
Node rootNode;
try {
rootNode = new FilterParser(new ByteArrayInputStream(filter.getBytes()),charEncoding).parse();
return rootNode.accept(getContext().getLogicVisitor());
} catch (ParseException e) {
- throw new ResourceFilterException(e);
+ throw new IllegalArgumentException(e);
}
}
diff --git a/src/test/java/org/apache/sling/resource/filter/ResourceFilterDateTest.java b/src/test/java/org/apache/sling/resource/filter/ResourceFilterDateTest.java
index cfd1a87..bdc4a63 100644
--- a/src/test/java/org/apache/sling/resource/filter/ResourceFilterDateTest.java
+++ b/src/test/java/org/apache/sling/resource/filter/ResourceFilterDateTest.java
@@ -44,7 +44,7 @@
}
@Test
- public void testPropLessThanDateFunction() throws ResourceFilterException {
+ public void testPropLessThanDateFunction() {
String query = "[jcr:content/created] < date('2013-08-08T16:32:59.000+02:00')";
List<Resource> found = handle(START_PATH, query);
assertEquals(3, found.size());
@@ -98,7 +98,7 @@
assertEquals(4, found.size());
}
- private List<Resource> handle(String path, String filter) throws ResourceFilterException {
+ private List<Resource> handle(String path, String filter) {
return new ResourceStream(resource).stream(r -> true).filter(resourceFilter.parse(filter))
.collect(Collectors.toList());
}
diff --git a/src/test/java/org/apache/sling/resource/filter/ResourceFilterLogicTest.java b/src/test/java/org/apache/sling/resource/filter/ResourceFilterLogicTest.java
index f1b9dd8..aad9a37 100644
--- a/src/test/java/org/apache/sling/resource/filter/ResourceFilterLogicTest.java
+++ b/src/test/java/org/apache/sling/resource/filter/ResourceFilterLogicTest.java
@@ -44,7 +44,7 @@
}
@Test
- public void testDateAndProperty() throws ResourceFilterException {
+ public void testDateAndProperty() {
String query = "[jcr:content/created] > '2013-08-08T16:32:59' and [jcr:content/jcr:title] == 'Mongolian'";
List<Resource> found = handle(START_PATH, query);
assertEquals(1, found.size());
@@ -62,7 +62,7 @@
assertEquals(4, found.size());
}
- private List<Resource> handle(String path, String filter) throws ResourceFilterException {
+ private List<Resource> handle(String path, String filter) {
return new ResourceStream(resource).stream(r -> true).filter(resourceFilter.parse(filter))
.collect(Collectors.toList());
}
diff --git a/src/test/java/org/apache/sling/resource/filter/ResourceFilterTest.java b/src/test/java/org/apache/sling/resource/filter/ResourceFilterTest.java
index 04a527b..781bdbd 100644
--- a/src/test/java/org/apache/sling/resource/filter/ResourceFilterTest.java
+++ b/src/test/java/org/apache/sling/resource/filter/ResourceFilterTest.java
@@ -32,82 +32,81 @@
private static String START_PATH = "/content/sample/en";
-
private Resource resource;
ResourceFilter resourceFilter = new ResourceFilterImpl();
@Before
- public void setUp() throws ResourceFilterException {
+ public void setUp() {
context.load().json("/data.json", "/content/sample/en");
resource = context.resourceResolver().getResource(START_PATH);
}
@Test
- public void testPropertyEquals() throws ResourceFilterException {
+ public void testPropertyEquals() {
String query = "[jcr:content/jcr:title] == 'English'";
List<Resource> found = handle(START_PATH, query);
assertEquals(4, found.size());
}
@Test
- public void testPropertyIs() throws ResourceFilterException {
+ public void testPropertyIs() {
String query = "[jcr:content/jcr:title] is 'English'";
List<Resource> found = handle(START_PATH, query);
assertEquals(4, found.size());
}
@Test
- public void testDateBeforeValue() throws ResourceFilterException {
+ public void testDateBeforeValue() {
String query = "[jcr:content/created] < date('2013-08-08T16:32:59.000+02:00')";
List<Resource> found = handle(START_PATH, query);
assertEquals(3, found.size());
}
@Test
- public void testDateBeforeValue2() throws ResourceFilterException {
+ public void testDateBeforeValue2() {
String query = "[jcr:content/created] less than date('2013-08-08T16:32:59.000+02:00')";
List<Resource> found = handle(START_PATH, query);
assertEquals(3, found.size());
}
@Test
- public void testDateBeforeValue3() throws ResourceFilterException {
+ public void testDateBeforeValue3() {
String query = "[jcr:content/created] < date('2013-08-08','yyyy-MM-dd')";
List<Resource> found = handle(START_PATH, query);
assertEquals(3, found.size());
}
@Test
- public void testDateAndProperty() throws ResourceFilterException {
+ public void testDateAndProperty() {
String query = "[jcr:content/created] < date('2013-08-08T16:32:59.000+02:00') and [jcr:content/jcr:title] == 'English'";
List<Resource> found = handle(START_PATH, query);
assertEquals(3, found.size());
}
@Test
- public void testDateAndPropertyTwice() throws ResourceFilterException {
+ public void testDateAndPropertyTwice() {
String query = "([jcr:content/created] < date('2013-08-08T16:32:59.000+02:00') and [jcr:content/jcr:title] == 'English') or [jcr:content/jcr:title] == 'Mongolian'";
List<Resource> found = handle(START_PATH, query);
assertEquals(4, found.size());
}
@Test
- public void testDateOrProperty() throws ResourceFilterException {
+ public void testDateOrProperty() {
String query = "[jcr:content/created] < date('2013-08-08T16:32:59.000+02:00') or [jcr:content/jcr:title] == 'Mongolian'";
List<Resource> found = handle(START_PATH, query);
assertEquals(4, found.size());
}
@Test
- public void testDateAsString() throws ResourceFilterException {
+ public void testDateAsString() {
String query = "[jcr:content/created] < '2013-08-08T16:32'";
List<Resource> found = handle(START_PATH, query);
assertEquals(3, found.size());
}
@Test
- public void testNullPropertyAndLimit() throws ResourceFilterException {
+ public void testNullPropertyAndLimit() {
String query = "[jcr:content/foo] == null ";
List<Resource> found = new ResourceStream(resource).stream(r -> true).filter(resourceFilter.parse(query)).limit(3)
.collect(Collectors.toList());
@@ -115,145 +114,145 @@
}
@Test
- public void testNullProperty() throws ResourceFilterException {
+ public void testNullProperty() {
String query = "[jcr:content/foo] == null ";
List<Resource> found = handle(START_PATH, query);
assertEquals(20, found.size());
}
@Test
- public void testNumberLiteral() throws ResourceFilterException {
+ public void testNumberLiteral() {
String query = "[count] < 2 ";
List<Resource> found = handle(START_PATH, query);
assertEquals(1, found.size());
}
@Test
- public void testNumberLiteral2() throws ResourceFilterException {
+ public void testNumberLiteral2() {
String query = "[count] < 2 or [count] > 1";
List<Resource> found = handle(START_PATH, query);
assertEquals(1, found.size());
}
@Test
- public void testNumberLiteral3() throws ResourceFilterException {
+ public void testNumberLiteral3() {
String query = "[views] < 7 ";
List<Resource> found = handle(START_PATH, query);
assertEquals(1, found.size());
}
@Test
- public void testNotNullProperty() throws ResourceFilterException {
+ public void testNotNullProperty() {
String query = "[layout] != null ";
List<Resource> found = handle(START_PATH, query);
assertEquals(5, found.size());
}
@Test
- public void testNotProperty() throws ResourceFilterException {
+ public void testNotProperty() {
String query = "[layout] != 'foo' ";
List<Resource> found = handle(START_PATH, query);
assertEquals(4, found.size());
}
@Test
- public void testNameFunctionIs() throws ResourceFilterException {
+ public void testNameFunctionIs() {
String query = "name() == 'testpage1'";
List<Resource> found = handle(START_PATH, query);
assertEquals(1, found.size());
}
@Test
- public void testNameFunctionAgainstRegex() throws ResourceFilterException {
+ public void testNameFunctionAgainstRegex() {
String query = "name() like 'testpage.*'";
List<Resource> found = handle(START_PATH, query);
assertEquals(4, found.size());
}
@Test
- public void testNameFunctionAgainstRegex2() throws ResourceFilterException {
+ public void testNameFunctionAgainstRegex2() {
String query = "name() like 'testpage[1-2]'";
List<Resource> found = handle(START_PATH, query);
assertEquals(2, found.size());
}
@Test
- public void testChildExistence() throws ResourceFilterException {
+ public void testChildExistence() {
String query = "name() == 'testpage3' ";
List<Resource> found = handle(START_PATH, query);
assertEquals(1, found.size());
}
@Test
- public void testBoolean() throws ResourceFilterException {
+ public void testBoolean() {
String query = "[published] == true";
List<Resource> found = handle(START_PATH, query);
assertEquals(1, found.size());
}
@Test
- public void testContains() throws ResourceFilterException {
+ public void testContains() {
String query = "[jcr:content/monkey] contains 'fish'";
List<Resource> found = handle(START_PATH, query);
assertEquals(1, found.size());
}
@Test
- public void testContainsNot() throws ResourceFilterException {
+ public void testContainsNot() {
String query = "[jcr:content/monkey] contains not 'fish'";
List<Resource> found = handle(START_PATH, query);
assertEquals(19, found.size());
}
@Test
- public void testIn() throws ResourceFilterException {
+ public void testIn() {
String query = "'fish' in [jcr:content/monkey]";
List<Resource> found = handle(START_PATH, query);
assertEquals(1, found.size());
}
@Test
- public void testPathLike() throws ResourceFilterException {
+ public void testPathLike() {
String query = "path() like '/content/sample/en/testpage1.*'";
List<Resource> found = handle(START_PATH, query);
assertEquals(4, found.size());
}
@Test
- public void testPathLike2() throws ResourceFilterException {
+ public void testPathLike2() {
String query = "path() like '/content/sample/en/testpage1'";
List<Resource> found = handle(START_PATH, query);
assertEquals(1, found.size());
}
@Test
- public void testPathLike3() throws ResourceFilterException {
+ public void testPathLike3() {
String query = "path() is '/content/sample/en/testpage1'";
List<Resource> found = handle(START_PATH, query);
assertEquals(1, found.size());
}
@Test
- public void testNotIn() throws ResourceFilterException {
+ public void testNotIn() {
String query = "'fish' not in [jcr:content/monkey]";
List<Resource> found = handle(START_PATH, query);
assertEquals(19, found.size());
}
@Test
- public void testInNotException() throws ResourceFilterException {
- ResourceFilterException error = null;
+ public void testInNotException() {
+ IllegalArgumentException error = null;
try {
String query = "'fish' in not [jcr:content/monkey]";
handle(START_PATH, query);
- } catch (ResourceFilterException e) {
+ } catch (IllegalArgumentException e) {
error = e;
}
assert (error.getMessage()
.startsWith("org.apache.sling.resource.filter.impl.script.ParseException: Encountered \" <PROPERTY> \"jcr:content/monkey \"\" at line 1, column 15."));
}
- private List<Resource> handle(String path, String filter) throws ResourceFilterException {
+ private List<Resource> handle(String path, String filter) {
return new ResourceStream(resource).stream(r -> true).filter(resourceFilter.parse(filter))
.collect(Collectors.toList());
}