From ac2c378ef483fd486ae215c8e7019c69a6188eb9 Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Wed, 18 Jun 2014 09:54:09 +0000 Subject: [PATCH] Improve licenses and sources git-svn-id: https://svn.argeo.org/slc/trunk@7071 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../argeo/slc/repo/osgi/ArchiveWrapper.java | 1 + .../org/argeo/slc/repo/osgi/MavenWrapper.java | 28 +++++++++++++++++-- 2 files changed, 26 insertions(+), 3 deletions(-) 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 01ae4395e..832b790bf 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 @@ -128,6 +128,7 @@ public class ArchiveWrapper implements Runnable, ModuleSet, Distribution { wrapper.getName() + ".source", "jar", wrapper.getVersion()), pdeSource); osgiFactory.indexNode(pdeSourceNode); + pdeSourceNode.getSession().save(); } } else if (baseName.endsWith(".source")) { // TODO Eclipse source already available diff --git a/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/MavenWrapper.java b/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/MavenWrapper.java index 2942e212b..35668373a 100644 --- a/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/MavenWrapper.java +++ b/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/MavenWrapper.java @@ -8,12 +8,16 @@ import javax.jcr.Property; import javax.jcr.RepositoryException; import javax.jcr.Session; +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.DefaultNameVersion; +import org.argeo.slc.NameVersion; import org.argeo.slc.SlcException; import org.argeo.slc.repo.OsgiFactory; import org.argeo.slc.repo.RepoUtils; +import org.sonatype.aether.util.artifact.DefaultArtifact; public class MavenWrapper extends BndWrapper implements Runnable { private final static Log log = LogFactory.getLog(MavenWrapper.class); @@ -34,10 +38,9 @@ public class MavenWrapper extends BndWrapper implements Runnable { try { distSession = osgiFactory.openDistSession(); javaSession = osgiFactory.openJavaSession(); - Node sourceArtifact = osgiFactory.getMaven(distSession, - sourceCoords); + Node origArtifact = osgiFactory.getMaven(distSession, sourceCoords); - in = sourceArtifact.getNode(Node.JCR_CONTENT) + in = origArtifact.getNode(Node.JCR_CONTENT) .getProperty(Property.JCR_DATA).getBinary().getStream(); out = new ByteArrayOutputStream(); wrapJar(in, out); @@ -46,6 +49,25 @@ public class MavenWrapper extends BndWrapper implements Runnable { getArtifact(), out.toByteArray()); osgiFactory.indexNode(newJarNode); newJarNode.getSession().save(); + + // sources + try { + Node sourcesArtifact = osgiFactory.getMaven(distSession, + sourceCoords + ":sources"); + IOUtils.closeQuietly(in); + in = origArtifact.getNode(Node.JCR_CONTENT) + .getProperty(Property.JCR_DATA).getBinary().getStream(); + byte[] pdeSource = RepoUtils.packageAsPdeSource(in, + new DefaultNameVersion(getName(), getVersion())); + Node pdeSourceNode = RepoUtils.copyBytesAsArtifact(javaSession + .getRootNode(), new DefaultArtifact(getCategory(), + getName() + ".source", "jar", getVersion()), pdeSource); + osgiFactory.indexNode(pdeSourceNode); + pdeSourceNode.getSession().save(); + } catch (SlcException e) { + // no sources available + } + if (log.isDebugEnabled()) log.debug("Wrapped Maven " + sourceCoords + " to " + newJarNode.getPath()); -- 2.39.2