You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2021/06/24 15:36:40 UTC

[sling-org-apache-sling-feature-analyser] branch master updated: SLING-10545 : Make manifest for content packages optional

This is an automated email from the ASF dual-hosted git repository.

cziegeler pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-feature-analyser.git


The following commit(s) were added to refs/heads/master by this push:
     new 8a9a8ca  SLING-10545 : Make manifest for content packages optional
8a9a8ca is described below

commit 8a9a8ca65b024e2f3335fe027c584bff2952d4d7
Author: Carsten Ziegeler <cz...@apache.org>
AuthorDate: Thu Jun 24 17:36:27 2021 +0200

    SLING-10545 : Make manifest for content packages optional
---
 .../feature/scanner/impl/ArtifactDescriptorImpl.java     | 16 ++++++++++++++--
 .../sling/feature/scanner/impl/BundleDescriptorImpl.java |  3 +++
 .../feature/scanner/impl/ContentPackageDescriptor.java   |  2 +-
 3 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/apache/sling/feature/scanner/impl/ArtifactDescriptorImpl.java b/src/main/java/org/apache/sling/feature/scanner/impl/ArtifactDescriptorImpl.java
index a711bc2..8010199 100644
--- a/src/main/java/org/apache/sling/feature/scanner/impl/ArtifactDescriptorImpl.java
+++ b/src/main/java/org/apache/sling/feature/scanner/impl/ArtifactDescriptorImpl.java
@@ -44,17 +44,29 @@ public class ArtifactDescriptorImpl
      * @param artifact Optional artifact
      * @param url Optional url
      * @param hasManifest Whether that artifact must have a metafest
+     * @param isManifestOptional Whether the manifest is optional
      * @throws IOException If processing fails
      */
     public ArtifactDescriptorImpl(
             final String name,
             final Artifact artifact,
             final URL url,
-            final boolean hasManifest) throws IOException  {
+            final boolean hasManifest,
+            final boolean isManifestOptional) throws IOException  {
         super(name != null ? name : artifact.getId().toMvnId());
         this.artifact = artifact;
         this.artifactFile = url;
-        this.manifest = hasManifest ? new Manifest(BundleDescriptorImpl.getManifest(url)) : null;
+        Manifest mf = null;
+        if ( hasManifest ) {
+            try {
+                mf = new Manifest(BundleDescriptorImpl.getManifest(url));
+            } catch ( final IOException ioe) {
+                if ( !isManifestOptional ) {
+                    throw ioe;
+                }
+            }
+        }
+        this.manifest = mf;
     }
 
     @Override
diff --git a/src/main/java/org/apache/sling/feature/scanner/impl/BundleDescriptorImpl.java b/src/main/java/org/apache/sling/feature/scanner/impl/BundleDescriptorImpl.java
index fec6d41..39479e4 100644
--- a/src/main/java/org/apache/sling/feature/scanner/impl/BundleDescriptorImpl.java
+++ b/src/main/java/org/apache/sling/feature/scanner/impl/BundleDescriptorImpl.java
@@ -91,6 +91,9 @@ public class BundleDescriptorImpl
             } else {
                 try (JarFile jarFile = IOUtils.getJarFileFromURL(file, true, null)) {
                     manifest = jarFile.getManifest();
+                } catch ( final IOException ioe) {
+                    // rethrow with more info
+                    throw new IOException(file + " : " + ioe.getMessage(), ioe);
                 }
             }
         } catch (URISyntaxException e) {
diff --git a/src/main/java/org/apache/sling/feature/scanner/impl/ContentPackageDescriptor.java b/src/main/java/org/apache/sling/feature/scanner/impl/ContentPackageDescriptor.java
index 1136555..039689c 100644
--- a/src/main/java/org/apache/sling/feature/scanner/impl/ContentPackageDescriptor.java
+++ b/src/main/java/org/apache/sling/feature/scanner/impl/ContentPackageDescriptor.java
@@ -62,7 +62,7 @@ public class ContentPackageDescriptor extends ArtifactDescriptorImpl {
     public ContentPackageDescriptor(final String name,
             final Artifact artifact,
             final URL url) throws IOException  {
-        super(name, artifact, url, true);
+        super(name, artifact, url, true, true);
     }
 
     /**