Author: tommaso
Date: Mon Dec 15 16:22:43 2014
New Revision: 1645689
URL: http://svn.apache.org/r1645689
Log:
SLING-4153 - fixed request states, removed useless asStream method in transport
secret
Modified:
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequestState.java
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionResponse.java
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/Distributor.java
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/SimpleDistributionRequest.java
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/transport/DistributionTransportSecret.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgent.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/communication/impl/DefaultDistributor.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/communication/impl/SimpleDistributionResponse.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentServlet.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/UserCredentialsDistributionTransportSecretProvider.java
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentTest.java
Modified:
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequestState.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequestState.java?rev=1645689&r1=1645688&r2=1645689&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequestState.java
(original)
+++
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionRequestState.java
Mon Dec 15 16:22:43 2014
@@ -22,33 +22,33 @@ package org.apache.sling.distribution.co
* The different states a {@link
org.apache.sling.distribution.communication.DistributionRequest} can have
during its lifecycle.
* Allowed transitions of {@link
org.apache.sling.distribution.communication.DistributionRequestState}Â for a
certain
* {@link org.apache.sling.distribution.communication.DistributionRequest} are:
- * {@code #SUCCEEDED} -> ø
- * {@code #FAILED} -> ø
- * {@code #ACCEPTED} -> {@code #FAILED}
- * {@code #ACCEPTED} -> {@code #SUCCEEDED}
+ * {@code #DISTRIBUTED} -> ø
+ * {@code #DROPPED} -> ø
+ * {@code #ACCEPTED} -> {@code #DROPPED}
+ * {@code #ACCEPTED} -> {@code #DISTRIBUTED}
* <p/>
- * {@link org.apache.sling.distribution.communication.DistributionRequest}s
against synchronous {@link
org.apache.sling.distribution.agent.DistributionAgent}s
- * will only results in {@code #SUCCEEDED} or {@code #FAILED} {@link
org.apache.sling.distribution.communication.DistributionRequestState}s
- * while requests against asynchronous agents can result in any of {@code
#SUCCEEDED}, {@code #FAILED} or {@code #ACCEPTED} states.
+ * {@link org.apache.sling.distribution.communication.DistributionRequest}s
executed synchronously
+ * will only results in {@code #DISTRIBUTED} or {@code #DROPPED} {@link
org.apache.sling.distribution.communication.DistributionRequestState}s
+ * while requests executed asynchronously can result in any of {@code
#DISTRIBUTED}, {@code #DROPPED} or {@code #ACCEPTED} states.
*/
public enum DistributionRequestState {
/**
- * A {@link
org.apache.sling.distribution.communication.DistributionRequest} has succeeded
when the content has been
- * successfully distributed (created, transported and persisted) from the
source instance to the target instance.
+ * The request has completed and the content has been successfully
distributed
+ * (created, transported and persisted) from the source instance to the
target instance.
*/
- SUCCEEDED,
+ DISTRIBUTED,
/**
- * A {@link
org.apache.sling.distribution.communication.DistributionRequest} has failed
when the content cannot be
- * successfully distributed from the source instance to target instance,
this means the request execution failed during
- * one of: creation, transport, persistence.
+ * The request has been dropped and the content could not be successfully
+ * distributed from the source to target instance, this means the request
+ * execution failed during one of: creation, queueing, transport,
persistence.
*/
- FAILED,
+ DROPPED,
/**
- * A {@link
org.apache.sling.distribution.communication.DistributionRequest} has been
accepted when the content to be
- * distributed has been successfully created, but not yet either
transported or persisted correctly to the target instance.
+ * The request has been accepted, as a consequence the content to be
distributed
+ * has been created and queued (and it will be eventually processed
asynchronously).
*/
ACCEPTED
Modified:
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionResponse.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionResponse.java?rev=1645689&r1=1645688&r2=1645689&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionResponse.java
(original)
+++
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/DistributionResponse.java
Mon Dec 15 16:22:43 2014
@@ -53,7 +53,8 @@ public interface DistributionResponse {
/**
* returns a verbose message of the response
- * @return
+ * @return a message associated with this response holding information
about
+ * e.g. why distribution execution failed, etc.
*/
@CheckForNull
String getMessage();
Modified:
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/Distributor.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/Distributor.java?rev=1645689&r1=1645688&r2=1645689&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/Distributor.java
(original)
+++
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/Distributor.java
Mon Dec 15 16:22:43 2014
@@ -48,7 +48,8 @@ public interface Distributor {
* @return a {@link
org.apache.sling.distribution.communication.DistributionResponse}
*/
@Nonnull
- DistributionResponse distribute(@Nonnull String agentName, @Nonnull
ResourceResolver resourceResolver, @Nonnull DistributionRequest
distributionRequest);
+ DistributionResponse distribute(@Nonnull String agentName, @Nonnull
ResourceResolver resourceResolver,
+ @Nonnull DistributionRequest
distributionRequest);
}
Modified:
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/SimpleDistributionRequest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/SimpleDistributionRequest.java?rev=1645689&r1=1645688&r2=1645689&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/SimpleDistributionRequest.java
(original)
+++
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/communication/SimpleDistributionRequest.java
Mon Dec 15 16:22:43 2014
@@ -58,6 +58,7 @@ public final class SimpleDistributionReq
*
* @return the type of the request as a {@link DistributionRequestType}
*/
+ @Nonnull
public DistributionRequestType getRequestType() {
return requestType;
}
@@ -76,7 +77,7 @@ public final class SimpleDistributionReq
* Returns whether the a path is covering the entire subtree (deep) or
just the specified nodes (shallow)
* @return <code>true</code> if the path is deep
*/
- public boolean isDeep(String path) {
+ public boolean isDeep(@Nonnull String path) {
return deep;
}
Modified:
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/transport/DistributionTransportSecret.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/transport/DistributionTransportSecret.java?rev=1645689&r1=1645688&r2=1645689&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/transport/DistributionTransportSecret.java
(original)
+++
sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/transport/DistributionTransportSecret.java
Mon Dec 15 16:22:43 2014
@@ -43,13 +43,4 @@ public interface DistributionTransportSe
@CheckForNull
Map<String, String> asCredentialsMap();
- /**
- * Get the secrete as a raw {@link java.io.InputStream binary}.
- * Note that each call to this method will create a new stream, so the
caller will be responsible of closing it.
- *
- * @return the secret as an {@link java.io.InputStream}, or {@code null}
if such a secret cannot represented as a stream.
- */
- @CheckForNull
- InputStream asStream();
-
}
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=1645689&r1=1645688&r2=1645689&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
Mon Dec 15 16:22:43 2014
@@ -196,7 +196,7 @@ public class SimpleDistributionAgent imp
distributionEventFactory.generateAgentPackageEvent(DistributionEventType.AGENT_PACKAGE_QUEUED,
name, distributionPackage.getInfo());
} catch (Exception e) {
log.error("an error happened during dispatching items to the
queue(s)", e);
- distributionResponses.add(new
SimpleDistributionResponse(DistributionRequestState.FAILED, e.toString()));
+ distributionResponses.add(new
SimpleDistributionResponse(DistributionRequestState.DROPPED, e.toString()));
}
return distributionResponses;
@@ -213,22 +213,22 @@ public class SimpleDistributionAgent imp
requestState = DistributionRequestState.ACCEPTED;
break;
case SUCCEEDED:
- requestState = DistributionRequestState.SUCCEEDED;
+ requestState = DistributionRequestState.DISTRIBUTED;
break;
case STOPPED:
- requestState = DistributionRequestState.FAILED;
+ requestState = DistributionRequestState.DROPPED;
break;
case GIVEN_UP:
- requestState = DistributionRequestState.FAILED;
+ requestState = DistributionRequestState.DROPPED;
break;
case ERROR:
- requestState = DistributionRequestState.FAILED;
+ requestState = DistributionRequestState.DROPPED;
break;
case DROPPED:
- requestState = DistributionRequestState.FAILED;
+ requestState = DistributionRequestState.DROPPED;
break;
default:
- requestState = DistributionRequestState.FAILED;
+ requestState = DistributionRequestState.DROPPED;
break;
}
return requestState;
@@ -439,12 +439,12 @@ public class SimpleDistributionAgent imp
private String message;
public CompositeDistributionResponse(List<DistributionResponse>
distributionResponses) {
- super(DistributionRequestState.FAILED, null);
+ super(DistributionRequestState.DROPPED, null);
if (distributionResponses.isEmpty()) {
- state = DistributionRequestState.FAILED;
+ state = DistributionRequestState.DROPPED;
message = "empty response";
} else {
- state = DistributionRequestState.SUCCEEDED;
+ state = DistributionRequestState.DISTRIBUTED;
StringBuilder messageBuilder = new StringBuilder("[");
for (DistributionResponse response : distributionResponses) {
state = aggregatedState(state, response.getState());
@@ -458,9 +458,10 @@ public class SimpleDistributionAgent imp
@Override
public boolean isSuccessful() {
- return !DistributionRequestState.FAILED.equals(state);
+ return !DistributionRequestState.DROPPED.equals(state);
}
+ @Nonnull
@Override
public DistributionRequestState getState() {
return state;
@@ -476,21 +477,21 @@ public class SimpleDistributionAgent imp
private DistributionRequestState aggregatedState(DistributionRequestState
first, DistributionRequestState second) {
DistributionRequestState aggregatedState;
switch (second) {
- case SUCCEEDED:
+ case DISTRIBUTED:
aggregatedState = first;
break;
- case FAILED:
- aggregatedState = DistributionRequestState.FAILED;
+ case DROPPED:
+ aggregatedState = DistributionRequestState.DISTRIBUTED;
break;
case ACCEPTED:
- if (first.equals(DistributionRequestState.SUCCEEDED)) {
+ if (first.equals(DistributionRequestState.DISTRIBUTED)) {
aggregatedState = DistributionRequestState.ACCEPTED;
} else {
aggregatedState = first;
}
break;
default:
- aggregatedState = DistributionRequestState.FAILED;
+ aggregatedState = DistributionRequestState.DROPPED;
}
return aggregatedState;
}
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/communication/impl/DefaultDistributor.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/communication/impl/DefaultDistributor.java?rev=1645689&r1=1645688&r2=1645689&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/communication/impl/DefaultDistributor.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/communication/impl/DefaultDistributor.java
Mon Dec 15 16:22:43 2014
@@ -51,18 +51,19 @@ public class DefaultDistributor implemen
@Reference
DefaultDistributionComponentProvider componentProvider;
+ @Nonnull
public DistributionResponse distribute(@Nonnull String agentName, @Nonnull
ResourceResolver resourceResolver, @Nonnull DistributionRequest
distributionRequest) {
DistributionAgent agent =
componentProvider.getComponent(DistributionAgent.class, agentName);
- if (agentName == null) {
- return new
SimpleDistributionResponse(DistributionRequestState.FAILED, "Agent is not
available");
+ if (agent == null) {
+ return new
SimpleDistributionResponse(DistributionRequestState.DROPPED, "Agent is not
available");
}
try {
return agent.execute(resourceResolver, distributionRequest);
} catch (DistributionAgentException e) {
log.error("cannot execute", e);
- return new
SimpleDistributionResponse(DistributionRequestState.FAILED, "Cannot execute
request");
+ return new
SimpleDistributionResponse(DistributionRequestState.DROPPED, "Cannot execute
request");
}
}
}
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/communication/impl/SimpleDistributionResponse.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/communication/impl/SimpleDistributionResponse.java?rev=1645689&r1=1645688&r2=1645689&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/communication/impl/SimpleDistributionResponse.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/communication/impl/SimpleDistributionResponse.java
Mon Dec 15 16:22:43 2014
@@ -19,6 +19,8 @@
package org.apache.sling.distribution.communication.impl;
+import javax.annotation.Nonnull;
+
import org.apache.sling.distribution.communication.DistributionRequestState;
import org.apache.sling.distribution.communication.DistributionResponse;
@@ -38,9 +40,10 @@ public class SimpleDistributionResponse
}
public boolean isSuccessful() {
- return !DistributionRequestState.FAILED.equals(state);
+ return !DistributionRequestState.DROPPED.equals(state);
}
+ @Nonnull
public DistributionRequestState getState() {
return state;
}
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentServlet.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentServlet.java?rev=1645689&r1=1645688&r2=1645689&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentServlet.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentServlet.java
Mon Dec 15 16:22:43 2014
@@ -61,10 +61,10 @@ public class DistributionAgentServlet ex
try {
DistributionResponse distributionResponse =
agent.execute(resourceResolver, distributionRequest);
switch (distributionResponse.getState()) {
- case SUCCEEDED:
+ case DISTRIBUTED:
response.setStatus(200);
break;
- case FAILED:
+ case DROPPED:
response.setStatus(400);
break;
case ACCEPTED:
Modified:
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/UserCredentialsDistributionTransportSecretProvider.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/UserCredentialsDistributionTransportSecretProvider.java?rev=1645689&r1=1645688&r2=1645689&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/UserCredentialsDistributionTransportSecretProvider.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/UserCredentialsDistributionTransportSecretProvider.java
Mon Dec 15 16:22:43 2014
@@ -73,10 +73,6 @@ public class UserCredentialsDistribution
return null;
}
- public InputStream asStream() {
- return null;
- }
-
public Map<String, String> asCredentialsMap() {
Map<String, String> map = new HashMap<String, String>();
map.put(USERNAME, username);
Modified:
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentTest.java
URL:
http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentTest.java?rev=1645689&r1=1645688&r2=1645689&view=diff
==============================================================================
---
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentTest.java
(original)
+++
sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentTest.java
Mon Dec 15 16:22:43 2014
@@ -23,6 +23,7 @@ import java.util.Arrays;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.api.resource.ResourceResolverFactory;
import org.apache.sling.distribution.communication.DistributionRequest;
+import org.apache.sling.distribution.communication.DistributionRequestState;
import org.apache.sling.distribution.communication.DistributionRequestType;
import org.apache.sling.distribution.communication.DistributionResponse;
import org.apache.sling.distribution.communication.SimpleDistributionRequest;
@@ -80,6 +81,7 @@ public class SimpleDistributionAgentTest
DistributionResponse response = agent.execute(resourceResolver,
request);
assertNotNull(response);
assertEquals("ERROR", response.getMessage());
+ assertEquals(DistributionRequestState.DROPPED, response.getState());
}
@Test
@@ -112,6 +114,7 @@ public class SimpleDistributionAgentTest
DistributionResponse response = agent.execute(resourceResolver,
request);
assertNotNull(response);
assertEquals("QUEUED", response.getMessage());
+ assertEquals(DistributionRequestState.ACCEPTED, response.getState());
}
@Test