X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.repo%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Frepo%2Fosgi%2FArchiveWrapper.java;h=0adfe883f6d95ee7036dfa138c7d6da73d3061a9;hb=706b98df2c68382d7bd501fa05cb128f329087ee;hp=438552e4b91189b192c624f06fe06145bef6126f;hpb=7d6251e4260ed330236ae86b732307439affcf76;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/ArchiveWrapper.java b/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/ArchiveWrapper.java index 438552e4b..0adfe883f 100644 --- a/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/ArchiveWrapper.java +++ b/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/ArchiveWrapper.java @@ -109,6 +109,24 @@ public class ArchiveWrapper implements Runnable, ModuleSet, Distribution { sourceJarBytes, wrapper); addArtifactToIndex(binaries, wrapper.getGroupId(), artifact); } else { + for (String wrapperKey : wrappers.keySet()) + if (pathMatcher.match(wrapperKey, name)) { + // first matched is taken + BndWrapper wrapper = (BndWrapper) wrappers + .get(wrapperKey); + // we must copy since the stream is closed by BND + byte[] sourceJarBytes = IOUtils.toByteArray(zin); + Artifact artifact = wrapZipEntry(javaSession, + zentry, sourceJarBytes, wrapper); + addArtifactToIndex(binaries, wrapper.getGroupId(), + artifact); + continue entries; + } else { + if (log.isTraceEnabled()) + log.trace(name + " not matched by " + + wrapperKey); + } + for (String exclude : excludes) if (pathMatcher.match(exclude, name)) continue entries;