SLING-6723 : Make dependency to javax.jcr, jcr.contentloader and jcr.api optional

git-svn-id: https://svn.apache.org/repos/asf/sling/trunk@1790029 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/src/main/java/org/apache/sling/servlets/post/impl/helper/SlingFileUploadHandler.java b/src/main/java/org/apache/sling/servlets/post/impl/helper/SlingFileUploadHandler.java
index 0ebb080..aa5fb1a 100644
--- a/src/main/java/org/apache/sling/servlets/post/impl/helper/SlingFileUploadHandler.java
+++ b/src/main/java/org/apache/sling/servlets/post/impl/helper/SlingFileUploadHandler.java
@@ -127,10 +127,13 @@
         boolean createNtFile = parentResource.isResourceType(JcrConstants.NT_FOLDER) || this.jcrSupport.isNodeType(parentResource, JcrConstants.NT_FOLDER);
         String typeHint = prop.getTypeHint();
         if (typeHint != null) {
-            createNtFile = this.jcrSupport.isFileNodeType(parentResource.getResourceResolver(), typeHint);
-            if ( !createNtFile ) {
+            Boolean isFileNodeType = this.jcrSupport.isFileNodeType(parentResource.getResourceResolver(), typeHint);
+            if ( isFileNodeType == null ) {
                 // assuming type not valid.
+                createNtFile = false;
                 typeHint = null;
+            } else {
+                createNtFile = isFileNodeType;
             }
         }
 
diff --git a/src/main/java/org/apache/sling/servlets/post/impl/operations/JCRSupport.java b/src/main/java/org/apache/sling/servlets/post/impl/operations/JCRSupport.java
index b8f6b97..fc1a8df 100644
--- a/src/main/java/org/apache/sling/servlets/post/impl/operations/JCRSupport.java
+++ b/src/main/java/org/apache/sling/servlets/post/impl/operations/JCRSupport.java
@@ -88,7 +88,7 @@
         return false;
     }
 
-    public boolean isFileNodeType(final ResourceResolver resolver, final String nodeType) {
+    public Boolean isFileNodeType(final ResourceResolver resolver, final String nodeType) {
         if ( supportImpl != null ) {
             return ((JCRSupportImpl)supportImpl).isFileNodeType(resolver, nodeType);
         }
diff --git a/src/main/java/org/apache/sling/servlets/post/impl/operations/JCRSupportImpl.java b/src/main/java/org/apache/sling/servlets/post/impl/operations/JCRSupportImpl.java
index 631f0b2..d5b040c 100644
--- a/src/main/java/org/apache/sling/servlets/post/impl/operations/JCRSupportImpl.java
+++ b/src/main/java/org/apache/sling/servlets/post/impl/operations/JCRSupportImpl.java
@@ -219,7 +219,7 @@
         return false;
     }
 
-    public boolean isFileNodeType(final ResourceResolver resolver, final String nodeType) {
+    public Boolean isFileNodeType(final ResourceResolver resolver, final String nodeType) {
         final Session session = resolver.adaptTo(Session.class);
         if ( session != null ) {
             try {
@@ -228,6 +228,7 @@
                 return nt.isNodeType(JcrConstants.NT_FILE);
             } catch (RepositoryException e) {
                 // assuming type not valid.
+                return null;
             }
         }
         return false;