Author: tommaso
Date: Thu Aug 18 14:29:47 2016
New Revision: 1756793

URL: http://svn.apache.org/viewvc?rev=1756793&view=rev
Log:
SLING-5977 - moved SimpleDistributionAgent remaining inner class out, added 
tests

Added:
    
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/TriggerAgentRequestHandler.java
   (with props)
    
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/TriggerAgentRequestHandlerTest.java
   (with props)
Modified:
    
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java

Modified: 
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java?rev=1756793&r1=1756792&r2=1756793&view=diff
==============================================================================
--- 
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
 (original)
+++ 
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
 Thu Aug 18 14:29:47 2016
@@ -19,7 +19,6 @@
 package org.apache.sling.distribution.agent.impl;
 
 import javax.annotation.Nonnull;
-import javax.annotation.Nullable;
 import java.util.Arrays;
 import java.util.List;
 import java.util.Set;
@@ -52,7 +51,6 @@ import org.apache.sling.distribution.que
 import org.apache.sling.distribution.queue.DistributionQueueState;
 import 
org.apache.sling.distribution.queue.impl.DistributionQueueDispatchingStrategy;
 import org.apache.sling.distribution.queue.impl.SimpleAgentDistributionQueue;
-import org.apache.sling.distribution.trigger.DistributionRequestHandler;
 import org.apache.sling.distribution.trigger.DistributionTrigger;
 import org.apache.sling.distribution.util.impl.DistributionUtils;
 import org.apache.sling.jcr.api.SlingRepository;
@@ -72,7 +70,7 @@ public class SimpleDistributionAgent imp
     private final DefaultDistributionLog log;
     private final DistributionEventFactory distributionEventFactory;
     private final DistributionQueueProcessor queueProcessor;
-    private AgentBasedRequestHandler agentBasedRequestHandler;
+    private TriggerAgentRequestHandler agentBasedRequestHandler;
 
     private final String name;
     private final boolean queueProcessingEnabled;
@@ -292,7 +290,7 @@ public class SimpleDistributionAgent imp
         log.info("enabling agent");
 
         // register triggers if any
-        agentBasedRequestHandler = new AgentBasedRequestHandler(this);
+        agentBasedRequestHandler = new TriggerAgentRequestHandler(this, 
agentAuthenticationInfo, log, active);
 
         if (!isPassive()) {
             try {
@@ -411,44 +409,4 @@ public class SimpleDistributionAgent imp
         return true;
     }
 
-    public class AgentBasedRequestHandler implements 
DistributionRequestHandler {
-        private final DistributionAgent agent;
-
-        public AgentBasedRequestHandler(DistributionAgent agent) {
-            this.agent = agent;
-        }
-
-        public void handle(@Nullable ResourceResolver resourceResolver, 
@Nonnull DistributionRequest request) {
-
-            if (!active) {
-                log.warn("skipping agent handler as agent is disabled");
-                return;
-            }
-
-            if (resourceResolver != null) {
-                try {
-                    agent.execute(resourceResolver, request);
-                } catch (Throwable t) {
-                    log.error("Error executing handler {}", request, t);
-                }
-            } else {
-                ResourceResolver agentResourceResolver = null;
-
-                try {
-                    agentResourceResolver = 
DistributionUtils.getResourceResolver(null, 
agentAuthenticationInfo.getAgentService(),
-                            agentAuthenticationInfo.getSlingRepository(), 
agentAuthenticationInfo.getSubServiceName(),
-                            
agentAuthenticationInfo.getResourceResolverFactory());
-
-                    agent.execute(agentResourceResolver, request);
-                } catch (Throwable e) {
-                    log.error("Error executing handler {}", request, e);
-                } finally {
-                    
DistributionUtils.ungetResourceResolver(agentResourceResolver);
-                }
-            }
-
-        }
-    }
-
-
-}
+}
\ No newline at end of file

Added: 
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/TriggerAgentRequestHandler.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/TriggerAgentRequestHandler.java?rev=1756793&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/TriggerAgentRequestHandler.java
 (added)
+++ 
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/TriggerAgentRequestHandler.java
 Thu Aug 18 14:29:47 2016
