X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;ds=sidebyside;f=runtime%2Forg.argeo.slc.repo%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Frepo%2Fosgi%2FMavenWrapper.java;h=3de52c53c9950510d9f87ceae677788277b95f7d;hb=04da2b2f6d5340aa2deb6bd3ed26044d6cb5fd13;hp=35668373a36d0e1a8b6dcb90a05312eed7c61f18;hpb=ac2c378ef483fd486ae215c8e7019c69a6188eb9;p=gpl%2Fargeo-slc.git 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 35668373a..3de52c53c 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 @@ -13,11 +13,12 @@ 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.artifact.Artifact; import org.sonatype.aether.util.artifact.DefaultArtifact; +import org.sonatype.aether.util.artifact.SubArtifact; public class MavenWrapper extends BndWrapper implements Runnable { private final static Log log = LogFactory.getLog(MavenWrapper.class); @@ -38,7 +39,13 @@ public class MavenWrapper extends BndWrapper implements Runnable { try { distSession = osgiFactory.openDistSession(); javaSession = osgiFactory.openJavaSession(); - Node origArtifact = osgiFactory.getMaven(distSession, sourceCoords); + Node origArtifact; + try { + origArtifact = osgiFactory.getMaven(distSession, sourceCoords); + } catch (Exception e1) { + origArtifact = osgiFactory.getMaven(distSession, sourceCoords + + ":" + getVersion()); + } in = origArtifact.getNode(Node.JCR_CONTENT) .getProperty(Property.JCR_DATA).getBinary().getStream(); @@ -50,27 +57,37 @@ public class MavenWrapper extends BndWrapper implements Runnable { osgiFactory.indexNode(newJarNode); newJarNode.getSession().save(); + if (log.isDebugEnabled()) + log.debug("Wrapped Maven " + sourceCoords + " to " + + newJarNode.getPath()); + // sources + Artifact sourcesArtifact = new SubArtifact(new DefaultArtifact( + sourceCoords), "sources", null); + Node sourcesArtifactNode; 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(); + + sourcesArtifactNode = osgiFactory.getMaven(distSession, + sourcesArtifact.toString()); } catch (SlcException e) { // no sources available + return; } + IOUtils.closeQuietly(in); + in = sourcesArtifactNode.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(); + if (log.isDebugEnabled()) - log.debug("Wrapped Maven " + sourceCoords + " to " - + newJarNode.getPath()); + log.debug("Wrapped Maven " + sourcesArtifact + + " to PDE sources " + pdeSourceNode.getPath()); } catch (RepositoryException e) { throw new SlcException("Cannot wrap Maven " + sourceCoords, e); } finally {