You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by kw...@apache.org on 2015/04/11 19:53:10 UTC
svn commit: r1672910 - in /sling/trunk/bundles/extensions/validation/api: ./
src/main/java/org/apache/sling/validation/api/
src/main/java/org/apache/sling/validation/api/exceptions/
Author: kwin
Date: Sat Apr 11 17:53:10 2015
New Revision: 1672910
URL: http://svn.apache.org/r1672910
Log:
SLING-4609 add JSR 305 null annotations
Added:
sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/exceptions/package-info.java
sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/package-info.java
Modified:
sling/trunk/bundles/extensions/validation/api/pom.xml
sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ChildResource.java
sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ParameterizedValidator.java
sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ResourceProperty.java
sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ValidationModel.java
sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ValidationResult.java
sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ValidationService.java
sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/Validator.java
Modified: sling/trunk/bundles/extensions/validation/api/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/api/pom.xml?rev=1672910&r1=1672909&r2=1672910&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/api/pom.xml (original)
+++ sling/trunk/bundles/extensions/validation/api/pom.xml Sat Apr 11 17:53:10 2015
@@ -20,13 +20,12 @@
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache.sling</groupId>
<artifactId>sling</artifactId>
- <version>15</version>
- <relativePath />
+ <version>22</version>
</parent>
- <modelVersion>4.0.0</modelVersion>
<artifactId>org.apache.sling.validation.api</artifactId>
<version>1.0.0-SNAPSHOT</version>
@@ -35,36 +34,26 @@
<name>Apache Sling Validation Framework API</name>
<description>The Apache Sling Validation Framework API</description>
+ <properties>
+ <sling.java.version>6</sling.java.version>
+ </properties>
+
+ <scm>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/validation/api</connection>
+ <developerConnection> scm:svn:https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/validation/api</developerConnection>
+ <url>http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/api</url>
+ </scm>
+
<build>
- <plugins>
- <!--<plugin>-->
- <!--<groupId>org.apache.felix</groupId>-->
- <!--<artifactId>maven-scr-plugin</artifactId>-->
- <!--<version>1.11.0</version>-->
- <!--<executions>-->
- <!--<execution>-->
- <!--<id>generate-scr-descriptor</id>-->
- <!--<goals>-->
- <!--<goal>scr</goal>-->
- <!--</goals>-->
- <!--</execution>-->
- <!--</executions>-->
- <!--</plugin>-->
- <plugin>
- <groupId>org.apache.felix</groupId>
- <artifactId>maven-bundle-plugin</artifactId>
- <extensions>true</extensions>
- <configuration>
- <instructions>
- <Export-Package>
- org.apache.sling.validation.api;version=1.0.0,
- org.apache.sling.validation.api.exceptions;version=1.0.0
- </Export-Package>
- </instructions>
- </configuration>
- </plugin>
- </plugins>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <extensions>true</extensions>
+ </plugin>
+ </plugins>
</build>
+
<dependencies>
<dependency>
<groupId>org.apache.sling</groupId>
@@ -72,5 +61,12 @@
<version>2.4.2</version>
<scope>provided</scope>
</dependency>
+
+ <dependency>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ <version>3.0.0</version>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
</project>
Modified: sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ChildResource.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ChildResource.java?rev=1672910&r1=1672909&r2=1672910&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ChildResource.java (original)
+++ sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ChildResource.java Sat Apr 11 17:53:10 2015
@@ -22,6 +22,9 @@ import java.util.List;
import java.util.Set;
import java.util.regex.Pattern;
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
+
/**
* Defines the validation rules for a child resource, allowing {@link ValidationModel}s to be applied to {@link
* org.apache.sling.api.resource.Resource} trees.
@@ -34,14 +37,14 @@ public interface ChildResource {
*
* @return the name (if one is set) or {@code null)
*/
- String getName();
+ @CheckForNull String getName();
/**
* Returns this resource's name pattern. Either this method or {@link getName} must not return {@code null}
*
* @return the name pattern (if one is set) or {@code null)
*/
- Pattern getNamePattern();
+ @CheckForNull Pattern getNamePattern();
/**
* Returns {@code true} if at least one resource matching the name/namePattern is required.
@@ -53,13 +56,13 @@ public interface ChildResource {
/**
* Returns the properties this child resource is expected to have.
*
- * @return the properties set
+ * @return the properties set. Never {@code null}.
*/
- Set<ResourceProperty> getProperties();
+ @Nonnull Set<ResourceProperty> getProperties();
/**
* Returns the child resources of this part of the Validation Model
* @return child resources. Never {@code null}.
*/
- List<ChildResource> getChildren();
+ @Nonnull List<ChildResource> getChildren();
}
Modified: sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ParameterizedValidator.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ParameterizedValidator.java?rev=1672910&r1=1672909&r2=1672910&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ParameterizedValidator.java (original)
+++ sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ParameterizedValidator.java Sat Apr 11 17:53:10 2015
@@ -18,6 +18,8 @@
*/
package org.apache.sling.validation.api;
+import javax.annotation.Nonnull;
+
import org.apache.sling.api.resource.ValueMap;
/**
@@ -28,20 +30,20 @@ public interface ParameterizedValidator
/**
*
- * @return the validator
+ * @return the validator. Never {@code null}.
*/
- public abstract Validator<?> getValidator();
+ @Nonnull Validator<?> getValidator();
/**
*
* @return the parameterization of the validator (never {@code null}, but might be empty map)
*/
- public abstract ValueMap getParameters();
+ @Nonnull ValueMap getParameters();
/**
*
* @return the type of the validator (i.e. the type of the data it can handle)
*/
- public abstract Class<?> getType();
+ @Nonnull Class<?> getType();
}
\ No newline at end of file
Modified: sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ResourceProperty.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ResourceProperty.java?rev=1672910&r1=1672909&r2=1672910&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ResourceProperty.java (original)
+++ sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ResourceProperty.java Sat Apr 11 17:53:10 2015
@@ -21,6 +21,9 @@ package org.apache.sling.validation.api;
import java.util.List;
import java.util.regex.Pattern;
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
+
/**
* Describes a {@link org.apache.sling.api.resource.Resource} property.
*/
@@ -32,14 +35,14 @@ public interface ResourceProperty {
*
* @return the name or {@code null}
*/
- String getName();
+ @CheckForNull String getName();
/**
* Returns the name pattern for this property. Either this method or {@link getName} must not return {@code null}
*
* @return the name pattern (if one is set) or {@code null)
*/
- Pattern getNamePattern();
+ @CheckForNull Pattern getNamePattern();
/**
* Returns {@code true} if this property is expected to be a multiple property (e.g. array of values).
@@ -60,5 +63,5 @@ public interface ResourceProperty {
*
* @return the list of validators
*/
- List<ParameterizedValidator> getValidators();
+ @Nonnull List<ParameterizedValidator> getValidators();
}
Modified: sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ValidationModel.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ValidationModel.java?rev=1672910&r1=1672909&r2=1672910&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ValidationModel.java (original)
+++ sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ValidationModel.java Sat Apr 11 17:53:10 2015
@@ -21,6 +21,8 @@ package org.apache.sling.validation.api;
import java.util.List;
import java.util.Set;
+import javax.annotation.Nonnull;
+
/**
* A {@code ValidationModel} defines the validation rules that a resource tree has to pass.
*/
@@ -31,14 +33,14 @@ public interface ValidationModel {
*
* @return the properties set (never {@code null}, but might be empty set)
*/
- Set<ResourceProperty> getResourceProperties();
+ @Nonnull Set<ResourceProperty> getResourceProperties();
/**
* Returns the type of resource this model validates.
*
* @return the validated resource type, never {@code null}
*/
- String getValidatedResourceType();
+ @Nonnull String getValidatedResourceType();
/**
* Returns the paths under which resources will be validated by this model.
@@ -47,13 +49,13 @@ public interface ValidationModel {
*
* @return a path array. Is never {@code null} nor an empty array
*/
- String[] getApplicablePaths();
+ @Nonnull String[] getApplicablePaths();
/**
* Returns the expected children for a resource validated by this model.
*
* @return the children list (can be empty if there are no children), never {@code null}
*/
- List<ChildResource> getChildren();
+ @Nonnull List<ChildResource> getChildren();
}
Modified: sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ValidationResult.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ValidationResult.java?rev=1672910&r1=1672909&r2=1672910&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ValidationResult.java (original)
+++ sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ValidationResult.java Sat Apr 11 17:53:10 2015
@@ -21,6 +21,8 @@ package org.apache.sling.validation.api;
import java.util.List;
import java.util.Map;
+import javax.annotation.Nonnull;
+
/**
* A {@code ValidationResult} contains validation information about a validated property / child resource.
*/
@@ -38,7 +40,7 @@ public interface ValidationResult {
* keys of the returned {@link Map} will contain the validated resource's properties (or child resources' properties) names; the
* associated values will be the actual failure messages.
*
- * @return the validation's failure messages
+ * @return the validation's failure messages (never {@code null})
*/
- Map<String, List<String>> getFailureMessages();
+ @Nonnull Map<String, List<String>> getFailureMessages();
}
Modified: sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ValidationService.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ValidationService.java?rev=1672910&r1=1672909&r2=1672910&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ValidationService.java (original)
+++ sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/ValidationService.java Sat Apr 11 17:53:10 2015
@@ -20,6 +20,9 @@ package org.apache.sling.validation.api;
import java.util.Set;
+import javax.annotation.CheckForNull;
+import javax.annotation.Nonnull;
+
import org.apache.sling.api.resource.Resource;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ValueMap;
@@ -40,7 +43,7 @@ public interface ValidationService {
* @throws IllegalStateException in case an invalid validation model was found
* @throws IllegalArgumentException in case validatedResourceType was blank, {@code null} or absolute but outside of the search paths.
*/
- ValidationModel getValidationModel(String validatedResourceType, String applicablePath) throws IllegalStateException, IllegalArgumentException;
+ @CheckForNull ValidationModel getValidationModel(String validatedResourceType, String applicablePath) throws IllegalStateException, IllegalArgumentException;
/**
* Tries to obtain a {@link ValidationModel} that is able to validate the given {@code resource}.
@@ -50,7 +53,7 @@ public interface ValidationService {
* @throws IllegalStateException in case an invalid validation model was found
* @throws IllegalArgumentException in case resourceType being set on the given resource is blank, not set or absolute but outside of the search paths.
*/
- ValidationModel getValidationModel(Resource resource) throws IllegalStateException, IllegalArgumentException;
+ @CheckForNull ValidationModel getValidationModel(@Nonnull Resource resource) throws IllegalStateException, IllegalArgumentException;
/**
* Validates a {@link Resource} using a specific {@link ValidationModel}. If the {@code model} describes a resource tree,
@@ -62,7 +65,7 @@ public interface ValidationService {
* @return a {@link ValidationResult} that provides the necessary information
* @throws org.apache.sling.validation.api.exceptions.SlingValidationException if one validator was called with invalid arguments
*/
- ValidationResult validate(Resource resource, ValidationModel model) throws SlingValidationException;
+ @Nonnull ValidationResult validate(@Nonnull Resource resource, @Nonnull ValidationModel model) throws SlingValidationException;
/**
* Validates a {@link ValueMap} or any object adaptable to a {@code ValueMap} using a specific {@link ValidationModel}. Since the
@@ -73,7 +76,7 @@ public interface ValidationService {
* @return a {@link ValidationResult} that provides the necessary information
* @throws org.apache.sling.validation.api.exceptions.SlingValidationException if one validator was called with invalid arguments
*/
- ValidationResult validate(ValueMap valueMap, ValidationModel model) throws SlingValidationException;
+ @Nonnull ValidationResult validate(@Nonnull ValueMap valueMap, @Nonnull ValidationModel model) throws SlingValidationException;
/**
* Validates a {@link Resource} and all child resources recursively by traversing starting from the given resource.
@@ -88,6 +91,6 @@ public interface ValidationService {
* @throws IllegalArgumentException in case resourceType is absolute but outside of the search paths or if no validation model could be found (and enforceValidation is {@code true}).
* @throws org.apache.sling.validation.api.exceptions.SlingValidationException if one validator was called with invalid arguments
*/
- ValidationResult validateAllResourceTypesInResource(Resource resource, boolean enforceValidation, Set<String> ignoredResourceTypes) throws IllegalStateException, IllegalArgumentException, SlingValidationException;
+ @Nonnull ValidationResult validateAllResourceTypesInResource(@Nonnull Resource resource, boolean enforceValidation, Set<String> ignoredResourceTypes) throws IllegalStateException, IllegalArgumentException, SlingValidationException;
}
Modified: sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/Validator.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/Validator.java?rev=1672910&r1=1672909&r2=1672910&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/Validator.java (original)
+++ sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/Validator.java Sat Apr 11 17:53:10 2015
@@ -21,9 +21,12 @@ package org.apache.sling.validation.api;
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.validation.api.exceptions.SlingValidationException;
+import aQute.bnd.annotation.ConsumerType;
+
/**
* A {@code Validator} is responsible for validating a single piece of information according to an internal constraint.
*/
+@ConsumerType
public interface Validator <T> {
/**
Added: sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/exceptions/package-info.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/exceptions/package-info.java?rev=1672910&view=auto
==============================================================================
--- sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/exceptions/package-info.java (added)
+++ sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/exceptions/package-info.java Sat Apr 11 17:53:10 2015
@@ -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.
+ */
+@Version("1.0.0")
+package org.apache.sling.validation.api.exceptions;
+
+import aQute.bnd.annotation.Version;
\ No newline at end of file
Added: sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/package-info.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/package-info.java?rev=1672910&view=auto
==============================================================================
--- sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/package-info.java (added)
+++ sling/trunk/bundles/extensions/validation/api/src/main/java/org/apache/sling/validation/api/package-info.java Sat Apr 11 17:53:10 2015
@@ -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.
+ */
+@Version("1.0.0")
+package org.apache.sling.validation.api;
+
+import aQute.bnd.annotation.Version;
\ No newline at end of file