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