You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by mp...@apache.org on 2015/05/19 12:59:03 UTC
svn commit: r1680244 - in
/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution:
packaging/ packaging/impl/ packaging/impl/exporter/
packaging/impl/importer/ serialization/impl/ servlet/
Author: mpetria
Date: Tue May 19 10:59:02 2015
New Revision: 1680244
URL: http://svn.apache.org/r1680244
Log:
SLING-4716: delete distribution packages that are not imported correctly by importStream
Modified:
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/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/importer/AdvancedRemoteDistributionPackageImporter.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/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/packaging/impl/importer/RepositoryDistributionPackageImporter.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/serialization/impl/ResourceSharedDistributionPackageBuilder.java
sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionPackageImporterServlet.java
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageImporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageImporter.java?rev=1680244&r1=1680243&r2=1680244&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageImporter.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/DistributionPackageImporter.java Tue May 19 10:59:02 2015
@@ -46,10 +46,10 @@ public interface DistributionPackageImpo
*
* @param resourceResolver - the resource resolver used to read the package
* @param stream the {@link InputStream} of the package to be converted and installed
- * @return a {@link DistributionPackage} if the stream has been successfully converted and installed
+ * @return a {@link DistributionPackageInfo} if the stream has been successfully converted and installed
* @throws DistributionPackageImportException when the stream cannot be read as a {@link DistributionPackage} and installed
*/
- @CheckForNull
- DistributionPackage importStream(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws DistributionPackageImportException;
+ @Nonnull
+ DistributionPackageInfo importStream(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws DistributionPackageImportException;
}
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=1680244&r1=1680243&r2=1680244&view=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 Tue May 19 10:59:02 2015
@@ -46,9 +46,20 @@ public class DistributionPackageUtils {
log.error("package {} cannot be released from null queue", distributionPackage.getId());
}
} else {
- distributionPackage.delete();
+ deleteSafely(distributionPackage);
log.debug("package {} deleted", distributionPackage.getId());
}
}
+ public static void deleteSafely(DistributionPackage distributionPackage) {
+ if (distributionPackage == null) {
+ return;
+ }
+ try {
+ distributionPackage.delete();
+ } catch (Throwable t) {
+ log.error("error deleting package", t);
+ }
+ }
+
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java?rev=1680244&r1=1680243&r2=1680244&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/exporter/AgentDistributionPackageExporter.java Tue May 19 10:59:02 2015
@@ -87,6 +87,8 @@ public class AgentDistributionPackageExp
log.info("item {} fetched from the queue", info);
if (distributionPackage != null) {
result.add(new AgentDistributionPackage(distributionPackage, queue));
+ } else {
+ log.warn("cannot get package {}", info);
}
} else {
log.warn("cannot find package builder with type {}", info.getType());
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/AdvancedRemoteDistributionPackageImporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/AdvancedRemoteDistributionPackageImporter.java?rev=1680244&r1=1680243&r2=1680244&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/AdvancedRemoteDistributionPackageImporter.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/AdvancedRemoteDistributionPackageImporter.java Tue May 19 10:59:02 2015
@@ -38,6 +38,7 @@ import org.apache.sling.distribution.log
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageImportException;
import org.apache.sling.distribution.packaging.DistributionPackageImporter;
+import org.apache.sling.distribution.packaging.DistributionPackageInfo;
import org.apache.sling.distribution.transport.core.DistributionTransport;
import org.apache.sling.distribution.transport.DistributionTransportSecretProvider;
import org.apache.sling.distribution.transport.impl.AdvancedHttpDistributionTransport;
@@ -148,7 +149,7 @@ public class AdvancedRemoteDistributionP
}
}
- public DistributionPackage importStream(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws DistributionPackageImportException {
+ public DistributionPackageInfo importStream(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws DistributionPackageImportException {
throw new DistributionPackageImportException("not supported");
}
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=1680244&r1=1680243&r2=1680244&view=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 Tue May 19 10:59:02 2015
@@ -26,6 +26,8 @@ import org.apache.sling.api.resource.Res
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageImportException;
import org.apache.sling.distribution.packaging.DistributionPackageImporter;
+import org.apache.sling.distribution.packaging.DistributionPackageInfo;
+import org.apache.sling.distribution.packaging.impl.DistributionPackageUtils;
import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
import org.apache.sling.distribution.serialization.DistributionPackageReadingException;
import org.slf4j.Logger;
@@ -56,25 +58,33 @@ public class LocalDistributionPackageImp
try {
boolean success = packageBuilder.installPackage(resourceResolver, distributionPackage);
- if (success) {
- log.info("Distribution package read and installed for path(s) {}", Arrays.toString(distributionPackage.getInfo().getPaths()));
- } else {
+ if (!success) {
log.warn("could not install distribution package {}", distributionPackage.getId());
}
+
} catch (Exception e) {
log.error("cannot import a package from the given stream of type {}", distributionPackage.getType());
throw new DistributionPackageImportException(e);
}
}
- public DistributionPackage importStream(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws DistributionPackageImportException {
+ public DistributionPackageInfo importStream(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws DistributionPackageImportException {
+ DistributionPackage distributionPackage = null;
try {
- DistributionPackage distributionPackage = packageBuilder.readPackage(resourceResolver, stream);
- importPackage(resourceResolver, distributionPackage);
- return distributionPackage;
+ distributionPackage = packageBuilder.readPackage(resourceResolver, stream);
+
+ boolean success = packageBuilder.installPackage(resourceResolver, distributionPackage);
+
+ if (!success) {
+ log.warn("could not install distribution package {}", distributionPackage.getId());
+ }
+
+ return distributionPackage.getInfo();
} catch (DistributionPackageReadingException e) {
throw new DistributionPackageImportException("cannot read a package from the given stream", e);
+ } finally {
+ DistributionPackageUtils.deleteSafely(distributionPackage);
}
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java?rev=1680244&r1=1680243&r2=1680244&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/LocalDistributionPackageImporterFactory.java Tue May 19 10:59:02 2015
@@ -37,6 +37,7 @@ import org.apache.sling.distribution.eve
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageImportException;
import org.apache.sling.distribution.packaging.DistributionPackageImporter;
+import org.apache.sling.distribution.packaging.DistributionPackageInfo;
import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -85,15 +86,15 @@ public class LocalDistributionPackageImp
eventFactory.generatePackageEvent(DistributionEventTopics.IMPORTER_PACKAGE_IMPORTED, DistributionComponentKind.IMPORTER, name, distributionPackage.getInfo());
}
- public DistributionPackage importStream(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws DistributionPackageImportException {
- DistributionPackage distributionPackage = importer.importStream(resourceResolver, stream);
+ public DistributionPackageInfo importStream(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws DistributionPackageImportException {
+ DistributionPackageInfo distributionPackageInfo = importer.importStream(resourceResolver, stream);
- if (distributionPackage != null) {
- eventFactory.generatePackageEvent(DistributionEventTopics.IMPORTER_PACKAGE_IMPORTED, DistributionComponentKind.IMPORTER, name, distributionPackage.getInfo());
+ if (distributionPackageInfo != null) {
+ eventFactory.generatePackageEvent(DistributionEventTopics.IMPORTER_PACKAGE_IMPORTED, DistributionComponentKind.IMPORTER, name, distributionPackageInfo);
}
- return distributionPackage;
+ return distributionPackageInfo;
}
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporter.java?rev=1680244&r1=1680243&r2=1680244&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporter.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporter.java Tue May 19 10:59:02 2015
@@ -28,6 +28,7 @@ import org.apache.sling.distribution.log
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageImportException;
import org.apache.sling.distribution.packaging.DistributionPackageImporter;
+import org.apache.sling.distribution.packaging.DistributionPackageInfo;
import org.apache.sling.distribution.transport.core.DistributionTransport;
import org.apache.sling.distribution.transport.DistributionTransportSecretProvider;
import org.apache.sling.distribution.transport.impl.DistributionEndpoint;
@@ -81,7 +82,7 @@ public class RemoteDistributionPackageIm
}
}
- public DistributionPackage importStream(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws DistributionPackageImportException {
+ public DistributionPackageInfo importStream(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws DistributionPackageImportException {
throw new DistributionPackageImportException("not supported");
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterFactory.java?rev=1680244&r1=1680243&r2=1680244&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RemoteDistributionPackageImporterFactory.java Tue May 19 10:59:02 2015
@@ -38,6 +38,7 @@ import org.apache.sling.distribution.log
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageImportException;
import org.apache.sling.distribution.packaging.DistributionPackageImporter;
+import org.apache.sling.distribution.packaging.DistributionPackageInfo;
import org.apache.sling.distribution.transport.DistributionTransportSecretProvider;
import org.apache.sling.distribution.transport.impl.TransportEndpointStrategyType;
import org.slf4j.Logger;
@@ -114,7 +115,7 @@ public class RemoteDistributionPackageIm
importer.importPackage(resourceResolver, distributionPackage);
}
- public DistributionPackage importStream(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws DistributionPackageImportException {
+ public DistributionPackageInfo importStream(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws DistributionPackageImportException {
return importer.importStream(resourceResolver, stream);
}
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RepositoryDistributionPackageImporter.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RepositoryDistributionPackageImporter.java?rev=1680244&r1=1680243&r2=1680244&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RepositoryDistributionPackageImporter.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RepositoryDistributionPackageImporter.java Tue May 19 10:59:02 2015
@@ -33,6 +33,7 @@ import org.apache.sling.api.resource.Res
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageImportException;
import org.apache.sling.distribution.packaging.DistributionPackageImporter;
+import org.apache.sling.distribution.packaging.DistributionPackageInfo;
import org.apache.sling.jcr.api.SlingRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -98,7 +99,7 @@ public class RepositoryDistributionPacka
}
}
- public DistributionPackage importStream(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws DistributionPackageImportException {
+ public DistributionPackageInfo importStream(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws DistributionPackageImportException {
throw new DistributionPackageImportException("not supported");
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RepositoryDistributionPackageImporterFactory.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RepositoryDistributionPackageImporterFactory.java?rev=1680244&r1=1680243&r2=1680244&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RepositoryDistributionPackageImporterFactory.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/packaging/impl/importer/RepositoryDistributionPackageImporterFactory.java Tue May 19 10:59:02 2015
@@ -34,6 +34,7 @@ import org.apache.sling.distribution.com
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageImportException;
import org.apache.sling.distribution.packaging.DistributionPackageImporter;
+import org.apache.sling.distribution.packaging.DistributionPackageInfo;
import org.apache.sling.jcr.api.SlingRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -85,7 +86,7 @@ public class RepositoryDistributionPacka
}
- public DistributionPackage importStream(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws DistributionPackageImportException {
+ public DistributionPackageInfo importStream(@Nonnull ResourceResolver resourceResolver, @Nonnull InputStream stream) throws DistributionPackageImportException {
return importer.importStream(resourceResolver, stream);
}
}
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackageBuilder.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackageBuilder.java?rev=1680244&r1=1680243&r2=1680244&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackageBuilder.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/serialization/impl/ResourceSharedDistributionPackageBuilder.java Tue May 19 10:59:02 2015
@@ -34,6 +34,7 @@ import org.apache.sling.api.resource.Res
import org.apache.sling.api.resource.ValueMap;
import org.apache.sling.distribution.DistributionRequest;
import org.apache.sling.distribution.packaging.DistributionPackage;
+import org.apache.sling.distribution.packaging.impl.DistributionPackageUtils;
import org.apache.sling.distribution.serialization.DistributionPackageBuilder;
import org.apache.sling.distribution.serialization.DistributionPackageBuildingException;
import org.apache.sling.distribution.serialization.DistributionPackageReadingException;
@@ -69,15 +70,19 @@ public class ResourceSharedDistributionP
return null;
}
+ String packageName = null;
try {
- String packageName = generateNameFromId(resourceResolver, distributionPackage);
- String packagePath = getPathFromName(packageName);
+ packageName = generateNameFromId(resourceResolver, distributionPackage);
- return new ResourceSharedDistributionPackage(repolock, resourceResolver, packageName, packagePath, distributionPackage);
}
catch (PersistenceException e) {
+ DistributionPackageUtils.deleteSafely(distributionPackage);
throw new DistributionPackageBuildingException(e);
}
+
+ String packagePath = getPathFromName(packageName);
+ return new ResourceSharedDistributionPackage(repolock, resourceResolver, packageName, packagePath, distributionPackage);
+
}
@CheckForNull
@@ -88,15 +93,19 @@ public class ResourceSharedDistributionP
return null;
}
+ String packageName = null;
try {
- String packageName = generateNameFromId(resourceResolver, distributionPackage);
- String packagePath = getPathFromName(packageName);
+ packageName = generateNameFromId(resourceResolver, distributionPackage);
- return new ResourceSharedDistributionPackage(repolock, resourceResolver, packageName, packagePath, distributionPackage);
}
catch (PersistenceException e) {
+ DistributionPackageUtils.deleteSafely(distributionPackage);
throw new DistributionPackageReadingException(e);
}
+
+ String packagePath = getPathFromName(packageName);
+
+ return new ResourceSharedDistributionPackage(repolock, resourceResolver, packageName, packagePath, distributionPackage);
}
public DistributionPackage getPackage(@Nonnull ResourceResolver resourceResolver, @Nonnull String distributionPackageId) {
@@ -112,7 +121,9 @@ public class ResourceSharedDistributionP
if (distributionPackage == null) {
return null;
}
+
String packagePath = getPathFromName(packageName);
+
return new ResourceSharedDistributionPackage(repolock, resourceResolver, packageName, packagePath, distributionPackage);
}
@@ -130,27 +141,27 @@ public class ResourceSharedDistributionP
private String generateNameFromId(ResourceResolver resourceResolver, DistributionPackage distributionPackage) throws PersistenceException {
- String name = PACKAGE_NAME_PREFIX + "_" + System.currentTimeMillis() + "_" + UUID.randomUUID();
+ String name = PACKAGE_NAME_PREFIX + "_" + System.currentTimeMillis() + "_" + UUID.randomUUID();
- Map<String, Object> properties = new HashMap<String, Object>();
- properties.put(PN_ORIGINAL_ID, distributionPackage.getId());
+ Map<String, Object> properties = new HashMap<String, Object>();
+ properties.put(PN_ORIGINAL_ID, distributionPackage.getId());
- // save the info just for debugging purposes
- if (distributionPackage.getInfo().getRequestType() != null) {
- properties.put(PN_ORIGINAL_REQUEST_TYPE, distributionPackage.getInfo().getRequestType());
+ // save the info just for debugging purposes
+ if (distributionPackage.getInfo().getRequestType() != null) {
+ properties.put(PN_ORIGINAL_REQUEST_TYPE, distributionPackage.getInfo().getRequestType().toString());
- }
- if (distributionPackage.getInfo().getPaths() != null) {
- properties.put(PN_ORIGINAL_PATHS, distributionPackage.getInfo().getPaths());
- }
+ }
+ if (distributionPackage.getInfo().getPaths() != null) {
+ properties.put(PN_ORIGINAL_PATHS, distributionPackage.getInfo().getPaths());
+ }
- String packagePath = getPathFromName(name);
+ String packagePath = getPathFromName(name);
- Resource resource = ResourceUtil.getOrCreateResource(resourceResolver, packagePath,
- "sling:Folder", "sling:Folder", false);
+ Resource resource = ResourceUtil.getOrCreateResource(resourceResolver, packagePath,
+ "sling:Folder", "sling:Folder", false);
- ModifiableValueMap valueMap = resource.adaptTo(ModifiableValueMap.class);
- valueMap.putAll(properties);
+ ModifiableValueMap valueMap = resource.adaptTo(ModifiableValueMap.class);
+ valueMap.putAll(properties);
synchronized (repolock) {
resourceResolver.create(resource, ResourceSharedDistributionPackage.REFERENCE_ROOT_NODE,
Modified: sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionPackageImporterServlet.java
URL: http://svn.apache.org/viewvc/sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionPackageImporterServlet.java?rev=1680244&r1=1680243&r2=1680244&view=diff
==============================================================================
--- sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionPackageImporterServlet.java (original)
+++ sling/trunk/contrib/extensions/distribution/core/src/main/java/org/apache/sling/distribution/servlet/DistributionPackageImporterServlet.java Tue May 19 10:59:02 2015
@@ -29,6 +29,8 @@ import org.apache.sling.api.resource.Res
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
import org.apache.sling.distribution.packaging.DistributionPackage;
import org.apache.sling.distribution.packaging.DistributionPackageImporter;
+import org.apache.sling.distribution.packaging.DistributionPackageInfo;
+import org.apache.sling.distribution.packaging.impl.DistributionPackageUtils;
import org.apache.sling.distribution.resources.DistributionResourceTypes;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -56,15 +58,11 @@ public class DistributionPackageImporter
InputStream stream = request.getInputStream();
ResourceResolver resourceResolver = request.getResourceResolver();
try {
- DistributionPackage distributionPackage = distributionPackageImporter.importStream(resourceResolver, stream);
- if (distributionPackage != null) {
- log.info("Package {} imported successfully", distributionPackage);
- distributionPackage.delete();
- ServletJsonUtils.writeJson(response, 200, "package imported successfully");
- } else {
- log.warn("Cannot import distribution package from request {}", request);
- ServletJsonUtils.writeJson(response, 400, "could not import a package from the request stream");
- }
+ DistributionPackageInfo distributionPackageInfo = distributionPackageImporter.importStream(resourceResolver, stream);
+
+ log.info("Package {} imported successfully", distributionPackageInfo);
+ ServletJsonUtils.writeJson(response, 200, "package imported successfully");
+
} catch (final Throwable e) {
ServletJsonUtils.writeJson(response, 400, "an unexpected error has occurred during distribution import");
log.error("Error during distribution import", e);