@@ -0,0 +1,82 @@
+/*
+ * 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.
+ */
+package org.apache.sling.distribution.agent.impl;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.distribution.DistributionRequest;
+import org.apache.sling.distribution.agent.DistributionAgent;
+import org.apache.sling.distribution.log.impl.DefaultDistributionLog;
+import org.apache.sling.distribution.trigger.DistributionRequestHandler;
+import org.apache.sling.distribution.util.impl.DistributionUtils;
+
+/**
+ * A {@link DistributionRequestHandler} to trigger an agent.
+ */
+class TriggerAgentRequestHandler implements DistributionRequestHandler {
+    private final SimpleDistributionAgentAuthenticationInfo authenticationInfo;
+    private final DefaultDistributionLog log;
+    private final boolean active;
+    private SimpleDistributionAgent simpleDistributionAgent;
+    private final DistributionAgent agent;
+
+    public TriggerAgentRequestHandler(@Nonnull DistributionAgent agent,
+                                      @Nonnull 
SimpleDistributionAgentAuthenticationInfo authenticationInfo,
+                                      @Nonnull DefaultDistributionLog log,
+                                      boolean active) {
+        this.authenticationInfo = authenticationInfo;
+        this.log = log;
+        this.active = active;
+        this.simpleDistributionAgent = simpleDistributionAgent;
+        this.agent = agent;
+    }
+
+    public void handle(@Nullable ResourceResolver resourceResolver, @Nonnull 
DistributionRequest request) {
+
+        if (!active) {
+            log.warn("skipping agent handler as agent is disabled");
+            return;
+        }
+
+        if (resourceResolver != null) {
+            try {
+                agent.execute(resourceResolver, request);
+            } catch (Throwable t) {
+                log.error("Error executing handler {}", request, t);
+            }
+        } else {
+            ResourceResolver agentResourceResolver = null;
+
+            try {
+                agentResourceResolver = 
DistributionUtils.getResourceResolver(null, 
authenticationInfo.getAgentService(),
+                        authenticationInfo.getSlingRepository(), 
authenticationInfo.getSubServiceName(),
+                        authenticationInfo.getResourceResolverFactory());
+
+                agent.execute(agentResourceResolver, request);
+            } catch (Throwable e) {
+                log.error("Error executing handler {}", request, e);
+            } finally {
+                DistributionUtils.ungetResourceResolver(agentResourceResolver);
+            }
+        }
+
+    }
+}

Propchange: 
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/TriggerAgentRequestHandler.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: 
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/TriggerAgentRequestHandlerTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/TriggerAgentRequestHandlerTest.java?rev=1756793&view=auto
==============================================================================
--- 
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/TriggerAgentRequestHandlerTest.java
 (added)
+++ 
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/TriggerAgentRequestHandlerTest.java
 Thu Aug 18 14:29:47 2016
@@ -0,0 +1,58 @@
+/*
+ * 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.
+ */
+package org.apache.sling.distribution.agent.impl;
+
+import org.apache.sling.api.resource.ResourceResolver;
+import org.apache.sling.distribution.DistributionRequest;
+import org.apache.sling.distribution.agent.DistributionAgent;
+import org.apache.sling.distribution.log.impl.DefaultDistributionLog;
+import org.junit.Test;
+
+import static org.junit.Assert.*;
+import static org.mockito.Mockito.mock;
+
+/**
+ * Tests for {@link TriggerAgentRequestHandler}
+ */
+public class TriggerAgentRequestHandlerTest {
+
+    @Test
+    public void testHandleActive() throws Exception {
+        DistributionAgent agent = mock(DistributionAgent.class);
+        SimpleDistributionAgentAuthenticationInfo authenticationInfo = 
mock(SimpleDistributionAgentAuthenticationInfo.class);
+        DefaultDistributionLog log = mock(DefaultDistributionLog.class);
+        TriggerAgentRequestHandler triggerAgentRequestHandler = new 
TriggerAgentRequestHandler(agent,
+                authenticationInfo, log, true);
+        ResourceResolver resourceResolver = mock(ResourceResolver.class);
+        DistributionRequest request = mock(DistributionRequest.class);
+        triggerAgentRequestHandler.handle(resourceResolver, request);
+    }
+
+    @Test
+    public void testHandlePassive() throws Exception {
+        DistributionAgent agent = mock(DistributionAgent.class);
+        SimpleDistributionAgentAuthenticationInfo authenticationInfo = 
mock(SimpleDistributionAgentAuthenticationInfo.class);
+        DefaultDistributionLog log = mock(DefaultDistributionLog.class);
+        TriggerAgentRequestHandler triggerAgentRequestHandler = new 
TriggerAgentRequestHandler(agent,
+                authenticationInfo, log, false);
+        ResourceResolver resourceResolver = mock(ResourceResolver.class);
+        DistributionRequest request = mock(DistributionRequest.class);
+        triggerAgentRequestHandler.handle(resourceResolver, request);
+    }
+}
\ No newline at end of file

Propchange: 
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/TriggerAgentRequestHandlerTest.java
------------------------------------------------------------------------------
    svn:eol-style = native


Reply via email to