From: Mathieu Baudier Date: Thu, 1 Jan 2015 15:40:57 +0000 (+0000) Subject: Support multiple runnables X-Git-Tag: argeo-slc-2.1.7~151 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=5ac03e85fd8d26772e7a11331b8c570fd9858e31;p=gpl%2Fargeo-slc.git Support multiple runnables git-svn-id: https://svn.argeo.org/slc/trunk@7608 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- 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();