Improve licenses and sources
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 18 Jun 2014 09:54:09 +0000 (09:54 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 18 Jun 2014 09:54:09 +0000 (09:54 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@7071 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/ArchiveWrapper.java
runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/MavenWrapper.java

index 01ae4395eddca2712d4994e106654fb0c1ee5dc1..832b790bf91f94724aff64d9e572a4955060e193 100644 (file)
@@ -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
index 2942e212bf1282a6271cd9ecf60475f69080bccf..35668373a36d0e1a8b6dcb90a05312eed7c61f18 100644 (file)
@@ -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());