Can disable source modification
authorMathieu Baudier <mbaudier@argeo.org>
Fri, 2 Jan 2015 21:10:18 +0000 (21:10 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Fri, 2 Jan 2015 21:10:18 +0000 (21:10 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@7615 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

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

index 085e1ddfd73e944f6b4e94c8994a99ae53ee7135..ab7daeb111b311c78fb6e4d04c8768f7919a65d1 100644 (file)
@@ -31,6 +31,8 @@ public class MavenWrapper extends BndWrapper implements Runnable {
 
        private OsgiFactory osgiFactory;
 
+       private Boolean doNotModifySources = false;
+
        public MavenWrapper() {
                setFactory(this);
        }
@@ -46,8 +48,8 @@ public class MavenWrapper extends BndWrapper implements Runnable {
        public void run() {
                Session distSession = null;
                Session javaSession = null;
-               InputStream in;
-               ByteArrayOutputStream out;
+               InputStream in = null;
+               ByteArrayOutputStream out = null;
                try {
                        distSession = osgiFactory.openDistSession();
                        javaSession = osgiFactory.openJavaSession();
@@ -89,8 +91,12 @@ public class MavenWrapper extends BndWrapper implements Runnable {
                        IOUtils.closeQuietly(in);
                        in = sourcesArtifactNode.getNode(Node.JCR_CONTENT)
                                        .getProperty(Property.JCR_DATA).getBinary().getStream();
-                       byte[] pdeSource = RepoUtils.packageAsPdeSource(in,
-                                       new DefaultNameVersion(getName(), getVersion()));
+                       byte[] pdeSource;
+                       if (doNotModifySources)
+                               pdeSource = IOUtils.toByteArray(in);
+                       else
+                               pdeSource = RepoUtils.packageAsPdeSource(in,
+                                               new DefaultNameVersion(getName(), getVersion()));
                        Node pdeSourceNode = RepoUtils.copyBytesAsArtifact(javaSession
                                        .getRootNode(), new DefaultArtifact(getCategory(),
                                        getName() + ".source", "jar", getVersion()), pdeSource);
@@ -100,11 +106,13 @@ public class MavenWrapper extends BndWrapper implements Runnable {
                        if (log.isDebugEnabled())
                                log.debug("Wrapped Maven " + sourcesArtifact
                                                + " to PDE sources " + pdeSourceNode.getPath());
-               } catch (RepositoryException e) {
+               } catch (Exception e) {
                        throw new SlcException("Cannot wrap Maven " + sourceCoords, e);
                } finally {
                        JcrUtils.logoutQuietly(distSession);
                        JcrUtils.logoutQuietly(javaSession);
+                       IOUtils.closeQuietly(in);
+                       IOUtils.closeQuietly(out);
                }
        }
 
@@ -116,4 +124,8 @@ public class MavenWrapper extends BndWrapper implements Runnable {
                this.osgiFactory = osgiFactory;
        }
 
+       public void setDoNotModifySources(Boolean doNotModifySources) {
+               this.doNotModifySources = doNotModifySources;
+       }
+
 }