Author: cziegeler
Date: Mon May 15 16:57:59 2017
New Revision: 1795224

URL: http://svn.apache.org/viewvc?rev=1795224&view=rev
Log:
SLING-6859 : Make dependency to javax.jcr optional

Modified:
    
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/SlingPostServlet.java

Modified: 
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/SlingPostServlet.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/SlingPostServlet.java?rev=1795224&r1=1795223&r2=1795224&view=diff
==============================================================================
--- 
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/SlingPostServlet.java
 (original)
+++ 
sling/trunk/bundles/servlets/post/src/main/java/org/apache/sling/servlets/post/impl/SlingPostServlet.java
 Mon May 15 16:57:59 2017
@@ -191,10 +191,10 @@ public class SlingPostServlet extends Sl
     /** Cached array of post response creators used during request processing. 
*/
     private PostResponseCreator[] cachedPostResponseCreators = new 
PostResponseCreator[0];
 
-    private final ImportOperation importOperation = new ImportOperation();
-
     private VersioningConfiguration baseVersioningConfiguration;
 
+    private ImportOperation importOperation;
+
     @Override
     protected void doPost(final SlingHttpServletRequest request,
             final SlingHttpServletResponse response) throws IOException {
@@ -416,6 +416,10 @@ public class SlingPostServlet extends Sl
     @Activate
     protected void activate(final BundleContext bundleContext,
             final Config configuration) {
+        // the following operations require JCR:
+        if ( JCRSupport.INSTANCE.jcrEnabled()) {
+            importOperation = new ImportOperation();
+        }
         // configure now
         this.configure(configuration);
 
@@ -490,10 +494,11 @@ public class SlingPostServlet extends Sl
 
         this.modifyOperation.setDateParser(dateParser);
         this.modifyOperation.setDefaultNodeNameGenerator(nodeNameGenerator);
-        this.importOperation.setDefaultNodeNameGenerator(nodeNameGenerator);
         this.modifyOperation.setIgnoredParameterNamePattern(paramMatchPattern);
-        this.importOperation.setIgnoredParameterNamePattern(paramMatchPattern);
-
+        if ( this.importOperation != null ) {
+            
this.importOperation.setDefaultNodeNameGenerator(nodeNameGenerator);
+            
this.importOperation.setIgnoredParameterNamePattern(paramMatchPattern);
+        }
     }
 
     @Override
@@ -511,8 +516,9 @@ public class SlingPostServlet extends Sl
             internalOperations = null;
         }
         modifyOperation.setExtraNodeNameGenerators(null);
-        importOperation.setExtraNodeNameGenerators(null);
-        importOperation.setContentImporter(null);
+        if ( this.importOperation != null ) {
+            this.importOperation = null;
+        }
     }
 
     /**
@@ -658,7 +664,9 @@ public class SlingPostServlet extends Sl
         }
         this.cachedNodeNameGenerators = localCache;
         
this.modifyOperation.setExtraNodeNameGenerators(this.cachedNodeNameGenerators);
-        
this.importOperation.setExtraNodeNameGenerators(this.cachedNodeNameGenerators);
+        if ( this.importOperation != null ) {
+            
this.importOperation.setExtraNodeNameGenerators(this.cachedNodeNameGenerators);
+        }
     }
 
     /**
@@ -722,11 +730,15 @@ public class SlingPostServlet extends Sl
             policy = ReferencePolicy.DYNAMIC,
             policyOption = ReferencePolicyOption.GREEDY)
     protected void bindContentImporter(final Object importer) {
-        importOperation.setContentImporter(importer);
+        if ( this.importOperation != null ) {
+            importOperation.setContentImporter(importer);
+        }
     }
 
     protected void unbindContentImporter(final Object importer) {
-        importOperation.unsetContentImporter(importer);
+        if ( this.importOperation != null ) {
+            importOperation.unsetContentImporter(importer);
+        }
     }
 
     private VersioningConfiguration createBaseVersioningConfiguration(Config 
config) {


Reply via email to