X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.repo%2Fsrc%2Forg%2Fargeo%2Fslc%2Frepo%2Fosgi%2FArchiveWrapper.java;h=2a3e5b0edc9e131529c4a8e4c70076d92db80487;hb=dfac3414a612edd63eaaf8568ddc80271707af22;hp=f5ba43682fa664ef0234a960a46d8b08fb549528;hpb=d154e9f68017e8c5a8edac15475b2d79aea3e9d4;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.repo/src/org/argeo/slc/repo/osgi/ArchiveWrapper.java b/org.argeo.slc.repo/src/org/argeo/slc/repo/osgi/ArchiveWrapper.java index f5ba43682..2a3e5b0ed 100644 --- a/org.argeo.slc.repo/src/org/argeo/slc/repo/osgi/ArchiveWrapper.java +++ b/org.argeo.slc.repo/src/org/argeo/slc/repo/osgi/ArchiveWrapper.java @@ -25,7 +25,7 @@ import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.argeo.jcr.JcrUtils; -import org.argeo.slc.CategorizedNameVersion; +import org.argeo.slc.CategoryNameVersion; import org.argeo.slc.DefaultNameVersion; import org.argeo.slc.ModuleSet; import org.argeo.slc.NameVersion; @@ -34,13 +34,13 @@ import org.argeo.slc.build.Distribution; import org.argeo.slc.build.License; import org.argeo.slc.repo.OsgiFactory; import org.argeo.slc.repo.RepoUtils; +import org.argeo.slc.repo.internal.springutil.AntPathMatcher; +import org.argeo.slc.repo.internal.springutil.PathMatcher; import org.argeo.slc.repo.maven.ArtifactIdComparator; import org.eclipse.aether.artifact.Artifact; import org.eclipse.aether.artifact.DefaultArtifact; -import org.springframework.util.AntPathMatcher; -import org.springframework.util.PathMatcher; -import aQute.lib.osgi.Jar; +import aQute.bnd.osgi.Jar; /** * Download a software distribution and generates the related OSGi bundles from @@ -86,6 +86,18 @@ public class ArchiveWrapper implements Runnable, ModuleSet, Distribution { return uri; } + public String getVersion() { + return version; + } + + public License getLicense() { + return license; + } + + public String getUri() { + return uri; + } + public Iterator nameVersions() { if (wrappers.size() > 0) return wrappers.values().iterator(); @@ -95,7 +107,7 @@ public class ArchiveWrapper implements Runnable, ModuleSet, Distribution { @SuppressWarnings("resource") protected Iterator osgiNameVersions() { - List nvs = new ArrayList(); + List nvs = new ArrayList(); Session distSession = null; ZipInputStream zin = null; @@ -127,7 +139,7 @@ public class ArchiveWrapper implements Runnable, ModuleSet, Distribution { if (nv != null) { if (nv.getName().endsWith(".source")) continue entries; - CategorizedNameVersion cnv = new OsgiCategorizedNV(groupId, nv.getName(), nv.getVersion(), + CategoryNameVersion cnv = new ArchiveWrapperCNV(groupId, nv.getName(), nv.getVersion(), this); nvs.add(cnv); // no need to process further includes @@ -253,10 +265,12 @@ public class ArchiveWrapper implements Runnable, ModuleSet, Distribution { } } - if (nothingWasDone) - throw new SlcException("Nothing was done"); + if (nothingWasDone) { + log.error("Nothing was done when wrapping " + uri + ". THE DISTRIBUTION IS INCONSISTENT."); + // throw new SlcException("Nothing was done"); + // TODO Fail if not all wrappers matched + } - // FIXME Fail if not all wrappers matched } catch (Exception e) { throw new SlcException("Cannot wrap distribution " + uri, e); } finally { @@ -404,4 +418,16 @@ public class ArchiveWrapper implements Runnable, ModuleSet, Distribution { this.sourcesProvider = sourcesProvider; } + public Map getWrappers() { + return wrappers; + } + + public Map getIncludes() { + return includes; + } + + public List getExcludes() { + return excludes; + } + }