svn commit: r1800432 - /sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/SlingRepository.java
Author: kwin Date: Fri Jun 30 15:14:46 2017 New Revision: 1800432 URL: http://svn.apache.org/viewvc?rev=1800432&view=rev Log: SLING-6991 add missing JSR305 annotations Modified: sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/SlingRepository.java Modified: sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/SlingRepository.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/SlingRepository.java?rev=1800432&r1=1800431&r2=1800432&view=diff == --- sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/SlingRepository.java (original) +++ sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/SlingRepository.java Fri Jun 30 15:14:46 2017 @@ -84,7 +84,7 @@ public interface SlingRepository extends * the {@link #loginService(String, String)} instead. */ @Deprecated -Session loginAdministrative(String workspace) throws LoginException, RepositoryException; +@Nonnull Session loginAdministrative(String workspace) throws LoginException, RepositoryException; /** * Returns a session to the given workspace with privileges assigned to the @@ -107,7 +107,7 @@ public interface SlingRepository extends * href="http://sling.apache.org/documentation/the-sling-engine/service-authentication.html";>Service * Authentication */ -Session loginService(String subServiceName, String workspace) throws LoginException, RepositoryException; +@Nonnull Session loginService(String subServiceName, String workspace) throws LoginException, RepositoryException; /** * Impersonates the service session provided by the calling bundle (and further @@ -137,5 +137,5 @@ public interface SlingRepository extends * @throws RepositoryException If another error occurs. * @since 2.3 */ -Session impersonateFromService(String subServiceName, @Nonnull Credentials credentials, String workspaceName) throws LoginException, RepositoryException; +@Nonnull Session impersonateFromService(String subServiceName, @Nonnull Credentials credentials, String workspaceName) throws LoginException, RepositoryException; }
svn commit: r1014785 - /websites/production/sling/content/
Author: kwin Date: Fri Jun 30 15:13:35 2017 New Revision: 1014785 Log: Publishing svnmucc operation to sling site by kwin Added: websites/production/sling/content/ - copied from r1014784, websites/staging/sling/trunk/content/
svn commit: r1014784 - in /websites/staging/sling/trunk/content: ./ documentation/development/jsr-305.html
Author: buildbot Date: Fri Jun 30 15:13:00 2017 New Revision: 1014784 Log: Staging update by buildbot for sling Modified: websites/staging/sling/trunk/content/ (props changed) websites/staging/sling/trunk/content/documentation/development/jsr-305.html Propchange: websites/staging/sling/trunk/content/ -- --- cms:source-revision (original) +++ cms:source-revision Fri Jun 30 15:13:00 2017 @@ -1 +1 @@ -1800271 +1800431 Modified: websites/staging/sling/trunk/content/documentation/development/jsr-305.html == --- websites/staging/sling/trunk/content/documentation/development/jsr-305.html (original) +++ websites/staging/sling/trunk/content/documentation/development/jsr-305.html Fri Jun 30 15:13:00 2017 @@ -135,10 +135,11 @@ h2:hover > .headerlink, h3:hover > .head The annotations used within Sling are based on the https://jcp.org/en/jsr/detail?id=305";>JSR-305 which is dormant since 2012. Nevertheless those annotations are understood by most of the tools and used by other Apache Projects like Apache Oak https://issues.apache.org/jira/browse/OAK-37";>OAK-37. Due to the fact that Eclipse and FindBugs are interpreting annotations differently (https://sourceforge.net/p/findbugs/bugs/1355/";>Findbugs-1355). Sling only uses the following two different annotations which are supported by both tools: -javax.annotation.CheckForNull -javax.annotation.Nonnull +javax.annotation.CheckForNull (only on return values which may be null) +javax.annotation.Nonnull (on return values and arguments which are never supposed to be null) Annotations which support setting the default null semantics of return values and or parameters on a package level cannot be leveraged for that reason. +In case no annotations have been set on method arguments those accept null as a value. Return values should always be explicitly annotated, as from both cases checks can be derived. The annotations have a retention policy of runtime, therefore bundles using these automatically have a Import-Package header listing javax.annotation. That package is by default exported by the system bundle (as this package is also part of the https://docs.oracle.com/javase/7/docs/api/javax/annotation/package-summary.html";>JRE). To be able to resolve the bundle through this exported package from the system bundle you should use the com.google.code.findbugs:jsr305 artifact in version 3.0.0 as that exports the package javax.annotation in no specific version. Newer versions use version directives which automatically restrict the version range for the generated Import-Package header to [3,4) https://github.com/amaembo/jsr-305/issues/31";>which usually cannot be resolved at run time. Use With Eclipse¶ Eclipse since Juno supports http://help.eclipse.org/juno/index.jsp?topic=%2Forg.eclipse.jdt.doc.user%2Freference%2Fpreferences%2Fjava%2Fcompiler%2Fref-preferences-errors-warnings.htm&anchor=null_analysis";>null analysis based on any annotations. Those need to be enabled in @@ -222,7 +223,7 @@ This method was presented by Michael Vor Use with SonarQube¶ At least rule https://sonarqube.com/coding_rules#rule_key=squid%3AS2259";>squid:S2259 in SonarQube supports JSR-305 annotations as well for null checks. -Rev. 1792488 by kwin on Mon, 24 Apr 2017 15:15:56 + +Rev. 1800431 by kwin on Fri, 30 Jun 2017 15:12:38 + Apache Sling, Sling, Apache, the Apache feather logo, and the Apache Sling project
svn commit: r1800431 - /sling/site/trunk/content/documentation/development/jsr-305.mdtext
Author: kwin Date: Fri Jun 30 15:12:38 2017 New Revision: 1800431 URL: http://svn.apache.org/viewvc?rev=1800431&view=rev Log: clarify where to use which JSR305 annotation Modified: sling/site/trunk/content/documentation/development/jsr-305.mdtext Modified: sling/site/trunk/content/documentation/development/jsr-305.mdtext URL: http://svn.apache.org/viewvc/sling/site/trunk/content/documentation/development/jsr-305.mdtext?rev=1800431&r1=1800430&r2=1800431&view=diff == --- sling/site/trunk/content/documentation/development/jsr-305.mdtext (original) +++ sling/site/trunk/content/documentation/development/jsr-305.mdtext Fri Jun 30 15:12:38 2017 @@ -10,11 +10,13 @@ The annotations used within Sling are ba Due to the fact that Eclipse and FindBugs are interpreting annotations differently ([Findbugs-1355](https://sourceforge.net/p/findbugs/bugs/1355/)). Sling only uses the following two different annotations which are supported by both tools: -1. `javax.annotation.CheckForNull` -1. `javax.annotation.Nonnull` +1. `javax.annotation.CheckForNull` (only on return values which may be `null`) +1. `javax.annotation.Nonnull` (on return values and arguments which are never supposed to be `null`) Annotations which support setting the default null semantics of return values and or parameters on a package level cannot be leveraged for that reason. +In case no annotations have been set on method arguments those accept `null` as a value. Return values should always be explicitly annotated, as from both cases checks can be derived. + The annotations have a retention policy of `runtime`, therefore bundles using these automatically have a `Import-Package` header listing `javax.annotation`. That package is by default exported by the system bundle (as this package is also part of the [JRE](https://docs.oracle.com/javase/7/docs/api/javax/annotation/package-summary.html)). To be able to resolve the bundle through this exported package from the system bundle you should use the `com.google.code.findbugs:jsr305` artifact in version 3.0.0 as that exports the package `javax.annotation` in no specific version. Newer versions use version directives which automatically restrict the version range for the generated `Import-Package` header to `[3,4)` [which usually cannot be resolved at run time](https://github.com/amaembo/jsr-305/issues/31). # Use With Eclipse
svn commit: r1800430 - in /sling/trunk/bundles/jcr/api: pom.xml src/main/java/org/apache/sling/jcr/api/NamespaceMapper.java src/main/java/org/apache/sling/jcr/api/SlingRepository.java src/main/java/or
Author: kwin Date: Fri Jun 30 15:03:33 2017 New Revision: 1800430 URL: http://svn.apache.org/viewvc?rev=1800430&view=rev Log: SLING-6991 add JSR305 annotations Modified: sling/trunk/bundles/jcr/api/pom.xml sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/NamespaceMapper.java sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/SlingRepository.java sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/SlingRepositoryInitializer.java Modified: sling/trunk/bundles/jcr/api/pom.xml URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/api/pom.xml?rev=1800430&r1=1800429&r2=1800430&view=diff == --- sling/trunk/bundles/jcr/api/pom.xml (original) +++ sling/trunk/bundles/jcr/api/pom.xml Fri Jun 30 15:03:33 2017 @@ -66,6 +66,10 @@ javax.jcr jcr + +com.google.code.findbugs +jsr305 + Modified: sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/NamespaceMapper.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/NamespaceMapper.java?rev=1800430&r1=1800429&r2=1800430&view=diff == --- sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/NamespaceMapper.java (original) +++ sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/NamespaceMapper.java Fri Jun 30 15:03:33 2017 @@ -18,6 +18,7 @@ */ package org.apache.sling.jcr.api; +import javax.annotation.Nonnull; import javax.jcr.RepositoryException; import javax.jcr.Session; @@ -39,6 +40,5 @@ public interface NamespaceMapper { * @param session The new session * @throws RepositoryException If anything goes wrong */ -void defineNamespacePrefixes(Session session) -throws RepositoryException; +void defineNamespacePrefixes(@Nonnull Session session) throws RepositoryException; } Modified: sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/SlingRepository.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/SlingRepository.java?rev=1800430&r1=1800429&r2=1800430&view=diff == --- sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/SlingRepository.java (original) +++ sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/SlingRepository.java Fri Jun 30 15:03:33 2017 @@ -18,6 +18,8 @@ */ package org.apache.sling.jcr.api; +import javax.annotation.CheckForNull; +import javax.annotation.Nonnull; import javax.jcr.Credentials; import javax.jcr.LoginException; import javax.jcr.Repository; @@ -52,7 +54,7 @@ public interface SlingRepository extends * * @return null if the configured default workspace name is empty, SLING-256 */ -String getDefaultWorkspace(); +@CheckForNull String getDefaultWorkspace(); /** * Returns a session to the given workspace which has administrative powers. @@ -135,5 +137,5 @@ public interface SlingRepository extends * @throws RepositoryException If another error occurs. * @since 2.3 */ -Session impersonateFromService(String subServiceName, Credentials credentials, String workspaceName) throws LoginException, RepositoryException; +Session impersonateFromService(String subServiceName, @Nonnull Credentials credentials, String workspaceName) throws LoginException, RepositoryException; } Modified: sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/SlingRepositoryInitializer.java URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/SlingRepositoryInitializer.java?rev=1800430&r1=1800429&r2=1800430&view=diff == --- sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/SlingRepositoryInitializer.java (original) +++ sling/trunk/bundles/jcr/api/src/main/java/org/apache/sling/jcr/api/SlingRepositoryInitializer.java Fri Jun 30 15:03:33 2017 @@ -18,6 +18,8 @@ */ package org.apache.sling.jcr.api; +import javax.annotation.Nonnull; + import org.osgi.annotation.versioning.ConsumerType; /** @@ -38,5 +40,5 @@ public interface SlingRepositoryInitiali * @throws Exception If anything happens that should prevent * the SlingRepository service from being registered. */ -public void processRepository(SlingRepository repo) throws Exception; +public void processRepository(@Nonnull SlingRepository repo) throws Exception; }
svn commit: r1800416 - /sling/trunk/installer/factories/packages/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformer.java
Author: kwin Date: Fri Jun 30 14:17:43 2017 New Revision: 1800416 URL: http://svn.apache.org/viewvc?rev=1800416&view=rev Log: SLING-6987 remove obsolete import package Modified: sling/trunk/installer/factories/packages/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformer.java Modified: sling/trunk/installer/factories/packages/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformer.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/factories/packages/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformer.java?rev=1800416&r1=1800415&r2=1800416&view=diff == --- sling/trunk/installer/factories/packages/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformer.java (original) +++ sling/trunk/installer/factories/packages/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformer.java Fri Jun 30 14:17:43 2017 @@ -21,10 +21,8 @@ package org.apache.sling.installer.facto import java.io.BufferedInputStream; import java.io.IOException; import java.text.MessageFormat; -import java.util.Calendar; import java.util.HashMap; import java.util.Map; -import java.util.Properties; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.zip.ZipInputStream; @@ -32,7 +30,6 @@ import java.util.zip.ZipInputStream; import javax.jcr.RepositoryException; import javax.jcr.Session; -import org.apache.jackrabbit.util.ISO8601; import org.apache.jackrabbit.vault.fs.io.Archive; import org.apache.jackrabbit.vault.fs.io.ImportOptions; import org.apache.jackrabbit.vault.fs.io.ZipStreamArchive; @@ -41,7 +38,6 @@ import org.apache.jackrabbit.vault.packa import org.apache.jackrabbit.vault.packaging.JcrPackageManager; import org.apache.jackrabbit.vault.packaging.PackageException; import org.apache.jackrabbit.vault.packaging.PackageId; -import org.apache.jackrabbit.vault.packaging.PackageProperties; import org.apache.jackrabbit.vault.packaging.Packaging; import org.apache.sling.installer.api.InstallableResource; import org.apache.sling.installer.api.tasks.ChangeStateTask;
svn commit: r1800415 - in /sling/trunk/installer/factories/packages/src/main/java/org/apache/sling/installer/factory/packages/impl: PackageTransformer.java PackageTransformerConfiguration.java
Author: kwin Date: Fri Jun 30 14:16:53 2017 New Revision: 1800415 URL: http://svn.apache.org/viewvc?rev=1800415&view=rev Log: SLING-6987 initial support for hollow packages added Modified: sling/trunk/installer/factories/packages/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformer.java sling/trunk/installer/factories/packages/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformerConfiguration.java Modified: sling/trunk/installer/factories/packages/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformer.java URL: http://svn.apache.org/viewvc/sling/trunk/installer/factories/packages/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformer.java?rev=1800415&r1=1800414&r2=1800415&view=diff == --- sling/trunk/installer/factories/packages/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformer.java (original) +++ sling/trunk/installer/factories/packages/src/main/java/org/apache/sling/installer/factory/packages/impl/PackageTransformer.java Fri Jun 30 14:16:53 2017 @@ -21,19 +21,27 @@ package org.apache.sling.installer.facto import java.io.BufferedInputStream; import java.io.IOException; import java.text.MessageFormat; +import java.util.Calendar; import java.util.HashMap; import java.util.Map; +import java.util.Properties; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.zip.ZipInputStream; +import javax.jcr.RepositoryException; import javax.jcr.Session; +import org.apache.jackrabbit.util.ISO8601; +import org.apache.jackrabbit.vault.fs.io.Archive; import org.apache.jackrabbit.vault.fs.io.ImportOptions; +import org.apache.jackrabbit.vault.fs.io.ZipStreamArchive; import org.apache.jackrabbit.vault.packaging.Dependency; import org.apache.jackrabbit.vault.packaging.JcrPackage; import org.apache.jackrabbit.vault.packaging.JcrPackageManager; +import org.apache.jackrabbit.vault.packaging.PackageException; import org.apache.jackrabbit.vault.packaging.PackageId; +import org.apache.jackrabbit.vault.packaging.PackageProperties; import org.apache.jackrabbit.vault.packaging.Packaging; import org.apache.sling.installer.api.InstallableResource; import org.apache.sling.installer.api.tasks.ChangeStateTask; @@ -52,30 +60,29 @@ import org.osgi.framework.Version; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; +import org.osgi.service.metatype.annotations.Designate; import org.slf4j.Logger; import org.slf4j.LoggerFactory; - -/** - * The package transformer: +/** The package transformer: * - * detects content packages (ResourceTransformer) - * and creates tasks for installing / removing of content packages + * detects content packages (ResourceTransformer) + * and creates tasks for installing / removing of content packages * - */ -@Component( service = {ResourceTransformer.class, InstallTaskFactory.class}) +*/ +@Component(service = { ResourceTransformer.class, InstallTaskFactory.class }) +@Designate(ocd=PackageTransformerConfiguration.class) public class PackageTransformer implements ResourceTransformer, InstallTaskFactory { /** The attribute holding the package id. */ private static final String ATTR_PCK_ID = "package-id"; -/** The resource type for packages. */ -private static final String RESOURCE_TYPE = "content-package"; +/** The resource types for packages. */ +private static final String RESOURCE_TYPE_REGULAR = "content-package"; +private static final String RESOURCE_TYPE_HOLLOW = "content-package-hollow"; -/** - * The logger. - */ -private final Logger logger = LoggerFactory.getLogger(this.getClass()); +/** The logger. */ +private static final Logger logger = LoggerFactory.getLogger(PackageTransformer.class); @Reference private SlingRepository repository; @@ -93,9 +100,7 @@ public class PackageTransformer implemen this.configuration = configuration; } -/** - * @see org.apache.sling.installer.api.tasks.ResourceTransformer#transform(org.apache.sling.installer.api.tasks.RegisteredResource) - */ +/** @see org.apache.sling.installer.api.tasks.ResourceTransformer#transform(org.apache.sling.installer.api.tasks.RegisteredResource) */ @Override public TransformationResult[] transform(final RegisteredResource resource) { if (resource.getType().equals(InstallableResource.TYPE_FILE)) { @@ -104,11 +109,10 @@ public class PackageTransformer implemen return null; } -/** - * Check if the resource is a content package +/** Check if the resource is a content package + * * @param resource The resource - * @return {@code null} if not a content package, a result ot
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&view=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&r1=1800388&r2=1800389&view=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&r1=1800388&r2=1800389&view=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> distributionAgentMap = new ConcurrentHashMap>(); + private final Map> distributionQueueProviderMap = new ConcurrentHashMap>(); + private final Map> distributionQueueDistributionStrategyMap = new ConcurrentHashMap>(); + private final Map> distributionTransportSecretProviderMap = new ConcurrentHashMap>(); + private final Map> distributionPackageImporterMap = new ConcurrentHashMap>(); + private final Map> distributionPackageExporterMap = new ConcurrentHashMap>(); + private final Map> distributionPackageBuilderMap = new ConcurrentHashMap>(); public DistributionComponent getComponent(DistributionComponentKind kind, String componentName) { @@ -92,7 +98,6 @@ public class DefaultDistributionComponen return type.cast(component.getService()); } - @SuppressWarnings({ "unchecked", "rawtypes" }) private Map> 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 config) { +// (un)binding methods +public void bindDistributionQueueProvider(DistributionQueueProvider distributionQueueProvider, Map config) { put(DistributionQueueProvider.class, distributionQueueProvider, config); } -private void unbindDistributionQueueProvider(DistributionQueueProvider distributionQueueProvider, Map config) { - +public void unbindDistributionQueueProvider(DistributionQueueProvider distributionQueueProvider, Map config) { remove(DistributionQueueProvider.class, distributionQueueProvider, config); } -private void bindDistributionQueueDistributionStrategy(DistributionQueueDispatchingStrategy distributionQueueDispatchingStrategy, Map config) { - +public void bindDistributionQueueDistributionStrategy(DistributionQueueDispatchingStrategy distributionQueueDispatchingStrategy, Map config) { put(DistributionQueueDispatchingStrategy.class, distributionQueueDispatchingStrategy, config); } -private void unbindDistributionQueueDistributionStrategy(DistributionQueueDispatchingStrategy distributionQueueDispatchingStrategy, Map config) { - +public void unbindDistributionQueueDistributionStrategy(DistributionQueueDispatchingStrategy distributionQueueDispatchingStrategy, Map config) {
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&view=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&r1=1800363&r2=1800364&view=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&r1=1800363&r2=1800364&view=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 props = new Hashtable(); 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) {