svn commit: r1800389 - in /sling/trunk/contrib/extensions/distribution/core: ./ src/main/java/org/apache/sling/distribution/component/impl/ src/main/java/org/apache/sling/distribution/monitor/impl/ sr
Author: tommaso Date: Fri Jun 30 12:26:46 2017 New Revision: 1800389 URL: http://svn.apache.org/viewvc?rev=1800389=rev Log: SLING-6977 - applied patch from Simone Tripodi Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/pom.xml?rev=1800389=1800388=1800389=diff == --- sling/trunk/contrib/extensions/distribution/core/pom.xml (original) +++ sling/trunk/contrib/extensions/distribution/core/pom.xml Fri Jun 30 12:26:46 2017 @@ -244,12 +244,10 @@ servlet-api -org.osgi -org.osgi.core - - -org.osgi -org.osgi.compendium +org.apache.felix +org.apache.felix.framework +5.6.4 +provided Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentProvider.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentProvider.java?rev=1800389=1800388=1800389=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentProvider.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentProvider.java Fri Jun 30 12:26:46 2017 @@ -59,11 +59,17 @@ public class DefaultDistributionComponen private static final String NAME = DistributionComponentConstants.PN_NAME; private final Map<String, DistributionComponent> distributionAgentMap = new ConcurrentHashMap<String, DistributionComponent>(); + private final Map<String, DistributionComponent> distributionQueueProviderMap = new ConcurrentHashMap<String, DistributionComponent>(); + private final Map<String, DistributionComponent> distributionQueueDistributionStrategyMap = new ConcurrentHashMap<String, DistributionComponent>(); + private final Map<String, DistributionComponent> distributionTransportSecretProviderMap = new ConcurrentHashMap<String, DistributionComponent>(); + private final Map<String, DistributionComponent> distributionPackageImporterMap = new ConcurrentHashMap<String, DistributionComponent>(); + private final Map<String, DistributionComponent> distributionPackageExporterMap = new ConcurrentHashMap<String, DistributionComponent>(); + private final Map<String, DistributionComponent> distributionPackageBuilderMap = new ConcurrentHashMap<String, DistributionComponent>(); public DistributionComponent getComponent(DistributionComponentKind kind, String componentName) { @@ -92,7 +98,6 @@ public class DefaultDistributionComponen return type.cast(component.getService()); } - @SuppressWarnings({ "unchecked", "rawtypes" }) private Map<String, DistributionComponent> getComponentMap(Class type) { if (type.isAssignableFrom(DistributionAgent.class)) { @@ -114,83 +119,66 @@ public class DefaultDistributionComponen return null; } -// TODO are these methods still needed?!? - -private void bindDistributionQueueProvider(DistributionQueueProvider distributionQueueProvider, Map<String, Object> config) { +// (un)binding methods +public void bindDistributionQueueProvider(DistributionQueueProvider distributionQueueProvider, Map<String, Object> config) { put(DistributionQueueProvider.class, distributionQueueProvider, config); } -private void unbindDistributionQueueProvider(DistributionQueueProvider distributionQueueProvider, Map<String, Object> config) { - +public void unbindDistributionQueueProvider(DistributionQueueProvider distributionQueueProvider, Map<String, Object> config) { remove(DistributionQueueProvider.class, distributionQueueProvider, config); } -private void bindDistributionQueueDistributio
svn commit: r1800364 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl: AsyncDeliveryDispatchingStrategy.java jobhandling/JobHandlingDistrib
Author: tommaso Date: Fri Jun 30 09:05:00 2017 New Revision: 1800364 URL: http://svn.apache.org/viewvc?rev=1800364=rev Log: SLING-6988 - async delivery should use an unordered queue Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategy.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategy.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategy.java?rev=1800364=1800363=1800364=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategy.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategy.java Fri Jun 30 09:05:00 2017 @@ -28,12 +28,7 @@ import org.apache.sling.distribution.pac import org.apache.sling.distribution.packaging.impl.DistributionPackageUtils; import org.apache.sling.distribution.packaging.impl.ReferencePackage; import org.apache.sling.distribution.packaging.impl.SharedDistributionPackage; -import org.apache.sling.distribution.queue.DistributionQueue; -import org.apache.sling.distribution.queue.DistributionQueueEntry; -import org.apache.sling.distribution.queue.DistributionQueueItem; -import org.apache.sling.distribution.queue.DistributionQueueItemState; -import org.apache.sling.distribution.queue.DistributionQueueItemStatus; -import org.apache.sling.distribution.queue.DistributionQueueProvider; +import org.apache.sling.distribution.queue.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -92,7 +87,7 @@ public class AsyncDeliveryDispatchingStr DistributionPackageUtils.acquire(distributionPackage, deliveryQueueName); // add the actual package to the delivery queue -DistributionQueue deliveryQueue = queueProvider.getQueue(deliveryQueueName); +DistributionQueue deliveryQueue = queueProvider.getQueue(deliveryQueueName, DistributionQueueType.PARALLEL); DistributionQueueEntry deliveryQueueEntry = deliveryQueue.add(item); if (deliveryQueueEntry != null) { DistributionQueueItemStatus status = deliveryQueueEntry.getStatus(); Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java?rev=1800364=1800363=1800364=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java Fri Jun 30 09:05:00 2017 @@ -101,12 +101,14 @@ public class JobHandlingDistributionQueu QueueConfiguration.class.getName(), null); Dictionary<String, Object> props = new Hashtable<String, Object>(); props.put(ConfigurationConstants.PROP_NAME, queueName); -props.put(ConfigurationConstants.PROP_TYPE, QueueConfiguration.Type.UNORDERED.name()); +props.put(ConfigurationConstants.PROP_TYPE, DistributionQueueType.PARALLEL.equals(type) ? +QueueConfiguration.Type.UNORDERED.name() : QueueConfiguration.Type.ORDERED.name()); props.put(ConfigurationConstants.PROP_TOPICS, new String[]{topic}); props.put(ConfigurationConstants.PROP_RETRIES, -1); props.put(ConfigurationConstants.PROP_RETRY_DELAY, 2000L); props.put(ConfigurationConstants.PROP_KEEP_JOBS, true); props.put(ConfigurationConstants.PROP_PRIORITY, "MAX"); +props.put(ConfigurationConstants.PROP_MAX_PARALLEL, ConfigurationConstants.DEFAULT_MAX_PARALLEL); config.update(props); } } catch (IOException e) {
svn commit: r1800167 - /sling/trunk/contrib/extensions/distribution/it/pom.xml
Author: tommaso Date: Wed Jun 28 13:30:41 2017 New Revision: 1800167 URL: http://svn.apache.org/viewvc?rev=1800167=rev Log: SLING-6933 - added missing commons.collections 3.2.2 Modified: sling/trunk/contrib/extensions/distribution/it/pom.xml Modified: sling/trunk/contrib/extensions/distribution/it/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/it/pom.xml?rev=1800167=1800166=1800167=diff == --- sling/trunk/contrib/extensions/distribution/it/pom.xml (original) +++ sling/trunk/contrib/extensions/distribution/it/pom.xml Wed Jun 28 13:30:41 2017 @@ -325,7 +325,7 @@ httpcore-osgi httpclient-osgi - org.apache.sling.event + org.apache.sling.event org.apache.sling.hc.core org.apache.jackrabbit.vault org.apache.sling.distribution.api @@ -333,6 +333,7 @@ org.apache.sling.distribution.sample ${project.build.finalName}.jar org.apache.sling.commons.johnzon + commons-collections @@ -385,6 +386,12 @@ 2.4 provided + +commons-collections +commons-collections +3.2.2 +provided +
svn commit: r1794817 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution: monitor/impl/ serialization/impl/ serialization/impl/vlt/
Author: tommaso Date: Thu May 11 12:12:12 2017 New Revision: 1794817 URL: http://svn.apache.org/viewvc?rev=1794817=rev Log: SLING-6848 - package level monitoring not enabled by default Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java?rev=1794817=1794816=1794817=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java Thu May 11 12:12:12 2017 @@ -23,6 +23,7 @@ import java.util.Dictionary; import java.util.Hashtable; import java.util.Queue; import java.util.concurrent.ArrayBlockingQueue; +import java.util.concurrent.LinkedBlockingDeque; import javax.annotation.Nonnull; import javax.management.ObjectName; @@ -51,7 +52,7 @@ public final class MonitoringDistributio this.context = context; this.queueCapacity = queueCapacity; -mBeans = new ArrayBlockingQueue(queueCapacity); +mBeans = new LinkedBlockingDeque(); } @Override @@ -64,7 +65,9 @@ public final class MonitoringDistributio public DistributionPackage createPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionRequest request) throws DistributionException { long start = System.currentTimeMillis(); DistributionPackage distributionPackage = wrapped.createPackage(resourceResolver, request); -registerDistributionPackageMBean(start, distributionPackage); +if (queueCapacity > 0) { +registerDistributionPackageMBean(start, distributionPackage); +} return distributionPackage; } Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java?rev=1794817=1794816=1794817=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java Thu May 11 12:12:12 2017 @@ -154,7 +154,7 @@ public class DistributionPackageBuilderF ) private static final String DIGEST_ALGORITHM = "digestAlgorithm"; -private static final int DEFAULT_MONITORING_QUEUE_SIZE = 100; +private static final int DEFAULT_MONITORING_QUEUE_SIZE = 0; @Property( label="The number of items for monitoring distribution packages creation/installation", Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java?rev=1794817=1794816=1794817=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java Thu May 11 12:12:12 2017 @@ -18,23 +18,7 @@ */ package org.apache.sling.distribution.serialization.impl.vlt; -import java.io.InputStream; -import java.util.Dictionary; -import java.util.Hashtable; -import java.util.Map; - -import javax.annotation.CheckForNull; -import javax.annotation.Nonnull; - -import org.apache.felix.s
svn commit: r1794300 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl: HttpTransportUtils.java SimpleHttpDistributionTransport.java
Author: tommaso Date: Mon May 8 09:32:46 2017 New Revision: 1794300 URL: http://svn.apache.org/viewvc?rev=1794300=rev Log: SLING-6838 - HTTP connection : close header, closing IS after http fetch Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpTransportUtils.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpTransportUtils.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpTransportUtils.java?rev=1794300=1794299=1794300=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpTransportUtils.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpTransportUtils.java Mon May 8 09:32:46 2017 @@ -24,6 +24,7 @@ import org.apache.http.HttpResponse; import org.apache.http.client.fluent.Executor; import org.apache.http.client.fluent.Request; import org.apache.http.client.utils.URIBuilder; +import org.apache.http.protocol.HTTP; import java.io.IOException; import java.io.InputStream; @@ -38,6 +39,7 @@ class HttpTransportUtils { Request fetchReq = Request.Post(fetchUri) .connectTimeout(httpConfiguration.getConnectTimeout()) .socketTimeout(httpConfiguration.getSocketTimeout()) +.addHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_CLOSE) .useExpectContinue(); HttpResponse httpResponse = executor.execute(fetchReq).returnResponse(); 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=1794300=1794299=1794300=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 Mon May 8 09:32:46 2017 @@ -33,6 +33,7 @@ import org.apache.http.client.fluent.Req import org.apache.http.client.fluent.Response; import org.apache.http.conn.HttpHostConnectException; import org.apache.http.entity.ContentType; +import org.apache.http.protocol.HTTP; import org.apache.sling.api.resource.ResourceResolver; import org.apache.sling.distribution.DistributionRequest; import org.apache.sling.distribution.common.DistributionException; @@ -104,6 +105,7 @@ public class SimpleHttpDistributionTrans Request req = Request.Post(distributionEndpoint.getUri()) .connectTimeout(httpConfiguration.getConnectTimeout()) .socketTimeout(httpConfiguration.getSocketTimeout()) +.addHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_CLOSE) .useExpectContinue(); // add the message body digest, see https://tools.ietf.org/html/rfc3230#section-4.3.2 @@ -159,11 +161,15 @@ public class SimpleHttpDistributionTrans return null; } -final DistributionPackage responsePackage = packageBuilder.readPackage(resourceResolver, inputStream); -responsePackage.getInfo().put(PACKAGE_INFO_PROPERTY_ORIGIN_URI, distributionURI); -log.debug("pulled package with info {}", responsePackage.getInfo()); - -return new DefaultRemoteDistributionPackage(responsePackage, executor, distributionURI); +try { +final DistributionPackage responsePackage = packageBuilder.readPackage(resourceResolver, inputStream); + responsePackage.getInfo().put(PACKAGE_INFO_PROPERTY_ORIGIN_URI, distributionURI); +log.debug("pulled package with info {}", responsePackage.getInfo()); + +return new DefaultRemoteDistributionPackage(responsePackage, executor, distributionURI); +} finally { +IOUtils.closeQuietly(inputStream); +} } catch (HttpHostConnectException e) { log.debug("could not connect to {} - skipping", distributionEndpoint.getUri()); } catch (Exception ex) {
svn commit: r1793996 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java
Author: tommaso Date: Fri May 5 09:50:24 2017 New Revision: 1793996 URL: http://svn.apache.org/viewvc?rev=1793996=rev Log: SLING-4075 - removed too loud logs Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java?rev=1793996=1793995=1793996=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java Fri May 5 09:50:24 2017 @@ -143,13 +143,9 @@ public class SimpleDistributionPackage e stream.reset(); String s = new String(buffer, "UTF-8"); -log.info("buffer {}", s); - if (bytesRead > 0 && buffer[0] > 0 && s.startsWith(SimpleDistributionPackage.PACKAGE_START)) { String streamString = IOUtils.toString(stream, "UTF-8"); -log.info("stream string {}", streamString); - return fromIdString(streamString, type); } } catch (IOException e) {
svn commit: r1793810 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpConfiguration.java
Author: tommaso Date: Thu May 4 14:18:22 2017 New Revision: 1793810 URL: http://svn.apache.org/viewvc?rev=1793810=rev Log: SLING-5952 - added missing http config class Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpConfiguration.java (with props) Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpConfiguration.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpConfiguration.java?rev=1793810=auto == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpConfiguration.java (added) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpConfiguration.java Thu May 4 14:18:22 2017 @@ -0,0 +1,46 @@ +/* + * 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; + +/** + * HTTP related configuration for {@link SimpleHttpDistributionTransport} + */ +public class HttpConfiguration { + +private final Integer connectTimeout; +private final Integer socketTimeout; + +public HttpConfiguration(Integer timeout) { +this.socketTimeout = timeout; +this.connectTimeout = timeout; +} + +public HttpConfiguration(Integer connectTimeout, Integer socketTimeout) { +this.connectTimeout = connectTimeout; +this.socketTimeout = socketTimeout; +} + +public Integer getConnectTimeout() { +return connectTimeout; +} + +public Integer getSocketTimeout() { +return socketTimeout; +} +} Propchange: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpConfiguration.java -- svn:eol-style = native
svn commit: r1793803 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/agent/impl/ main/java/org/apache/sling/distribution/packaging/impl/exporter/ ma
Author: tommaso Date: Thu May 4 14:00:21 2017 New Revision: 1793803 URL: http://svn.apache.org/viewvc?rev=1793803=rev Log: SLING-5952 - added timeout configs to http transport Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporter.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporter.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/DistributionTransport.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpTransportUtils.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransportTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java?rev=1793803=1793802=1793803=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java Thu May 4 14:00:21 2017 @@ -61,6 +61,7 @@ import org.apache.sling.distribution.que import org.apache.sling.distribution.queue.impl.jobhandling.JobHandlingDistributionQueueProvider; import org.apache.sling.distribution.queue.impl.simple.SimpleDistributionQueueProvider; import org.apache.sling.distribution.transport.DistributionTransportSecretProvider; +import org.apache.sling.distribution.transport.impl.HttpConfiguration; import org.apache.sling.distribution.trigger.DistributionTrigger; import org.apache.sling.event.jobs.JobManager; import org.apache.sling.jcr.api.SlingRepository; @@ -179,6 +180,12 @@ public class ForwardDistributionAgentFac @Property(boolValue = false, label = "Async delivery", description = "Whether or not to use a separate delivery queue to maximize transport throughput when queue has more than 100 items") public static final String ASYNC_DELIVERY = "async.delivery"; +/** + * timeout for HTTP requests + */ +@Property(label = "HTTP connection timeout", intValue = 10, description = "The connection timeout for HTTP requests (in seconds).") +public static final String HTTP = "http.conn.timeout"; + @Reference private Packaging packaging; @@ -239,6 +246,9 @@ public class ForwardDistributionAgentFac Map<String, String> priorityQueues = PropertiesUtil.toMap(config.get(PRIORITY_QUEUES), new String[0]); priorityQueues = SettingsUtils.removeEmptyEntries(priorityQueues); +Integer timeout = PropertiesUtil.toInteger(HTTP, 10) * 1000; +HttpConfiguration httpConfiguration = new HttpConfiguration(timeout); + DistributionPackageExporter packageExporter = new LocalDistributionPackageExporter(packageBuilder); DistributionQueueProvider queueProvider; @@ -293,7 +303,8 @@ public class ForwardDistributionAgentFac processingQueues.addAll(endpointNames); processingQueues.removeAll(Arrays.asList(passiveQueues)); -packag
svn commit: r1790941 - in /sling/trunk/contrib/extensions/distribution: ./ api/src/main/java/org/apache/sling/distribution/ api/src/main/java/org/apache/sling/distribution/event/ avro-serializer/src/t
Author: tommaso Date: Tue Apr 11 09:04:05 2017 New Revision: 1790941 URL: http://svn.apache.org/viewvc?rev=1790941=rev Log: SLING-4075 - added some tests, minor static analysis related fixes Modified: sling/trunk/contrib/extensions/distribution/README.md sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/DistributionRequest.java sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/event/DistributionEventProperties.java sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/event/DistributionEventTopics.java sling/trunk/contrib/extensions/distribution/avro-serializer/src/test/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializerTest.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/RemoteEventDistributionTrigger.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackageTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterTest.java sling/trunk/contrib/extensions/distribution/it/src/main/java/org/apache/sling/distribution/test/DistributorServlet.java sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/DistributionUtils.java sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/ForwardBinaryDistributionTest.java sling/trunk/contrib/extensions/distribution/kryo-serializer/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java sling/trunk/contrib/extensions/distribution/kryo-serializer/src/test/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializerTest.java sling/trunk/contrib/extensions/distribution/sample/src/main/java/org/apache/sling/distribution/test/Init.java Modified: sling/trunk/contrib/extensions/distribution/README.md URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/README.md?rev=1790941=1790940=1790941=diff == --- sling/trunk/contrib/extensions/distribution/README.md (original) +++ sling/trunk/contrib/extensions/distribution/README.md Tue Apr 11 09:04:05 2017 @@ -26,17 +26,17 @@ The Sling Content Distribution module co ## Design -The Sling Content Distribution module main design goals resume in being: _Reliable_, _extensible_ and _simple_. +The Sling Content Distribution aims to be: _Reliable_, _simple_ and _extensible_. Reliability means that the system should be able to keep working also in presence of failures regarding I/O, network, etc. An example of such problems is when pushing content from instance A to instance B fails because B is unreachable: in such scenarios instance A should be able to keep pushing (pulling, etc.) content to other instances seamlessly. Another example is when delivery of a certain content (package) fails too many times the distribution module should be able to either drop it or move it into a different "bucket" of failed items. +Simplicity means that this module should be able to accomplish its tasks by providing clear, minimal and easy to use APIs together +with smart but not overly complicated or "hacky" implementations (see ["Simple software is hard"](http://events.linuxfoundation.org/events/apachecon-europe/program/schedule)). Extensibility means that the Sling Content Distribution module provides a set of APIs for distributing resources where each component coming into place during the distribution lifecycle can be extended or totally replaced. -Simplicity means that this module should be able to accomplish its tasks by providing clear and easy to use APIs together -with smart but not overly complicated or "hacky" implementations (see Bertrand's talk ["Simple software is hard"](http://events.linuxfoundation.org/events/apachecon-europe/program/schedule)). A distribution _request_ represents the need of aggregating some resources and to copy them from / to another Sling instance. Such requests are handled by _agents_ that are the main entry point for working with the distribution module. @@ -65,22 +65,17 @@ _package_. Distribution agents configurations are proper OSGi configurations (backed by nodes of type `sling:OsgiConfig` in the repository). - - There are specialized
svn commit: r1785834 - /sling/trunk/contrib/extensions/distribution/README.md
Author: tommaso Date: Tue Mar 7 12:36:01 2017 New Revision: 1785834 URL: http://svn.apache.org/viewvc?rev=1785834=rev Log: SLING-6325 - updated readme to reflect split of extensions bundle Modified: sling/trunk/contrib/extensions/distribution/README.md Modified: sling/trunk/contrib/extensions/distribution/README.md URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/README.md?rev=1785834=1785833=1785834=diff == --- sling/trunk/contrib/extensions/distribution/README.md (original) +++ sling/trunk/contrib/extensions/distribution/README.md Tue Mar 7 12:36:01 2017 @@ -19,7 +19,8 @@ The Sling Content Distribution module co - org.apache.sling.distribution.api: this is where the APIs are defined - org.apache.sling.distribution.core: this is where the basic infrastructure for distributing content is implemented - - org.apache.sling.distribution.extensions: this is where some additional (optional) extensions for distributing content are implemented + - org.apache.sling.distribution.kryo-serializer: Kryo based distribution package serializer + - org.apache.sling.distribution.avro-serializer: Apache Avro based distribution package serializer - org.apache.sling.distribution.sample: this is a set of sample configurations and implementations for demo purpose - org.apache.sling.distribution.it: this is the integration testing suite
svn commit: r1785829 - /sling/trunk/contrib/extensions/distribution/README.md
Author: tommaso Date: Tue Mar 7 11:05:12 2017 New Revision: 1785829 URL: http://svn.apache.org/viewvc?rev=1785829=rev Log: SLING-6325 - updated readme to reflect split of extensions bundle Modified: sling/trunk/contrib/extensions/distribution/README.md Modified: sling/trunk/contrib/extensions/distribution/README.md URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/README.md?rev=1785829=1785828=1785829=diff == --- sling/trunk/contrib/extensions/distribution/README.md (original) +++ sling/trunk/contrib/extensions/distribution/README.md Tue Mar 7 11:05:12 2017 @@ -239,13 +239,13 @@ There is a single entry point in trigger ## Extensions -The _org.apache.sling.distribution.extensions_ bundle contains the following extensions: +The following extensions for Apache Sling Content Distribution exist. -### Apache Avro distribution serialization -A _DistributionContentSerializer_ based on [Apache Avro](http://avro.apache.org). +### Apache Avro serializer +The _org.apache.sling.distribution.avro-serializer_ contains a _DistributionContentSerializer_ based on [Apache Avro](http://avro.apache.org). -### Kryo distribution serialization -A _DistributionContentSerializer_ based on [Kryo](http://github.com/EsotericSoftware/kryo). +### Kryo serializer +The _org.apache.sling.distribution.kryo-serializer_ contains a _DistributionContentSerializer_ based on [Kryo](http://github.com/EsotericSoftware/kryo). ## Ideas for future developments
svn commit: r1784266 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java
Author: tommaso Date: Fri Feb 24 11:36:25 2017 New Revision: 1784266 URL: http://svn.apache.org/viewvc?rev=1784266=rev Log: SLING-6564 - logs sent to SLF4J logging too Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java?rev=1784266=1784265=1784266=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java Fri Feb 24 11:36:25 2017 @@ -39,9 +39,11 @@ import org.apache.sling.distribution.que import org.apache.sling.distribution.queue.DistributionQueueProvider; import org.apache.sling.distribution.queue.impl.DistributionQueueDispatchingStrategy; import org.apache.sling.distribution.util.impl.DistributionUtils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** - * A processor of agent queue entries, each entry's underlying package is fecthed and passed to the + * A processor of agent queue entries, each entry's underlying package is fetched and passed to the * {@link DistributionPackageImporter} for import. * If item can be delivered it can be removed from the queue, if it cannot be delivered because of a {@link RecoverableDistributionException} * like a connection issue the item will stay in the queue, for other types of errors the item will be moved to the @@ -49,11 +51,13 @@ import org.apache.sling.distribution.uti */ class SimpleDistributionAgentQueueProcessor implements DistributionQueueProcessor { +private final Logger log = LoggerFactory.getLogger(getClass()); + private final DistributionPackageExporter distributionPackageExporter; private final DistributionPackageImporter distributionPackageImporter; private final int retryAttempts; private final DistributionQueueDispatchingStrategy errorQueueStrategy; -private final DefaultDistributionLog log; +private final DefaultDistributionLog distributionLog; private final DistributionQueueProvider queueProvider; private final DistributionEventFactory distributionEventFactory; private final SimpleDistributionAgentAuthenticationInfo authenticationInfo; @@ -69,7 +73,7 @@ class SimpleDistributionAgentQueueProces this.distributionPackageImporter = distributionPackageImporter; this.retryAttempts = retryAttempts; this.errorQueueStrategy = errorQueueStrategy; -this.log = log; +this.distributionLog = log; this.queueProvider = queueProvider; this.distributionEventFactory = distributionEventFactory; this.authenticationInfo = authenticationInfo; @@ -83,18 +87,18 @@ class SimpleDistributionAgentQueueProces try { final long startTime = System.currentTimeMillis(); -log.debug("[{}] ITEM-PROCESS processing item={}", queueName, queueItem); +distributionLog.debug("[{}] ITEM-PROCESS processing item={}", queueName, queueItem); boolean success = processQueueItem(queueName, queueEntry); final long endTime = System.currentTimeMillis(); -log.debug("[{}] ITEM-PROCESSED item={}, status={}, processingTime={}ms", queueName, queueItem, success, endTime - startTime); +distributionLog.debug("[{}] ITEM-PROCESSED item={}, status={}, processingTime={}ms", queueName, queueItem, success, endTime - startTime); return success; } catch (Throwable t) { -log.error("[{}] ITEM-FAIL item={}", queueName, queueItem, t); +distributionLog.error("[{}] ITEM-FAIL item={}", queueName, queueItem, t); return false; } } @@ -137,24 +141,29 @@ class SimpleDistributionAgentQueueProces removeItemFromQueue = true; final long endTime = System.currentTimeMillis(); -log.info("[{}] PACKAGE-DELIVERED {}: {} paths={}, importTime={}ms, execTime={}ms, size={}B", queueName, requestId, +distributionLog.info("[{}] PACKAGE-DELIVERED {}: {} paths={}, importTime={}ms, execTime={}ms, size={}B", queueName, requestId, requestType, paths, endTime - startTime, endTime - globalStartTime,
svn commit: r1784154 [1/2] - in /sling/trunk/contrib/extensions/distribution: ./ avro-serializer/ avro-serializer/src/ avro-serializer/src/main/ avro-serializer/src/main/avro/ avro-serializer/src/main
Author: tommaso Date: Thu Feb 23 15:28:47 2017 New Revision: 1784154 URL: http://svn.apache.org/viewvc?rev=1784154=rev Log: SLING-6325 - split Avro and Kryo serializers into own bundles Added: sling/trunk/contrib/extensions/distribution/avro-serializer/ (with props) sling/trunk/contrib/extensions/distribution/avro-serializer/pom.xml (with props) sling/trunk/contrib/extensions/distribution/avro-serializer/src/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/main/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/main/avro/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/main/avro/shallowresource.avsc sling/trunk/contrib/extensions/distribution/avro-serializer/src/main/java/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/main/java/org/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/main/java/org/apache/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/main/java/org/apache/sling/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/main/java/org/apache/sling/distribution/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/main/java/org/apache/sling/distribution/serialization/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/main/java/org/apache/sling/distribution/serialization/impl/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/main/java/org/apache/sling/distribution/serialization/impl/avro/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java (with props) sling/trunk/contrib/extensions/distribution/avro-serializer/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroDistributionContentSerializerFactory.java (with props) sling/trunk/contrib/extensions/distribution/avro-serializer/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroShallowResource.java (with props) sling/trunk/contrib/extensions/distribution/avro-serializer/src/test/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/test/java/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/test/java/org/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/test/java/org/apache/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/test/java/org/apache/sling/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/test/java/org/apache/sling/distribution/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/test/java/org/apache/sling/distribution/serialization/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/test/java/org/apache/sling/distribution/serialization/impl/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/test/java/org/apache/sling/distribution/serialization/impl/avro/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/test/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializerTest.java (with props) sling/trunk/contrib/extensions/distribution/avro-serializer/src/test/resources/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/test/resources/avro/ sling/trunk/contrib/extensions/distribution/avro-serializer/src/test/resources/avro/dp.avro (with props) sling/trunk/contrib/extensions/distribution/kryo-serializer/ (with props) sling/trunk/contrib/extensions/distribution/kryo-serializer/pom.xml (with props) sling/trunk/contrib/extensions/distribution/kryo-serializer/src/ sling/trunk/contrib/extensions/distribution/kryo-serializer/src/main/ sling/trunk/contrib/extensions/distribution/kryo-serializer/src/main/java/ sling/trunk/contrib/extensions/distribution/kryo-serializer/src/main/java/org/ sling/trunk/contrib/extensions/distribution/kryo-serializer/src/main/java/org/apache/ sling/trunk/contrib/extensions/distribution/kryo-serializer/src/main/java/org/apache/sling/ sling/trunk/contrib/extensions/distribution/kryo-serializer/src/main/java/org/apache/sling/distribution/ sling/trunk/contrib/extensions/distribution/kryo-serializer/src/main/java/org/apache/sling/distribution/serialization/ sling/trunk/contrib/extensions/distribution/kryo-serializer/src/main/java/org/apache/sling/distribution/serialization/impl/ sling/trunk/contrib/extensions/distribution/kryo-serializer/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/ sling/trunk/contrib/extensions/distribution/kryo-serializer/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java (with props) sling/trunk/contrib/extensions/distribution/kryo-serializer/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoDistributionContentSerializerFactory.java (with props
svn commit: r1784154 [2/2] - in /sling/trunk/contrib/extensions/distribution: ./ avro-serializer/ avro-serializer/src/ avro-serializer/src/main/ avro-serializer/src/main/avro/ avro-serializer/src/main
Added: sling/trunk/contrib/extensions/distribution/kryo-serializer/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/kryo-serializer/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java?rev=1784154=auto == --- sling/trunk/contrib/extensions/distribution/kryo-serializer/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java (added) +++ sling/trunk/contrib/extensions/distribution/kryo-serializer/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java Thu Feb 23 15:28:47 2017 @@ -0,0 +1,242 @@ +/* + * 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.serialization.impl.kryo; + +import javax.annotation.Nonnull; +import javax.annotation.Nullable; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.OutputStream; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.Map; + +import com.esotericsoftware.kryo.Kryo; +import com.esotericsoftware.kryo.Serializer; +import com.esotericsoftware.kryo.io.Input; +import com.esotericsoftware.kryo.io.Output; +import org.apache.commons.io.IOUtils; +import org.apache.sling.api.resource.PersistenceException; +import org.apache.sling.api.resource.Resource; +import org.apache.sling.api.resource.ResourceResolver; +import org.apache.sling.api.resource.SyntheticResource; +import org.apache.sling.api.resource.ValueMap; +import org.apache.sling.api.wrappers.ValueMapDecorator; +import org.apache.sling.distribution.common.DistributionException; +import org.apache.sling.distribution.serialization.DistributionContentSerializer; +import org.apache.sling.distribution.serialization.DistributionExportFilter; +import org.apache.sling.distribution.serialization.DistributionExportOptions; +import org.objenesis.strategy.StdInstantiatorStrategy; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * Kryo based {@link DistributionContentSerializer} + */ +public class KryoContentSerializer implements DistributionContentSerializer { + +private final Logger log = LoggerFactory.getLogger(getClass()); + +private final String name; + +public KryoContentSerializer(String name) { +this.name = name; +} + +@Override +public void exportToStream(ResourceResolver resourceResolver, DistributionExportOptions options, OutputStream outputStream) throws DistributionException { + +DistributionExportFilter filter = options.getFilter(); + +Kryo kryo = new Kryo(); +kryo.setInstantiatorStrategy(new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy())); +kryo.addDefaultSerializer(Resource.class, new ResourceSerializer(filter.getPropertyFilter())); +kryo.addDefaultSerializer(InputStream.class, new InputStreamSerializer()); + +Output output = new Output(outputStream); +LinkedList resources = new LinkedList(); +for (DistributionExportFilter.TreeFilter nodeFilter : filter.getNodeFilters()) { +Resource resource = resourceResolver.getResource(nodeFilter.getPath()); +if (resource != null) { +addResource(nodeFilter, resources, resource); +} +} +kryo.writeObject(output, resources); +output.flush(); + +} + +@Override +public void importFromStream(ResourceResolver resourceResolver, InputStream stream) throws DistributionException { +Kryo kryo = new Kryo(); +kryo.setInstantiatorStrategy(new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy())); +kryo.addDefaultSerializer(Resource.class, new ResourceSerializer(null)); +kryo.addDefaultSerializer(InputStream.class, new InputStreamSerializer()); +try { +Input input = new Input(stream); +LinkedList resources = (LinkedList) kryo.readObject(input, LinkedList.class); +input.close(); +
svn commit: r1784108 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java
Author: tommaso Date: Thu Feb 23 10:57:16 2017 New Revision: 1784108 URL: http://svn.apache.org/viewvc?rev=1784108=rev Log: SLING-6554 - calculate size at instance creation time Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java?rev=1784108=1784107=1784108=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java Thu Feb 23 10:57:16 2017 @@ -44,6 +44,7 @@ public class ResourceDistributionPackage private final Resource resource; private final ResourceResolver resourceResolver; +private final long size; ResourceDistributionPackage(Resource resource, String type, @@ -55,6 +56,8 @@ public class ResourceDistributionPackage ValueMap valueMap = resource.getValueMap(); assert type.equals(valueMap.get("type")) : "wrong resource type"; this.resource = resource; +Object sizeProperty = resource.getValueMap().get("size"); +this.size = sizeProperty == null ? -1 : Long.parseLong(sizeProperty.toString()); this.getInfo().put(DistributionPackageInfo.PROPERTY_REQUEST_TYPE, DistributionRequestType.ADD); } @@ -71,8 +74,7 @@ public class ResourceDistributionPackage @Override public long getSize() { -Object size = resource.getValueMap().get("size"); -return size == null ? -1 : Long.parseLong(size.toString()); +return size; } @Override
svn commit: r1783190 - /sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/SelectiveForwardDistributionTest.java
Author: tommaso Date: Thu Feb 16 10:29:08 2017 New Revision: 1783190 URL: http://svn.apache.org/viewvc?rev=1783190=rev Log: SLING-6523 - removed unused import in IT Modified: sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/SelectiveForwardDistributionTest.java Modified: sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/SelectiveForwardDistributionTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/SelectiveForwardDistributionTest.java?rev=1783190=1783189=1783190=diff == --- sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/SelectiveForwardDistributionTest.java (original) +++ sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/SelectiveForwardDistributionTest.java Thu Feb 16 10:29:08 2017 @@ -19,7 +19,6 @@ package org.apache.sling.distribution.it; import org.apache.sling.distribution.DistributionRequestType; -import org.junit.Ignore; import org.junit.Test; import java.util.Map;
svn commit: r1783186 - in /sling/trunk/contrib/extensions/distribution: core/src/main/java/org/apache/sling/distribution/agent/impl/ it/src/test/java/org/apache/sling/distribution/it/
Author: tommaso Date: Thu Feb 16 09:48:46 2017 New Revision: 1783186 URL: http://svn.apache.org/viewvc?rev=1783186=rev Log: SLING-6523 - priority queues back to processing queues Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/SelectiveForwardDistributionTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java?rev=1783186=1783185=1783186=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java Thu Feb 16 09:48:46 2017 @@ -273,6 +273,7 @@ public class ForwardDistributionAgentFac Map<String, String> queueAliases = dispatchingStrategy.getMatchingQueues(null); importerEndpointsMap = SettingsUtils.expandUriMap(importerEndpointsMap, queueAliases); exportQueueStrategy = dispatchingStrategy; +endpointNames = importerEndpointsMap.keySet(); } else { boolean asyncDelivery = PropertiesUtil.toBoolean(config.get(ASYNC_DELIVERY), false); if (asyncDelivery) { Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java?rev=1783186=1783185=1783186=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java Thu Feb 16 09:48:46 2017 @@ -41,7 +41,11 @@ import org.apache.sling.distribution.que import org.apache.sling.distribution.util.impl.DistributionUtils; /** - * A processor of agent queue entries, each entry's underlying package is fecthed and passed to the {@link DistributionPackageImporter} for import. + * A processor of agent queue entries, each entry's underlying package is fecthed and passed to the + * {@link DistributionPackageImporter} for import. + * If item can be delivered it can be removed from the queue, if it cannot be delivered because of a {@link RecoverableDistributionException} + * like a connection issue the item will stay in the queue, for other types of errors the item will be moved to the + * current queue "error queue" if that exists. */ class SimpleDistributionAgentQueueProcessor implements DistributionQueueProcessor { Modified: sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/SelectiveForwardDistributionTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/SelectiveForwardDistributionTest.java?rev=1783186=1783185=1783186=diff == --- sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/SelectiveForwardDistributionTest.java (original) +++ sling/trunk/contrib/extensions/distribution/it/src/test/java/org/apache/sling/distribution/it/SelectiveForwardDistributionTest.java Thu Feb 16 09:48:46 2017 @@ -36,7 +36,6 @@ import static org.junit.Assert.assertEqu public class SelectiveForwardDistributionTest extends DistributionIntegrationTestBase { -@Ignore @Test public void testQueues() throws Exception { @@ -44,7 +43,6 @@ public class SelectiveForwardDistributio assertEquals(2, queues.size()); } -@Ignore @Test public void testAddContent() throws Exception { String nodePath1 = createRandomNode(authorClient, "/content/news/forward_add_" + System.nanoTime()); @@ -60,7 +58,6 @@ public class SelectiveForwardDistributio assertExists(publishClient, nodePath2); } -@Ignore @Test pub
svn commit: r1779477 - in /sling/trunk/contrib/extensions/distribution: core/src/main/java/org/apache/sling/distribution/agent/impl/ core/src/main/java/org/apache/sling/distribution/component/impl/ co
Author: tommaso Date: Thu Jan 19 15:03:06 2017 New Revision: 1779477 URL: http://svn.apache.org/viewvc?rev=1779477=rev Log: minor static analysis fixes, fixed rat excludes on it project Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.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/agent/impl/SimpleDistributionAgentAuthenticationInfo.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionConfigurationManager.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/OsgiConfigurationManager.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/ResourceConfigurationManager.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategy.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/CachingDistributionQueue.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/DistributionQueueWrapper.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/DistributionConfigurationResourceProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/common/AbstractReadableResourceProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultContentSerializer.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpTransportUtils.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/impl/DigestUtils.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/impl/FileBackedMemoryOutputStream.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessorTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/TriggerAgentRequestHandlerTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultContentSerializerTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTriggerTest.java sling/trunk/contrib/extensions/distribution/it/pom.xml Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java URL: http
svn commit: r1779444 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution: agent/impl/ util/impl/
Author: tommaso Date: Thu Jan 19 10:24:17 2017 New Revision: 1779444 URL: http://svn.apache.org/viewvc?rev=1779444=rev Log: SLING-6477 - use service user when impersonating API is not available Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.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/agent/impl/SyncDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/impl/DistributionUtils.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java?rev=1779444=1779443=1779444=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java Thu Jan 19 10:24:17 2017 @@ -97,7 +97,8 @@ public class ForwardDistributionAgentFac @Property(boolValue = true, label = "Enabled", description = "Whether or not to start the distribution agent.") private static final String ENABLED = "enabled"; -@Property(label = "Service Name", description = "The name of the service used to access the repository.") +@Property(label = "Service Name", description = "The name of the service used to access the repository. " + +"If not set, the calling user ResourceResolver will be used") private static final String SERVICE_NAME = "serviceName"; @Property(options = { Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java?rev=1779444=1779443=1779444=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java Thu Jan 19 10:24:17 2017 @@ -88,7 +88,8 @@ public class QueueDistributionAgentFacto private static final String ENABLED = "enabled"; -@Property(label = "Service Name", description = "The name of the service used to access the repository.") +@Property(label = "Service Name", description = "The name of the service used to access the repository. " + +"If not set, the calling user ResourceResolver will be used") private static final String SERVICE_NAME = "serviceName"; @Property(options = { 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=1779444=1779443=1779444=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 Jan 19 10:24:17 2017 @@ -59,7 +59,7 @@ import org.apache.sling.jcr.api.SlingRep * Basic implementation of a {@link org.apache.sling.distribution.agent.DistributionAgent} */ public class SimpleDistributionAgent implements DistributionAgent { -private final static String DEFAULT_AGENT_SERVICE = "defaultAgentService"; +public final static String DEFAULT_AGENT_SERVICE = "defaultAgentService"; private final DistributionQueueProvider queueProvider; private final DistributionPackageImporter di
svn commit: r1779298 - /sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java
Author: tommaso Date: Wed Jan 18 08:37:33 2017 New Revision: 1779298 URL: http://svn.apache.org/viewvc?rev=1779298=rev Log: SLING-6475 - reverted unwanted change in kryo serializer Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java?rev=1779298=1779297=1779298=diff == --- sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java (original) +++ sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java Wed Jan 18 08:37:33 2017 @@ -230,10 +230,9 @@ public class KryoContentSerializer imple } private void addResource(DistributionExportFilter.TreeFilter nodeFilter, LinkedList resources, Resource resource) { -if (nodeFilter.matches(resource.getPath())) { -resources.add(resource); -for (Resource child : resource.getChildren()) { -resources.add(child); +resources.add(resource); +for (Resource child : resource.getChildren()) { +if (nodeFilter.matches(child.getPath())) { addResource(nodeFilter, resources, child); } }
svn commit: r1779297 - in /sling/trunk/contrib/extensions/distribution: extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java it/pom.xml sample/src/
Author: tommaso Date: Wed Jan 18 08:35:27 2017 New Revision: 1779297 URL: http://svn.apache.org/viewvc?rev=1779297=rev Log: SLING-6475 - making it possible to run ITs with launchpad 8, adjusted timeout and sample init Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java sling/trunk/contrib/extensions/distribution/it/pom.xml sling/trunk/contrib/extensions/distribution/sample/src/main/java/org/apache/sling/distribution/test/Init.java Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java?rev=1779297=1779296=1779297=diff == --- sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java (original) +++ sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java Wed Jan 18 08:35:27 2017 @@ -230,14 +230,13 @@ public class KryoContentSerializer imple } private void addResource(DistributionExportFilter.TreeFilter nodeFilter, LinkedList resources, Resource resource) { -resources.add(resource); -for (Resource child : resource.getChildren()) { -if (nodeFilter.matches(child.getPath())) { +if (nodeFilter.matches(resource.getPath())) { +resources.add(resource); +for (Resource child : resource.getChildren()) { +resources.add(child); addResource(nodeFilter, resources, child); } } - - } Modified: sling/trunk/contrib/extensions/distribution/it/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/it/pom.xml?rev=1779297=1779296=1779297=diff == --- sling/trunk/contrib/extensions/distribution/it/pom.xml (original) +++ sling/trunk/contrib/extensions/distribution/it/pom.xml Wed Jan 18 08:35:27 2017 @@ -67,7 +67,7 @@ --Xmx512m +-Xmx2048m 1.0 @@ -306,14 +306,12 @@ ${project.build.directory},${project.build.directory}/sling/additional-bundles ${keepJarRunning} - 60 + 360 ${sling.testing.timeout.multiplier} /:script src="system/sling.js" - /.explorer.html:href="/libs/sling/explorer/css/explorer.css" - - /sling-test/sling/sling-test.html:Sling client library tests - + /.explorer.html:href="/libs/sling/explorer/css/explorer.css" + /sling-test/sling/sling-test.html:Sling client library tests 30 20 @@ -363,7 +361,7 @@ org.apache.jackrabbit.vault org.apache.jackrabbit.vault -3.1.28 +3.1.30 provided @@ -394,7 +392,7 @@ org.apache.sling org.apache.sling.launchpad -9-SNAPSHOT +8 org.slf4j Modified: sling/trunk/contrib/extensions/distribution/sample/src/main/java/org/apache/sling/distribution/test/Init.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/sample/src/main/java/org/apache/sling/distribution/test/Init.java?rev=1779297=1779296=1779297=diff == --- sling/trunk/contrib/extensions/distribution/sample/src/main/java/org/apache/sling/distribution/test/Init.java (original) +++ sling/trunk/contrib/extensions/distribution/sample/src/main/java/org/apache/sling/distribution/test/Init.java Wed Jan 18 08:35:27 2017 @@ -29,6 +29,7 @@ import org.apache.jackrabbit.api.securit import org.apache.jackrabbit.api.security.user.UserManager; import javax.jcr.RepositoryException; +import javax.jcr.SimpleCredentials; import javax.jcr.security.Privilege; import org.apache.jackrabbit.commons.JcrUtils; @@ -57,7 +58,7 @@ public class Init { final String serviceUserName = "testDistributionUser"; final String distributorUserName = "testDistributorUser"; -Session session = slingRepository.login
svn commit: r1779164 - in /sling/trunk/contrib/extensions/distribution/core: ./ src/main/java/org/apache/sling/distribution/util/impl/ src/test/java/org/apache/sling/distribution/packaging/impl/import
Author: tommaso Date: Tue Jan 17 10:37:11 2017 New Revision: 1779164 URL: http://svn.apache.org/viewvc?rev=1779164=rev Log: SLING-6250 - addede test from Julian Sedding Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/impl/DistributionUtils.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterTest.java Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/pom.xml?rev=1779164=1779163=1779164=diff == --- sling/trunk/contrib/extensions/distribution/core/pom.xml (original) +++ sling/trunk/contrib/extensions/distribution/core/pom.xml Tue Jan 17 10:37:11 2017 @@ -84,6 +84,12 @@ +maven-surefire-plugin + +true + + + org.apache.maven.plugins maven-javadoc-plugin @@ -103,6 +109,12 @@ + + +org.apache.sling +org.apache.sling.commons.osgi +2.2.0 + junit @@ -127,6 +139,25 @@ 1.1.16 test + + +org.apache.sling +org.apache.sling.testing.osgi-mock +1.7.2 +test + + +org.apache.sling +org.apache.sling.testing.sling-mock +1.6.2 +test + + +org.apache.sling +org.apache.sling.testing.sling-mock-oak +1.0.0 +test + org.apache.sling @@ -140,11 +171,6 @@ org.apache.sling -org.apache.sling.commons.osgi -2.2.0 - - -org.apache.sling org.apache.sling.commons.scheduler 2.4.0 @@ -183,12 +209,6 @@ 1.0.0 provided - -org.apache.sling -org.apache.sling.jcr.resource -2.3.12 -provided - org.slf4j Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/impl/DistributionUtils.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/impl/DistributionUtils.java?rev=1779164=1779163=1779164=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/impl/DistributionUtils.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/impl/DistributionUtils.java Tue Jan 17 10:37:11 2017 @@ -25,7 +25,6 @@ import org.apache.sling.api.resource.Res import org.apache.sling.api.resource.ResourceResolverFactory; import org.apache.sling.distribution.common.DistributionException; import org.apache.sling.jcr.api.SlingRepository; -import org.apache.sling.jcr.resource.JcrResourceConstants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -38,7 +37,7 @@ import java.util.Map; public class DistributionUtils { private static final Logger log = LoggerFactory.getLogger(DistributionUtils.class); - +private static final String AUTHENTICATION_INFO_SESSION = "user.jcr.credentials"; public static ResourceResolver loginService(ResourceResolverFactory resolverFactory, String serviceName) throws LoginException { Map<String, Object> authInfo = new HashMap<String, Object>(); @@ -87,7 +86,7 @@ public class DistributionUtils { if (subServiceName == null && user != null) { Session session = slingRepository.impersonateFromService(service, new SimpleCredentials(user, new char[0]), null); - authenticationInfo.put(JcrResourceConstants.AUTHENTICATION_INFO_SESSION, session); +authenticationInfo.put(AUTHENTICATION_INFO_SESSION, session); resourceResolver = resourceResolverFactory.getResourceResolver(authenticationInfo); } else { authenticationInfo.put(ResourceResolverFactory.SUBSERVICE, subServiceName); Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apach
svn commit: r1778443 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java
Author: tommaso Date: Thu Jan 12 15:22:39 2017 New Revision: 1778443 URL: http://svn.apache.org/viewvc?rev=1778443=rev Log: SLING-5695 - no need to make stream.reset failure return a RE Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java?rev=1778443=1778442=1778443=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java Thu Jan 12 15:22:39 2017 @@ -119,9 +119,9 @@ public class LocalDistributionPackageImp } } else { try { -stream.reset(); +stream.reset(); // TODO : see if this can be removed entirely } catch (IOException e) { -throw new RuntimeException(e); +// do nothing } DistributionPackageInfo packageInfo; Object rr = headerInfo.get("reference-required");
svn commit: r1778196 - /sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTriggerTest.java
Author: tommaso Date: Tue Jan 10 20:41:13 2017 New Revision: 1778196 URL: http://svn.apache.org/viewvc?rev=1778196=rev Log: SLING-6210 - added additional test for ignored paths Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTriggerTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTriggerTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTriggerTest.java?rev=1778196=1778195=1778196=diff == --- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTriggerTest.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTriggerTest.java Tue Jan 10 20:41:13 2017 @@ -80,4 +80,20 @@ public class JcrEventDistributionTrigger DistributionRequest distributionRequest = jcrEventdistributionTrigger.processEvent(event); assertNull(distributionRequest); } + +@Test +public void testProcessEventOnMultipleIgnoredPattern() throws Exception { +SlingRepository repository = mock(SlingRepository.class); +Scheduler scheduler = mock(Scheduler.class); +ResourceResolverFactory resolverFactory = mock(ResourceResolverFactory.class); + +String path = "/home/users"; +String serviceName = "serviceId"; +String[] ignoredPaths = new String[]{".*/.tokens.*", ".*/.rep:cache.*"}; +JcrEventDistributionTrigger jcrEventdistributionTrigger = new JcrEventDistributionTrigger(repository, scheduler, resolverFactory, path, false, serviceName, ignoredPaths); +Event event = mock(Event.class); + when(event.getPath()).thenReturn("/home/users/3/3U3HxUUzJJ60BdN4lEDJ/.tokens/2017-01-10T15.52.37.842+01.00"); +DistributionRequest distributionRequest = jcrEventdistributionTrigger.processEvent(event); +assertNull(distributionRequest); +} } \ No newline at end of file
svn commit: r1773934 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionConfigurationManager.java
Author: tommaso Date: Tue Dec 13 09:24:18 2016 New Revision: 1773934 URL: http://svn.apache.org/viewvc?rev=1773934=rev Log: SLING-6391 - added some javadoc and comments Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionConfigurationManager.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionConfigurationManager.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionConfigurationManager.java?rev=1773934=1773933=1773934=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionConfigurationManager.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionConfigurationManager.java Tue Dec 13 09:24:18 2016 @@ -54,10 +54,10 @@ public class DefaultDistributionConfigur @Property(label = "Resource Config Root", description = "The resource config root", value = "/etc/distribution") public static final String CONFIG_ROOT = "resource.config.root"; -@Property(label = "Resource Config Properties", description = "The resource config properties", value = { "enabled" } ) -public static final String CONFIG_PROPERTIES= "resource.config.properties"; +@Property(label = "Resource Config Properties", description = "The resource config properties", value = {"enabled"}) +public static final String CONFIG_PROPERTIES = "resource.config.properties"; -@Property(label = "Resource Config Defaults", description = "The default values for resource config properties", value = { "serializationType=distribution" } ) +@Property(label = "Resource Config Defaults", description = "The default values for resource config properties", value = {"serializationType=distribution"}) public static final String CONFIG_DEFAULTS = "resource.config.defaults"; @Reference @@ -209,21 +209,32 @@ public class DefaultDistributionConfigur return result; } +/** + * Split a {@link DistributionConfiguration} into two configurations, so that properties starting with a certain prefix + * go to a separate configuration while the remaining ones will live in a new configuration + * @param config a configuration + * @param prefix a prefix + * @return a {@link Map} of prefix -> configuration + */ static Map<String, DistributionConfiguration> splitConfig(DistributionConfiguration config, String prefix) { -Map<String, Object> properties = config.getProperties(); +Map<String, Object> distributionConfigurationProperties = config.getProperties(); +// properties for OSGi configuration Map<String, Object> defaultMap = new HashMap<String, Object>(); -Map<String, Object> prefixMap = new HashMap<String, Object>(); +// properties for resource configuration +Map<String, Object> prefixMap = new HashMap<String, Object>(); -for (String propertyKey : properties.keySet()) { -if (propertyKey.startsWith(prefix)) { -prefixMap.put(propertyKey.substring(prefix.length()), properties.get(propertyKey)); +// split the properties of the given configuration between the OSGi config and the persisted config +for (String configurationPropertyKey : distributionConfigurationProperties.keySet()) { +if (configurationPropertyKey.startsWith(prefix)) { + prefixMap.put(configurationPropertyKey.substring(prefix.length()), distributionConfigurationProperties.get(configurationPropertyKey)); } else { -defaultMap.put(propertyKey, properties.get(propertyKey)); +defaultMap.put(configurationPropertyKey, distributionConfigurationProperties.get(configurationPropertyKey)); } } +// create an OSGi and a persisted configuration Map<String, DistributionConfiguration> result = new HashMap<String, DistributionConfiguration>(); result.put(OSGI_PREFIX, new DistributionConfiguration(config.getKind(), config.getName(), defaultMap)); if (prefixMap.size() > 0) {
svn commit: r1773933 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl: DefaultDistributionConfigurationManager.java DistributionConfigu
Author: tommaso Date: Tue Dec 13 09:09:47 2016 New Revision: 1773933 URL: http://svn.apache.org/viewvc?rev=1773933=rev Log: SLING-6391 - avoid overriding from defaults in ResourceConfigManager, minor fixes Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionConfigurationManager.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionConfiguration.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/ResourceConfigurationManager.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionConfigurationManager.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionConfigurationManager.java?rev=1773933=1773932=1773933=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionConfigurationManager.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionConfigurationManager.java Tue Dec 13 09:09:47 2016 @@ -33,6 +33,8 @@ import org.apache.felix.scr.annotations. import org.apache.sling.api.resource.ResourceResolver; import org.apache.sling.commons.osgi.PropertiesUtil; import org.osgi.service.cm.ConfigurationAdmin; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * {@link org.apache.sling.distribution.component.impl.DistributionConfigurationManager} implementation based on OSGI configs. @@ -67,7 +69,7 @@ public class DefaultDistributionConfigur static String resourcePrefix; static final String OSGI_PREFIX = ""; - +private final Logger log = LoggerFactory.getLogger(getClass()); @Activate void activate(Map<String, Object> properties) { @@ -121,8 +123,7 @@ public class DefaultDistributionConfigur @Override public void saveConfig(ResourceResolver resolver, DistributionConfiguration config) { - - +log.debug("saving config {}", config); if (resourceManager != null) { Map<String, DistributionConfiguration> splitConfig = splitConfig(config, resourcePrefix); @@ -132,12 +133,15 @@ public class DefaultDistributionConfigur osgiManager.saveConfig(resolver, defaultConfig); DistributionConfiguration resourceConfig = splitConfig.get(resourcePrefix); +log.debug("retrieved config {}", resourceConfig); if (resourceConfig != null) { resourceManager.saveConfig(resolver, resourceConfig); +log.debug("saved resource config: {}", resourceConfig); } } else { osgiManager.saveConfig(resolver, config); +log.debug("saved osgi config: {}", config); } } @@ -150,7 +154,6 @@ public class DefaultDistributionConfigur } } - static DistributionConfiguration mergeConfig(DistributionConfiguration main, DistributionConfiguration extension, String prefix) { if (main == null) { @@ -165,8 +168,6 @@ public class DefaultDistributionConfigur return mergeConfig(main.getKind(), main.getName(), configMap); } - - static DistributionConfiguration mergeConfig(DistributionComponentKind kind, String name, Map<String, DistributionConfiguration> configMap) { Map<String, Object> result = new HashMap<String, Object>(); for (String prefixKey : configMap.keySet()) { @@ -197,7 +198,6 @@ public class DefaultDistributionConfigur sourceMap.put(config.getName(), config); } - for (DistributionConfiguration targetConfig : target) { DistributionConfiguration sourceConfig = sourceMap.get(targetConfig.getName()); Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionConfiguration.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionConfiguration.java?rev=1773933=1773932=1773933=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionConfiguration.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionConfiguration.java Tue Dec 13 09:09:47 2016 @@ -51
svn commit: r1771915 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution: monitor/impl/ packaging/impl/ packaging/impl/exporter/ packaging/impl/importer/
Author: tommaso Date: Tue Nov 29 15:21:05 2016 New Revision: 1771915 URL: http://svn.apache.org/viewvc?rev=1771915=rev Log: SLING-6339 - applied patch from Simone Tripodi for warnings cleanup Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RepositoryDistributionPackageImporterFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTriggerFactory.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java?rev=1771915=1771914=1771915=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java Tue Nov 29 15:21:05 2016 @@ -86,7 +86,7 @@ public final class MonitoringDistributio return wrapped.installPackage(resourceResolver, stream); } -private final void registerDistributionPackageMBean(long start, DistributionPackage distributionPackage) { +private void registerDistributionPackageMBean(long start, DistributionPackage distributionPackage) { long processingTime = System.currentTimeMillis() - start; DistributionPackageMBean mBean = new DistributionPackageMBeanImpl(distributionPackage, Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java?rev=1771915=1771914=1771915=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java Tue Nov 29 15:21:05 2016 @@ -18,21 +18,18 @@ */ package org.apache.sling.distribution.packaging.impl; -import javax.annotation.CheckForNull; -import javax.annotation.Nonnull; -import javax.jcr.RepositoryException; -import javax.jcr.Session; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.util.HashMap; -import java.util.HashSet; import java.util.Map; -import java.util.Set; -import java.util.regex.Pattern; + +import javax.annotation.CheckForNull; +import javax.annotation.Nonnull; +import javax.jcr.RepositoryException; +import javax.jcr.Session; import org.apache.commons.io.IOUtils; -import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ResourceResolver; import org.apache.sling.distribution.DistributionRequest; import org.apache.sling.distribution.DistributionRequestType; Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java?rev=1771915=1771914=1771915=diff
svn commit: r1771761 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/
Author: tommaso Date: Mon Nov 28 15:27:54 2016 New Revision: 1771761 URL: http://svn.apache.org/viewvc?rev=1771761=rev Log: SLING-6324 - avoiding exposing resource / file path of packages within their ids Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java?rev=1771761=1771760=1771761=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java Mon Nov 28 15:27:54 2016 @@ -45,7 +45,7 @@ public class FileDistributionPackage ext @Nonnull String type, @Nullable String digestAlgorithm, @Nullable String digestMessage) { -super(file.getAbsolutePath(), type, digestAlgorithm, digestMessage); +super(file.getName(), type, digestAlgorithm, digestMessage); this.file = file; this.getInfo().put(DistributionPackageInfo.PROPERTY_REQUEST_TYPE, DistributionRequestType.ADD); Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java?rev=1771761=1771760=1771761=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java Mon Nov 28 15:27:54 2016 @@ -157,6 +157,6 @@ public class FileDistributionPackageBuil @Override protected DistributionPackage getPackageInternal(@Nonnull ResourceResolver resourceResolver, @Nonnull String id) { -return new FileDistributionPackage(new File(id), getType(), null, null); +return new FileDistributionPackage(new File(tempDirectory, id), getType(), null, null); } } Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java?rev=1771761=1771760=1771761=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java Mon Nov 28 15:27:54 2016 @@ -52,7 +52,7 @@ public class ResourceDistributionPackage ResourceResolver resourceResolver, @Nullable String digestAlgorithm, @Nullable String digestMessage) { -super(resource.getPath() + '-' + randomUUID(), type, digestAlgorithm, digestMessage); +super(resource.getName(), type, digestAlgorithm, digestMessage); this.resourceResolver = resourceResolver; ValueMap valueMap = resource.getValueMap(); assert type.equals(valueMap.get("type")) : "wrong resource type"; Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributio
svn commit: r1771756 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java
Author: tommaso Date: Mon Nov 28 15:01:29 2016 New Revision: 1771756 URL: http://svn.apache.org/viewvc?rev=1771756=rev Log: SLING-6324 - removed duplicated / unneeded mbean registrations Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java?rev=1771756=1771755=1771756=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java Mon Nov 28 15:01:29 2016 @@ -68,26 +68,17 @@ public final class MonitoringDistributio @Override public DistributionPackage readPackage(ResourceResolver resourceResolver, InputStream stream) throws DistributionException { -long start = System.currentTimeMillis(); -DistributionPackage distributionPackage = wrapped.readPackage(resourceResolver, stream); -registerDistributionPackageMBean(start, distributionPackage); -return distributionPackage; +return wrapped.readPackage(resourceResolver, stream); } @Override public DistributionPackage getPackage(ResourceResolver resourceResolver, String id) throws DistributionException { -long start = System.currentTimeMillis(); -DistributionPackage distributionPackage = wrapped.getPackage(resourceResolver, id); -registerDistributionPackageMBean(start, distributionPackage); -return distributionPackage; +return wrapped.getPackage(resourceResolver, id); } @Override public boolean installPackage(ResourceResolver resourceResolver, DistributionPackage distributionPackage) throws DistributionException { -long start = System.currentTimeMillis(); -boolean installed = wrapped.installPackage(resourceResolver, distributionPackage); -registerDistributionPackageMBean(start, distributionPackage); -return installed; +return wrapped.installPackage(resourceResolver, distributionPackage); } @Override
svn commit: r1771164 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl: FileDistributionPackageBuilder.java ResourceDistributionPackage.
Author: tommaso Date: Thu Nov 24 15:23:44 2016 New Revision: 1771164 URL: http://svn.apache.org/viewvc?rev=1771164=rev Log: SLING-6324 - added randomization to package ids, patch from Simone Tripodi Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java?rev=1771164=1771163=1771164=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java Thu Nov 24 15:23:44 2016 @@ -19,6 +19,8 @@ package org.apache.sling.distribution.packaging.impl; +import static java.util.UUID.randomUUID; + import javax.annotation.Nonnull; import java.io.File; import java.io.FileOutputStream; @@ -81,7 +83,7 @@ public class FileDistributionPackageBuil final File file; try { -file = File.createTempFile("distrpck-create-" + System.nanoTime(), "." + getType(), tempDirectory); +file = File.createTempFile("distrpck-create-" + randomUUID(), "." + getType(), tempDirectory); if (digestAlgorithm != null) { outputStream = openDigestOutputStream(new FileOutputStream(file), digestAlgorithm); } else { Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java?rev=1771164=1771163=1771164=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java Thu Nov 24 15:23:44 2016 @@ -18,6 +18,8 @@ */ package org.apache.sling.distribution.packaging.impl; +import static java.util.UUID.randomUUID; + import javax.annotation.Nonnull; import javax.annotation.Nullable; import javax.jcr.RepositoryException; @@ -50,7 +52,7 @@ public class ResourceDistributionPackage ResourceResolver resourceResolver, @Nullable String digestAlgorithm, @Nullable String digestMessage) { -super(resource.getPath(), type, digestAlgorithm, digestMessage); +super(resource.getPath() + '-' + randomUUID(), type, digestAlgorithm, digestMessage); this.resourceResolver = resourceResolver; ValueMap valueMap = resource.getValueMap(); assert type.equals(valueMap.get("type")) : "wrong resource type";
svn commit: r1771163 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/serialization/ test/java/org/apache/sling/distribution/serialization/impl/vlt/
Author: tommaso Date: Thu Nov 24 15:22:47 2016 New Revision: 1771163 URL: http://svn.apache.org/viewvc?rev=1771163=rev Log: SLING-5815 - added missing toString to export filter, minor tweak to fv serializer test Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportFilter.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultContentSerializerTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportFilter.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportFilter.java?rev=1771163=1771162=1771163=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportFilter.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportFilter.java Thu Nov 24 15:22:47 2016 @@ -184,6 +184,16 @@ public class DistributionExportFilter { return match; } +@Override +public String toString() { +return "TreeFilter{" + +"path='" + path + '\'' + +", includes=" + includes + +", excludes=" + excludes + +", deepIncludes=" + deepIncludes + +'}'; +} + private static class Entry { private final String path; private final boolean include; @@ -203,5 +213,11 @@ public class DistributionExportFilter { } } - +@Override +public String toString() { +return "DistributionExportFilter{" + +"nodeFilters=" + nodeFilters + +", propertyFilter=" + propertyFilter + +'}'; +} } Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultContentSerializerTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultContentSerializerTest.java?rev=1771163=1771162=1771163=diff == --- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultContentSerializerTest.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultContentSerializerTest.java Thu Nov 24 15:22:47 2016 @@ -82,8 +82,6 @@ public class FileVaultContentSerializerT FileVaultContentSerializer fileVaultContentSerializer = new FileVaultContentSerializer("vlt", packaging, importMode, aclHandling, packageRoots, nodeFilters, propertyFilters, useReferences, threshold); -List paths = new LinkedList(); -paths.add("/libs"); ResourceResolver sessionResolver = mock(ResourceResolver.class); Session session = mock(Session.class);
svn commit: r1771121 - in /sling/trunk/contrib/extensions/distribution: core/src/main/java/org/apache/sling/distribution/serialization/ extensions/src/test/java/org/apache/sling/distribution/serializa
Author: tommaso Date: Thu Nov 24 11:58:29 2016 New Revision: 1771121 URL: http://svn.apache.org/viewvc?rev=1771121=rev Log: SLING-5815 - added more tests for kryo and avro serializers, added some nullable/checkfornull annotations to export options/filter Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportFilter.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportOptions.java sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializerTest.java sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializerTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportFilter.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportFilter.java?rev=1771121=1771120=1771121=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportFilter.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportFilter.java Thu Nov 24 11:58:29 2016 @@ -18,6 +18,7 @@ */ package org.apache.sling.distribution.serialization; +import javax.annotation.Nonnull; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; @@ -42,10 +43,12 @@ public class DistributionExportFilter { // can only be constructed by #createFilter } +@Nonnull public Set getNodeFilters() { return nodeFilters; } +@Nonnull public TreeFilter getPropertyFilter() { return propertyFilter; } @@ -157,6 +160,7 @@ public class DistributionExportFilter { excludes.add(path); } +@Nonnull public String getPath() { return path; } Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportOptions.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportOptions.java?rev=1771121=1771120=1771121=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportOptions.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportOptions.java Thu Nov 24 11:58:29 2016 @@ -18,6 +18,8 @@ */ package org.apache.sling.distribution.serialization; +import javax.annotation.CheckForNull; +import javax.annotation.Nullable; import java.io.OutputStream; import org.apache.sling.api.resource.ResourceResolver; @@ -32,7 +34,7 @@ public final class DistributionExportOpt private final DistributionRequest request; private final DistributionExportFilter filter; -public DistributionExportOptions(DistributionRequest request, DistributionExportFilter filter) { +public DistributionExportOptions(@Nullable DistributionRequest request, @Nullable DistributionExportFilter filter) { this.request = request; this.filter = filter; } @@ -41,6 +43,7 @@ public final class DistributionExportOpt * get the distribution request * @return the distribution request */ +@CheckForNull public DistributionRequest getRequest() { return request; } @@ -49,6 +52,7 @@ public final class DistributionExportOpt * get the export filter * @return the export filter */ +@CheckForNull public DistributionExportFilter getFilter() { return filter; } Modified: sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializerTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializerTest.java?rev=1771121=1771120=1771121=diff == --- sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializerTest.java (original) +++ sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling
svn commit: r1771120 - /sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java
Author: tommaso Date: Thu Nov 24 11:57:04 2016 New Revision: 1771120 URL: http://svn.apache.org/viewvc?rev=1771120=rev Log: SLING-6323 - fixed deserialization with depth one resources / parents Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java?rev=1771120=1771119=1771120=diff == --- sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java (original) +++ sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java Thu Nov 24 11:57:04 2016 @@ -131,6 +131,9 @@ public class KryoContentSerializer imple private Resource createParent(ResourceResolver resourceResolver, String path) throws PersistenceException { String parentPath = path.substring(0, path.lastIndexOf('/')); +if (parentPath.length() == 0) { +parentPath = "/"; +} String name = path.substring(path.lastIndexOf('/') + 1); Resource parentResource = resourceResolver.getResource(parentPath); if (parentResource == null) {
svn commit: r1771119 - /sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java
Author: tommaso Date: Thu Nov 24 11:53:17 2016 New Revision: 1771119 URL: http://svn.apache.org/viewvc?rev=1771119=rev Log: SLING-6322 - fixed multiple resources deserialization for avro serializer Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java?rev=1771119=1771118=1771119=diff == --- sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java (original) +++ sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java Thu Nov 24 11:53:17 2016 @@ -172,12 +172,7 @@ public class AvroContentSerializer imple DataFileReader dataFileReader = new DataFileReader(new SeekableByteArrayInput(bytes), datumReader); Collection avroResources = new LinkedList(); try { -AvroShallowResource avroResource = null; -while (dataFileReader.hasNext()) { -// Reuse avroResource object by passing it to next(). This saves us from -// allocating and garbage collecting many objects for files with -// many items. -avroResource = dataFileReader.next(avroResource); +for (AvroShallowResource avroResource : dataFileReader) { avroResources.add(avroResource); } } finally {
svn commit: r1771114 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl: FileDistributionPackageBuilder.java ResourceDistributionPackageB
Author: tommaso Date: Thu Nov 24 11:05:18 2016 New Revision: 1771114 URL: http://svn.apache.org/viewvc?rev=1771114=rev Log: SLING-5815 - fixed inverted requestFiltering handling in file builder Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java?rev=1771114=1771113=1771114=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java Thu Nov 24 11:05:18 2016 @@ -88,7 +88,7 @@ public class FileDistributionPackageBuil outputStream = new FileOutputStream(file); } -final DistributionExportFilter filter = distributionContentSerializer.isRequestFiltering() ? DistributionExportFilter.createFilter(request, nodeFilters, propertyFilters) : null; +final DistributionExportFilter filter = distributionContentSerializer.isRequestFiltering() ? null : DistributionExportFilter.createFilter(request, nodeFilters, propertyFilters); DistributionExportOptions distributionExportOptions = new DistributionExportOptions(request, filter); distributionContentSerializer.exportToStream(resourceResolver, distributionExportOptions, outputStream); outputStream.flush(); Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java?rev=1771114=1771113=1771114=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java Thu Nov 24 11:05:18 2016 @@ -40,6 +40,7 @@ import org.apache.commons.io.IOUtils; import org.apache.sling.api.resource.PersistenceException; import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ResourceResolver; +import org.apache.sling.api.resource.ResourceUtil; import org.apache.sling.distribution.DistributionRequest; import org.apache.sling.distribution.common.DistributionException; import org.apache.sling.distribution.packaging.DistributionPackage; @@ -211,6 +212,10 @@ public class ResourceDistributionPackage Resource r = resourceResolver.getResource(parent, name); if (r != null) { resourceResolver.delete(r); +} else { +// check parent is there at least +Resource parentResource = ResourceUtil.getOrCreateResource(resourceResolver, parent.getPath(), "nt:unstructured", "nt:unstructured", true); +log.debug("created parent {}", parentResource.getPath()); } Resource resource = resourceResolver.create(parent, name, props);
svn commit: r1770949 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java
Author: tommaso Date: Wed Nov 23 11:24:06 2016 New Revision: 1770949 URL: http://svn.apache.org/viewvc?rev=1770949=rev Log: SLING-5815 - fixed inverted requestFiltering handling Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java?rev=1770949=1770948=1770949=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java Wed Nov 23 11:24:06 2016 @@ -136,7 +136,7 @@ public class ResourceDistributionPackage } private void export(@Nonnull ResourceResolver resourceResolver, @Nonnull final DistributionRequest request, OutputStream outputStream) throws DistributionException { -final DistributionExportFilter filter = distributionContentSerializer.isRequestFiltering() ? DistributionExportFilter.createFilter(request, nodeFilters, propertyFilters) : null; +final DistributionExportFilter filter = distributionContentSerializer.isRequestFiltering() ? null : DistributionExportFilter.createFilter(request, nodeFilters, propertyFilters); DistributionExportOptions distributionExportOptions = new DistributionExportOptions(request, filter); distributionContentSerializer.exportToStream(resourceResolver, distributionExportOptions, outputStream); }
svn commit: r1770947 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java
Author: tommaso Date: Wed Nov 23 11:07:18 2016 New Revision: 1770947 URL: http://svn.apache.org/viewvc?rev=1770947=rev Log: SLING-5815 - removed unused code Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java?rev=1770947=1770946=1770947=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java Wed Nov 23 11:07:18 2016 @@ -258,62 +258,4 @@ public abstract class AbstractDistributi @CheckForNull protected abstract DistributionPackage getPackageInternal(@Nonnull ResourceResolver resourceResolver, @Nonnull String id); -/** - * extract the set of paths of resources that should be included in the package - * @param request the request - * @param resourceResolver the resource resolver used to browse the resource tree - * @return a set of paths - */ -protected Set readPaths(DistributionRequest request, ResourceResolver resourceResolver) { -Set paths = new HashSet(); - -for (String path : request.getPaths()) { -paths.add(path); -Resource resource = resourceResolver.getResource(path); -if (request.isDeep(path)) { -addSubtree(paths, resource); -} else { -for (Resource child : resource.getChildren()) { -addFilteredPaths(request, child, paths); -} -} -} -return paths; -} - -private void addFilteredPaths(DistributionRequest request, Resource resource, Set paths) { -String path = resource.getPath(); -if (filtersAllow(request.getFilters(path), path)) { -paths.add(path); -for (Resource child : resource.getChildren()) { -addFilteredPaths(request, child, paths); -} -} -} - -private boolean filtersAllow(String[] filters, String path) { -boolean allowed = false; -for (String pattern : filters) { -if (pattern.startsWith("+")) { -if (Pattern.compile(pattern.substring(1)).matcher(path).matches()) { -allowed = true; -} -} else if (pattern.startsWith("-")) { -if (Pattern.compile(pattern.substring(1)).matcher(path).matches()) { -allowed = false; -} -} else { -allowed = Pattern.compile(pattern).matcher(path).matches(); -} -} -return allowed; -} - -private void addSubtree(Set paths, Resource resource) { -for (Resource r : resource.getChildren()) { -paths.add(r.getPath()); -addSubtree(paths, r); -} -} - }
svn commit: r1770942 - in /sling/trunk/contrib/extensions/distribution: core/ core/src/main/java/org/apache/sling/distribution/packaging/impl/ core/src/main/java/org/apache/sling/distribution/serializ
Author: tommaso Date: Wed Nov 23 10:22:05 2016 New Revision: 1770942 URL: http://svn.apache.org/viewvc?rev=1770942=rev Log: SLING-5815 - expose content serializer Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportFilter.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionExportOptions.java (with props) sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/DistributionExportFilterTest.java (with props) sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultContentSerializerTest.java (with props) sling/trunk/contrib/extensions/distribution/core/src/test/resources/vlt/ sling/trunk/contrib/extensions/distribution/core/src/test/resources/vlt/dp.vlt (with props) Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionContentSerializer.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultContentSerializer.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VltUtils.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/PriorityQueueDispatchingStrategyTest.java sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroDistributionContentSerializerFactory.java sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoDistributionContentSerializerFactory.java sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializerTest.java sling/trunk/contrib/extensions/distribution/extensions/src/test/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializerTest.java Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/pom.xml?rev=1770942=1770941=1770942=diff == --- sling/trunk/contrib/extensions/distribution/core/pom.xml (original) +++ sling/trunk/contrib/extensions/distribution/core/pom.xml Wed Nov 23 10:22:05 2016 @@ -68,7 +68,9 @@ org.apache.sling.distribution.core -org.apache.sling.distribution.util +org.apache.sling.distribution.util, +org.apache.sling.distribution.common, +org.apache.sling.distribution.serialization org.apache.http.nio.*;resolution:=optional, @@ -125,6 +127,12 @@ 1.1.14 test + +org.apache.sling + org.apache.sling.testing.resourceresolver-mock +1.1.12 +test + org.apache.sling @@ -267,6 +275,12 @@ 2.0.0 provided + +org.apache.sling + org.apache.sling.testing.resourceresolver-mock +1.1.15-SNAPSHOT +test + Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl
svn commit: r1770384 - /sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/impl/
Author: tommaso Date: Fri Nov 18 14:17:30 2016 New Revision: 1770384 URL: http://svn.apache.org/viewvc?rev=1770384=rev Log: SLING-6300 - added patch from Simone Tripodi for MBeans testing, minor fixes to JcrEventTriggerTest Added: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/impl/ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBeanTest.java (with props) sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/impl/DistributionQueueMBeanTest.java (with props) sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/impl/ForwardDistributionAgentMBeanTest.java (with props) sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/impl/QueueDistributionAgentMBeanTest.java (with props) sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/impl/ReverseDistributionAgentMBeanTest.java (with props) sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/impl/SimpleDistributionAgentMBeanTest.java (with props) sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/impl/SyncDistributionAgentMBeanTest.java (with props) sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/impl/UserCredentialsDistributionTransportSecretMBeanTest.java (with props) Added: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBeanTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBeanTest.java?rev=1770384=auto == --- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBeanTest.java (added) +++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBeanTest.java Fri Nov 18 14:17:30 2016 @@ -0,0 +1,68 @@ +/* + * 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.monitor.impl; + +import static org.apache.sling.distribution.packaging.DistributionPackageInfo.*; + +import static org.junit.Assert.assertArrayEquals; +import static org.junit.Assert.assertEquals; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +import java.util.HashMap; +import java.util.Map; + +import org.apache.sling.distribution.DistributionRequestType; +import org.apache.sling.distribution.packaging.DistributionPackage; +import org.apache.sling.distribution.packaging.DistributionPackageInfo; +import org.junit.Test; + +/** + * Test case for {@link DistributionPackageMBean} + */ +public class DistributionPackageMBeanTest { + +@Test +public void verifyMBeanExposedValues() { +String type = "jcrvlt"; +long processingTime = 2000L; + +Map<String, Object> base = new HashMap<String, Object>(); +base.put(PROPERTY_REQUEST_PATHS, new String[]{ "a", "b", "c" }); +base.put(PROPERTY_REQUEST_TYPE, DistributionRequestType.ADD); +DistributionPackageInfo distributionPackageInfo = new DistributionPackageInfo(type, base); + +DistributionPackage distributionPackage = mock(DistributionPackage.class); +when(distributionPackage.getId()).thenReturn("#distributionPackage"); +when(distributionPackage.getSize()).thenReturn(1000L); + when(distributionPackage.getInfo()).thenReturn(distributionPackageInfo); + +DistributionPackageMBean mBean = new DistributionPackageMBeanImpl(distributionPackag
svn commit: r1770383 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/monitor/impl/ main/java/org/apache/sling/distribution/trigger/impl/ test/java/o
Author: tommaso Date: Fri Nov 18 14:17:09 2016 New Revision: 1770383 URL: http://svn.apache.org/viewvc?rev=1770383=rev Log: SLING-6300 - added patch from Simone Tripodi for MBeans testing, minor fixes to JcrEventTriggerTest Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBeanImpl.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTrigger.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTriggerTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBeanImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBeanImpl.java?rev=1770383=1770382=1770383=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBeanImpl.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBeanImpl.java Fri Nov 18 14:17:09 2016 @@ -18,40 +18,30 @@ */ package org.apache.sling.distribution.monitor.impl; +import org.apache.sling.distribution.packaging.DistributionPackage; + /** * Implementation of {@link DistributionPackageMBean} */ public final class DistributionPackageMBeanImpl implements DistributionPackageMBean { -private final String id; +private final DistributionPackage distributionPackage; private final String type; -private final String[] paths; - -private final String requestType; - -private final long size; - private final long processingTime; -public DistributionPackageMBeanImpl(String id, +public DistributionPackageMBeanImpl(DistributionPackage distributionPackage, String type, -String[] paths, -String requestType, -long size, long processingTime) { -this.id = id; +this.distributionPackage = distributionPackage; this.type = type; -this.paths = paths; -this.requestType = requestType; -this.size = size; this.processingTime = processingTime; } @Override public String getId() { -return id; +return distributionPackage.getId(); } @Override @@ -61,17 +51,17 @@ public final class DistributionPackageMB @Override public String[] getPaths() { -return paths; +return distributionPackage.getInfo().getPaths(); } @Override public String getRequestType() { -return requestType; +return distributionPackage.getInfo().getRequestType().name().toLowerCase(); } @Override public long getSize() { -return size; +return distributionPackage.getSize(); } @Override Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java?rev=1770383=1770382=1770383=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java Fri Nov 18 14:17:09 2016 @@ -98,11 +98,8 @@ public final class MonitoringDistributio private final void registerDistributionPackageMBean(long start, DistributionPackage distributionPackage) { long processingTime = System.currentTimeMillis() - start; -DistributionPackageMBean mBean = new DistributionPackageMBeanImpl(distributionPackage.getId(), +DistributionPackageMBean mBean = new DistributionPackageMBeanImpl(distributionPackage, wrapped.getType(), - distributionPackage.getInfo().getPaths
svn commit: r1769290 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution: agent/impl/ monitor/impl/
Author: tommaso Date: Fri Nov 11 14:25:37 2016 New Revision: 1769290 URL: http://svn.apache.org/viewvc?rev=1769290=rev Log: SLING-6238 - adding jmx support for queue providers Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionQueueMBean.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionQueueMBeanImpl.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionQueueProvider.java (with props) Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java?rev=1769290=1769289=1769290=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java Fri Nov 11 14:25:37 2016 @@ -46,6 +46,7 @@ import org.apache.sling.distribution.eve import org.apache.sling.distribution.log.impl.DefaultDistributionLog; import org.apache.sling.distribution.monitor.impl.ForwardDistributionAgentMBean; import org.apache.sling.distribution.monitor.impl.ForwardDistributionAgentMBeanImpl; +import org.apache.sling.distribution.monitor.impl.MonitoringDistributionQueueProvider; import org.apache.sling.distribution.packaging.DistributionPackageBuilder; import org.apache.sling.distribution.packaging.DistributionPackageExporter; import org.apache.sling.distribution.packaging.DistributionPackageImporter; @@ -248,6 +249,7 @@ public class ForwardDistributionAgentFac } else { queueProvider = new SimpleDistributionQueueProvider(scheduler, agentName, true); } +queueProvider = new MonitoringDistributionQueueProvider(queueProvider, context); DistributionQueueDispatchingStrategy exportQueueStrategy; DistributionQueueDispatchingStrategy errorQueueStrategy = null; Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java?rev=1769290=1769289=1769290=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java Fri Nov 11 14:25:37 2016 @@ -38,6 +38,7 @@ import org.apache.sling.distribution.com import org.apache.sling.distribution.component.impl.SettingsUtils; import org.apache.sling.distribution.event.impl.DistributionEventFactory; import org.apache.sling.distribution.log.impl.DefaultDistributionLog; +import org.apache.sling.distribution.monitor.impl.MonitoringDistributionQueueProvider; import org.apache.sling.distribution.monitor.impl.QueueDistributionAgentMBean; import org.apache.sling.distribution.monitor.impl.QueueDistributionAgentMBeanImpl; import org.apache.sling.distribution.packaging.DistributionPackageBuilder; @@ -176,7 +177,8 @@ public class QueueDistributionAgentFacto priorityQueues = SettingsUtils.removeEmptyEntries(priorityQueues); -DistributionQueueProvider queueProvider = new JobHandlingDistributionQueueProvider(agentName, jobManager, context); +DistributionQueueProvider queueProvider = new MonitoringDistributionQueueProvider(new JobHandlingDistributionQueueProvider(agentName, jobManager, context), context); + DistributionQueueDispatchingStrategy exportQueueStrategy = null; Modified: sling/trunk/contrib/extensions
svn commit: r1768058 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution: monitor/impl/ serialization/impl/ serialization/impl/vlt/
Author: tommaso Date: Fri Nov 4 15:57:44 2016 New Revision: 1768058 URL: http://svn.apache.org/viewvc?rev=1768058=rev Log: SLING-6232 - applied patch from Simone Tripodi about monitoring package builders Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBean.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBeanImpl.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/MonitoringDistributionPackageBuilder.java (with props) Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBean.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBean.java?rev=1768058=auto == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBean.java (added) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBean.java Fri Nov 4 15:57:44 2016 @@ -0,0 +1,40 @@ +/* + * 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.monitor.impl; + +import org.apache.sling.distribution.packaging.DistributionPackage; + +/** + * An Mbean for a {@link DistributionPackage} + */ +public interface DistributionPackageMBean { + +String getId(); + +String getType(); + +String[] getPaths(); + +String getRequestType(); + +long getSize(); + +long getProcessingTime(); + +} Propchange: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBean.java -- svn:eol-style = native Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBeanImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBeanImpl.java?rev=1768058=auto == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBeanImpl.java (added) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/DistributionPackageMBeanImpl.java Fri Nov 4 15:57:44 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.monitor.impl; + +/** + * Implementation of {@link Distributi
svn commit: r1767845 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTriggerFactory.java
Author: tommaso Date: Thu Nov 3 09:15:17 2016 New Revision: 1767845 URL: http://svn.apache.org/viewvc?rev=1767845=rev Log: SLING-6210 - added missing default value for deep distribution Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTriggerFactory.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTriggerFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTriggerFactory.java?rev=1767845=1767844=1767845=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTriggerFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTriggerFactory.java Thu Nov 3 09:15:17 2016 @@ -74,7 +74,7 @@ public class JcrEventDistributionTrigger /** * use deep distribution */ -@Property(label = "Use deep distribution", description = "Distribute entire subtree of the event node path") +@Property(label = "Use deep distribution", description = "Distribute entire subtree of the event node path", boolValue = false) private static final String DEEP = "deep";
svn commit: r1767029 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/agent/impl/ main/java/org/apache/sling/distribution/trigger/impl/ test/java/org
Author: tommaso Date: Fri Oct 28 14:34:01 2016 New Revision: 1767029 URL: http://svn.apache.org/viewvc?rev=1767029=rev Log: SLING-6210 - added deep option to jcr event trigger, minor fix to abstract agent factory to sync triggers registration Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTrigger.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTriggerFactory.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTriggerTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java?rev=1767029=1767028=1767029=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java Fri Oct 28 14:34:01 2016 @@ -144,7 +144,7 @@ abstract class AbstractDistributionAgent } } -void bindDistributionTrigger(DistributionTrigger distributionTrigger, Map<String, Object> config) { +synchronized void bindDistributionTrigger(DistributionTrigger distributionTrigger, Map<String, Object> config) { triggers.add(distributionTrigger); if (agent != null && triggersEnabled) { agent.enableTrigger(distributionTrigger); @@ -152,7 +152,7 @@ abstract class AbstractDistributionAgent } -void unbindDistributionTrigger(DistributionTrigger distributionTrigger, Map<String, Object> config) { +synchronized void unbindDistributionTrigger(DistributionTrigger distributionTrigger, Map<String, Object> config) { triggers.remove(distributionTrigger); if (agent != null) { Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java?rev=1767029=1767028=1767029=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java Fri Oct 28 14:34:01 2016 @@ -150,6 +150,7 @@ public abstract class AbstractJcrEventTr void addToList(DistributionRequest request, List requestList) { DistributionRequest lastRequest = requestList.isEmpty() ? null : requestList.get(requestList.size() - 1); +log.debug("adding request {} to {}", request, requestList); if (lastRequest == null || !lastRequest.getRequestType().equals(request.getRequestType())) { requestList.add(request); } else if (hasDeepPaths(request) || hasDeepPaths(lastRequest)) { @@ -164,6 +165,7 @@ public abstract class AbstractJcrEventTr lastRequest = new SimpleDistributionRequest(lastRequest.getRequestType(), allPaths.toArray(new String[allPaths.size()])); requestList.set(requestList.size() - 1, lastRequest); } +log.debug("current requests {}", requestList); } void addMissingPaths(Set allPaths) { Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTrigger.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTrigger.java?rev=1767029=1767028=1767029=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTrigger.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distri
svn commit: r1766673 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl: UserCredentialsDistributionTransportSecretMBean.java UserCredentia
Author: tommaso Date: Wed Oct 26 11:59:09 2016 New Revision: 1766673 URL: http://svn.apache.org/viewvc?rev=1766673=rev Log: SLING-6189 - applied patch from Simone Tripodi for UCDTSP mbean Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/UserCredentialsDistributionTransportSecretMBean.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/UserCredentialsDistributionTransportSecretMBeanImpl.java (with props) Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/UserCredentialsDistributionTransportSecretMBean.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/UserCredentialsDistributionTransportSecretMBean.java?rev=1766673=auto == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/UserCredentialsDistributionTransportSecretMBean.java (added) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/UserCredentialsDistributionTransportSecretMBean.java Wed Oct 26 11:59:09 2016 @@ -0,0 +1,33 @@ +/* + * 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.monitor.impl; + +/** + * User Credentials based Distribution Transport Secret. + */ +public interface UserCredentialsDistributionTransportSecretMBean { + +/** + * Check if the current credential is using the administrative user to transport. + * + * @return true, if the current credential is using the administrative user to transport, false otherwise. + */ +boolean useAdministrativeTransport(); + +} Propchange: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/UserCredentialsDistributionTransportSecretMBean.java -- svn:eol-style = native Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/UserCredentialsDistributionTransportSecretMBeanImpl.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/UserCredentialsDistributionTransportSecretMBeanImpl.java?rev=1766673=auto == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/UserCredentialsDistributionTransportSecretMBeanImpl.java (added) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/UserCredentialsDistributionTransportSecretMBeanImpl.java Wed Oct 26 11:59:09 2016 @@ -0,0 +1,40 @@ +/* + * 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.monitor.impl; + +/** + * The {@link UserCredentialsDistributionTransportSecretMBean} implementation. + */ +public class UserCredentialsDistributionTransportSecretMBeanImpl +implements UserCredentialsDistributionTransportSecretMBean { + +private static fina
svn commit: r1766672 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/UserCredentialsDistributionTransportSecretProvider.java
Author: tommaso Date: Wed Oct 26 11:58:43 2016 New Revision: 1766672 URL: http://svn.apache.org/viewvc?rev=1766672=rev Log: SLING-6189 - applied patch from Simone Tripodi for UCDTSP mbean Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/UserCredentialsDistributionTransportSecretProvider.java 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=1766672=1766671=1766672=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 Wed Oct 26 11:58:43 2016 @@ -20,18 +20,27 @@ package org.apache.sling.distribution.tr import java.net.URI; import java.util.Collections; +import java.util.Dictionary; import java.util.HashMap; +import java.util.Hashtable; import java.util.Map; +import javax.management.ObjectName; + import org.apache.felix.scr.annotations.Activate; import org.apache.felix.scr.annotations.Component; import org.apache.felix.scr.annotations.ConfigurationPolicy; +import org.apache.felix.scr.annotations.Deactivate; import org.apache.felix.scr.annotations.Property; import org.apache.felix.scr.annotations.Service; import org.apache.sling.commons.osgi.PropertiesUtil; import org.apache.sling.distribution.component.impl.DistributionComponentConstants; +import org.apache.sling.distribution.monitor.impl.UserCredentialsDistributionTransportSecretMBean; +import org.apache.sling.distribution.monitor.impl.UserCredentialsDistributionTransportSecretMBeanImpl; import org.apache.sling.distribution.transport.DistributionTransportSecret; import org.apache.sling.distribution.transport.DistributionTransportSecretProvider; +import org.osgi.framework.BundleContext; +import org.osgi.framework.ServiceRegistration; @Component(metatype = true, label = "Apache Sling Distribution Transport Credentials - User Credentials based DistributionTransportSecretProvider", @@ -58,10 +67,30 @@ public class UserCredentialsDistribution private String username; private String password; +private ServiceRegistration mbeanServiceRegistration; + @Activate -protected void activate(Map<String, Object> config) { +protected void activate(BundleContext context, Map<String, Object> config) { username = PropertiesUtil.toString(config.get(USERNAME), "").trim(); password = PropertiesUtil.toString(config.get(PASSWORD), "").trim(); + +String id = String.valueOf(username.hashCode()); + +Dictionary<String, String> mbeanProps = new Hashtable<String, String>(); +mbeanProps.put("jmx.objectname", "org.apache.sling.distribution:type=transport,id=" + ObjectName.quote(id)); + +UserCredentialsDistributionTransportSecretMBean mbean = +new UserCredentialsDistributionTransportSecretMBeanImpl(username); +mbeanServiceRegistration = + context.registerService(UserCredentialsDistributionTransportSecretMBean.class.getName(), mbean, mbeanProps); +} + +@Deactivate +protected void deactivate() { +if (mbeanServiceRegistration != null) { +mbeanServiceRegistration.unregister(); +} +mbeanServiceRegistration = null; } public DistributionTransportSecret getSecret(URI uri) {
svn commit: r1764869 - in /sling/trunk/contrib/extensions/distribution/core: ./ src/main/java/org/apache/sling/distribution/trigger/impl/ src/test/java/org/apache/sling/distribution/trigger/impl/
Author: tommaso Date: Fri Oct 14 10:50:42 2016 New Revision: 1764869 URL: http://svn.apache.org/viewvc?rev=1764869=rev Log: SLING-6054 - fixed missing paths check Added: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTriggerTest.java (with props) Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/JcrEventDistributionTriggerFactory.java Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/pom.xml?rev=1764869=1764868=1764869=diff == --- sling/trunk/contrib/extensions/distribution/core/pom.xml (original) +++ sling/trunk/contrib/extensions/distribution/core/pom.xml Fri Oct 14 10:50:42 2016 @@ -119,6 +119,12 @@ 2.6.4 test + +org.apache.sling + org.apache.sling.testing.resourceresolver-mock +1.1.14 +test + org.apache.sling Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java?rev=1764869=1764868=1764869=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java Fri Oct 14 10:50:42 2016 @@ -26,6 +26,7 @@ import javax.jcr.observation.EventIterat import javax.jcr.observation.EventListener; import java.util.ArrayList; import java.util.Arrays; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; @@ -70,7 +71,8 @@ public abstract class AbstractJcrEventTr private final Scheduler scheduler; -AbstractJcrEventTrigger(SlingRepository repository, Scheduler scheduler, ResourceResolverFactory resolverFactory, String path, String serviceUser) { +AbstractJcrEventTrigger(SlingRepository repository, Scheduler scheduler, ResourceResolverFactory resolverFactory, +String path, String serviceUser) { this.resolverFactory = resolverFactory; if (path == null || serviceUser == null) { throw new IllegalArgumentException("path and service are required"); @@ -107,7 +109,7 @@ public abstract class AbstractJcrEventTr } } -private class JcrEventDistributionTriggerListener implements EventListener { +class JcrEventDistributionTriggerListener implements EventListener { private final DistributionRequestHandler requestHandler; public JcrEventDistributionTriggerListener(DistributionRequestHandler requestHandler) { @@ -145,7 +147,7 @@ public abstract class AbstractJcrEventTr } } -private void addToList(DistributionRequest request, List requestList) { +void addToList(DistributionRequest request, List requestList) { DistributionRequest lastRequest = requestList.isEmpty() ? null : requestList.get(requestList.size() - 1); if (lastRequest == null || !lastRequest.getRequestType().equals(request.getRequestType())) { @@ -157,20 +159,20 @@ public abstract class AbstractJcrEventTr allPaths.addAll(Arrays.asList(lastRequest.getPaths())); allPaths.addAll(Arrays.asList(request.getPaths())); -addMissingPaths(request, allPaths); +addMissingPaths(allPaths); lastRequest = new SimpleDistributionRequest(lastRequest.getRequestType(), allPaths.toArray(new String[allPaths.size()])); requestList.set(requestList.size() - 1, lastRequest); } } -private void addMissingPaths(DistributionRequest request, Set allPaths) { -List requestPaths = Arrays.asList(request.getPaths()); +void addMissingPaths(Set allPaths) { +Set newPaths = new HashSet(); -for (String path : requestPaths) { +for (String path : allPaths) { for (String existingPath : allPaths) { // in case a requested path is descendant of an existing path, also add its siblings -if (existingPath.length() > path.length() && path.startsWith(existingPath)) { +
svn commit: r1763764 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution: agent/impl/ monitor/impl/
Author: tommaso Date: Fri Oct 7 13:42:17 2016 New Revision: 1763764 URL: http://svn.apache.org/viewvc?rev=1763764=rev Log: SLING-6101 - introduced agent mbeans, patch by Simone Tripodi Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ForwardDistributionAgentMBean.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ForwardDistributionAgentMBeanImpl.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/QueueDistributionAgentMBean.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/QueueDistributionAgentMBeanImpl.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ReverseDistributionAgentMBean.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/ReverseDistributionAgentMBeanImpl.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SimpleDistributionAgentMBean.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SimpleDistributionAgentMBeanImpl.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SyncDistributionAgentMBean.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/impl/SyncDistributionAgentMBeanImpl.java (with props) Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java?rev=1763764=1763763=1763764=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java Fri Oct 7 13:42:17 2016 @@ -24,6 +24,8 @@ import java.util.List; import java.util.Map; import java.util.concurrent.CopyOnWriteArrayList; +import javax.management.ObjectName; + import org.apache.sling.commons.osgi.PropertiesUtil; import org.apache.sling.distribution.agent.DistributionAgent; import org.apache.sling.distribution.component.impl.DistributionComponentConstants; @@ -41,7 +43,7 @@ import org.slf4j.LoggerFactory; /** * An abstract OSGi service factory for registering {@link org.apache.sling.distribution.agent.impl.SimpleDistributionAgent}s */ -abstract class AbstractDistributionAgentFactory { +abstract class AbstractDistributionAgentFactory { private final Logger log = LoggerFactory.getLogger(getClass()); private static final String NAME = DistributionComponentConstants.PN_NAME; @@ -54,14 +56,20 @@ abstract class AbstractDistributionAgent static final String LOG_LEVEL = "log.level"; +private final Class distributionAgentMBeanType; private ServiceRegistration componentReg; +private ServiceRegistration mbeanServiceRegistration; private String agentName; private final List triggers = new CopyOnWriteArrayList(); private boolean triggersEnabled = false; private SimpleDistributionAgent agent; +public AbstractDistributionAgentFactory(Class distributionAgentMBeanType) { +this.distributionAgen
svn commit: r1763231 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentCreationFilter.java
Author: tommaso Date: Tue Oct 4 06:31:29 2016 New Revision: 1763231 URL: http://svn.apache.org/viewvc?rev=1763231=rev Log: SLING-5900 - added filter to avoid creation of duplicate IDs, patch from Simone Tripodi Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentCreationFilter.java (with props) Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentCreationFilter.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentCreationFilter.java?rev=1763231=auto == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentCreationFilter.java (added) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentCreationFilter.java Tue Oct 4 06:31:29 2016 @@ -0,0 +1,117 @@ +/* + * 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.servlet; + +import javax.servlet.Filter; +import javax.servlet.FilterChain; +import javax.servlet.FilterConfig; +import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; + +import org.apache.felix.scr.annotations.Activate; +import org.apache.felix.scr.annotations.Component; +import org.apache.felix.scr.annotations.Properties; +import org.apache.felix.scr.annotations.Property; +import org.apache.felix.scr.annotations.Service; +import org.apache.sling.api.SlingHttpServletRequest; +import org.apache.sling.distribution.agent.DistributionAgent; +import org.osgi.framework.BundleContext; +import org.osgi.framework.InvalidSyntaxException; +import org.osgi.framework.ServiceReference; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import static java.lang.String.format; +import static javax.servlet.http.HttpServletResponse.SC_CONFLICT; + +/** + * {@link Filter} to avoid creation of duplicate agents. + */ +@Component(immediate = true, metatype = false) +@Service(value = Filter.class) +@Properties({ +@Property(name = "service.description", value = "Duplicate replication agents IDs checking Filter"), +@Property(name = "service.vendor", value = "The Apache Software Foundation"), +@Property(name = "sling.filter.scope", value = "request"), +@Property(name = "sling.filter.pattern", value = "/libs/sling/distribution/settings/agents/.*"), +@Property(name = "osgi.http.whiteboard.filter.regex", value = "/libs/sling/distribution/settings/agents/.*"), +@Property(name = "service.ranking", intValue = Integer.MAX_VALUE) +}) +public final class DistributionAgentCreationFilter implements Filter { + +private static final String METHOD_POST = "POST"; + +private static final String NAME = "name"; + +private static final String TYPE = "type"; + +private static final String FACTORY_FILTER_PATTERN = "(&(name=%s)(!(type=%s)))"; + +private BundleContext context; + +private final Logger log = LoggerFactory.getLogger(getClass()); + +@Activate +protected void activate(BundleContext context) { +this.context = context; +} + +@Override +public void init(FilterConfig filterConfig) throws ServletException { +// do nothing +} + +@Override +public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { +SlingHttpServletRequest servletRequest = (SlingHttpServletRequest) request; + +// only intercept POST requests +if (METHOD_POST.equalsIgnoreCase(servletRequest.getMethod())) { +String name = request.getParameter(NAME); +
svn commit: r1761073 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java
Author: tommaso Date: Fri Sep 16 19:53:47 2016 New Revision: 1761073 URL: http://svn.apache.org/viewvc?rev=1761073=rev Log: SLING-6054 - creating missing paths for jcr event trigger Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java?rev=1761073=1761072=1761073=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/trigger/impl/AbstractJcrEventTrigger.java Fri Sep 16 19:53:47 2016 @@ -33,6 +33,7 @@ import java.util.TreeSet; import java.util.concurrent.ConcurrentHashMap; import org.apache.sling.api.resource.LoginException; +import org.apache.sling.api.resource.Resource; import org.apache.sling.api.resource.ResourceResolver; import org.apache.sling.api.resource.ResourceResolverFactory; import org.apache.sling.commons.scheduler.Scheduler; @@ -114,7 +115,7 @@ public abstract class AbstractJcrEventTr } public void onEvent(EventIterator eventIterator) { -log.info("jcr trigger onevent"); +log.debug("jcr trigger on event"); List requestList = new ArrayList(); @@ -128,14 +129,13 @@ public abstract class AbstractJcrEventTr addToList(request, requestList); } } else { -log.info("skip unsafe event {}", event); +log.debug("skip unsafe event {}", event); } } catch (RepositoryException e) { log.error("Error while handling event {}", event, e); } } - if (requestList.size() > 0) { boolean scheduled = scheduler.schedule(new DistributionExecutor(requestList, requestHandler), scheduler.NOW()); @@ -156,11 +156,46 @@ public abstract class AbstractJcrEventTr Set allPaths = new TreeSet(); allPaths.addAll(Arrays.asList(lastRequest.getPaths())); allPaths.addAll(Arrays.asList(request.getPaths())); + +addMissingPaths(request, allPaths); + lastRequest = new SimpleDistributionRequest(lastRequest.getRequestType(), allPaths.toArray(new String[allPaths.size()])); requestList.set(requestList.size() - 1, lastRequest); } } +private void addMissingPaths(DistributionRequest request, Set allPaths) { +List requestPaths = Arrays.asList(request.getPaths()); + +for (String path : requestPaths) { +for (String existingPath : allPaths) { +// in case a requested path is descendant of an existing path, also add its siblings +if (existingPath.length() > path.length() && path.startsWith(existingPath)) { +ResourceResolver resourceResolver = null; +try { +resourceResolver = DistributionUtils.loginService(resolverFactory, serviceUser); +Resource resource = resourceResolver.getResource(path); +if (resource != null) { +for (Resource child : resource.getParent().getChildren()) { +String childPath = child.getPath(); +if (!childPath.equals(path)) { +allPaths.add(childPath); +} +} +} else { +throw new RuntimeException("resource at path " + path + " is null"); +} +} catch (LoginException le) { +log.error("cannot obtain resource resolver for {}", serviceUser); +} finally { +DistributionUtils.safelyLogout(resourceResolver); +} +} +} +} + +} + public void enable() { } @@ -211,7 +246,7 @@ public abstract class AbstractJcrEventTr */ Session getSession() throws RepositoryException { return cachedSession != null ? cachedSession -: (cachedSession = repository.loginService(serviceUser, null)); +: (cachedSession = repository.loginService(serviceUser, null)); }
svn commit: r1761028 - /sling/trunk/contrib/extensions/distribution/core/pom.xml
Author: tommaso Date: Fri Sep 16 13:13:54 2016 New Revision: 1761028 URL: http://svn.apache.org/viewvc?rev=1761028=rev Log: SLING-6041 - fixed import-package directive Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/pom.xml?rev=1761028=1761027=1761028=diff == --- sling/trunk/contrib/extensions/distribution/core/pom.xml (original) +++ sling/trunk/contrib/extensions/distribution/core/pom.xml Fri Sep 16 13:13:54 2016 @@ -71,7 +71,8 @@ org.apache.sling.distribution.util -org.apache.http.nio.*resolution:=optional, +org.apache.http.nio.*;resolution:=optional, + org.apache.http.impl.nio.client.*;resolution:=optional, org.apache.sling.event.jobs;version="[1.5.0,3.0)", org.apache.sling.event.jobs.consumer;version="[1.1,2)", org.apache.sling.jcr.api;version="2.2.0",
svn commit: r1759441 - /sling/trunk/contrib/extensions/distribution/core/pom.xml
Author: tommaso Date: Tue Sep 6 15:01:01 2016 New Revision: 1759441 URL: http://svn.apache.org/viewvc?rev=1759441=rev Log: SLING-6041 - avoid embedding httpasyncclient Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/pom.xml?rev=1759441=1759440=1759441=diff == --- sling/trunk/contrib/extensions/distribution/core/pom.xml (original) +++ sling/trunk/contrib/extensions/distribution/core/pom.xml Tue Sep 6 15:01:01 2016 @@ -71,9 +71,12 @@ org.apache.sling.distribution.util - org.apache.sling.event.jobs;version="[1.5.0,3.0)",org.apache.sling.event.jobs.consumer;version="[1.1,2)",org.apache.sling.jcr.api;version="2.2.0",* +org.apache.http.nio.*resolution:=optional, +org.apache.sling.event.jobs;version="[1.5.0,3.0)", + org.apache.sling.event.jobs.consumer;version="[1.1,2)", +org.apache.sling.jcr.api;version="2.2.0", +* -httpasyncclient @@ -218,6 +221,7 @@ org.apache.httpcomponents httpasyncclient 4.0.2 +provided org.apache.httpcomponents
svn commit: r1756793 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/agent/impl/ test/java/org/apache/sling/distribution/agent/impl/
Author: tommaso Date: Thu Aug 18 14:29:47 2016 New Revision: 1756793 URL: http://svn.apache.org/viewvc?rev=1756793=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=1756792=1756793=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/
svn commit: r1756791 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/agent/impl/ main/java/org/apache/sling/distribution/util/impl/ test/java/org/ap
Author: tommaso Date: Thu Aug 18 14:17:38 2016 New Revision: 1756791 URL: http://svn.apache.org/viewvc?rev=1756791=rev Log: SLING-5977 - moved SimpleDistributionAgent inner classes out, added tests, created proper class for agent authentication info Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/DistributionPackageExporterProcessor.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentAuthenticationInfo.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessor.java (with props) sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/DistributionPackageExporterProcessorTest.java (with props) sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentAuthenticationInfoTest.java (with props) sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentQueueProcessorTest.java (with props) Modified: 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/util/impl/ByteBufferBackedInputStream.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/impl/DistributionUtils.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/util/impl/FileBackedMemoryOutputStreamTest.java Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/DistributionPackageExporterProcessor.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/DistributionPackageExporterProcessor.java?rev=1756791=auto == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/DistributionPackageExporterProcessor.java (added) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/DistributionPackageExporterProcessor.java Thu Aug 18 14:17:38 2016 @@ -0,0 +1,150 @@ +/* + * 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 java.util.Collection; +import java.util.LinkedList; +import java.util.List; +import java.util.concurrent.atomic.AtomicInteger; +import java.util.concurrent.atomic.AtomicLong; + +import org.apache.sling.distribution.DistributionRequestState; +import org.apache.sling.distribution.DistributionResponse; +import org.apache.sling.distribution.common.DistributionException; +import org.apache.sling.distribution.component.impl.DistributionComponentKind; +import org.apache.sling.distribution.event.DistributionEventTopics; +import org.apache.sling.distribution.event.impl.DistributionEventFactory; +import org.apache.sling.distribution.impl.SimpleDistributionResponse; +import org.apache.sling.distribution.log.impl.DefaultDistributionLog; +import org.apache.sling.distribution.packaging.DistributionPackage; +import org.apache.sling.distribution.packaging.DistributionPackageProcessor; +import org.apache.sling.distribution.packaging.impl.DistributionPackageUtils; +import org.apache.sling.distribution.queue.DistributionQueueItemState; +import org.apache.sling.distribution.queue.DistributionQueueItemStatus; +import org.apache.sling.distribution.queue.DistributionQueueProvider; +import org.apache.sling.distribution.queue.impl.DistributionQueueDispatchingStrategy; + +/** + * The package exporter callback function is responsible to process the exported packages. + * T
svn commit: r1756640 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution: packaging/impl/ serialization/impl/ serialization/impl/vlt/ servlet/ transport/
Author: tommaso Date: Wed Aug 17 14:21:09 2016 New Revision: 1756640 URL: http://svn.apache.org/viewvc?rev=1756640=rev Log: SLING-5941 - applied patch from Simone Tripodi for optionally verifying package integrity Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ReferencePackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionPackageImporterServlet.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackage.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackage.java?rev=1756640=1756639=1756640=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackage.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackage.java Wed Aug 17 14:21:09 2016 @@ -19,6 +19,7 @@ package org.apache.sling.distribution.packaging.impl; import javax.annotation.Nonnull; +import javax.annotation.Nullable; import org.apache.sling.distribution.packaging.DistributionPackage; import org.apache.sling.distribution.packaging.DistributionPackageInfo; @@ -32,10 +33,14 @@ public abstract class AbstractDistributi private final DistributionPackageInfo info; private final String id; +private final String digestAlgorithm; +private final String digestMessage; -protected AbstractDistributionPackage(String id, String type) { +protected AbstractDistributionPackage(String id, String type, String digestAlgorithm, String digestMessage) { this.id = id; this.info = new DistributionPackageInfo(type); +this.digestAlgorithm = digestAlgorithm; +this.digestMessage = digestMessage; } @Nonnull @@ -53,4 +58,14 @@ public abstract class AbstractDistributi return info.getType(); } +@Nullable +public String getDigestAlgorithm() { +return digestAlgorithm; +} + +@Nullable +public String getDigestMessage() { +return digestMessage; +} + } Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java?rev=1756640=1756639=1756640=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java Wed Aug 17 14:21:09 2016 @@ -19,6 +19,8 @@ package org.apache.sling.distribution.packaging.impl; import javax.annotation.Nonnull; +import javax.annotation.Nullable; + import java.io.BufferedInputStream; import java.io.File; import java.io.IOException; @@ -39,8 +41,11 @@ public class FileDistributionPackage ext private final File file; -public FileDistributionPackage(@Nonnull File file, @Nonnull String type
svn commit: r1755300 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/packaging/impl/ main/java/org/apache/sling/distribution/queue/ main/java/org/ap
Author: tommaso Date: Fri Aug 5 12:01:55 2016 New Revision: 1755300 URL: http://svn.apache.org/viewvc?rev=1755300=rev Log: SLING-5934 - added size to DistributionQueueItem Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/ExtendedDistributionServiceResourceProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/impl/FileBackedMemoryOutputStream.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtilsTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java?rev=1755300=1755299=1755300=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java Fri Aug 5 12:01:55 2016 @@ -166,7 +166,7 @@ public class DistributionPackageUtils { * @return a distribution queue item */ public static DistributionQueueItem toQueueItem(DistributionPackage distributionPackage) { -return new DistributionQueueItem(distributionPackage.getId(), distributionPackage.getInfo()); +return new DistributionQueueItem(distributionPackage.getId(), distributionPackage.getSize(), distributionPackage.getInfo()); } /** Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java?rev=1755300=1755299=1755300=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueItem.java Fri Aug 5 12:01:55 2016 @@ -34,10 +34,17 @@ import org.apache.sling.distribution.pac public class DistributionQueueItem extends ValueMapDecorator implements ValueMap { private final String packageId; +private final long size; public DistributionQueueItem(@Nonnull String packageId, Map<String, Object> base) { +this(packageId, -1, base); +} + +public DistributionQueueItem(String id, long size, Map<String, Object> base) { super(base); -this.packageId = packageId; +this.packageId = id; +this.size = size; + } @Nonnull @@ -45,6 +52,13 @@ public class DistributionQueueItem exten return packageId; } +/** + * retrieve the size of the package referenced by this queue item. + * @return the size of the underlying package or {@code -1} if not available. + */ +public long getSize() { +return size; +} @Override public String toString() { Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java?rev=1755300=1755299=1755300=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java Fri Aug 5 12:01:55 2016 @@ -18,12 +18,11 @@ */ package org.apache.sling.distribution.queue.impl.jobhandling; +import javax.annotation.CheckForNull; import java.util.HashMap; import java.util.Map; import java.util.Set; -import javax.annotation.CheckForNul
svn commit: r1755270 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution: agent/impl/ component/impl/ resources/impl/
Author: tommaso Date: Fri Aug 5 09:54:02 2016 New Revision: 1755270 URL: http://svn.apache.org/viewvc?rev=1755270=rev Log: SLING-5913 - patch from Simone Tripodi for code cleaning Modified: 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/component/impl/DistributionComponentKind.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/DistributionServiceResourceProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/ExtendedDistributionServiceResourceProvider.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=1755270=1755269=1755270=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 Fri Aug 5 09:54:02 2016 @@ -328,11 +328,11 @@ public class SimpleDistributionAgent imp DistributionQueue queue = getQueue(queueName); DistributionQueueState state = queue.getStatus().getState(); -if (DistributionQueueState.BLOCKED.equals(state)) { +if (DistributionQueueState.BLOCKED == state) { return DistributionAgentState.BLOCKED; } -if (DistributionQueueState.RUNNING.equals(state)) { +if (DistributionQueueState.RUNNING == state) { agentState = DistributionAgentState.RUNNING; } } @@ -520,7 +520,6 @@ public class SimpleDistributionAgent imp DistributionUtils.safelyLogout(resourceResolver); } } - } private void generatePackageEvent(String topic, DistributionPackage... distributionPackages) { Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentKind.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentKind.java?rev=1755270=1755269=1755270=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentKind.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentKind.java Fri Aug 5 09:54:02 2016 @@ -18,6 +18,15 @@ */ package org.apache.sling.distribution.component.impl; +import static org.apache.sling.distribution.resources.DistributionResourceTypes.AGENT_LIST_RESOURCE_TYPE; +import static org.apache.sling.distribution.resources.DistributionResourceTypes.AGENT_RESOURCE_TYPE; +import static org.apache.sling.distribution.resources.DistributionResourceTypes.DEFAULT_SERVICE_RESOURCE_TYPE; +import static org.apache.sling.distribution.resources.DistributionResourceTypes.EXPORTER_LIST_RESOURCE_TYPE; +import static org.apache.sling.distribution.resources.DistributionResourceTypes.EXPORTER_RESOURCE_TYPE; +import static org.apache.sling.distribution.resources.DistributionResourceTypes.IMPORTER_LIST_RESOURCE_TYPE; +import static org.apache.sling.distribution.resources.DistributionResourceTypes.IMPORTER_RESOURCE_TYPE; +import static org.apache.sling.distribution.resources.DistributionResourceTypes.TRIGGER_LIST_RESOURCE_TYPE; +import static org.apache.sling.distribution.resources.DistributionResourceTypes.TRIGGER_RESOURCE_TYPE; import java.util.ArrayList; import java.util.HashMap; @@ -59,7 +68,7 @@ import org.apache.sling.distribution.tri @SuppressWarnings( "serial" ) public enum DistributionComponentKind { -AGENT("agent", DistributionAgent.class, new HashMap<String, Class>() { +AGENT("agent", AGENT_RESOURCE_TYPE, AGENT_LIST_RESOURCE_TYPE, DistributionAgent.class, new HashMap<String, Class>() { { put("simple", SimpleDistributionAgentFactory.class); put("sync", SyncDistributionAgentFactory.class); @@ -69,14 +78,14 @@ public enum DistributionComponentKind { } }), -IMPORTER("importer", DistributionPackageImporter.class, new Has
svn commit: r1755269 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/packaging/impl/ main/java/org/apache/sling/distribution/util/impl/ test/java/or
Author: tommaso Date: Fri Aug 5 09:42:52 2016 New Revision: 1755269 URL: http://svn.apache.org/viewvc?rev=1755269=rev Log: SLING-5730 - patch from Simone Tripodi for improved IO performance Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/impl/ByteBufferBackedInputStream.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/impl/FileBackedMemoryOutputStream.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/util/impl/FileBackedMemoryOutputStreamTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java?rev=1755269=1755268=1755269=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java Fri Aug 5 09:42:52 2016 @@ -275,7 +275,9 @@ public class DistributionPackageUtils { } synchronized (repolock) { -resourceResolver.refresh(); +if (resourceResolver.hasChanges()) { +resourceResolver.refresh(); +} packagesRoot = ResourceUtil.getOrCreateResource(resourceResolver, packagesRootPath, "sling:Folder", "sling:Folder", true); } Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java?rev=1755269=1755268=1755269=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java Fri Aug 5 09:42:52 2016 @@ -92,7 +92,7 @@ public class ResourceDistributionPackage try { inputStream = outputStream.openWrittenDataInputStream(); -packageResource = uploadStream(packagesRoot, inputStream, outputStream.size()); +packageResource = uploadStream(resourceResolver, packagesRoot, inputStream, outputStream.size()); } finally { IOUtils.closeQuietly(inputStream); } @@ -114,7 +114,7 @@ public class ResourceDistributionPackage try { Resource packagesRoot = DistributionPackageUtils.getPackagesRoot(resourceResolver, packagesPath); -Resource packageResource = uploadStream(packagesRoot, inputStream, -1); +Resource packageResource = uploadStream(resourceResolver, packagesRoot, inputStream, -1); return new ResourceDistributionPackage(packageResource, getType(), resourceResolver); } catch (PersistenceException e) { throw new DistributionException(e); @@ -143,7 +143,7 @@ public class ResourceDistributionPackage } -Resource uploadStream(Resource parent, InputStream stream, long size) throws PersistenceException { +Resource uploadStream(ResourceResolver resourceResolver, Resource parent, InputStream stream, long size) throws PersistenceException { String name; log.debug("uploading stream"); @@ -151,17 +151,17 @@ public class ResourceDistributionPackage // stable id Map<String, Object> info = new HashMap<String, Object>(); DistributionPackageUtils.readInfo(stream, info); -log.info("read header {}", info); +log.debug("read header {}", info); Object remoteId = info.get(DistributionPackageUtils.PROPERTY_REMOTE_PACKAGE_ID); if (remoteId != null) { name = remoteId.toString(); if (name.contains("/")) { name = name.substring(name.lastIndexOf('/') + 1);
svn commit: r1755053 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java
Author: tommaso Date: Wed Aug 3 09:17:34 2016 New Revision: 1755053 URL: http://svn.apache.org/viewvc?rev=1755053=rev Log: SLING-5695 - too loud logs Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java?rev=1755053=1755052=1755053=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java Wed Aug 3 09:17:34 2016 @@ -91,10 +91,10 @@ public class FileDistributionPackageBuil Object remoteId = info.get(DistributionPackageUtils.PROPERTY_REMOTE_PACKAGE_ID); if (remoteId != null) { name = remoteId.toString(); -log.info("preserving remote id {}", name); +log.debug("preserving remote id {}", name); } else { name = "distrpck-read-" + System.nanoTime(); -log.info("generating a new id {}", name); +log.debug("generating a new id {}", name); } File file = File.createTempFile(name, "." + getType(), tempDirectory); outputStream = new BufferedOutputStream(new FileOutputStream(file));
svn commit: r1754948 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution: packaging/impl/ queue/impl/ transport/impl/
Author: tommaso Date: Tue Aug 2 15:19:41 2016 New Revision: 1754948 URL: http://svn.apache.org/viewvc?rev=1754948=rev Log: SLING-5695 - remved commented code, trivial fixes Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategy.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java?rev=1754948=1754947=1754948=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java Tue Aug 2 15:19:41 2016 @@ -37,7 +37,6 @@ import org.slf4j.LoggerFactory; public class FileDistributionPackage extends AbstractDistributionPackage { private final Logger log = LoggerFactory.getLogger(getClass()); - private final File file; public FileDistributionPackage(@Nonnull File file, @Nonnull String type) { @@ -47,7 +46,6 @@ public class FileDistributionPackage ext this.getInfo().put(DistributionPackageInfo.PROPERTY_REQUEST_TYPE, DistributionRequestType.ADD); } - @Nonnull public InputStream createInputStream() throws IOException { return new PackageInputStream(file); Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategy.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategy.java?rev=1754948=1754947=1754948=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategy.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategy.java Tue Aug 2 15:19:41 2016 @@ -38,9 +38,9 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** - * Dispatching strategy that delivers items to their target queue unless the queue contains too many items, in such a case - * a reference package is created and put into that queue while the actual package is sent using a different queue for - * storage at the receiving side so that it'll be installed only once the reference is processed. + * Dispatching strategy that delivers items to their target queue unless the queue contains too many items (beyond {@code MAX_QUEUE_ITEMS_THRESHOLD}), + * in such a case a reference package is created and put into that queue while the actual package is sent using a different + * queue for storage at the receiving side so that it'll be installed only once the reference is processed. * This guarantees delivery order while maximizing the network throughput when there're many items in the queues. */ public class AsyncDeliveryDispatchingStrategy implements DistributionQueueDispatchingStrategy { @@ -49,6 +49,7 @@ public class AsyncDeliveryDispatchingStr private final List queues; private final Map<String, String> deliveryMappings; +private final int MAX_QUEUE_ITEMS_THRESHOLD = 100; /** * create an async delivery strategy @@ -76,7 +77,7 @@ public class AsyncDeliveryDispatchingStr for (String referenceQueueName : deliveryMappings.keySet()) { DistributionQueue queue = queueProvider.getQueue(referenceQueueName); -if (queue.getStatus().getItemsCount() > 100) { +if (queue.getStatus().getItemsCount() > MAX_QUEUE_ITEMS_THRESHOLD) { // too many items in the queue, let's send actual packages and references separately distributionPackage.getInfo().put("reference-required", true); 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=175494
svn commit: r1754749 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java
Author: tommaso Date: Mon Aug 1 13:33:57 2016 New Revision: 1754749 URL: http://svn.apache.org/viewvc?rev=1754749=rev Log: SLING-5933 - make it possible to configure async delivery in forward agent Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java?rev=1754749=1754748=1754749=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java Mon Aug 1 13:33:57 2016 @@ -52,6 +52,7 @@ import org.apache.sling.distribution.que import org.apache.sling.distribution.queue.impl.AsyncDeliveryDispatchingStrategy; import org.apache.sling.distribution.queue.impl.DistributionQueueDispatchingStrategy; import org.apache.sling.distribution.queue.impl.ErrorQueueDispatchingStrategy; +import org.apache.sling.distribution.queue.impl.MultipleQueueDispatchingStrategy; import org.apache.sling.distribution.queue.impl.PriorityQueueDispatchingStrategy; import org.apache.sling.distribution.queue.impl.jobhandling.JobHandlingDistributionQueueProvider; import org.apache.sling.distribution.queue.impl.simple.SimpleDistributionQueueProvider; @@ -92,7 +93,6 @@ public class ForwardDistributionAgentFac @Property(boolValue = true, label = "Enabled", description = "Whether or not to start the distribution agent.") private static final String ENABLED = "enabled"; - @Property(label = "Service Name", description = "The name of the service used to access the repository.") private static final String SERVICE_NAME = "serviceName"; @@ -171,6 +171,9 @@ public class ForwardDistributionAgentFac ) public static final String QUEUE_PROVIDER = "queue.provider"; +@Property(boolValue = false, label = "Async delivery", description = "Whether or not to use a separate delivery queue to maximize transport throughput when queue has more than 100 items") +public static final String ASYNC_DELIVERY = "async.delivery"; + @Reference private Packaging packaging; @@ -261,14 +264,19 @@ public class ForwardDistributionAgentFac importerEndpointsMap = SettingsUtils.expandUriMap(importerEndpointsMap, queueAliases); exportQueueStrategy = dispatchingStrategy; } else { -// delivery queues' names -Map<String, String> deliveryQueues = new HashMap<String, String>(); -for (String e : endpointNames) { -deliveryQueues.put(e, "delivery-"+e); +boolean asyncDelivery = PropertiesUtil.toBoolean(config.get(ASYNC_DELIVERY), false); +if (asyncDelivery) { +// delivery queues' names +Map<String, String> deliveryQueues = new HashMap<String, String>(); +for (String e : endpointNames) { +deliveryQueues.put(e, "delivery-" + e); +} + +processingQueues.addAll(deliveryQueues.values()); +exportQueueStrategy = new AsyncDeliveryDispatchingStrategy(deliveryQueues); +} else { +exportQueueStrategy = new MultipleQueueDispatchingStrategy(endpointNames.toArray(new String[endpointNames.size()])); } - -processingQueues.addAll(deliveryQueues.values()); -exportQueueStrategy = new AsyncDeliveryDispatchingStrategy(deliveryQueues); } processingQueues.addAll(endpointNames);
svn commit: r1754735 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/packaging/impl/ main/java/org/apache/sling/distribution/queue/impl/ main/java/o
Author: tommaso Date: Mon Aug 1 11:21:08 2016 New Revision: 1754735 URL: http://svn.apache.org/viewvc?rev=1754735=rev Log: SLING-5924 - applied patch from Simone Tripodi for using direct/indirect ByteBuffer for resource package builder Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/impl/ByteBufferBackedInputStream.java (with props) Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategy.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/impl/FileBackedMemoryOutputStream.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/util/impl/FileBackedMemoryOutputStreamTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java?rev=1754735=1754734=1754735=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java Mon Aug 1 11:21:08 2016 @@ -39,6 +39,7 @@ import org.apache.sling.distribution.pac import org.apache.sling.distribution.serialization.DistributionContentSerializer; import org.apache.sling.distribution.serialization.impl.vlt.VltUtils; import org.apache.sling.distribution.util.impl.FileBackedMemoryOutputStream; +import org.apache.sling.distribution.util.impl.FileBackedMemoryOutputStream.MemoryUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -51,13 +52,22 @@ public class ResourceDistributionPackage private final File tempDirectory; private final DistributionContentSerializer distributionContentSerializer; private final int fileThreshold; +private final MemoryUnit memoryUnit; +private final boolean useOffHeapMemory; -public ResourceDistributionPackageBuilder(String type, DistributionContentSerializer distributionContentSerializer, String tempFilesFolder, int fileThreshold) { +public ResourceDistributionPackageBuilder(String type, + DistributionContentSerializer distributionContentSerializer, + String tempFilesFolder, + int fileThreshold, + MemoryUnit memoryUnit, + boolean useOffHeapMemory) { super(type); this.distributionContentSerializer = distributionContentSerializer; this.packagesPath = PREFIX_PATH + type + "/data"; this.tempDirectory = VltUtils.getTempFolder(tempFilesFolder); this.fileThreshold = fileThreshold; +this.memoryUnit = memoryUnit; +this.useOffHeapMemory = useOffHeapMemory; } @Override @@ -67,7 +77,7 @@ public class ResourceDistributionPackage FileBackedMemoryOutputStream outputStream = null; try { try { -outputStream = new FileBackedMemoryOutputStream(fileThreshold, tempDirectory, "distrpck-create-", "." + getType()); +outputStream = new FileBackedMemoryOutputStream(fileThreshold, memoryUnit, useOffHeapMemory, tempDirectory, "distrpck-create-", "." + getType()); distributionContentSerializer.exportToStream(resourceResolver, request, outputStream); outputStream.flush(); } finally { Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategy.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategy.java?rev=1754735=1754734=1754735=diff == ---
svn commit: r1754527 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl: DistributionPackageBuilderFactory.java vlt/VaultDistribution
Author: tommaso Date: Fri Jul 29 13:54:29 2016 New Revision: 1754527 URL: http://svn.apache.org/viewvc?rev=1754527=rev Log: SLING-5924 - raised the file threashold default for resource pb to 1M Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java?rev=1754527=1754526=1754527=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java Fri Jul 29 13:54:29 2016 @@ -88,8 +88,8 @@ public class DistributionPackageBuilderF @Property(label = "Temp Filesystem Folder", description = "The filesystem folder where the temporary files should be saved.") private static final String TEMP_FS_FOLDER = "tempFsFolder"; -// 128K -private static final int DEFAULT_FILE_THRESHOLD_VALUE = 1024000; +// 1M +private static final int DEFAULT_FILE_THRESHOLD_VALUE = 1024; @Property( label="File threshold (in bytes)", Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java?rev=1754527=1754526=1754527=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java Fri Jul 29 13:54:29 2016 @@ -118,8 +118,8 @@ public class VaultDistributionPackageBui @Property(label="Autosave threshold", description = "The value after which autosave is triggered for intermediate changes.", intValue = -1) public static final String AUTOSAVE_THRESHOLD = "autoSaveThreshold"; -// 128K -private static final int DEFAULT_FILE_THRESHOLD_VALUE = 1024000; +// 1M +private static final int DEFAULT_FILE_THRESHOLD_VALUE = 1024; @Property( label="File threshold (in bytes)",
svn commit: r1754498 - /sling/trunk/contrib/extensions/distribution/core/pom.xml
Author: tommaso Date: Fri Jul 29 11:58:43 2016 New Revision: 1754498 URL: http://svn.apache.org/viewvc?rev=1754498=rev Log: SLING-5913 - reverted unwanted change on pom Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/pom.xml?rev=1754498=1754497=1754498=diff == --- sling/trunk/contrib/extensions/distribution/core/pom.xml (original) +++ sling/trunk/contrib/extensions/distribution/core/pom.xml Fri Jul 29 11:58:43 2016 @@ -68,9 +68,7 @@ org.apache.sling.distribution.core -org.apache.sling.distribution.util, -org.apache.sling.distribution.common, -org.apache.sling.distribution.serialization +org.apache.sling.distribution.util org.apache.sling.event.jobs;version="[1.5.0,3.0)",org.apache.sling.event.jobs.consumer;version="[1.1,2)",org.apache.sling.jcr.api;version="2.2.0",*
svn commit: r1754497 - in /sling/trunk/contrib/extensions/distribution/core: ./ src/test/java/org/apache/sling/distribution/agent/impl/ src/test/java/org/apache/sling/distribution/packaging/impl/ src/
Author: tommaso Date: Fri Jul 29 11:57:43 2016 New Revision: 1754497 URL: http://svn.apache.org/viewvc?rev=1754497=rev Log: SLING-5913 - testcode cleanup, applying patch by Simone Tripodi Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/PrivilegeDistributionRequestAuthorizationStrategyTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/ReferencePackageTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/importer/RepositoryDistributionPackageImporterTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategyTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/trigger/impl/ScheduledDistributionTriggerTest.java Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/pom.xml?rev=1754497=1754496=1754497=diff == --- sling/trunk/contrib/extensions/distribution/core/pom.xml (original) +++ sling/trunk/contrib/extensions/distribution/core/pom.xml Fri Jul 29 11:57:43 2016 @@ -68,7 +68,9 @@ org.apache.sling.distribution.core -org.apache.sling.distribution.util +org.apache.sling.distribution.util, +org.apache.sling.distribution.common, +org.apache.sling.distribution.serialization org.apache.sling.event.jobs;version="[1.5.0,3.0)",org.apache.sling.event.jobs.consumer;version="[1.1,2)",org.apache.sling.jcr.api;version="2.2.0",* Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/PrivilegeDistributionRequestAuthorizationStrategyTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/PrivilegeDistributionRequestAuthorizationStrategyTest.java?rev=1754497=1754496=1754497=diff == --- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/PrivilegeDistributionRequestAuthorizationStrategyTest.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/PrivilegeDistributionRequestAuthorizationStrategyTest.java Fri Jul 29 11:57:43 2016 @@ -18,6 +18,9 @@ */ package org.apache.sling.distribution.agent.impl; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + import javax.jcr.Session; import javax.jcr.security.AccessControlManager; import javax.jcr.security.Privilege; @@ -28,27 +31,18 @@ import org.apache.sling.distribution.Dis import org.apache.sling.distribution.common.DistributionException; import org.junit.Test; -import static org.junit.Assert.fail; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - /** * Tests for {@link PrivilegeDistributionRequestAuthorizationStrategy} */ public class PrivilegeDistributionRequestAuthorizationStrategyTest { -@Test +@Test(expected = DistributionException.class) public void testCheckPermissionWithoutSession() throws Exception { String jcrPrivilege = "foo"; PrivilegeDistributionRequestAuthorizationStrategy strategy = new PrivilegeDistributionRequestAuthorizationStrategy(jcrPrivilege); DistributionRequest distributionRequest = mock(DistributionRequest.class); ResourceResolver resourceResolver = mock(ResourceResolver.class); -try { -strategy.checkPermission(resourceResolver, distributionRequest); -fail("permission check should fail without a Session"); -} catch (DistributionException e) { -// expected -} +strategy.checkPermission(resourceResolver, distributionRequest); } @Test @@ -62,7 +56,7 @@ public class PrivilegeDistributionReques strategy.checkPermission(resourceResolver, distributionRequest); } -@Test +@Test(expected = DistributionException.class) public void testNoPermissionOnAdd() throws Exception { String jcrPrivilege = "somePermission"; PrivilegeDistributionRequestAuthorizationStrategy strategy = new PrivilegeDistributionRequestAuthorizationStrategy(jcrPrivilege); @@ -82,12 +76
svn commit: r1754495 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/agent/impl/ main/java/org/apache/sling/distribution/common/ main/java/org/apach
Author: tommaso Date: Fri Jul 29 10:12:23 2016 New Revision: 1754495 URL: http://svn.apache.org/viewvc?rev=1754495=rev Log: SLING-5913 - code cleanup, applying patch by Simone Tripodi Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/common/DistributionException.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/common/RecoverableDistributionException.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/monitor/DistributionQueueHealthCheck.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/SimpleAgentDistributionQueue.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/component/impl/SettingsUtilsTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporterTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtilsTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpointTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransportTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java?rev=1754495=1754494=1754495=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java Fri Jul 29 10:12:23 2016 @@ -62,8 +62,6 @@ import org.apache.sling.jcr.api.SlingRep import org.apache.sling.settings.SlingSettingsService; import org.osgi.framework.BundleContext; import org.osgi.service.cm.ConfigurationAdmin; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * An OSGi service factory for {@link org.apache.sling.distribution.agent.DistributionAgent}s which references already existing OSGi services. Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/common/DistributionException.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/common/DistributionException.java?rev=1754495=1754494=1754495=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/common/DistributionException.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/common/DistributionException.java Fri Jul 29 10:12:23 2016 @@ -21,6 +21,7 @@ package org.apache.sling.distribution.co /** * Generic checked exception for distribution */ +@SuppressWarnings("serial") public class DistributionException extends Exception { public DistributionException(Throwable e) { Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/common/RecoverableDistributionException.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/common/RecoverableDistributionException.java?rev=1754495=1754494=17
svn commit: r1754420 - in /sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution: DistributionRequest.java DistributionResponse.java transport/DistributionTranspo
Author: tommaso Date: Thu Jul 28 15:06:44 2016 New Revision: 1754420 URL: http://svn.apache.org/viewvc?rev=1754420=rev Log: SLING-5913 - fixed some imports in api module too Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/DistributionRequest.java sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/DistributionResponse.java sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/transport/DistributionTransportSecret.java Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/DistributionRequest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/DistributionRequest.java?rev=1754420=1754419=1754420=diff == --- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/DistributionRequest.java (original) +++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/DistributionRequest.java Thu Jul 28 15:06:44 2016 @@ -18,12 +18,9 @@ */ package org.apache.sling.distribution; -import aQute.bnd.annotation.ProviderType; - -import javax.annotation.CheckForNull; import javax.annotation.Nonnull; -import java.util.Arrays; -import java.util.Set; + +import aQute.bnd.annotation.ProviderType; /** * A {@link org.apache.sling.distribution.DistributionRequest} represents the need from the caller to have Modified: sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/DistributionResponse.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/DistributionResponse.java?rev=1754420=1754419=1754420=diff == --- sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/DistributionResponse.java (original) +++ sling/trunk/contrib/extensions/distribution/api/src/main/java/org/apache/sling/distribution/DistributionResponse.java Thu Jul 28 15:06:44 2016 @@ -18,11 +18,10 @@ */ package org.apache.sling.distribution; -import aQute.bnd.annotation.ProviderType; - import javax.annotation.CheckForNull; import javax.annotation.Nonnull; -import javax.annotation.Nullable; + +import aQute.bnd.annotation.ProviderType; /** * A {@link org.apache.sling.distribution.DistributionResponse} represents the outcome of a 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=1754420=1754419=1754420=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 Thu Jul 28 15:06:44 2016 @@ -19,7 +19,6 @@ package org.apache.sling.distribution.transport; import javax.annotation.CheckForNull; -import java.io.InputStream; import java.util.Map; import aQute.bnd.annotation.ConsumerType;
svn commit: r1754418 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/agent/impl/ main/java/org/apache/sling/distribution/component/impl/ main/java/o
Author: tommaso Date: Thu Jul 28 14:27:26 2016 New Revision: 1754418 URL: http://svn.apache.org/viewvc?rev=1754418=rev Log: SLING-5913 - applied patch from Simone Tripodi for code cleanup Added: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/util/ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/util/impl/ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/util/impl/FileBackedMemoryOutputStreamTest.java (with props) Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/AbstractDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/QueueDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SimpleDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/SyncDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionComponentProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DefaultDistributionConfigurationManager.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentKind.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/DistributionComponentProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/OsgiConfigurationManager.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/SettingsUtils.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/log/impl/DefaultDistributionLog.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/DistributionConfigurationResourceProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/DistributionServiceResourceProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/ExtendedDistributionServiceResourceProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/OsgiUtils.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/common/AbstractReadableResourceProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/common/SimpleModifiableResource.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/common/SimpleReadableResource.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DefaultDistributionPackageBuilderProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentLogServlet.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionAgentQueueServlet.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/servlet/DistributionPackageExporterServlet.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionPackageImporterServlet.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionTriggerServlet.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/ServletJsonUtils.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpTransportUtils.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/main/java/org/apache/sling/distribution/trigger/impl/PersistedJcrEventDistributionTrigger.java Modified: sling
svn commit: r1754417 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/packaging/impl/ main/java/org/apache/sling/distribution/packaging/impl/importer
Author: tommaso Date: Thu Jul 28 14:25:06 2016 New Revision: 1754417 URL: http://svn.apache.org/viewvc?rev=1754417=rev Log: SLING-5695 - minor refactoring and testing Added: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/ReferencePackageTest.java (with props) sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategyTest.java (with props) Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ReferencePackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SharedDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java?rev=1754417=1754416=1754417=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java Thu Jul 28 14:25:06 2016 @@ -72,7 +72,7 @@ public class FileDistributionPackage ext } @Override -public void acquire(@Nonnull String[] holderNames) { +public void acquire(@Nonnull String... holderNames) { try { DistributionPackageUtils.acquire(getStatusFile(), holderNames); } catch (IOException e) { @@ -81,7 +81,7 @@ public class FileDistributionPackage ext } @Override -public void release(@Nonnull String[] holderNames) { +public void release(@Nonnull String... holderNames) { try { boolean doDelete = DistributionPackageUtils.release(getStatusFile(), holderNames); Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ReferencePackage.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ReferencePackage.java?rev=1754417=1754416=1754417=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ReferencePackage.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ReferencePackage.java Thu Jul 28 14:25:06 2016 @@ -18,6 +18,7 @@ */ package org.apache.sling.distribution.packaging.impl; +import javax.annotation.CheckForNull; import javax.annotation.Nonnull; import java.io.ByteArrayInputStream; import java.io.IOException; @@ -30,7 +31,7 @@ import org.apache.sling.distribution.pac * by its {@link DistributionPackage#getId()}. */ public class ReferencePackage extends AbstractDistributionPackage { -private static final String REFERENCE_PREFIX = "reference-"; +static final String REFERENCE_PREFIX = "reference-"; private final DistributionPackage distributionPackage; private final String reference; @@ -43,14 +44,14 @@ public class ReferencePackage extends Ab } @Override -public void acquire(@Nonnull String[] holderNames) { +public void acquire(@Nonnull String... holderNames) { if (distributionPackage instanceof AbstractDistributionPackage) { ((AbstractDistributionPackage) distributionPackage).acquire(holderNames); } } @Override -public void release(@Nonnull String[] holderNames) { +public void release(@Nonnull String... holderNames) { if (distributionPackage instanceof AbstractDistributionPackage) { ((AbstractDistributionPackage) distributionPackage).release(holderNames); } @@ -
svn commit: r1754389 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution: agent/impl/ForwardDistributionAgentFactory.java queue/impl/jobhandling/JobHandl
Author: tommaso Date: Thu Jul 28 10:28:52 2016 New Revision: 1754389 URL: http://svn.apache.org/viewvc?rev=1754389=rev Log: SLING-5695 - create an unsorted queue for async delivery Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java?rev=1754389=1754388=1754389=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java Thu Jul 28 10:28:52 2016 @@ -61,6 +61,7 @@ import org.apache.sling.event.jobs.JobMa import org.apache.sling.jcr.api.SlingRepository; import org.apache.sling.settings.SlingSettingsService; import org.osgi.framework.BundleContext; +import org.osgi.service.cm.ConfigurationAdmin; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -194,6 +195,8 @@ public class ForwardDistributionAgentFac @Reference private Scheduler scheduler; +@Reference +private ConfigurationAdmin configAdmin; @Activate protected void activate(BundleContext context, Map<String, Object> config) { @@ -232,7 +235,7 @@ public class ForwardDistributionAgentFac DistributionQueueProvider queueProvider; String queueProviderName = PropertiesUtil.toString(config.get(QUEUE_PROVIDER), JobHandlingDistributionQueueProvider.TYPE); if (JobHandlingDistributionQueueProvider.TYPE.equals(queueProviderName)) { -queueProvider = new JobHandlingDistributionQueueProvider(agentName, jobManager, context); +queueProvider = new JobHandlingDistributionQueueProvider(agentName, jobManager, context, configAdmin); } else if (SimpleDistributionQueueProvider.TYPE.equals(queueProviderName)) { queueProvider = new SimpleDistributionQueueProvider(scheduler, agentName, false); } else { Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java?rev=1754389=1754388=1754389=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java Thu Jul 28 10:28:52 2016 @@ -19,6 +19,7 @@ package org.apache.sling.distribution.queue.impl.jobhandling; import javax.annotation.Nonnull; +import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Dictionary; @@ -33,10 +34,14 @@ import org.apache.sling.distribution.que import org.apache.sling.distribution.queue.DistributionQueueProvider; import org.apache.sling.distribution.queue.DistributionQueueType; import org.apache.sling.distribution.queue.impl.CachingDistributionQueue; +import org.apache.sling.event.impl.jobs.config.ConfigurationConstants; import org.apache.sling.event.jobs.JobManager; +import org.apache.sling.event.jobs.QueueConfiguration; import org.apache.sling.event.jobs.consumer.JobConsumer; import org.osgi.framework.BundleContext; import org.osgi.framework.ServiceRegistration; +import org.osgi.service.cm.Configuration; +import org.osgi.service.cm.ConfigurationAdmin; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -59,8 +64,14 @@ public class JobHandlingDistributionQueu private BundleContext context; private Set processingQueueNames = null; +private ConfigurationAdmin configAdmin; public JobHandlingDistributionQueueProvider(String prefix, JobManager jobManager, BundleContext context) { +this(prefix, jobManager, context, null); +} + +public JobHandlingDistributionQueueProvider(String prefix, JobManager jobManager, BundleContext context, ConfigurationAdmin configAdmin) { +this.configAdmin = confi
svn commit: r1754387 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java
Author: tommaso Date: Thu Jul 28 10:23:49 2016 New Revision: 1754387 URL: http://svn.apache.org/viewvc?rev=1754387=rev Log: SLING-5695 - fixed local importer Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java?rev=1754387=1754386=1754387=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java Thu Jul 28 10:23:49 2016 @@ -102,10 +102,14 @@ public class LocalDistributionPackageImp log.info("installing from reference {}", actualPackageId); DistributionPackage distributionPackage = packageBuilder.getPackage(resourceResolver, actualPackageId); if (distributionPackage != null) { -DistributionPackageInfo packageInfo = packageBuilder.installPackage(resourceResolver, stream); -log.info("package installed {}", packageInfo); - eventFactory.generatePackageEvent(DistributionEventTopics.IMPORTER_PACKAGE_IMPORTED, DistributionComponentKind.IMPORTER, name, packageInfo); -return distributionPackage.getInfo(); +if (packageBuilder.installPackage(resourceResolver, distributionPackage)) { +DistributionPackageInfo info = distributionPackage.getInfo(); +log.info("package installed {}", info); + eventFactory.generatePackageEvent(DistributionEventTopics.IMPORTER_PACKAGE_IMPORTED, DistributionComponentKind.IMPORTER, name, info); +return info; +} else { +throw new DistributionException("could not install package {}" + distributionPackage); +} } else { throw new DistributionException("could not install package from reference " + actualPackageId); }
svn commit: r1754385 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution: packaging/impl/ packaging/impl/importer/ queue/impl/ queue/impl/simple/ seriali
Author: tommaso Date: Thu Jul 28 10:10:00 2016 New Revision: 1754385 URL: http://svn.apache.org/viewvc?rev=1754385=rev Log: SLING-5695 - fixed local importer, minor fixes, reduced too loud logs Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategy.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultContentSerializer.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java?rev=1754385=1754384=1754385=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java Thu Jul 28 10:10:00 2016 @@ -116,7 +116,6 @@ public class ResourceDistributionPackage throws DistributionException { try { distributionContentSerializer.importFromStream(resourceResolver, inputStream); - return true; } finally { IOUtils.closeQuietly(inputStream); @@ -137,7 +136,7 @@ public class ResourceDistributionPackage Resource uploadStream(Resource parent, InputStream stream, long size) throws PersistenceException { String name; -log.info("uploading stream"); +log.debug("uploading stream"); if (size == -1) { // stable id Map<String, Object> info = new HashMap<String, Object>(); @@ -157,7 +156,6 @@ public class ResourceDistributionPackage } else { name = "dstrpck-" + System.currentTimeMillis() + "-" + UUID.randomUUID().toString(); } -log.info("name ok"); Map<String, Object> props = new HashMap<String, Object>(); props.put(ResourceResolver.PROPERTY_RESOURCE_TYPE, "sling:Folder"); @@ -167,7 +165,6 @@ public class ResourceDistributionPackage props.put("size", size); } - ResourceResolver resourceResolver = parent.getResourceResolver(); Resource r = resourceResolver.getResource(parent, name); Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java?rev=1754385=1754384=1754385=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java Thu Jul 28 10:10:00 2016 @@ -101,7 +101,7 @@ public class LocalDistributionPackageImp String actualPackageId = ReferencePackage.idFromReference(reference); log.info("installing from reference {}", actualPackageId); DistributionPackage distributionPackage = packageBuilder.getPackage(resourceResolver, actualPackageId); -if (distributionPackage != null && packageBuilder.installPackage(resourceResolver, distributionPackage)) { +if (distributionPackage != null) { DistributionPackageInfo packageInfo = packageBuilder.installPackage(resourceResolver, stream); log.info("package installed {}", packageInfo); eventFactory.generatePackageEvent(DistributionEventTopics.IMPORTER_PACKAGE_IMPORTED, DistributionComponentKind.IMPORTER, name, packageInfo); Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org
svn commit: r1754361 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution: packaging/impl/ serialization/impl/ serialization/impl/vlt/ util/impl/
Author: tommaso Date: Thu Jul 28 08:18:29 2016 New Revision: 1754361 URL: http://svn.apache.org/viewvc?rev=1754361=rev Log: SLING-5730 - applied patch from Simone Tripodi for writing packages in memory below a certain size Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/util/impl/FileBackedMemoryOutputStream.java (with props) Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java?rev=1754361=1754360=1754361=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java Thu Jul 28 08:18:29 2016 @@ -19,21 +19,16 @@ package org.apache.sling.distribution.packaging.impl; -import javax.annotation.Nonnull; -import javax.jcr.RepositoryException; -import java.io.BufferedInputStream; -import java.io.BufferedOutputStream; import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.io.OutputStream; import java.util.HashMap; import java.util.Map; import java.util.UUID; -import org.apache.commons.io.FileUtils; +import javax.annotation.Nonnull; +import javax.jcr.RepositoryException; + import org.apache.commons.io.IOUtils; import org.apache.sling.api.resource.PersistenceException; import org.apache.sling.api.resource.Resource; @@ -43,6 +38,7 @@ import org.apache.sling.distribution.com import org.apache.sling.distribution.packaging.DistributionPackage; import org.apache.sling.distribution.serialization.DistributionContentSerializer; import org.apache.sling.distribution.serialization.impl.vlt.VltUtils; +import org.apache.sling.distribution.util.impl.FileBackedMemoryOutputStream; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -54,28 +50,24 @@ public class ResourceDistributionPackage private final String packagesPath; private final File tempDirectory; private final DistributionContentSerializer distributionContentSerializer; +private final int fileThreshold; -public ResourceDistributionPackageBuilder(String type, DistributionContentSerializer distributionContentSerializer, String tempFilesFolder) { +public ResourceDistributionPackageBuilder(String type, DistributionContentSerializer distributionContentSerializer, String tempFilesFolder, int fileThreshold) { super(type); this.distributionContentSerializer = distributionContentSerializer; this.packagesPath = PREFIX_PATH + type + "/data"; this.tempDirectory = VltUtils.getTempFolder(tempFilesFolder); - +this.fileThreshold = fileThreshold; } @Override protected DistributionPackage createPackageForAdd(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionRequest request) throws DistributionException { DistributionPackage distributionPackage; -// TODO : write to file if size > threshold -File file = null; +FileBackedMemoryOutputStream outputStream = null; try { -file = File.createTempFile("distrpck-create-" + System.nanoTime(), "." + getType(), tempDirectory); - -OutputStream outputStream = null; - try { -outputStream = new BufferedOutputStream(new FileOutputStream(file)); +outputStream = new FileBackedMemoryOutputStream(fileThreshold, tempDirectory, "distrpck-create-", "." + getType()); distributionContentSerializer.exportToStream(resourceResolver, request, outputStream); outputStream.flush(); } finally { @@ -88,9 +80,9 @@ public class ResourceDistributionPackage Resource packageResource = null; try { -inputStream = new BufferedInputStream(new FileInputStream(file)); +inputStream = outputStream.openWritten
svn commit: r1754277 [1/2] - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/agent/impl/ main/java/org/apache/sling/distribution/component/impl/ main/
Author: tommaso Date: Wed Jul 27 14:27:54 2016 New Revision: 1754277 URL: http://svn.apache.org/viewvc?rev=1754277=rev Log: SLING-5695 - async delivery when normal queue has too many items Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ReferencePackage.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueType.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/AsyncDeliveryDispatchingStrategy.java (with props) Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.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/component/impl/DefaultDistributionConfigurationManager.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/DistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageUtils.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporter.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueue.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueueProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/CachingDistributionQueue.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/MultipleQueueDispatchingStrategy.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/SimpleAgentDistributionQueue.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueue.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingUtils.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueue.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/DistributionConfigurationResourceProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/ExtendedDistributionServiceResourceProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/common/SimpleReadableResourceIterator.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/HttpTransportUtils.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl
svn commit: r1754277 [2/2] - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/agent/impl/ main/java/org/apache/sling/distribution/component/impl/ main/
Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueTest.java?rev=1754277=1754276=1754277=diff == --- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueTest.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueTest.java Wed Jul 27 14:27:54 2016 @@ -27,6 +27,7 @@ import org.apache.sling.distribution.que import org.apache.sling.distribution.queue.DistributionQueueItem; import org.apache.sling.distribution.queue.DistributionQueueItemState; import org.apache.sling.distribution.queue.DistributionQueueItemStatus; +import org.apache.sling.distribution.queue.DistributionQueueType; import org.apache.sling.event.jobs.Job; import org.apache.sling.event.jobs.JobBuilder; import org.apache.sling.event.jobs.JobManager; @@ -58,7 +59,7 @@ public class JobHandlingDistributionQueu when(jobManager.createJob(topic)).thenReturn(builder); when(jobManager.findJobs(JobManager.QueryType.ALL, topic, -1)).thenReturn(Collections.emptySet()); when(builder.properties(any(Map.class))).thenReturn(builder); -DistributionQueue queue = new JobHandlingDistributionQueue("aname", topic, jobManager, true); +DistributionQueue queue = new JobHandlingDistributionQueue("aname", topic, jobManager, true, DistributionQueueType.ORDERED); DistributionPackageInfo packageInfo = new DistributionPackageInfo("type"); packageInfo.put(DistributionPackageInfo.PROPERTY_REQUEST_PATHS, new String[]{"/foo"}); packageInfo.put(DistributionPackageInfo.PROPERTY_REQUEST_TYPE, DistributionRequestType.ADD); @@ -80,7 +81,7 @@ public class JobHandlingDistributionQueu when(jobManager.createJob(topic)).thenReturn(builder); when(jobManager.getJobById(anyString())).thenReturn(job); when(builder.properties(any(Map.class))).thenReturn(builder); -DistributionQueue queue = new JobHandlingDistributionQueue("aname", topic, jobManager, true); +DistributionQueue queue = new JobHandlingDistributionQueue("aname", topic, jobManager, true, DistributionQueueType.ORDERED); DistributionPackageInfo packageInfo = new DistributionPackageInfo("type"); packageInfo.put(DistributionPackageInfo.PROPERTY_REQUEST_PATHS, new String[]{"/foo"}); packageInfo.put(DistributionPackageInfo.PROPERTY_REQUEST_TYPE, DistributionRequestType.ADD);
svn commit: r1753527 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/OsgiConfigurationManager.java
Author: tommaso Date: Wed Jul 20 14:46:38 2016 New Revision: 1753527 URL: http://svn.apache.org/viewvc?rev=1753527=rev Log: This closes #154 commit d24ef381afdc4d4c93378694772c9afe53e45ba9 Author: tmaret <tma...@adobe.com> Date: 2016-07-20T07:02:52Z SLING-5872 - Management of agent configurations must identify configurations by name Remove the agents with the same name wich are not bind to the same factory Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/OsgiConfigurationManager.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/OsgiConfigurationManager.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/OsgiConfigurationManager.java?rev=1753527=1753526=1753527=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/OsgiConfigurationManager.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/OsgiConfigurationManager.java Wed Jul 20 14:46:38 2016 @@ -32,6 +32,7 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.Dictionary; +import java.util.Iterator; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -39,13 +40,11 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; /** - * Created by mpetria on 5/31/16. + * Manager implementation which represents the distribution configurations as OSGI configuration. */ public class OsgiConfigurationManager implements DistributionConfigurationManager { -private final Logger log = LoggerFactory.getLogger(getClass()); - - final ConfigurationAdmin configurationAdmin; +private final Logger log = LoggerFactory.getLogger(getClass()); public OsgiConfigurationManager(ConfigurationAdmin configurationAdmin) { @@ -57,7 +56,7 @@ public class OsgiConfigurationManager im List configurations = getOsgiConfigurations(kind, null); List result = new ArrayList(); -if (configurations == null || configurations.size() == 0) { +if (configurations == null || configurations.isEmpty()) { return result; } @@ -78,10 +77,15 @@ public class OsgiConfigurationManager im public DistributionConfiguration getConfig(ResourceResolver resolver, DistributionComponentKind kind, String name) { List configurations = getOsgiConfigurations(kind, name); -if (configurations == null || configurations.size() == 0) { +if (configurations == null || configurations.isEmpty()) { return null; } +if (configurations.size() > 1) { +log.warn("Found more than one configuration of kind: {} and with name: {}", +new String[]{kind.getName(), name}); +} + Configuration configuration = configurations.get(0); if (configuration != null) { @@ -111,6 +115,18 @@ public class OsgiConfigurationManager im String factoryPid = componentKind.getFactory(componentType); if (factoryPid != null) { + +// SLING-5872 - Management of agent configurations must identify configurations by name +// Remove the agents with the same name wich are not bind to the same factory. +List configs = getOsgiConfigurations(componentKind, componentName); +for (Iterator iter = configs.iterator() ; iter.hasNext() ; ) { +Configuration conf = iter.next(); +if (factoryPid.equals(conf.getFactoryPid())) { +iter.remove(); +} +} +deleteOsgiConfigs(configs); + properties.put(DistributionComponentConstants.PN_NAME, componentName); Configuration configuration = saveOsgiConfig(factoryPid, componentName, properties); } @@ -157,7 +173,7 @@ public class OsgiConfigurationManager im try { List configurations = getOsgiConfigurationsFromFactory(factoryPid, componentName); Configuration configuration = null; -if (configurations == null || configurations.size() == 0) { +if (configurations == null || configurations.isEmpty()) { configuration = configurationAdmin.createFactoryConfiguration(factoryPid); } else { configuration = configurations.get(0);
svn commit: r1753517 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution: component/impl/ResourceConfigurationManager.java resources/impl/common/Abstract
Author: tommaso Date: Wed Jul 20 13:56:59 2016 New Revision: 1753517 URL: http://svn.apache.org/viewvc?rev=1753517=rev Log: This closes #155 commit 419d686f1ab0828171e0a9eb245a026e5b443875 Author: tmaret <tma...@adobe.com> Date: 2016-07-20T07:11:58Z SLING-5875 - Distribution resource configuration manager does update resources Use the content resource node if it exists already Fix the infinite recursion of commit calls Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/ResourceConfigurationManager.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/common/AbstractModifyingResourceProvider.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/ResourceConfigurationManager.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/ResourceConfigurationManager.java?rev=1753517=1753516=1753517=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/ResourceConfigurationManager.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/component/impl/ResourceConfigurationManager.java Wed Jul 20 13:56:59 2016 @@ -33,13 +33,14 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +/** + * Manager implementation which represents the distribution configurations as resources. + */ public class ResourceConfigurationManager implements DistributionConfigurationManager { -private final Logger log = LoggerFactory.getLogger(getClass()); - - final String CONTENT_NODE = "jcr:content"; final String configRootPath; +private final Logger log = LoggerFactory.getLogger(getClass()); private final String[] configProperties; private final Map<String, String> configDefaults; @@ -100,7 +101,9 @@ public class ResourceConfigurationManage } Resource configResource = configRoot.getChild(config.getName()); -Resource contentResource = null; +Resource contentResource = (configResource != null) +? configResource.getChild(CONTENT_NODE) +: null ; try { if (configResource == null) { @@ -121,7 +124,6 @@ public class ResourceConfigurationManage ModifiableValueMap valueMap = contentResource.adaptTo(ModifiableValueMap.class); valueMap.putAll(properties); -resolver.commit(); } catch (PersistenceException e) { log.error("cannot save config {}", config.getName(), e); } Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/common/AbstractModifyingResourceProvider.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/common/AbstractModifyingResourceProvider.java?rev=1753517=1753516=1753517=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/common/AbstractModifyingResourceProvider.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/resources/impl/common/AbstractModifyingResourceProvider.java Wed Jul 20 13:56:59 2016 @@ -96,6 +96,7 @@ public abstract class AbstractModifyingR saveInternalResources(resolver, changedResources, deletedResources); reset(); +resolver.commit(); } public boolean hasChanges(ResourceResolver resolver) {
svn commit: r1753341 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/agent/impl/ main/java/org/apache/sling/distribution/packaging/impl/importer/ te
Author: tommaso Date: Tue Jul 19 07:20:24 2016 New Revision: 1753341 URL: http://svn.apache.org/viewvc?rev=1753341=rev Log: This closes #152 commit 4151cda6cb741ceaa0975ec0180fedf7ce75434c Author: tmaret <tma...@adobe.com> Date: 2016-07-15T14:42:35Z SLING-5849 - Inconsistent event handling between local package importer and its factory Generate Package Events in the package importer instead of the factory Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java?rev=1753341=1753340=1753341=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ReverseDistributionAgentFactory.java Tue Jul 19 07:20:24 2016 @@ -54,8 +54,6 @@ import org.apache.sling.event.jobs.JobMa import org.apache.sling.jcr.api.SlingRepository; import org.apache.sling.settings.SlingSettingsService; import org.osgi.framework.BundleContext; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * An OSGi service factory for "reverse agents" that pull resources from remote instances (e.g. from "queueing agents"). @@ -74,8 +72,6 @@ import org.slf4j.LoggerFactory; bind = "bindDistributionTrigger", unbind = "unbindDistributionTrigger") @Property(name="webconsole.configurationFactory.nameHint", value="Agent name: {name}") public class ReverseDistributionAgentFactory extends AbstractDistributionAgentFactory { -private final Logger log = LoggerFactory.getLogger(getClass()); - @Property(label = "Name", description = "The name of the agent.") public static final String NAME = DistributionComponentConstants.PN_NAME; @@ -183,16 +179,13 @@ public class ReverseDistributionAgentFac String serviceName = PropertiesUtil.toString(config.get(SERVICE_NAME), null); boolean queueProcessingEnabled = PropertiesUtil.toBoolean(config.get(QUEUE_PROCESSING_ENABLED), true); - String[] exporterEndpoints = PropertiesUtil.toStringArray(config.get(EXPORTER_ENDPOINTS), new String[0]); exporterEndpoints = SettingsUtils.removeEmptyEntries(exporterEndpoints); - int pullItems = PropertiesUtil.toInteger(config.get(PULL_ITEMS), Integer.MAX_VALUE); - DistributionPackageExporter packageExporter = new RemoteDistributionPackageExporter(distributionLog, packageBuilder, transportSecretProvider, exporterEndpoints, pullItems); -DistributionPackageImporter packageImporter = new LocalDistributionPackageImporter(packageBuilder); +DistributionPackageImporter packageImporter = new LocalDistributionPackageImporter(agentName, distributionEventFactory, packageBuilder); DistributionQueueProvider queueProvider = new JobHandlingDistributionQueueProvider(agentName, jobManager, context); DistributionQueueDispatchingStrategy exportQueueStrategy = new SingleQueueDispatchingStrategy(); @@ -207,6 +200,5 @@ public class ReverseDistributionAgentFac serviceName, packageImporter, packageExporter, requestAuthorizationStrategy, queueProvider, exportQueueStrategy, importQueueStrategy, distributionEventFactory, resourceResolverFactory, slingRepository, distributionLog, allowedRequests, null, 0); - } } Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java?rev=1753341=1753340=1753341=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/a
svn commit: r1751462 - /sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java
Author: tommaso Date: Tue Jul 5 13:04:36 2016 New Revision: 1751462 URL: http://svn.apache.org/viewvc?rev=1751462=rev Log: SLING-5823 - Kryo instance not cached anymore Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java?rev=1751462=1751461=1751462=diff == --- sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java (original) +++ sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java Tue Jul 5 13:04:36 2016 @@ -58,15 +58,12 @@ public class KryoContentSerializer imple private final Logger log = LoggerFactory.getLogger(getClass()); private final String name; -private final Kryo kryo = new Kryo(); private final Set ignoredProperties; private final Set ignoredNodeNames; public KryoContentSerializer(String name) { this.name = name; -kryo.setInstantiatorStrategy(new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy())); -kryo.addDefaultSerializer(Resource.class, new ResourceSerializer()); -kryo.addDefaultSerializer(InputStream.class, new InputStreamSerializer()); + Set iProps = new HashSet(); iProps.add(JcrConstants.JCR_FROZENMIXINTYPES); iProps.add(JcrConstants.JCR_FROZENPRIMARYTYPE); @@ -87,6 +84,10 @@ public class KryoContentSerializer imple @Override public void exportToStream(ResourceResolver resourceResolver, DistributionRequest request, OutputStream outputStream) throws DistributionException { +Kryo kryo = new Kryo(); +kryo.setInstantiatorStrategy(new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy())); +kryo.addDefaultSerializer(Resource.class, new ResourceSerializer()); +kryo.addDefaultSerializer(InputStream.class, new InputStreamSerializer()); String[] paths = request.getPaths(); Output output = new Output(outputStream); LinkedList resources = new LinkedList(); @@ -103,6 +104,10 @@ public class KryoContentSerializer imple @Override public void importFromStream(ResourceResolver resourceResolver, InputStream stream) throws DistributionException { +Kryo kryo = new Kryo(); +kryo.setInstantiatorStrategy(new Kryo.DefaultInstantiatorStrategy(new StdInstantiatorStrategy())); +kryo.addDefaultSerializer(Resource.class, new ResourceSerializer()); +kryo.addDefaultSerializer(InputStream.class, new InputStreamSerializer()); try { Input input = new Input(stream); LinkedList resources = (LinkedList) kryo.readObject(input, LinkedList.class);
svn commit: r1751459 - in /sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl: avro/AvroContentSerializer.java kryo/KryoContentSerial
Author: tommaso Date: Tue Jul 5 12:29:51 2016 New Revision: 1751459 URL: http://svn.apache.org/viewvc?rev=1751459=rev Log: SLING-5822 - added getFilters(path) handling in avro and kyro serializers Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java?rev=1751459=1751458=1751459=diff == --- sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java (original) +++ sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java Tue Jul 5 12:29:51 2016 @@ -36,6 +36,7 @@ import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.regex.Pattern; import org.apache.avro.Schema; import org.apache.avro.file.DataFileReader; @@ -110,7 +111,7 @@ public class AvroContentSerializer imple try { for (String path : request.getPaths()) { Resource resource = resourceResolver.getResource(path); -AvroShallowResource avroShallowResource = getAvroShallowResource(request.isDeep(path), path, resource); +AvroShallowResource avroShallowResource = getAvroShallowResource(request, path, resource); writer.append(avroShallowResource); } outputStream.flush(); @@ -144,7 +145,7 @@ public class AvroContentSerializer imple return name; } -private AvroShallowResource getAvroShallowResource(boolean deep, String path, Resource resource) throws IOException { +private AvroShallowResource getAvroShallowResource(DistributionRequest request, String path, Resource resource) throws IOException { AvroShallowResource avroShallowResource = new AvroShallowResource(); avroShallowResource.setName("avro_" + System.nanoTime()); avroShallowResource.setPath(path); @@ -167,11 +168,20 @@ public class AvroContentSerializer imple } avroShallowResource.setValueMap(map); List children = new LinkedList(); +boolean deep = request.isDeep(path); +String[] filters = request.getFilters(path); if (deep) { for (Resource child : resource.getChildren()) { String childPath = child.getPath(); if (!ignoredNodeNames.contains(child.getName())) { -children.add(getAvroShallowResource(true, childPath, child)); +children.add(getAvroShallowResource(request, childPath, child)); +} +} +} else { +for (Resource child : resource.getChildren()) { +String childPath = child.getPath(); +if (filtersAllow(filters, childPath) && !ignoredNodeNames.contains(child.getName())) { +children.add(getAvroShallowResource(request, childPath, child)); } } } @@ -179,6 +189,25 @@ public class AvroContentSerializer imple return avroShallowResource; } +private boolean filtersAllow(String[] filters, String path) { +boolean allowed = false; +for (String pattern : filters) { +if (pattern.startsWith("+")) { +if (Pattern.compile(pattern.substring(1)).matcher(path).matches()) { +allowed = true; +} +} else if (pattern.startsWith("-")) { +if (Pattern.compile(pattern.substring(1)).matcher(path).matches()) { +allowed = false; +} +} else { +allowed = Pattern.compile(pattern).matcher(path).matches(); +} +} +return allowed; +} + + private Collection readAvroResources(byte[] bytes) throws IOException { DatumReader datumReader = new SpecificDatumReader(AvroShallowResource.class); DataFileReader dataFileReader = new DataFileReader(new SeekableByteArrayInput(bytes), datumReader); Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java URL: http://svn.apache.org/viewvc/sling
svn commit: r1751343 - in /sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl: avro/AvroContentSerializer.java kryo/KryoContentSerial
Author: tommaso Date: Mon Jul 4 16:54:27 2016 New Revision: 1751343 URL: http://svn.apache.org/viewvc?rev=1751343=rev Log: DataFileWriter should not be reused across requests, moving created resource log to debug Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java?rev=1751343=1751342=1751343=diff == --- sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java (original) +++ sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java Mon Jul 4 16:54:27 2016 @@ -67,15 +67,12 @@ public class AvroContentSerializer imple private final Logger log = LoggerFactory.getLogger(getClass()); private final String name; -private final DataFileWriter dataFileWriter; private final Schema schema; private final Set ignoredProperties; private final Set ignoredNodeNames; private final SimpleDateFormat dateFormat = new SimpleDateFormat("-MM-dd'T'hh:mm:ss.sss+hh:mm"); public AvroContentSerializer(String name) { -DatumWriter datumWriter = new SpecificDatumWriter(AvroShallowResource.class); -this.dataFileWriter = new DataFileWriter(datumWriter); try { schema = new Schema.Parser().parse(getClass().getResourceAsStream("/shallowresource.avsc")); } catch (IOException e) { @@ -102,22 +99,21 @@ public class AvroContentSerializer imple @Override public void exportToStream(ResourceResolver resourceResolver, DistributionRequest request, OutputStream outputStream) throws DistributionException { -DataFileWriter writer; +DatumWriter datumWriter = new SpecificDatumWriter(AvroShallowResource.class); +DataFileWriter writer = new DataFileWriter(datumWriter); try { -writer = dataFileWriter.create(schema, outputStream); +writer.create(schema, outputStream); } catch (IOException e) { throw new DistributionException(e); } try { - for (String path : request.getPaths()) { Resource resource = resourceResolver.getResource(path); AvroShallowResource avroShallowResource = getAvroShallowResource(request.isDeep(path), path, resource); writer.append(avroShallowResource); } outputStream.flush(); - } catch (Exception e) { throw new DistributionException(e); } finally { @@ -127,7 +123,6 @@ public class AvroContentSerializer imple // do nothing } } - } @Override @@ -237,7 +232,7 @@ public class AvroContentSerializer imple parent = createParent(resourceResolver, parentPath); } Resource createdResource = resourceResolver.create(parent, name, map); -log.info("created resource {}", createdResource); +log.debug("created resource {}", createdResource); for (AvroShallowResource child : r.getChildren()) { persistResource(createdResource.getResourceResolver(), child); } Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java?rev=1751343=1751342=1751343=diff == --- sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java (original) +++ sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoContentSerializer.java Mon Jul 4 16:54:27 2016 @@ -134,7 +134,7 @@ public class KryoContentSerializer imple parent = createParent(resourceResolver, parentPath); } Resource createdResource = resourceResolver.create(parent, name, resource.getValueMap()); -log.inf
svn commit: r1750795 - /sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java
Author: tommaso Date: Thu Jun 30 13:16:10 2016 New Revision: 1750795 URL: http://svn.apache.org/viewvc?rev=1750795=rev Log: SLING-5817 - data file reader is always closed Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java?rev=1750795=1750794=1750795=diff == --- sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java (original) +++ sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroContentSerializer.java Thu Jun 30 13:16:10 2016 @@ -187,14 +187,18 @@ public class AvroContentSerializer imple private Collection readAvroResources(byte[] bytes) throws IOException { DatumReader datumReader = new SpecificDatumReader(AvroShallowResource.class); DataFileReader dataFileReader = new DataFileReader(new SeekableByteArrayInput(bytes), datumReader); -AvroShallowResource avroResource = null; Collection avroResources = new LinkedList(); -while (dataFileReader.hasNext()) { +try { +AvroShallowResource avroResource = null; +while (dataFileReader.hasNext()) { // Reuse avroResource object by passing it to next(). This saves us from // allocating and garbage collecting many objects for files with // many items. -avroResource = dataFileReader.next(avroResource); -avroResources.add(avroResource); +avroResource = dataFileReader.next(avroResource); +avroResources.add(avroResource); +} +} finally { +dataFileReader.close(); } return avroResources; }
svn commit: r1750344 [2/2] - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/agent/impl/ main/java/org/apache/sling/distribution/component/impl/ main/
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DefaultDistributionPackageBuilderProvider.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DefaultDistributionPackageBuilderProvider.java?rev=1750344=1750343=1750344=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DefaultDistributionPackageBuilderProvider.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DefaultDistributionPackageBuilderProvider.java Mon Jun 27 14:11:06 2016 @@ -26,8 +26,8 @@ import org.apache.felix.scr.annotations. import org.apache.sling.distribution.component.impl.DistributionComponent; import org.apache.sling.distribution.component.impl.DistributionComponentKind; import org.apache.sling.distribution.component.impl.DistributionComponentProvider; -import org.apache.sling.distribution.serialization.DistributionPackageBuilder; -import org.apache.sling.distribution.serialization.DistributionPackageBuilderProvider; +import org.apache.sling.distribution.packaging.DistributionPackageBuilder; +import org.apache.sling.distribution.packaging.DistributionPackageBuilderProvider; @Component @Service(DistributionPackageBuilderProvider.class) Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java?rev=1750344=1750343=1750344=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageBuilderFactory.java Mon Jun 27 14:11:06 2016 @@ -36,10 +36,12 @@ import org.apache.sling.distribution.Dis import org.apache.sling.distribution.common.DistributionException; import org.apache.sling.distribution.component.impl.DistributionComponentConstants; import org.apache.sling.distribution.component.impl.SettingsUtils; -import org.apache.sling.distribution.serialization.DistributionPackage; -import org.apache.sling.distribution.serialization.DistributionPackageBuilder; +import org.apache.sling.distribution.packaging.DistributionPackage; +import org.apache.sling.distribution.packaging.DistributionPackageBuilder; +import org.apache.sling.distribution.packaging.impl.FileDistributionPackageBuilder; +import org.apache.sling.distribution.packaging.impl.ResourceDistributionPackageBuilder; import org.apache.sling.distribution.serialization.DistributionContentSerializer; -import org.apache.sling.distribution.serialization.DistributionPackageInfo; +import org.apache.sling.distribution.packaging.DistributionPackageInfo; /** * A factory for package builders Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultContentSerializer.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultContentSerializer.java?rev=1750344=1750343=1750344=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultContentSerializer.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/FileVaultContentSerializer.java Mon Jun 27 14:11:06 2016 @@ -43,7 +43,7 @@ import org.apache.sling.api.resource.Res import org.apache.sling.distribution.DistributionRequest; import org.apache.sling.distribution.common.DistributionException; import org.apache.sling.distribution.serialization.DistributionContentSerializer; -import org.apache.sling.distribution.serialization.impl.FileDistributionPackage; +import org.apache.sling.distribution.packaging.impl.FileDistributionPackage; import org.apache.sling.distribution.util.DistributionJcrUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/vlt/VaultDistributionPackageBuilderFactory.java URL:
svn commit: r1750344 [1/2] - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/agent/impl/ main/java/org/apache/sling/distribution/component/impl/ main/
Author: tommaso Date: Mon Jun 27 14:11:06 2016 New Revision: 1750344 URL: http://svn.apache.org/viewvc?rev=1750344=rev Log: SLING-5815 - moving DistributionPackage and related APIs in packaging package Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/DistributionPackage.java - copied, changed from r1750297, sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageBuilder.java - copied, changed from r1750297, sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageBuilderProvider.java - copied, changed from r1750297, sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionPackageBuilderProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageInfo.java - copied, changed from r1750297, sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionPackageInfo.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackage.java - copied, changed from r1750297, sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/AbstractDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/AbstractDistributionPackageBuilder.java - copied, changed from r1750297, sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/AbstractDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/DistributionPackageWrapper.java - copied, changed from r1750297, sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/DistributionPackageWrapper.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackage.java - copied, changed from r1750297, sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/FileDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/FileDistributionPackageBuilder.java - copied, changed from r1750297, sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/FileDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackage.java - copied, changed from r1750297, sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/ResourceDistributionPackageBuilder.java - copied, changed from r1750297, sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SharedDistributionPackage.java - copied, changed from r1750297, sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/SharedDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackage.java - copied, changed from r1750297, sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/SimpleDistributionPackage.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/SimpleDistributionPackageTest.java - copied, changed from r1750297, sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/serialization/impl/SimpleDistributionPackageTest.java Removed: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionPackage.java sling/trunk/contrib/extensions
svn commit: r1748564 - /sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProviderTest.java
Author: tommaso Date: Wed Jun 15 12:02:35 2016 New Revision: 1748564 URL: http://svn.apache.org/viewvc?rev=1748564=rev Log: SLING-5789 - checkpointing directories should be pruned at the end of the tests Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProviderTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProviderTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProviderTest.java?rev=1748564=1748563=1748564=diff == --- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProviderTest.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProviderTest.java Wed Jun 15 12:02:35 2016 @@ -19,7 +19,6 @@ package org.apache.sling.distribution.queue.impl.simple; import java.io.File; -import java.util.Map; import org.apache.commons.io.FileUtils; import org.apache.sling.commons.scheduler.ScheduleOptions; @@ -30,9 +29,7 @@ import org.apache.sling.distribution.que import org.apache.sling.distribution.queue.DistributionQueueProcessor; import org.junit.Test; -import static org.junit.Assert.assertArrayEquals; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.*; import static org.mockito.Matchers.any; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -44,16 +41,23 @@ public class SimpleDistributionQueueProv @Test public void testGetOrCreateQueue() throws Exception { -SimpleDistributionQueueProvider simpledistributionQueueProvider = new SimpleDistributionQueueProvider(mock(Scheduler.class), "agentName", false); +SimpleDistributionQueueProvider simpledistributionQueueProvider = new SimpleDistributionQueueProvider(mock(Scheduler.class), +"agentName", false); DistributionQueue queue = simpledistributionQueueProvider.getQueue("default"); assertNotNull(queue); } @Test public void testGetOrCreateQueueWithCheckpointing() throws Exception { -SimpleDistributionQueueProvider simpledistributionQueueProvider = new SimpleDistributionQueueProvider(mock(Scheduler.class), "agentName", true); -DistributionQueue queue = simpledistributionQueueProvider.getQueue("default"); -assertNotNull(queue); +String name = "agentName"; +try { +SimpleDistributionQueueProvider simpledistributionQueueProvider = new SimpleDistributionQueueProvider(mock(Scheduler.class), +name, true); +DistributionQueue queue = simpledistributionQueueProvider.getQueue("default"); +assertNotNull(queue); +} finally { +new File(name + "-simple-queues-checkpoints").deleteOnExit(); +} } @Test @@ -63,7 +67,9 @@ public class SimpleDistributionQueueProv when(scheduler.NOW(-1, 1)).thenReturn(options); when(options.canRunConcurrently(false)).thenReturn(options); when(options.name(any(String.class))).thenReturn(options); -SimpleDistributionQueueProvider simpledistributionQueueProvider = new SimpleDistributionQueueProvider(scheduler, "dummy-agent", false); +String name = "dummy-agent"; +SimpleDistributionQueueProvider simpledistributionQueueProvider = new SimpleDistributionQueueProvider(scheduler, +name, false); DistributionQueueProcessor processor = mock(DistributionQueueProcessor.class); simpledistributionQueueProvider.enableQueueProcessing(processor); } @@ -80,37 +86,48 @@ public class SimpleDistributionQueueProv when(scheduler.NOW(-1, 15)).thenReturn(options); when(options.canRunConcurrently(false)).thenReturn(options); when(options.name(any(String.class))).thenReturn(options); -SimpleDistributionQueueProvider simpledistributionQueueProvider = new SimpleDistributionQueueProvider(scheduler, "dummy-agent", true); -DistributionQueueProcessor processor = mock(DistributionQueueProcessor.class); -simpledistributionQueueProvider.enableQueueProcessing(processor, "dummy-agent"); -DistributionQueue queue = simpledistributionQueueProvider.getQueue("dummy-agent"); -assertNotNull(queue); -assertEquals(1, queue.getStatus().getItemsCount()); -DistributionQueueEntry
svn commit: r1746263 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/transport/impl/ test/java/org/apache/sling/distribution/transport/impl/
Author: tommaso Date: Tue May 31 10:56:06 2016 New Revision: 1746263 URL: http://svn.apache.org/viewvc?rev=1746263=rev Log: SLING-5752 - re-enabled SimpleHttpDistributionTransportTest Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransportTest.java 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=1746263=1746262=1746263=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 May 31 10:56:06 2016 @@ -124,18 +124,12 @@ public class SimpleHttpDistributionTrans @Nullable public RemoteDistributionPackage retrievePackage(@Nonnull ResourceResolver resourceResolver, @Nonnull DistributionRequest distributionRequest, @Nonnull DistributionTransportContext distributionContext) throws DistributionException { log.debug("pulling from {}", distributionEndpoint.getUri()); -List result = new ArrayList(); - try { URI distributionURI = RequestUtils.appendDistributionRequest(distributionEndpoint.getUri(), distributionRequest); -// TODO : executor should be cached and reused - Executor executor = getExecutor(distributionContext); -//Request req = Request.Post(distributionURI).useExpectContinue(); - // TODO : add queue parameter InputStream inputStream = HttpTransportUtils.fetchNextPackage(executor, distributionURI); 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=1746263=1746262=1746263=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 May 31 10:56:06 2016 @@ -36,11 +36,10 @@ import org.apache.sling.distribution.Dis import org.apache.sling.distribution.SimpleDistributionRequest; import org.apache.sling.distribution.log.impl.DefaultDistributionLog; import org.apache.sling.distribution.serialization.DistributionPackage; -import org.apache.sling.distribution.serialization.DistributionPackageInfo; import org.apache.sling.distribution.serialization.DistributionPackageBuilder; +import org.apache.sling.distribution.serialization.DistributionPackageInfo; import org.apache.sling.distribution.transport.DistributionTransportSecret; import org.apache.sling.distribution.transport.DistributionTransportSecretProvider; -import org.junit.Ignore; import org.junit.Test; import static org.junit.Assert.assertNotNull; @@ -52,7 +51,6 @@ import static org.mockito.Mockito.when; /** * Testcase for {@link SimpleHttpDistributionTransport} */ -@Ignore public class SimpleHttpDistributionTransportTest { @Test @@ -77,7 +75,10 @@ public class SimpleHttpDistributionTrans when(distributionPackage.getInfo()).thenReturn(new DistributionPackageInfo("type")); InputStream stream = mock(InputStream.class); when(distributionPackage.createInputStream()).thenReturn(stream); -simpleHttpDistributionTransport.deliverPackage(resourceResolver, distributionPackage, new DistributionTransportContext()); +DistributionTransportContext distributionContext = mock(DistributionTransportContext.class); +when(distributionContext.get(any(String.class), any(Class.class))).thenReturn(executor); + when(distributionContext.containsKey(any(String.class))).thenReturn(true); +simpleHttpDistributionTransport.deliverPackage(resourceResolver, distributionPackage, distributionContext); } @Test @@ -139,7 +140,11 @@ public class SimpleHttpDistributionTrans endpoint, packageBuilder, secretProvider);
svn commit: r1746247 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java
Author: tommaso Date: Tue May 31 07:36:58 2016 New Revision: 1746247 URL: http://svn.apache.org/viewvc?rev=1746247=rev Log: This closes #144 commit e876de40c51cbcbc2f0aac41f3e0607b7c0c6ca2 Author: tmaret <tma...@adobe.com> Date: 2016-05-30T15:34:30Z SLING-5752 - SimpleHttpDistributionTransport does not leverage configured scheme from distribution endpoint Pass scheme from distribution endpoint when building Executor's HttpHost Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/transport/impl/SimpleHttpDistributionTransport.java 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=1746247=1746246=1746247=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 May 31 07:36:58 2016 @@ -160,9 +160,10 @@ public class SimpleHttpDistributionTrans private Executor authenticate(DistributionTransportSecret secret, Executor executor) { Map<String, String> credentialsMap = secret.asCredentialsMap(); if (credentialsMap != null) { -executor = executor.auth(new HttpHost(distributionEndpoint.getUri().getHost(), distributionEndpoint.getUri().getPort()), +URI uri = distributionEndpoint.getUri(); +executor = executor.auth(new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme()), credentialsMap.get(USERNAME), credentialsMap.get(PASSWORD)).authPreemptive( -new HttpHost(distributionEndpoint.getUri().getHost(), distributionEndpoint.getUri().getPort())); +new HttpHost(uri.getHost(), uri.getPort(), uri.getScheme())); log.debug("authenticate user={}, endpoint={}", secret.asCredentialsMap().get(USERNAME), distributionEndpoint.getUri()); } return executor;
svn commit: r1745367 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/queue/impl/simple/ test/java/org/apache/sling/distribution/queue/impl/simple/ t
Author: tommaso Date: Tue May 24 14:30:08 2016 New Revision: 1745367 URL: http://svn.apache.org/viewvc?rev=1745367=rev Log: SLING-5737 - fix checkpointing with String[], added more proper testing of the reloaded item Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpointTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProviderTest.java sling/trunk/contrib/extensions/distribution/core/src/test/resources/dummy-agent-checkpoint Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java?rev=1745367=1745366=1745367=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java Tue May 24 14:30:08 2016 @@ -22,6 +22,7 @@ import java.io.File; import java.io.FileOutputStream; import java.io.StringWriter; import java.nio.charset.Charset; +import java.util.Arrays; import java.util.Collection; import java.util.LinkedList; import java.util.Map; @@ -70,7 +71,17 @@ class SimpleDistributionQueueCheckpoint jsonWriter.object(); for (Map.Entry entry : item.entrySet()) { jsonWriter.key(String.valueOf(entry.getKey())); -jsonWriter.value(String.valueOf(entry.getValue())); +Object value = entry.getValue(); +boolean isArray = value instanceof String[]; +if (isArray) { +jsonWriter.array(); +for (String s : ((String[]) value)) { +jsonWriter.value(s); +} +jsonWriter.endArray(); +} else { +jsonWriter.value(value); +} } jsonWriter.endObject(); lines.add(packageId + " " + w.toString()); Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java?rev=1745367=1745366=1745367=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java Tue May 24 14:30:08 2016 @@ -23,6 +23,7 @@ import java.io.File; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.FilenameFilter; +import java.util.Arrays; import java.util.Collection; import java.util.HashMap; import java.util.Iterator; @@ -31,6 +32,7 @@ import java.util.concurrent.ConcurrentHa import org.apache.commons.io.IOUtils; import org.apache.commons.io.LineIterator; +import org.apache.sling.commons.json.JSONArray; import org.apache.sling.commons.json.JSONException; import org.apache.sling.commons.json.JSONObject; import org.apache.sling.commons.json.JSONTokener; @@ -131,7 +133,16 @@ public class SimpleDistributionQueueProv Iterator keys = jsonObject.keys(); while (keys.hasNext()) { String key = keys.next(); -info.put(key, jsonObject.get(key)); +JSONArray v = jsonObject.optJSONArray(key); +if (v != null) { +String[] a = new String[v.length()]; +for (int i = 0; i < a.length; i++) { +a[i] =
svn commit: r1745364 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution: common/ packaging/ packaging/impl/importer/ queue/impl/ serialization/ serializ
Author: tommaso Date: Tue May 24 14:01:51 2016 New Revision: 1745364 URL: http://svn.apache.org/viewvc?rev=1745364=rev Log: SLING-5711 - adjusted some more javadocs Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/common/DistributionException.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageExporter.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageImporter.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporter.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/CachingDistributionQueue.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/DistributionQueueDispatchingStrategy.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionContentSerializer.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/DistributionPackageBuilderProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/FileDistributionPackageBuilder.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionPackageExporterServlet.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/common/DistributionException.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/common/DistributionException.java?rev=1745364=1745363=1745364=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/common/DistributionException.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/common/DistributionException.java Tue May 24 14:01:51 2016 @@ -16,13 +16,13 @@ * specific language governing permissions and limitations * under the License. */ - package org.apache.sling.distribution.common; /** * Generic checked exception for distribution */ public class DistributionException extends Exception { + public DistributionException(Throwable e) { super(e); } Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageExporter.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageExporter.java?rev=1745364=1745363=1745364=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageExporter.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageExporter.java Tue May 24 14:01:51 2016 @@ -28,13 +28,13 @@ import org.apache.sling.distribution.com import org.apache.sling.distribution.serialization.DistributionPackage; /** - * A {@link DistributionPackageExporter ) is responsible of exporting - * {@link DistributionPackage }s to be then imported by a {@link org.apache.sling.distribution.agent.DistributionAgent } - * (via a {@link DistributionPackageImporter }). - * - * Exporting a {@link DistributionPackage } means obtaining that package by either - * directly creating it by bundling local Sling resources together or retrieving it from a remote endpoint, e.g. by - * executing an HTTP POST request on another Sling instance exposing already created packages (for remotely changed resources). + * A {@link DistributionPackageExporter) is responsible of exporting {@link DistributionPackage}s from a local or remote + * Sling instance. + * Such packages are usually imported by a {@link DistributionPackageImporter} or put inside + * {@link org.apache.sling.distribution.queue.DistributionQueue}s for others to consume them. + * Exporting a {@link DistributionPackage} means obtaining that package by e.g. directly creating it by bundling local + * Sling resources, retrieving it from a remote endpoint (by executing an HTTP POST request on another Sling + * instance exposing packages ina queue). */ @ConsumerType public interface DistributionPackageExporter { @@ -43,11 +43,12 @@ public interface DistributionPackageExpo * Exports the {@link DistributionPackage}s built from the * passed
svn commit: r1745362 - in /sling/trunk/contrib/extensions/distribution/core: ./ src/main/java/org/apache/sling/distribution/agent/impl/ src/main/java/org/apache/sling/distribution/queue/impl/simple/ s
Author: tommaso Date: Tue May 24 13:55:53 2016 New Revision: 1745362 URL: http://svn.apache.org/viewvc?rev=1745362=rev Log: SLING-5748 - checkpointing memory queue made optional, updated forward agent factory Added: sling/trunk/contrib/extensions/distribution/core/src/test/resources/ sling/trunk/contrib/extensions/distribution/core/src/test/resources/dummy-agent-checkpoint Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProviderTest.java Modified: sling/trunk/contrib/extensions/distribution/core/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/pom.xml?rev=1745362=1745361=1745362=diff == --- sling/trunk/contrib/extensions/distribution/core/pom.xml (original) +++ sling/trunk/contrib/extensions/distribution/core/pom.xml Tue May 24 13:55:53 2016 @@ -81,6 +81,15 @@ org.apache.maven.plugins maven-javadoc-plugin + +org.apache.rat +apache-rat-plugin + + +**/*-checkpoint + + + Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java?rev=1745362=1745361=1745362=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java Tue May 24 13:55:53 2016 @@ -51,7 +51,6 @@ import org.apache.sling.distribution.que import org.apache.sling.distribution.queue.impl.ErrorQueueDispatchingStrategy; import org.apache.sling.distribution.queue.impl.MultipleQueueDispatchingStrategy; import org.apache.sling.distribution.queue.impl.PriorityQueueDispatchingStrategy; -import org.apache.sling.distribution.queue.impl.jobhandling.JobHandlingDistributionQueue; import org.apache.sling.distribution.queue.impl.jobhandling.JobHandlingDistributionQueueProvider; import org.apache.sling.distribution.queue.impl.simple.SimpleDistributionQueueProvider; import org.apache.sling.distribution.serialization.DistributionPackageBuilder; @@ -77,7 +76,7 @@ import org.slf4j.LoggerFactory; @Reference(name = "triggers", referenceInterface = DistributionTrigger.class, policy = ReferencePolicy.DYNAMIC, cardinality = ReferenceCardinality.OPTIONAL_MULTIPLE, bind = "bindDistributionTrigger", unbind = "unbindDistributionTrigger") -@Property(name="webconsole.configurationFactory.nameHint", value="Agent name: {name}") +@Property(name = "webconsole.configurationFactory.nameHint", value = "Agent name: {name}") public class ForwardDistributionAgentFactory extends AbstractDistributionAgentFactory { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -166,7 +165,8 @@ public class ForwardDistributionAgentFac @Property(options = { @PropertyOption(name = JobHandlingDistributionQueueProvider.TYPE, value = "Sling Jobs"), -@PropertyOption(name = SimpleDistributionQueueProvider.TYPE, value = "In-memory")}, +@PropertyOption(name = SimpleDistributionQueueProvider.TYPE, value = "In-memory"), +@PropertyOption(name = SimpleDistributionQueueProvider.TYPE_CHECKPOINT, value = "In-file")}, value = "jobs", label = "Queue provider", description = "The queue provider implementation." ) @@ -231,10 +231,11 @@ public class ForwardDistributionAgentFac DistributionQueueProvider queueProvider; String queueProviderName = PropertiesUtil.toString(config.get(QUEUE_PROVIDER), JobHandlingDistributionQueueProvider.TYPE); if (JobHandlingDistributionQueueProvider.TYPE.equals(queueProviderName)) { - queueProvider = new JobHandlingDistributionQueueProvider(agentName, jobManager, context); -
svn commit: r1745354 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java
Author: tommaso Date: Tue May 24 12:53:13 2016 New Revision: 1745354 URL: http://svn.apache.org/viewvc?rev=1745354=rev Log: SLING-5737 - log an error if checkpointing fails, no runtime exception Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java?rev=1745354=1745353=1745354=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java Tue May 24 12:53:13 2016 @@ -82,7 +82,7 @@ class SimpleDistributionQueueCheckpoint boolean success = checkpointFile.renameTo(new File(checkpointDirectory, fileName)); log.debug("checkpoint succeeded: {}", success); } catch (Exception e) { -throw new RuntimeException(e); +log.error("failed checkpointing for queue {}", queue.getName()); } } }
svn commit: r1745353 - /sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpointTest.java
Author: tommaso Date: Tue May 24 12:39:30 2016 New Revision: 1745353 URL: http://svn.apache.org/viewvc?rev=1745353=rev Log: SLING-5737 - added entries to the map in the test Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpointTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpointTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpointTest.java?rev=1745353=1745352=1745353=diff == --- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpointTest.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpointTest.java Tue May 24 12:39:30 2016 @@ -58,7 +58,10 @@ public class SimpleDistributionQueueChec String queueName = "sample-queue"; when(queue.getName()).thenReturn(queueName); LinkedList entries = new LinkedList(); -entries.add(new DistributionQueueEntry("123", new DistributionQueueItem("pid123", new HashedMap()), +HashedMap base = new HashedMap(); +base.put("here","there"); +base.put("foo","bar"); +entries.add(new DistributionQueueEntry("123", new DistributionQueueItem("pid123", base), new DistributionQueueItemStatus(DistributionQueueItemState.QUEUED, queueName))); when(queue.getItems(0, -1)).thenReturn(entries); File checkpointDirectory = FileUtils.getTempDirectory();
svn commit: r1745352 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/queue/impl/simple/ test/java/org/apache/sling/distribution/queue/impl/simple/
Author: tommaso Date: Tue May 24 12:36:51 2016 New Revision: 1745352 URL: http://svn.apache.org/viewvc?rev=1745352=rev Log: SLING-5737 - added light file based checkpointing Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java (with props) sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProcessor.java - copied, changed from r1745339, sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTask.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpointTest.java (with props) sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProcessorTest.java - copied, changed from r1745339, sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTaskTest.java Removed: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTask.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTaskTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueue.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueue.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueue.java?rev=1745352=1745351=1745352=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueue.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueue.java Tue May 24 12:36:51 2016 @@ -59,7 +59,7 @@ public class SimpleDistributionQueue imp private final Map<DistributionQueueItem, DistributionQueueItemStatus> statusMap; public SimpleDistributionQueue(String agentName, String name) { -log.debug("starting a simple queue for agent {}", agentName); +log.debug("starting a simple queue {} for agent {}", name, agentName); this.name = name; this.queue = new LinkedBlockingQueue(); this.statusMap = new WeakHashMap<DistributionQueueItem, DistributionQueueItemStatus>(10); Added: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java?rev=1745352=auto == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java (added) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueCheckpoint.java Tue May 24 12:36:51 2016 @@ -0,0 +1,88 @@ +/* + * 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.queue.impl.simple; + +import java.io.File; +import java.io.FileOutputStream; +import ja
svn commit: r1745346 - /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java
Author: tommaso Date: Tue May 24 12:07:03 2016 New Revision: 1745346 URL: http://svn.apache.org/viewvc?rev=1745346=rev Log: SLING-5734 - fixed property description Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java?rev=1745346=1745345=1745346=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java Tue May 24 12:07:03 2016 @@ -167,8 +167,8 @@ public class ForwardDistributionAgentFac @Property(options = { @PropertyOption(name = JobHandlingDistributionQueueProvider.TYPE, value = "Sling Jobs"), @PropertyOption(name = SimpleDistributionQueueProvider.TYPE, value = "In-memory")}, -value = "info", -label = "Log Level", description = "The log level recorded in the transient log accessible via http." +value = "jobs", +label = "Queue provider", description = "The queue provider implementation." ) public static final String QUEUE_PROVIDER = "queue.provider"; @@ -201,7 +201,6 @@ public class ForwardDistributionAgentFac protected void bindDistributionTrigger(DistributionTrigger distributionTrigger, Map<String, Object> config) { super.bindDistributionTrigger(distributionTrigger, config); - } protected void unbindDistributionTrigger(DistributionTrigger distributionTrigger, Map<String, Object> config) {
svn commit: r1744533 - in /sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl: avro/AvroDistributionContentSerializerFactory.java kry
Author: tommaso Date: Thu May 19 08:43:25 2016 New Revision: 1744533 URL: http://svn.apache.org/viewvc?rev=1744533=rev Log: SLING-5736 - added webconsole.configurationFactory.nameHint to avro and kryo cs factories, minor fixes to logging Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroDistributionContentSerializerFactory.java sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoDistributionContentSerializerFactory.java Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroDistributionContentSerializerFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroDistributionContentSerializerFactory.java?rev=1744533=1744532=1744533=diff == --- sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroDistributionContentSerializerFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/avro/AvroDistributionContentSerializerFactory.java Thu May 19 08:43:25 2016 @@ -46,6 +46,7 @@ import org.slf4j.LoggerFactory; policy = ConfigurationPolicy.REQUIRE ) @Service(DistributionContentSerializer.class) +@Property(name = "webconsole.configurationFactory.nameHint", value = "Content serializer name: {name}") public class AvroDistributionContentSerializerFactory implements DistributionContentSerializer { /** @@ -62,10 +63,9 @@ public class AvroDistributionContentSeri public void activate(Map<String, Object> config) { String name = PropertiesUtil.toString(config.get(NAME), null); -log.info("starting avro format {}", name); format = new AvroContentSerializer(name); -log.info("started avro resource package builder"); +log.info("started avro content serializer {}", name); } Modified: sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoDistributionContentSerializerFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoDistributionContentSerializerFactory.java?rev=1744533=1744532=1744533=diff == --- sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoDistributionContentSerializerFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/extensions/src/main/java/org/apache/sling/distribution/serialization/impl/kryo/KryoDistributionContentSerializerFactory.java Thu May 19 08:43:25 2016 @@ -46,6 +46,7 @@ import org.slf4j.LoggerFactory; policy = ConfigurationPolicy.REQUIRE ) @Service(DistributionContentSerializer.class) +@Property(name = "webconsole.configurationFactory.nameHint", value = "Content serializer name: {name}") public class KryoDistributionContentSerializerFactory implements DistributionContentSerializer { private final Logger log = LoggerFactory.getLogger(getClass()); @@ -62,10 +63,9 @@ public class KryoDistributionContentSeri public void activate(Map<String, Object> config) { String name = PropertiesUtil.toString(config.get(NAME), null); -log.info("starting Kryo format {}", name); format = new KryoContentSerializer(name); -log.info("started Kryo resource package builder"); +log.info("started Kryo content serializer {}", name); }
svn commit: r1744404 - in /sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution: agent/impl/ queue/impl/jobhandling/ queue/impl/simple/
Author: tommaso Date: Wed May 18 12:40:31 2016 New Revision: 1744404 URL: http://svn.apache.org/viewvc?rev=1744404=rev Log: SLING-5734 - added support for using both in-memory and jobs queues Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/jobhandling/JobHandlingDistributionQueueProvider.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java?rev=1744404=1744403=1744404=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/agent/impl/ForwardDistributionAgentFactory.java Wed May 18 12:40:31 2016 @@ -36,6 +36,7 @@ import org.apache.felix.scr.annotations. import org.apache.jackrabbit.vault.packaging.Packaging; import org.apache.sling.api.resource.ResourceResolverFactory; import org.apache.sling.commons.osgi.PropertiesUtil; +import org.apache.sling.commons.scheduler.Scheduler; import org.apache.sling.distribution.DistributionRequestType; import org.apache.sling.distribution.component.impl.DistributionComponentConstants; import org.apache.sling.distribution.component.impl.SettingsUtils; @@ -50,7 +51,9 @@ import org.apache.sling.distribution.que import org.apache.sling.distribution.queue.impl.ErrorQueueDispatchingStrategy; import org.apache.sling.distribution.queue.impl.MultipleQueueDispatchingStrategy; import org.apache.sling.distribution.queue.impl.PriorityQueueDispatchingStrategy; +import org.apache.sling.distribution.queue.impl.jobhandling.JobHandlingDistributionQueue; import org.apache.sling.distribution.queue.impl.jobhandling.JobHandlingDistributionQueueProvider; +import org.apache.sling.distribution.queue.impl.simple.SimpleDistributionQueueProvider; import org.apache.sling.distribution.serialization.DistributionPackageBuilder; import org.apache.sling.distribution.transport.DistributionTransportSecretProvider; import org.apache.sling.distribution.trigger.DistributionTrigger; @@ -161,6 +164,14 @@ public class ForwardDistributionAgentFac "e.g. use target=(name=...) to bind to services by name.") public static final String TRIGGERS_TARGET = "triggers.target"; +@Property(options = { +@PropertyOption(name = JobHandlingDistributionQueueProvider.TYPE, value = "Sling Jobs"), +@PropertyOption(name = SimpleDistributionQueueProvider.TYPE, value = "In-memory")}, +value = "info", +label = "Log Level", description = "The log level recorded in the transient log accessible via http." +) +public static final String QUEUE_PROVIDER = "queue.provider"; + @Reference private Packaging packaging; @@ -179,6 +190,9 @@ public class ForwardDistributionAgentFac @Reference private SlingRepository slingRepository; +@Reference +private Scheduler scheduler; + @Activate protected void activate(BundleContext context, Map<String, Object> config) { @@ -213,9 +227,16 @@ public class ForwardDistributionAgentFac Map<String, String> priorityQueues = PropertiesUtil.toMap(config.get(PRIORITY_QUEUES), new String[0]); priorityQueues = SettingsUtils.removeEmptyEntries(priorityQueues); - DistributionPackageExporter packageExporter = new LocalDistributionPackageExporter(packageBuilder); -DistributionQueueProvider queueProvider = new JobHandlingDistributionQueueProvider(agentName, jobManager, context); + +DistributionQueueProvider queueProvider; +String queueProviderName = PropertiesUtil.toString(config.get(QUEUE_PROVIDER), JobHandlingDistributionQueueProvider.TYPE); +if (JobHandlingDistributionQueueProvider.TYPE.equals(queueProviderName)) { + queueProvider = new JobHandlingDistributionQueueProvider(agentName, jobManager, context); +} +else { +queueProvider = new SimpleDistributionQueueProvider(scheduler, agentName); +} DistributionQueueDispatchingStrategy exportQueueStrategy; DistributionQueueDispatchingStrategy errorQueueStrategy = null; Modified: sling/trunk
svn commit: r1744367 - /sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterTest.java
Author: tommaso Date: Wed May 18 09:27:35 2016 New Revision: 1744367 URL: http://svn.apache.org/viewvc?rev=1744367=rev Log: SLING-4075 - added test for getPackage on remote exporter Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/RemoteDistributionPackageExporterTest.java 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=1744367=1744366=1744367=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 Wed May 18 09:27:35 2016 @@ -34,8 +34,11 @@ import org.apache.sling.distribution.tra import org.junit.Test; 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; +import static org.mockito.Mockito.when; /** * Testcase for {@link RemoteDistributionPackageExporter} @@ -43,7 +46,7 @@ import static org.mockito.Mockito.mock; public class RemoteDistributionPackageExporterTest { @Test -public void testDummyExport() throws Exception { +public void testNothingExported() throws Exception { DistributionPackageBuilder packageBuilder = mock(DistributionPackageBuilder.class); DistributionTransportSecretProvider distributionTransportSecretProvider = mock(DistributionTransportSecretProvider.class); String[] endpoints = new String[0]; @@ -61,4 +64,17 @@ public class RemoteDistributionPackageEx assertNotNull(distributionPackages); assertTrue(distributionPackages.isEmpty()); } + +@Test +public void testFailedPackageRetrieval() throws Exception { +DistributionPackageBuilder packageBuilder = mock(DistributionPackageBuilder.class); +DistributionTransportSecretProvider distributionTransportSecretProvider = mock(DistributionTransportSecretProvider.class); +String[] endpoints = new String[0]; +RemoteDistributionPackageExporter remotedistributionPackageExporter = new RemoteDistributionPackageExporter(mock(DefaultDistributionLog.class), +packageBuilder, distributionTransportSecretProvider, endpoints, 1); + +ResourceResolver resourceResolver = mock(ResourceResolver.class); +DistributionPackage distributionPackage = remotedistributionPackageExporter.getPackage(resourceResolver, "123"); +assertNull(distributionPackage); +} }
svn commit: r1744362 - /sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterTest.java
Author: tommaso Date: Wed May 18 08:49:17 2016 New Revision: 1744362 URL: http://svn.apache.org/viewvc?rev=1744362=rev Log: SLING-4075 - added test for getPackage on local exporter Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/packaging/impl/exporter/LocalDistributionPackageExporterTest.java 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=1744362=1744361=1744362=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 Wed May 18 08:49:17 2016 @@ -42,7 +42,7 @@ import static org.mockito.Mockito.when; public class LocalDistributionPackageExporterTest { @Test -public void testDummyExport() throws Exception { +public void testExport() 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); @@ -58,4 +58,14 @@ public class LocalDistributionPackageExp assertNotNull(distributionPackages); assertEquals(1, distributionPackages.size()); } + +@Test +public void testGetPackage() throws Exception { +DistributionPackageBuilder packageBuilder = mock(DistributionPackageBuilder.class); +when(packageBuilder.getPackage(any(ResourceResolver.class), any(String.class))).thenReturn(mock(DistributionPackage.class)); +LocalDistributionPackageExporter localdistributionPackageExporter = new LocalDistributionPackageExporter(packageBuilder); +ResourceResolver resourceResolver = mock(ResourceResolver.class); +DistributionPackage distributionPackage = localdistributionPackageExporter.getPackage(resourceResolver, "123"); +assertNotNull(distributionPackage); +} }
svn commit: r1744358 - /sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTaskTest.java
Author: tommaso Date: Wed May 18 08:13:50 2016 New Revision: 1744358 URL: http://svn.apache.org/viewvc?rev=1744358=rev Log: SLING-5733 - adjusted processor task test Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTaskTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTaskTest.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTaskTest.java?rev=1744358=1744357=1744358=diff == --- sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTaskTest.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTaskTest.java Wed May 18 08:13:50 2016 @@ -47,8 +47,8 @@ public class ScheduledDistributionQueueP @Test public void testRunWithOneEmptyQueue() throws Exception { SimpleDistributionQueueProvider queueProvider = mock(SimpleDistributionQueueProvider.class); -Collection queues = new LinkedList(); -DistributionQueue queue = mock(DistributionQueue.class); +Collection queues = new LinkedList(); +SimpleDistributionQueue queue = mock(SimpleDistributionQueue.class); when(queue.getHead()).thenReturn(null); queues.add(queue); when(queueProvider.getQueues()).thenReturn(queues); @@ -61,8 +61,8 @@ public class ScheduledDistributionQueueP @Test public void testRunWithOneNonEmptyQueue() throws Exception { SimpleDistributionQueueProvider queueProvider = mock(SimpleDistributionQueueProvider.class); -Collection queues = new LinkedList(); -DistributionQueue queue = mock(DistributionQueue.class); +Collection queues = new LinkedList(); +SimpleDistributionQueue queue = mock(SimpleDistributionQueue.class); DistributionQueueItem item = mock(DistributionQueueItem.class); when(queue.getHead()).thenReturn(new DistributionQueueEntry(null, item, null)).thenReturn(null);
svn commit: r1744357 - in /sling/trunk/contrib/extensions/distribution/core/src: main/java/org/apache/sling/distribution/queue/ main/java/org/apache/sling/distribution/queue/impl/ main/java/org/apache
Author: tommaso Date: Wed May 18 08:12:16 2016 New Revision: 1744357 URL: http://svn.apache.org/viewvc?rev=1744357=rev Log: SLING-5733 - one processor per in memory queue, triggered every second Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueue.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/CachingDistributionQueue.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTask.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueue.java sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProvider.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTaskTest.java sling/trunk/contrib/extensions/distribution/core/src/test/java/org/apache/sling/distribution/queue/impl/simple/SimpleDistributionQueueProviderTest.java Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueue.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueue.java?rev=1744357=1744356=1744357=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueue.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/DistributionQueue.java Wed May 18 08:12:16 2016 @@ -77,7 +77,7 @@ public interface DistributionQueue { /** * gets an item from the queue by specifying its id * - * @param itemId the id of the item + * @param itemId the id of the item as returned by {@link DistributionQueueItem#getPackageId()} * @return the item, or {@code null} if the item with the given id * doesn't exist */ @@ -87,7 +87,7 @@ public interface DistributionQueue { /** * remove an item from the queue by specifying its id * - * @param itemId the id the item + * @param itemId the id the item as returned by {@link DistributionQueueItem#getPackageId()} * @return the removed item, or {@code null} if the item with the given id * doesn't exist */ Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/CachingDistributionQueue.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/CachingDistributionQueue.java?rev=1744357=1744356=1744357=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/CachingDistributionQueue.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/CachingDistributionQueue.java Wed May 18 08:12:16 2016 @@ -43,6 +43,7 @@ public class CachingDistributionQueue ex } +@Nonnull @Override public DistributionQueueStatus getStatus() { Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTask.java URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTask.java?rev=1744357=1744356=1744357=diff == --- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTask.java (original) +++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/queue/impl/simple/ScheduledDistributionQueueProcessorTask.java Wed May 18 08:12:16 2016 @@ -30,28 +30,25 @@ import org.slf4j.LoggerFactory; class ScheduledDistributionQueueProcessorTask implements Runnable { private final Logger log = LoggerFactory.getLogger(getClass()); -private final SimpleDistributionQueueProvider queueProvider; +private final DistributionQueue queue; private final DistributionQueueProcessor queueProcessor; -public ScheduledDistributionQueueProcessorTask(SimpleDistributionQueueProvider queueProvider, +public ScheduledDistributionQueueProcessorTask(DistributionQueue queue