You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by re...@apache.org on 2012/05/16 18:13:42 UTC
svn commit: r1339249 - in /jackrabbit/oak/trunk: oak-core/
oak-core/src/main/java/org/apache/jackrabbit/oak/api/
oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/ oak-jcr/
oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/
Author: reschke
Date: Wed May 16 16:13:41 2012
New Revision: 1339249
URL: http://svn.apache.org/viewvc?rev=1339249&view=rev
Log:
OAK-37: Use nullability annotation to enforce/document API contract (WIP)
Modified:
jackrabbit/oak/trunk/oak-core/pom.xml
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/CoreValueFactory.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NameMapper.java
jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/PathMapper.java
jackrabbit/oak/trunk/oak-jcr/pom.xml
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeDelegate.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java
Modified: jackrabbit/oak/trunk/oak-core/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/pom.xml?rev=1339249&r1=1339248&r2=1339249&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-core/pom.xml Wed May 16 16:13:41 2012
@@ -143,6 +143,14 @@
<version>1.6.4</version>
</dependency>
+ <!-- Findbugs annotations -->
+ <dependency>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ <version>2.0.0</version>
+ <scope>provided</scope>
+ </dependency>
+
<!-- Test Dependencies -->
<dependency>
<groupId>junit</groupId>
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/CoreValueFactory.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/CoreValueFactory.java?rev=1339249&r1=1339248&r2=1339249&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/CoreValueFactory.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/api/CoreValueFactory.java Wed May 16 16:13:41 2012
@@ -20,6 +20,8 @@ import java.io.IOException;
import java.io.InputStream;
import java.math.BigDecimal;
+import javax.annotation.Nonnull;
+
/**
* {@code CoreValueFactory} defines methods to create new instances of
* {@code CoreValue}.
@@ -92,5 +94,5 @@ public interface CoreValueFactory {
* conversion to any of the number types and the conversion fails.
* @throws //TODO define and consolidate exceptions
*/
- CoreValue createValue(String value, int type);
+ CoreValue createValue(@Nonnull String value, int type);
}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NameMapper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NameMapper.java?rev=1339249&r1=1339248&r2=1339249&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NameMapper.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/NameMapper.java Wed May 16 16:13:41 2012
@@ -16,6 +16,8 @@
*/
package org.apache.jackrabbit.oak.namepath;
+import javax.annotation.CheckForNull;
+
public interface NameMapper {
/**
@@ -26,6 +28,7 @@ public interface NameMapper {
* @param jcrName JCR name
* @return Oak name, or {@code null}
*/
+ @CheckForNull
String getOakName(String jcrName);
/**
@@ -38,6 +41,6 @@ public interface NameMapper {
* @param oakName Oak name
* @return JCR name
*/
+ @CheckForNull
String getJcrName(String oakName);
-
}
Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/PathMapper.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/PathMapper.java?rev=1339249&r1=1339248&r2=1339249&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/PathMapper.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/namepath/PathMapper.java Wed May 16 16:13:41 2012
@@ -16,6 +16,8 @@
*/
package org.apache.jackrabbit.oak.namepath;
+import javax.annotation.CheckForNull;
+
/**
* TODO
*/
@@ -29,6 +31,7 @@ public interface PathMapper {
* @param jcrPath JCR path
* @return Oak path, or {@code null}
*/
+ @CheckForNull
String getOakPath(String jcrPath);
/**
@@ -42,6 +45,7 @@ public interface PathMapper {
* @param oakPath Oak path
* @return JCR path
*/
+ @CheckForNull
String getJcrPath(String oakPath);
}
Modified: jackrabbit/oak/trunk/oak-jcr/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/pom.xml?rev=1339249&r1=1339248&r2=1339249&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-jcr/pom.xml Wed May 16 16:13:41 2012
@@ -122,6 +122,14 @@
<version>1.6.4</version>
</dependency>
+ <!-- Findbugs annotations -->
+ <dependency>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ <version>2.0.0</version>
+ <scope>provided</scope>
+ </dependency>
+
<!-- Test dependencies -->
<dependency>
<groupId>junit</groupId>
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeDelegate.java?rev=1339249&r1=1339248&r2=1339249&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeDelegate.java Wed May 16 16:13:41 2012
@@ -27,6 +27,8 @@ import org.apache.jackrabbit.oak.util.It
import java.util.Iterator;
import java.util.List;
+import javax.annotation.CheckForNull;
+
/**
* {@code NodeDelegate} serve as internal representations of {@code Node}s.
* The methods of this class do not throw checked exceptions. Instead clients
@@ -119,6 +121,7 @@ public class NodeDelegate extends ItemDe
* @return property at the path given by {@code relPath} or {@code null} if
* no such property exists
*/
+ @CheckForNull
public PropertyDelegate getProperty(String relPath) {
Tree parent = getTree(PathUtils.getParentPath(relPath));
if (parent == null) {
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java?rev=1339249&r1=1339248&r2=1339249&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/NodeImpl.java Wed May 16 16:13:41 2012
@@ -31,6 +31,7 @@ import org.apache.jackrabbit.value.Value
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import javax.annotation.Nonnull;
import javax.jcr.Binary;
import javax.jcr.Item;
import javax.jcr.ItemExistsException;
@@ -415,6 +416,7 @@ public class NodeImpl extends ItemImpl i
}
@Override
+ @Nonnull
public Property getProperty(String relPath) throws RepositoryException {
checkStatus();
Modified: jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java?rev=1339249&r1=1339248&r2=1339249&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java (original)
+++ jackrabbit/oak/trunk/oak-jcr/src/main/java/org/apache/jackrabbit/oak/jcr/SessionDelegate.java Wed May 16 16:13:41 2012
@@ -16,6 +16,21 @@
*/
package org.apache.jackrabbit.oak.jcr;
+import java.io.IOException;
+
+import javax.annotation.CheckForNull;
+import javax.jcr.ItemExistsException;
+import javax.jcr.NamespaceRegistry;
+import javax.jcr.PathNotFoundException;
+import javax.jcr.Repository;
+import javax.jcr.RepositoryException;
+import javax.jcr.Session;
+import javax.jcr.Workspace;
+import javax.jcr.lock.LockManager;
+import javax.jcr.nodetype.NodeTypeManager;
+import javax.jcr.query.QueryManager;
+import javax.jcr.version.VersionManager;
+
import org.apache.jackrabbit.oak.api.AuthInfo;
import org.apache.jackrabbit.oak.api.CommitFailedException;
import org.apache.jackrabbit.oak.api.ContentSession;
@@ -32,19 +47,6 @@ import org.apache.jackrabbit.oak.namepat
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import javax.jcr.ItemExistsException;
-import javax.jcr.NamespaceRegistry;
-import javax.jcr.PathNotFoundException;
-import javax.jcr.Repository;
-import javax.jcr.RepositoryException;
-import javax.jcr.Session;
-import javax.jcr.Workspace;
-import javax.jcr.lock.LockManager;
-import javax.jcr.nodetype.NodeTypeManager;
-import javax.jcr.query.QueryManager;
-import javax.jcr.version.VersionManager;
-import java.io.IOException;
-
public class SessionDelegate {
static final Logger log = LoggerFactory.getLogger(SessionDelegate.class);
@@ -312,6 +314,7 @@ public class SessionDelegate {
private class SessionNameMapper extends AbstractNameMapper {
@Override
+ @CheckForNull
protected String getJcrPrefix(String oakPrefix) {
try {
String ns = nsRegistry.getURI(oakPrefix);
@@ -323,6 +326,7 @@ public class SessionDelegate {
}
@Override
+ @CheckForNull
protected String getOakPrefix(String jcrPrefix) {
try {
String ns = getSession().getNamespaceURI(jcrPrefix);
@@ -334,6 +338,7 @@ public class SessionDelegate {
}
@Override
+ @CheckForNull
protected String getOakPrefixFromURI(String uri) {
try {
return nsRegistry.getPrefix(uri);