You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by mp...@apache.org on 2015/12/22 09:40:03 UTC
svn commit: r1721316 [2/2] - in /sling/trunk/contrib/extensions/distribution:
core/src/main/java/org/apache/sling/distribution/agent/impl/
core/src/main/java/org/apache/sling/distribution/packaging/
core/src/main/java/org/apache/sling/distribution/pack...
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionPackageExporterServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionPackageExporterServlet.java?rev=1721316&r1=1721315&r2=1721316&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionPackageExporterServlet.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionPackageExporterServlet.java Tue Dec 22 08:40:03 2015
@@ -22,6 +22,7 @@ import javax.servlet.ServletException;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
+import java.util.concurrent.atomic.AtomicInteger;
import org.apache.commons.io.IOUtils;
import org.apache.felix.scr.annotations.sling.SlingServlet;
@@ -32,6 +33,7 @@ import org.apache.sling.api.resource.Res
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
import org.apache.sling.distribution.DistributionRequest;
import org.apache.sling.distribution.common.DistributionException;
+import org.apache.sling.distribution.packaging.DistributionPackageProcessor;
import org.apache.sling.distribution.serialization.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageExporter;
import org.apache.sling.distribution.resources.DistributionResourceTypes;
@@ -75,7 +77,7 @@ public class DistributionPackageExporter
}
}
- protected void exportOnePackage(SlingHttpServletRequest request, SlingHttpServletResponse response, boolean delete)
+ protected void exportOnePackage(final SlingHttpServletRequest request, final SlingHttpServletResponse response, final boolean delete)
throws ServletException, IOException {
DistributionPackageExporter distributionPackageExporter = request
@@ -89,48 +91,44 @@ public class DistributionPackageExporter
DistributionRequest distributionRequest = RequestUtils.fromServletRequest(request);
ResourceResolver resourceResolver = request.getResourceResolver();
- int consumed = 0;
- int fetched = 0;
+ final AtomicInteger fetched = new AtomicInteger(0);
try {
// get all items
- List<DistributionPackage> distributionPackages = distributionPackageExporter.exportPackages(resourceResolver, distributionRequest);
- fetched = distributionPackages.size();
-
- if (distributionPackages.size() > 0) {
- log.info("{} package(s) available for fetching", distributionPackages.size());
+ distributionPackageExporter.exportPackages(resourceResolver, distributionRequest, new DistributionPackageProcessor() {
+ @Override
+ public void process(DistributionPackage distributionPackage) {
+ fetched.incrementAndGet();
+
+ InputStream inputStream = null;
+ int bytesCopied = -1;
+ try {
+ response.addHeader(HttpTransportUtils.HEADER_DISTRIBUTION_ORIGINAL_ID, distributionPackage.getId());
+
+ inputStream = distributionPackage.createInputStream();
+
+ bytesCopied = IOUtils.copy(inputStream, response.getOutputStream());
+ } catch (IOException e) {
+ log.error("cannot process package", e);
+ } finally {
+ IOUtils.closeQuietly(inputStream);
+ }
- for (DistributionPackage distributionPackage : distributionPackages) {
- if (distributionPackage != null) {
- consumed++;
- InputStream inputStream = null;
- int bytesCopied = -1;
- try {
- response.addHeader(HttpTransportUtils.HEADER_DISTRIBUTION_ORIGINAL_ID, distributionPackage.getId());
-
- inputStream = distributionPackage.createInputStream();
-
- bytesCopied = IOUtils.copy(inputStream, response.getOutputStream());
- } finally {
- IOUtils.closeQuietly(inputStream);
- }
-
- String packageId = distributionPackage.getId();
- if (delete) {
- // delete the package permanently
- distributionPackage.delete();
- }
-
-
- // everything ok
- response.setStatus(200);
- log.info("exported package {} was sent (and deleted={}), bytes written {}", new Object[]{packageId, delete, bytesCopied});
- } else {
- log.warn("fetched a null package");
+ String packageId = distributionPackage.getId();
+ if (delete) {
+ // delete the package permanently
+ distributionPackage.delete();
}
+
+
+ // everything ok
+ response.setStatus(200);
+ log.info("exported package {} was sent (and deleted={}), bytes written {}", new Object[]{packageId, delete, bytesCopied});
}
+ });
+ if (fetched.get() > 0) {
long end = System.currentTimeMillis();
- log.info("Processed distribution export request in {} ms: : consumed {} of {}", new Object[]{end - start, consumed, fetched});
+ log.info("Processed distribution export request in {} ms: : fetched {}", new Object[]{end - start, fetched});
} else {
response.setStatus(204);
log.debug("nothing to fetch");
@@ -163,9 +161,6 @@ public class DistributionPackageExporter
response.setStatus(204);
log.debug("nothing to delete {}", id);
}
-
-
-
}
}
Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/core/DistributionContext.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/core/DistributionContext.java?rev=1721316&view=auto
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/core/DistributionContext.java (added)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/core/DistributionContext.java Tue Dec 22 08:40:03 2015
@@ -0,0 +1,31 @@
+/*
+ * 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.transport.core;
+
+import org.apache.sling.api.wrappers.ValueMapDecorator;
+
+import java.util.HashMap;
+
+public class DistributionContext extends ValueMapDecorator {
+
+ public DistributionContext() {
+ super(new HashMap<String, Object>());
+ }
+}
Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/core/DistributionPackageProxy.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/core/DistributionPackageProxy.java?rev=1721316&view=auto
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/core/DistributionPackageProxy.java (added)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/core/DistributionPackageProxy.java Tue Dec 22 08:40:03 2015
@@ -0,0 +1,28 @@
+/*
+ * 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.transport.core;
+
+import org.apache.sling.distribution.serialization.DistributionPackage;
+
+
+public interface DistributionPackageProxy {
+ public DistributionPackage getPackage();
+ public void deletePackage();
+}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/core/DistributionTransport.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/core/DistributionTransport.java?rev=1721316&r1=1721315&r2=1721316&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/core/DistributionTransport.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/core/DistributionTransport.java Tue Dec 22 08:40:03 2015
@@ -19,6 +19,7 @@
package org.apache.sling.distribution.transport.core;
import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.distribution.DistributionRequest;
@@ -42,7 +43,7 @@ public interface DistributionTransport {
* @throws DistributionException if the {@link DistributionPackage}
* fails to be delivered to the target instance (e.g. because of network, I/O issues)
*/
- void deliverPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionPackage distributionPackage) throws DistributionException;
+ void deliverPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionPackage distributionPackage, @Nonnull DistributionContext context) throws DistributionException;
/**
* Retrieve {@link DistributionPackage}s from a target Sling instance, which
@@ -56,7 +57,7 @@ public interface DistributionTransport {
* @throws DistributionException if the {@link DistributionPackage}s
* fail to be retrieved from the target instance
*/
- @Nonnull
- Iterable<DistributionPackage> retrievePackages(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionRequest request) throws DistributionException;
+ @Nullable
+ DistributionPackageProxy retrievePackage(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionRequest request, @Nonnull DistributionContext context) throws DistributionException;
}
Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/DefaultDistributionPackageProxy.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/DefaultDistributionPackageProxy.java?rev=1721316&view=auto
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/DefaultDistributionPackageProxy.java (added)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/DefaultDistributionPackageProxy.java Tue Dec 22 08:40:03 2015
@@ -0,0 +1,64 @@
+/*
+ * 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.transport.impl;
+
+import org.apache.http.client.fluent.Executor;
+import org.apache.sling.distribution.serialization.DistributionPackage;
+import org.apache.sling.distribution.transport.core.DistributionPackageProxy;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
+
+
+public class DefaultDistributionPackageProxy implements DistributionPackageProxy {
+ static final Logger log = LoggerFactory.getLogger(DefaultDistributionPackageProxy.class);
+
+
+ private final DistributionPackage wrappedPackage;
+ private final Executor executor;
+ private final URI distributionURI;
+ private final String remoteId;
+
+ public DefaultDistributionPackageProxy(DistributionPackage wrappedPackage, Executor executor, URI distributionURI, String remoteId) {
+ this.wrappedPackage = wrappedPackage;
+ this.executor = executor;
+ this.distributionURI = distributionURI;
+ this.remoteId = remoteId;
+ }
+
+
+ public DistributionPackage getPackage() {
+ return wrappedPackage;
+ }
+
+ public void deletePackage() {
+
+ try {
+ HttpTransportUtils.deletePackage(executor, distributionURI, remoteId);
+ } catch (URISyntaxException e) {
+ log.error("cannot delete remote package", e);
+ } catch (IOException e) {
+ log.error("cannot delete remote package", e);
+ }
+ }
+}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java?rev=1721316&r1=1721315&r2=1721316&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java Tue Dec 22 08:40:03 2015
@@ -36,7 +36,6 @@ import org.apache.http.conn.HttpHostConn
import org.apache.http.entity.ContentType;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.distribution.DistributionRequest;
-import org.apache.sling.distribution.DistributionRequestType;
import org.apache.sling.distribution.common.DistributionException;
import org.apache.sling.distribution.common.RecoverableDistributionException;
import org.apache.sling.distribution.log.impl.DefaultDistributionLog;
@@ -44,7 +43,9 @@ import org.apache.sling.distribution.ser
import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
import org.apache.sling.distribution.transport.DistributionTransportSecret;
import org.apache.sling.distribution.transport.DistributionTransportSecretProvider;
+import org.apache.sling.distribution.transport.core.DistributionContext;
import org.apache.sling.distribution.transport.core.DistributionTransport;
+import org.apache.sling.distribution.transport.core.DistributionPackageProxy;
import org.apache.sling.distribution.util.RequestUtils;
/**
@@ -54,6 +55,8 @@ public class SimpleHttpDistributionTrans
private static final String USERNAME = "username";
private static final String PASSWORD = "password";
+ private static final String EXECUTOR_CONTEXT_KEY = "executorContextKey";
+
/**
* distribution package origin uri
@@ -64,21 +67,18 @@ public class SimpleHttpDistributionTrans
private final DistributionEndpoint distributionEndpoint;
private final DistributionPackageBuilder packageBuilder;
protected final DistributionTransportSecretProvider secretProvider;
- private final int maxPullItems;
public SimpleHttpDistributionTransport(DefaultDistributionLog log, DistributionEndpoint distributionEndpoint,
DistributionPackageBuilder packageBuilder,
- DistributionTransportSecretProvider secretProvider,
- int maxPullItems) {
+ DistributionTransportSecretProvider secretProvider) {
this.log = log;
this.distributionEndpoint = distributionEndpoint;
this.packageBuilder = packageBuilder;
this.secretProvider = secretProvider;
- this.maxPullItems = maxPullItems;
}
- public void deliverPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionPackage distributionPackage) throws DistributionException {
+ public void deliverPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionPackage distributionPackage, @Nonnull DistributionContext distributionContext) throws DistributionException {
String hostAndPort = getHostAndPort(distributionEndpoint.getUri());
URI packageOrigin = distributionPackage.getInfo().get(PACKAGE_INFO_PROPERTY_ORIGIN_URI, URI.class);
@@ -89,13 +89,7 @@ public class SimpleHttpDistributionTrans
try {
- Executor executor = Executor.newInstance();
-
- DistributionTransportSecret secret = secretProvider.getSecret(distributionEndpoint.getUri());
-
- log.debug("delivering package {} to {} with user {}", distributionPackage.getId(), distributionEndpoint.getUri(), secret.asCredentialsMap().get(USERNAME));
-
- executor = authenticate(secret, executor);
+ Executor executor = getExecutor(distributionContext);
Request req = Request.Post(distributionEndpoint.getUri()).useExpectContinue();
@@ -123,8 +117,7 @@ public class SimpleHttpDistributionTrans
}
@Nonnull
- public List<DistributionPackage> retrievePackages(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionRequest
- distributionRequest) throws DistributionException {
+ public DistributionPackageProxy retrievePackage(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionRequest distributionRequest, @Nonnull DistributionContext distributionContext) throws DistributionException {
log.debug("pulling from {}", distributionEndpoint.getUri());
List<DistributionPackage> result = new ArrayList<DistributionPackage>();
@@ -134,57 +127,44 @@ public class SimpleHttpDistributionTrans
// TODO : executor should be cached and reused
- Executor executor = Executor.newInstance();
- DistributionTransportSecret secret = secretProvider.getSecret(distributionEndpoint.getUri());
- executor = authenticate(secret, executor);
+ Executor executor = getExecutor(distributionContext);
// Request req = Request.Post(distributionURI).useExpectContinue();
// TODO : add queue parameter
// continuously requests package streams as long as type header is received with the response (meaning there's a package of a certain type)
- InputStream inputStream;
final Map<String, String> headers = new HashMap<String, String>();
- int pulls = 0;
- int maxNumberOfPackages = DistributionRequestType.PULL.equals(distributionRequest.getRequestType()) ? maxPullItems : 1;
- while (pulls < maxNumberOfPackages && (inputStream = HttpTransportUtils.fetchNextPackage(executor, distributionURI, headers)) != null) {
+ InputStream inputStream = HttpTransportUtils.fetchNextPackage(executor, distributionURI, headers);
- final DistributionPackage responsePackage = packageBuilder.readPackage(resourceResolver, inputStream);
- if (responsePackage != null) {
- responsePackage.getInfo().put(PACKAGE_INFO_PROPERTY_ORIGIN_URI, distributionURI);
- log.debug("pulled package no {} with info {}", pulls, responsePackage.getInfo());
+ if (inputStream == null) {
+ return null;
+ }
- result.add(responsePackage);
+ final DistributionPackage responsePackage = packageBuilder.readPackage(resourceResolver, inputStream);
+ if (responsePackage != null) {
+ responsePackage.getInfo().put(PACKAGE_INFO_PROPERTY_ORIGIN_URI, distributionURI);
+ log.debug("pulled package with info {}", responsePackage.getInfo());
- String originalId = headers.get(HttpTransportUtils.HEADER_DISTRIBUTION_ORIGINAL_ID);
- HttpTransportUtils.deletePackage(executor, distributionURI, originalId);
+ String originalId = headers.get(HttpTransportUtils.HEADER_DISTRIBUTION_ORIGINAL_ID);
- } else {
- log.warn("responsePackage is null");
- }
+ DistributionPackageProxy remotePackage = new DefaultDistributionPackageProxy(responsePackage, executor, distributionURI, originalId);
- pulls++;
+ return remotePackage;
+ } else {
+ log.warn("responsePackage is null");
}
-
} catch (HttpHostConnectException e) {
log.info("could not connect to {} - skipping", distributionEndpoint.getUri());
} catch (Exception ex) {
log.error("cannot retrieve packages", ex);
}
-
- // only log.info when something is pulled in order to keep a quite log
- if (result.size() == 0) {
- log.debug("pulled {} packages from {}", result.size(), distributionEndpoint.getUri());
- } else {
- log.info("pulled {} packages from {}", result.size(), distributionEndpoint.getUri());
- }
-
- return result;
+ return null;
}
protected Executor authenticate(DistributionTransportSecret secret, Executor executor) {
@@ -193,7 +173,7 @@ public class SimpleHttpDistributionTrans
executor = executor.auth(new HttpHost(distributionEndpoint.getUri().getHost(), distributionEndpoint.getUri().getPort()),
credentialsMap.get(USERNAME), credentialsMap.get(PASSWORD)).authPreemptive(
new HttpHost(distributionEndpoint.getUri().getHost(), distributionEndpoint.getUri().getPort()));
- log.debug("authenticated executor HTTP client with user and password");
+ log.debug("authenticated executor HTTP client with user and password {}", secret.asCredentialsMap().get(USERNAME));
}
return executor;
}
@@ -202,4 +182,21 @@ public class SimpleHttpDistributionTrans
return uri.getHost() + ":" + uri.getPort();
}
+
+ private Executor getExecutor(DistributionContext distributionContext) {
+ if (distributionContext.containsKey(EXECUTOR_CONTEXT_KEY)) {
+ return distributionContext.get(EXECUTOR_CONTEXT_KEY, Executor.class);
+ }
+
+ Executor executor = Executor.newInstance();
+
+ DistributionTransportSecret secret = secretProvider.getSecret(distributionEndpoint.getUri());
+ executor = authenticate(secret, executor);
+
+ distributionContext.put(EXECUTOR_CONTEXT_KEY, executor);
+
+ return executor;
+
+ }
+
}
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=1721316&r1=1721315&r2=1721316&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 Tue Dec 22 08:40:03 2015
@@ -18,6 +18,7 @@
*/
package org.apache.sling.distribution.agent.impl;
+import java.util.ArrayList;
import java.util.Arrays;
import org.apache.sling.api.resource.ResourceResolver;
@@ -29,6 +30,7 @@ import org.apache.sling.distribution.Dis
import org.apache.sling.distribution.SimpleDistributionRequest;
import org.apache.sling.distribution.event.impl.DistributionEventFactory;
import org.apache.sling.distribution.log.impl.DefaultDistributionLog;
+import org.apache.sling.distribution.packaging.DistributionPackageProcessor;
import org.apache.sling.distribution.serialization.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageExporter;
import org.apache.sling.distribution.packaging.DistributionPackageImporter;
@@ -41,6 +43,8 @@ import org.apache.sling.distribution.que
import org.apache.sling.distribution.queue.impl.simple.SimpleDistributionQueue;
import org.apache.sling.jcr.api.SlingRepository;
import org.junit.Test;
+import org.mockito.invocation.InvocationOnMock;
+import org.mockito.stubbing.Answer;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
@@ -48,7 +52,9 @@ import static org.junit.Assert.assertNot
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
+import static org.mockito.Mockito.doAnswer;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockingDetails;
import static org.mockito.Mockito.when;
/**
@@ -75,12 +81,20 @@ public class SimpleDistributionAgentTest
queueProvider, distributionHandler, null,
distributionEventFactory, resolverFactory, mock(SlingRepository.class), mock(DefaultDistributionLog.class), null, null, 0);
DistributionRequest request = new SimpleDistributionRequest(DistributionRequestType.ADD, "/");
- DistributionPackage distributionPackage = mock(DistributionPackage.class);
+ final DistributionPackage distributionPackage = mock(DistributionPackage.class);
ResourceResolver resourceResolver = mock(ResourceResolver.class);
when(distributionPackage.getInfo()).thenReturn(new DistributionPackageInfo("type"));
- when(packageExporter.exportPackages(any(ResourceResolver.class), any(DistributionRequest.class)))
- .thenReturn(Arrays.asList(distributionPackage));
+ doAnswer(new Answer() {
+ @Override
+ public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
+ Object[] args = invocationOnMock.getArguments();
+ ((DistributionPackageProcessor) args[2]).process(distributionPackage);
+ return null;
+ }
+ }).when(packageExporter).exportPackages(any(ResourceResolver.class), any(DistributionRequest.class), any(DistributionPackageProcessor.class));
+
+
when(queueProvider.getQueue(DistributionQueueDispatchingStrategy.DEFAULT_QUEUE_NAME)).thenReturn(
new SimpleDistributionQueue(name, "name"));
DistributionResponse response = agent.execute(resourceResolver, request);
@@ -106,15 +120,21 @@ public class SimpleDistributionAgentTest
distributionHandler, null, distributionEventFactory, resolverFactory, mock(SlingRepository.class),
mock(DefaultDistributionLog.class), null, null, 0);
DistributionRequest request = new SimpleDistributionRequest(DistributionRequestType.ADD, "/");
- DistributionPackage distributionPackage = mock(DistributionPackage.class);
+ final DistributionPackage distributionPackage = mock(DistributionPackage.class);
ResourceResolver resourceResolver = mock(ResourceResolver.class);
when(distributionPackage.getInfo()).thenReturn(new DistributionPackageInfo("type"));
Iterable<DistributionQueueItemStatus> states = Arrays.asList(new DistributionQueueItemStatus(DistributionQueueItemState.QUEUED,
DistributionQueueDispatchingStrategy.DEFAULT_QUEUE_NAME));
when(distributionHandler.add(any(DistributionPackage.class), any(DistributionQueueProvider.class))).thenReturn(states);
- when(packageExporter.exportPackages(any(ResourceResolver.class), any(DistributionRequest.class)))
- .thenReturn(Arrays.asList(distributionPackage));
+ doAnswer(new Answer() {
+ @Override
+ public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
+ Object[] args = invocationOnMock.getArguments();
+ ((DistributionPackageProcessor) args[2]).process(distributionPackage);
+ return null;
+ }
+ }).when(packageExporter).exportPackages(any(ResourceResolver.class), any(DistributionRequest.class), any(DistributionPackageProcessor.class));
when(queueProvider.getQueue(DistributionQueueDispatchingStrategy.DEFAULT_QUEUE_NAME)).thenReturn(
new SimpleDistributionQueue(name, "name"));
DistributionResponse response = agent.execute(resourceResolver, request);
@@ -128,26 +148,34 @@ public class SimpleDistributionAgentTest
String name = "sample-agent";
DistributionPackageImporter packageImporter = mock(DistributionPackageImporter.class);
DistributionPackageExporter packageExporter = mock(DistributionPackageExporter.class);
- DistributionRequestAuthorizationStrategy packageExporterStrategy = mock(DistributionRequestAuthorizationStrategy.class);
+ DistributionRequestAuthorizationStrategy requestAuthorizationStrategy = mock(DistributionRequestAuthorizationStrategy.class);
DistributionQueueProvider queueProvider = mock(DistributionQueueProvider.class);
- DistributionQueueDispatchingStrategy distributionHandler = mock(DistributionQueueDispatchingStrategy.class);
+ DistributionQueueDispatchingStrategy dispatchingStrategy = mock(DistributionQueueDispatchingStrategy.class);
DistributionEventFactory distributionEventFactory = mock(DistributionEventFactory.class);
ResourceResolverFactory resolverFactory = mock(ResourceResolverFactory.class);
+ when(dispatchingStrategy.add(any(DistributionPackage.class), any(DistributionQueueProvider.class))).thenReturn(new ArrayList<DistributionQueueItemStatus>());
+
SimpleDistributionAgent agent = new SimpleDistributionAgent(name,
false, null, "serviceName", packageImporter,
- packageExporter, packageExporterStrategy,
- queueProvider, distributionHandler, null,
+ packageExporter, requestAuthorizationStrategy,
+ queueProvider, dispatchingStrategy, null,
distributionEventFactory, resolverFactory, mock(SlingRepository.class),
mock(DefaultDistributionLog.class), null, null, 0);
DistributionRequest request = new SimpleDistributionRequest(DistributionRequestType.ADD, "/");
- DistributionPackage distributionPackage = mock(DistributionPackage.class);
+ final DistributionPackage distributionPackage = mock(DistributionPackage.class);
DistributionPackageInfo packageInfo = new DistributionPackageInfo("type");
when(distributionPackage.getInfo()).thenReturn(packageInfo);
ResourceResolver resourceResolver = mock(ResourceResolver.class);
- when(packageExporter.exportPackages(resourceResolver, request)).thenReturn(Arrays.asList(distributionPackage));
- when(queueProvider.getQueue(DistributionQueueDispatchingStrategy.DEFAULT_QUEUE_NAME)).thenReturn(
+ doAnswer(new Answer() {
+ @Override
+ public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
+ Object[] args = invocationOnMock.getArguments();
+ ((DistributionPackageProcessor) args[2]).process(distributionPackage);
+ return null;
+ }
+ }).when(packageExporter).exportPackages(any(ResourceResolver.class), any(DistributionRequest.class), any(DistributionPackageProcessor.class)); when(queueProvider.getQueue(DistributionQueueDispatchingStrategy.DEFAULT_QUEUE_NAME)).thenReturn(
new SimpleDistributionQueue(name, "name"));
agent.execute(resourceResolver, request);
@@ -226,15 +254,21 @@ public class SimpleDistributionAgentTest
mock(DefaultDistributionLog.class), null, new String[] { "/content" }, 0);
DistributionRequest request = new SimpleDistributionRequest(DistributionRequestType.ADD, "/content");
- DistributionPackage distributionPackage = mock(DistributionPackage.class);
+ final DistributionPackage distributionPackage = mock(DistributionPackage.class);
DistributionPackageInfo packageInfo = new DistributionPackageInfo("type");
when(distributionPackage.getInfo()).thenReturn(packageInfo);
ResourceResolver resourceResolver = mock(ResourceResolver.class);
queueDistributionStrategy.add(distributionPackage, queueProvider);
- when(packageExporter.exportPackages(any(ResourceResolver.class), any(DistributionRequest.class))).thenReturn(Arrays.asList(distributionPackage));
- when(queueProvider.getQueue(DistributionQueueDispatchingStrategy.DEFAULT_QUEUE_NAME)).thenReturn(
+ doAnswer(new Answer() {
+ @Override
+ public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
+ Object[] args = invocationOnMock.getArguments();
+ ((DistributionPackageProcessor) args[2]).process(distributionPackage);
+ return null;
+ }
+ }).when(packageExporter).exportPackages(any(ResourceResolver.class), any(DistributionRequest.class), any(DistributionPackageProcessor.class)); when(queueProvider.getQueue(DistributionQueueDispatchingStrategy.DEFAULT_QUEUE_NAME)).thenReturn(
new SimpleDistributionQueue(name, "name"));
DistributionResponse response = agent.execute(resourceResolver, request);
@@ -266,15 +300,21 @@ public class SimpleDistributionAgentTest
mock(DefaultDistributionLog.class), null, new String[] { "/content" }, 0);
DistributionRequest request = new SimpleDistributionRequest(DistributionRequestType.ADD, "/home");
- DistributionPackage distributionPackage = mock(DistributionPackage.class);
+ final DistributionPackage distributionPackage = mock(DistributionPackage.class);
DistributionPackageInfo packageInfo = new DistributionPackageInfo("type");
when(distributionPackage.getInfo()).thenReturn(packageInfo);
ResourceResolver resourceResolver = mock(ResourceResolver.class);
queueDistributionStrategy.add(distributionPackage, queueProvider);
- when(packageExporter.exportPackages(any(ResourceResolver.class), any(DistributionRequest.class))).thenReturn(Arrays.asList(distributionPackage));
- when(queueProvider.getQueue(DistributionQueueDispatchingStrategy.DEFAULT_QUEUE_NAME)).thenReturn(
+ doAnswer(new Answer() {
+ @Override
+ public Object answer(InvocationOnMock invocationOnMock) throws Throwable {
+ Object[] args = invocationOnMock.getArguments();
+ ((DistributionPackageProcessor) args[2]).process(distributionPackage);
+ return null;
+ }
+ }).when(packageExporter).exportPackages(any(ResourceResolver.class), any(DistributionRequest.class), any(DistributionPackageProcessor.class)); when(queueProvider.getQueue(DistributionQueueDispatchingStrategy.DEFAULT_QUEUE_NAME)).thenReturn(
new SimpleDistributionQueue(name, "name"));
DistributionResponse response = agent.execute(resourceResolver, request);
Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterTest.java?rev=1721316&r1=1721315&r2=1721316&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterTest.java Tue Dec 22 08:40:03 2015
@@ -24,10 +24,12 @@ import org.apache.sling.distribution.Dis
import org.apache.sling.distribution.DistributionRequestType;
import org.apache.sling.distribution.SimpleDistributionRequest;
import org.apache.sling.distribution.agent.DistributionAgent;
+import org.apache.sling.distribution.packaging.DistributionPackageProcessor;
import org.apache.sling.distribution.serialization.DistributionPackage;
import org.apache.sling.distribution.serialization.DistributionPackageBuilderProvider;
import org.junit.Test;
+import java.util.ArrayList;
import java.util.List;
import static org.junit.Assert.assertEquals;
@@ -42,7 +44,13 @@ public class AgentDistributionPackageExp
mock(DistributionAgent.class), mock(DistributionPackageBuilderProvider.class), null);
ResourceResolver resourceResolver = mock(ResourceResolver.class);
DistributionRequest distributionRequest = new SimpleDistributionRequest(DistributionRequestType.TEST, null);
- List<DistributionPackage> distributionPackages = distributionPackageExporter.exportPackages(resourceResolver, distributionRequest);
+ final List<DistributionPackage> distributionPackages = new ArrayList<DistributionPackage>();
+ distributionPackageExporter.exportPackages(resourceResolver, distributionRequest, new DistributionPackageProcessor() {
+ @Override
+ public void process(DistributionPackage distributionPackage) {
+ distributionPackages.add(distributionPackage);
+ }
+ });
assertNotNull(distributionPackages);
assertEquals(1, distributionPackages.size());
Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterTest.java?rev=1721316&r1=1721315&r2=1721316&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterTest.java Tue Dec 22 08:40:03 2015
@@ -18,12 +18,14 @@
*/
package org.apache.sling.distribution.packaging.impl.exporter;
+import java.util.ArrayList;
import java.util.List;
import org.apache.sling.api.resource.ResourceResolver;
import org.apache.sling.distribution.DistributionRequest;
import org.apache.sling.distribution.DistributionRequestType;
import org.apache.sling.distribution.SimpleDistributionRequest;
+import org.apache.sling.distribution.packaging.DistributionPackageProcessor;
import org.apache.sling.distribution.serialization.DistributionPackage;
import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
import org.junit.Test;
@@ -31,7 +33,9 @@ import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
+import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
/**
* Testcase for {@link LocalDistributionPackageExporter}
@@ -41,10 +45,17 @@ public class LocalDistributionPackageExp
@Test
public void testDummyExport() throws Exception {
DistributionPackageBuilder packageBuilder = mock(DistributionPackageBuilder.class);
+ when(packageBuilder.createPackage(any(ResourceResolver.class), any(DistributionRequest.class))).thenReturn(mock(DistributionPackage.class));
LocalDistributionPackageExporter localdistributionPackageExporter = new LocalDistributionPackageExporter(packageBuilder);
ResourceResolver resourceResolver = mock(ResourceResolver.class);
DistributionRequest distributionRequest = new SimpleDistributionRequest(DistributionRequestType.ADD, "/");
- List<DistributionPackage> distributionPackages = localdistributionPackageExporter.exportPackages(resourceResolver, distributionRequest);
+ final List<DistributionPackage> distributionPackages = new ArrayList<DistributionPackage>();
+ localdistributionPackageExporter.exportPackages(resourceResolver, distributionRequest, new DistributionPackageProcessor() {
+ @Override
+ public void process(DistributionPackage distributionPackage) {
+ distributionPackages.add(distributionPackage);
+ }
+ });
assertNotNull(distributionPackages);
assertEquals(1, distributionPackages.size());
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterTest.java?rev=1721316&r1=1721315&r2=1721316&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterTest.java Tue Dec 22 08:40:03 2015
@@ -18,6 +18,7 @@
*/
package org.apache.sling.distribution.packaging.impl.exporter;
+import java.util.ArrayList;
import java.util.List;
import org.apache.sling.api.resource.ResourceResolver;
@@ -25,10 +26,11 @@ import org.apache.sling.distribution.Dis
import org.apache.sling.distribution.DistributionRequestType;
import org.apache.sling.distribution.SimpleDistributionRequest;
import org.apache.sling.distribution.log.impl.DefaultDistributionLog;
+import org.apache.sling.distribution.packaging.DistributionPackageProcessor;
import org.apache.sling.distribution.serialization.DistributionPackage;
import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
import org.apache.sling.distribution.transport.DistributionTransportSecretProvider;
-import org.apache.sling.distribution.transport.impl.TransportEndpointStrategyType;
+
import org.junit.Test;
import static org.junit.Assert.assertNotNull;
@@ -45,14 +47,18 @@ public class RemoteDistributionPackageEx
DistributionPackageBuilder packageBuilder = mock(DistributionPackageBuilder.class);
DistributionTransportSecretProvider distributionTransportSecretProvider = mock(DistributionTransportSecretProvider.class);
String[] endpoints = new String[0];
- for (TransportEndpointStrategyType strategy : TransportEndpointStrategyType.values()) {
- RemoteDistributionPackageExporter remotedistributionPackageExporter = new RemoteDistributionPackageExporter(mock(DefaultDistributionLog.class),
- packageBuilder, distributionTransportSecretProvider, endpoints, strategy, 1);
- ResourceResolver resourceResolver = mock(ResourceResolver.class);
- DistributionRequest distributionRequest = new SimpleDistributionRequest(DistributionRequestType.ADD, "/");
- List<DistributionPackage> distributionPackages = remotedistributionPackageExporter.exportPackages(resourceResolver, distributionRequest);
- assertNotNull(distributionPackages);
- assertTrue(distributionPackages.isEmpty());
- }
+ RemoteDistributionPackageExporter remotedistributionPackageExporter = new RemoteDistributionPackageExporter(mock(DefaultDistributionLog.class),
+ packageBuilder, distributionTransportSecretProvider, endpoints, 1);
+ ResourceResolver resourceResolver = mock(ResourceResolver.class);
+ DistributionRequest distributionRequest = new SimpleDistributionRequest(DistributionRequestType.ADD, "/");
+ final List<DistributionPackage> distributionPackages = new ArrayList<DistributionPackage>();
+ remotedistributionPackageExporter.exportPackages(resourceResolver, distributionRequest, new DistributionPackageProcessor() {
+ @Override
+ public void process(DistributionPackage distributionPackage) {
+ distributionPackages.add(distributionPackage);
+ }
+ });
+ assertNotNull(distributionPackages);
+ assertTrue(distributionPackages.isEmpty());
}
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterTest.java?rev=1721316&r1=1721315&r2=1721316&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterTest.java Tue Dec 22 08:40:03 2015
@@ -23,7 +23,6 @@ import org.apache.sling.distribution.log
import org.apache.sling.distribution.serialization.DistributionPackage;
import org.apache.sling.distribution.serialization.DistributionPackageInfo;
import org.apache.sling.distribution.transport.DistributionTransportSecretProvider;
-import org.apache.sling.distribution.transport.impl.TransportEndpointStrategyType;
import org.junit.Test;
import java.util.HashMap;
@@ -41,14 +40,13 @@ public class RemoteDistributionPackageIm
public void testDummyImport() throws Exception {
DistributionTransportSecretProvider distributionTransportSecretProvider = mock(DistributionTransportSecretProvider.class);
Map<String, String> endpoints = new HashMap<String, String>();
- for (TransportEndpointStrategyType strategy : TransportEndpointStrategyType.values()) {
- RemoteDistributionPackageImporter remotedistributionPackageImporter = new RemoteDistributionPackageImporter(mock(DefaultDistributionLog.class),
- distributionTransportSecretProvider, endpoints, strategy);
- ResourceResolver resourceResolver = mock(ResourceResolver.class);
- DistributionPackage distributionPackage = mock(DistributionPackage.class);
- DistributionPackageInfo info = new DistributionPackageInfo("/foo");
- when(distributionPackage.getInfo()).thenReturn(info);
- remotedistributionPackageImporter.importPackage(resourceResolver, distributionPackage);
- }
+ RemoteDistributionPackageImporter remotedistributionPackageImporter = new RemoteDistributionPackageImporter(mock(DefaultDistributionLog.class),
+ distributionTransportSecretProvider, endpoints);
+ endpoints.put("default","http://endpoint");
+ ResourceResolver resourceResolver = mock(ResourceResolver.class);
+ DistributionPackage distributionPackage = mock(DistributionPackage.class);
+ DistributionPackageInfo info = new DistributionPackageInfo("/foo");
+ when(distributionPackage.getInfo()).thenReturn(info);
+ remotedistributionPackageImporter.importPackage(resourceResolver, distributionPackage);
}
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/SelectiveQueueDispatchingStrategyTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/SelectiveQueueDispatchingStrategyTest.java?rev=1721316&r1=1721315&r2=1721316&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/SelectiveQueueDispatchingStrategyTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/SelectiveQueueDispatchingStrategyTest.java Tue Dec 22 08:40:03 2015
@@ -22,7 +22,7 @@ package org.apache.sling.distribution.qu
import org.apache.sling.distribution.serialization.DistributionPackage;
import org.apache.sling.distribution.serialization.DistributionPackageInfo;
-import org.apache.sling.distribution.packaging.SharedDistributionPackage;
+import org.apache.sling.distribution.serialization.impl.SharedDistributionPackage;
import org.apache.sling.distribution.queue.DistributionQueue;
import org.apache.sling.distribution.queue.DistributionQueueProvider;
import org.junit.BeforeClass;
Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransportTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransportTest.java?rev=1721316&r1=1721315&r2=1721316&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransportTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransportTest.java Tue Dec 22 08:40:03 2015
@@ -22,7 +22,6 @@ import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.net.URI;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
import org.apache.http.HttpEntity;
@@ -41,12 +40,15 @@ import org.apache.sling.distribution.ser
import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
import org.apache.sling.distribution.transport.DistributionTransportSecret;
import org.apache.sling.distribution.transport.DistributionTransportSecretProvider;
+import org.apache.sling.distribution.transport.core.DistributionContext;
+import org.apache.sling.distribution.transport.core.DistributionPackageProxy;
import org.junit.Ignore;
import org.junit.Test;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
@@ -73,15 +75,14 @@ public class SimpleHttpDistributionTrans
when(executor.execute(any(Request.class))).thenReturn(response);
DistributionEndpoint endpoint = new DistributionEndpoint("http://127.0.0.1:8080/some/resource");
DistributionPackageBuilder packageBuilder = mock(DistributionPackageBuilder.class);
- int maxNoOfPackages = Integer.MAX_VALUE;
SimpleHttpDistributionTransport simpleHttpDistributionTransport = new SimpleHttpDistributionTransport(mock(DefaultDistributionLog.class),
- endpoint, packageBuilder, secretProvider, maxNoOfPackages);
+ endpoint, packageBuilder, secretProvider);
ResourceResolver resourceResolver = mock(ResourceResolver.class);
DistributionPackage distributionPackage = mock(DistributionPackage.class);
when(distributionPackage.getInfo()).thenReturn(new DistributionPackageInfo("type"));
InputStream stream = mock(InputStream.class);
when(distributionPackage.createInputStream()).thenReturn(stream);
- simpleHttpDistributionTransport.deliverPackage(resourceResolver, distributionPackage);
+ simpleHttpDistributionTransport.deliverPackage(resourceResolver, distributionPackage, new DistributionContext());
}
@Test
@@ -104,14 +105,12 @@ public class SimpleHttpDistributionTrans
when(executor.execute(any(Request.class))).thenReturn(response);
DistributionEndpoint endpoint = new DistributionEndpoint("http://127.0.0.1:8080/some/resource");
DistributionPackageBuilder packageBuilder = mock(DistributionPackageBuilder.class);
- int maxNoOfPackages = 1;
SimpleHttpDistributionTransport simpleHttpDistributionTransport = new SimpleHttpDistributionTransport(mock(DefaultDistributionLog.class),
- endpoint, packageBuilder, secretProvider, maxNoOfPackages);
+ endpoint, packageBuilder, secretProvider);
ResourceResolver resourceResolver = mock(ResourceResolver.class);
DistributionRequest distributionRequest = new SimpleDistributionRequest(DistributionRequestType.ADD, "/");
- List<DistributionPackage> packages = simpleHttpDistributionTransport.retrievePackages(resourceResolver, distributionRequest);
- assertNotNull(packages);
- assertTrue(packages.isEmpty());
+ DistributionPackageProxy retrievedPackage = simpleHttpDistributionTransport.retrievePackage(resourceResolver, distributionRequest, new DistributionContext());
+ assertNull(retrievedPackage);
}
@Test
@@ -141,15 +140,11 @@ public class SimpleHttpDistributionTrans
DistributionPackage distributionPackage = mock(DistributionPackage.class);
when(distributionPackage.getInfo()).thenReturn(new DistributionPackageInfo("type"));
when(packageBuilder.readPackage(any(ResourceResolver.class), any(InputStream.class))).thenReturn(distributionPackage);
- int maxNoOfPackages = 1;
SimpleHttpDistributionTransport simpleHttpDistributionTransport = new SimpleHttpDistributionTransport(mock(DefaultDistributionLog.class),
- endpoint, packageBuilder, secretProvider, maxNoOfPackages);
+ endpoint, packageBuilder, secretProvider);
ResourceResolver resourceResolver = mock(ResourceResolver.class);
DistributionRequest distributionRequest = new SimpleDistributionRequest(DistributionRequestType.ADD, "/");
- List<DistributionPackage> packages = simpleHttpDistributionTransport.retrievePackages(resourceResolver, distributionRequest);
- assertNotNull(packages);
- assertFalse(packages.isEmpty());
- assertEquals(1, packages.size());
- assertNotNull(packages.get(0));
+ DistributionPackageProxy retrievedPackage = simpleHttpDistributionTransport.retrievePackage(resourceResolver, distributionRequest, new DistributionContext());
+ assertNotNull(retrievedPackage);
}
}
\ No newline at end of file
Modified: sling/trunk/contrib/extensions/distribution/it/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/it/pom.xml?rev=1721316&r1=1721315&r2=1721316&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/it/pom.xml (original)
+++ sling/trunk/contrib/extensions/distribution/it/pom.xml Tue Dec 22 08:40:03 2015
@@ -428,12 +428,12 @@
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.distribution.api</artifactId>
- <version>0.3.1-SNAPSHOT</version>
+ <version>0.3.0</version>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.distribution.core</artifactId>
- <version>0.1.11-SNAPSHOT</version>
+ <version>0.1.13-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
Modified: sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/ReverseDistributionTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/ReverseDistributionTest.java?rev=1721316&r1=1721315&r2=1721316&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/ReverseDistributionTest.java (original)
+++ sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/ReverseDistributionTest.java Tue Dec 22 08:40:03 2015
@@ -69,4 +69,19 @@ public class ReverseDistributionTest ext
distribute(publish, reverseAgent, DistributionRequestType.DELETE, nodePath);
assertNotExists(authorClient, nodePath);
}
+
+ @Test
+ public void testAddTwoContent() throws Exception {
+ String nodePath1 = createRandomNode(publishClient, "/content/reverse_twoadd_" + System.nanoTime());
+ assertExists(publishClient, nodePath1);
+ String nodePath2 = createRandomNode(publishClient, "/content/reverse_twoadd_" + System.nanoTime());
+ assertExists(publishClient, nodePath2);
+
+ distribute(publish, reverseAgent, DistributionRequestType.ADD, nodePath1);
+ distribute(publish, reverseAgent, DistributionRequestType.ADD, nodePath2);
+
+ assertExists(authorClient, nodePath1);
+ assertExists(authorClient, nodePath2);
+ }
+
}