X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=runtime%2Forg.argeo.slc.repo%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Frepo%2Fosgi%2FArgeoOsgiDistributionImpl.java;fp=runtime%2Forg.argeo.slc.repo%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Frepo%2Fosgi%2FArgeoOsgiDistributionImpl.java;h=72deeadede3f96091db1dec54b65413f83700455;hb=5ac03e85fd8d26772e7a11331b8c570fd9858e31;hp=08746b5e20032d9e0f8f4c4c0ea23e8f61d6b638;hpb=f03472814ee38e8d3b415da114db52adc2663fb3;p=gpl%2Fargeo-slc.git diff --git a/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/ArgeoOsgiDistributionImpl.java b/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/ArgeoOsgiDistributionImpl.java index 08746b5e2..72deeaded 100644 --- a/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/ArgeoOsgiDistributionImpl.java +++ b/runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/ArgeoOsgiDistributionImpl.java @@ -6,6 +6,8 @@ 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; @@ -73,21 +75,39 @@ public class ArgeoOsgiDistributionImpl extends ArtifactDistribution implements List nameVersions = new ArrayList(); for (Object module : modules) { // extract runnable from execution flow - if (module instanceof ExecutionFlow) - module = ((ExecutionFlow) module).getRunnable(); - - if (module instanceof ModuleSet) - addNameVersions(nameVersions, (ModuleSet) module); - else if (module instanceof NameVersion) { - NameVersion nv = (NameVersion) module; - if (!nameVersions.contains(nv)) - nameVersions.add(nv); - } else - log.warn("Ignored " + module); + if (module instanceof ExecutionFlow) { + for (Iterator it = ((ExecutionFlow) module) + .runnables(); it.hasNext();) { + processModule(nameVersions, it.next()); + } + } + // module = ((ExecutionFlow) module).getRunnable(); + else { + processModule(nameVersions, module); + } + // if (module instanceof ModuleSet) + // addNameVersions(nameVersions, (ModuleSet) module); + // else if (module instanceof NameVersion) { + // NameVersion nv = (NameVersion) module; + // if (!nameVersions.contains(nv)) + // nameVersions.add(nv); + // } else + // log.warn("Ignored " + module); } return nameVersions.iterator(); } + private void processModule(List nameVersions, Object module) { + if (module instanceof ModuleSet) + addNameVersions(nameVersions, (ModuleSet) module); + else if (module instanceof NameVersion) { + NameVersion nv = (NameVersion) module; + if (!nameVersions.contains(nv)) + nameVersions.add(nv); + } else + log.warn("Ignored " + module); + } + private void addNameVersions(List nameVersions, ModuleSet moduleSet) { Iterator it = moduleSet.nameVersions();