Make modular distribution more robust
authorMathieu Baudier <mbaudier@argeo.org>
Sat, 3 Jan 2015 12:46:14 +0000 (12:46 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Sat, 3 Jan 2015 12:46:14 +0000 (12:46 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@7620 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/ModularDistributionIndexer.java
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/ArgeoOsgiDistributionImpl.java

index 3f9f7dcc5e25150ab7cb5dcf4c6afe855ae18fd8..bca049618dd996a2abc04ec1bbc11521414e8a98 100644 (file)
@@ -20,7 +20,6 @@ import org.apache.commons.io.FilenameUtils;
 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.CategorizedNameVersion;
 import org.argeo.slc.DefaultNameVersion;
 import org.argeo.slc.NameVersion;
@@ -121,8 +120,9 @@ public class ModularDistributionIndexer implements NodeIndexer, SlcNames {
                distNode.setProperty(SlcNames.SLC_CATEGORY, osgiDist.getCategory());
                distNode.setProperty(SlcNames.SLC_NAME, osgiDist.getName());
                distNode.setProperty(SlcNames.SLC_VERSION, osgiDist.getVersion());
-               Node modules = JcrUtils.mkdirs(distNode, SlcNames.SLC_MODULES,
-                               NodeType.NT_UNSTRUCTURED);
+               if (distNode.hasNode(SLC_MODULES))
+                       distNode.getNode(SLC_MODULES).remove();
+               Node modules = distNode.addNode(SLC_MODULES, NodeType.NT_UNSTRUCTURED);
 
                for (Iterator<? extends NameVersion> it = osgiDist.nameVersions(); it
                                .hasNext();)
index 97317548428d546806472211addd448a6fca4323..768cbbde392ea03ddd80dd19f91de2d9e4538390 100644 (file)
@@ -121,6 +121,8 @@ public class ArchiveWrapper implements Runnable, ModuleSet, Distribution {
                                                NameVersion nv = RepoUtils.readNameVersion(jis
                                                                .getManifest());
                                                if (nv != null) {
+                                                       if (nv.getName().endsWith(".source"))
+                                                               continue entries;
                                                        CategorizedNameVersion cnv = new OsgiCategorizedNV(
                                                                        groupId, nv.getName(), nv.getVersion(),
                                                                        this);
@@ -194,9 +196,9 @@ public class ArchiveWrapper implements Runnable, ModuleSet, Distribution {
                                                                        + "from " + name + " in binary archive.");
                                        }
 
-                               } else if (baseName.endsWith(".source")) {
-                                       // TODO Eclipse source already available
                                }
+                               // else if (baseName.endsWith(".source")) {
+                               // }
 
                                // binaries
                                if (wrappers.containsKey(name)) {
@@ -234,9 +236,9 @@ public class ArchiveWrapper implements Runnable, ModuleSet, Distribution {
                                        for (String include : includes.keySet()) {
                                                if (pathMatcher.match(include, name)) {
                                                        String groupId = includes.get(include);
-                                                       byte[] sourceJarBytes = IOUtils.toByteArray(zin);
+                                                       byte[] origJarBytes = IOUtils.toByteArray(zin);
                                                        Artifact artifact = importZipEntry(javaSession,
-                                                                       zentry, sourceJarBytes, groupId);
+                                                                       zentry, origJarBytes, groupId);
                                                        if (artifact == null) {
                                                                log.warn("Skipped non identified " + zentry);
                                                                continue entries;
index 72deeadede3f96091db1dec54b65413f83700455..b47da8b887fcdae29253c1ea8f592f39cfc03adc 100644 (file)
@@ -6,8 +6,6 @@ import java.util.List;
 import java.util.SortedSet;
 import java.util.TreeSet;
 
-import javax.swing.text.StyledEditorKit.ItalicAction;
-
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.argeo.slc.ModuleSet;