Improve OSGi factory
authorMathieu Baudier <mbaudier@argeo.org>
Wed, 4 Jun 2014 08:43:42 +0000 (08:43 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Wed, 4 Jun 2014 08:43:42 +0000 (08:43 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@7027 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

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/ArgeoOsgiDistribution.java
runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/BndWrapper.java
runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/MavenWrapper.java
runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/ProcessDistribution.java
runtime/org.argeo.slc.repo/src/main/java/org/argeo/slc/repo/osgi/UriWrapper.java

index 0adfe883f6d95ee7036dfa138c7d6da73d3061a9..3b0c8a0384ccafe16c4bf4dae5bf914b65852e11 100644 (file)
@@ -61,6 +61,7 @@ public class ArchiveWrapper implements Runnable, ModuleSet, Distribution {
                        for (BndWrapper wrapper : wrappers.values()) {
                                if (wrapper.getVersion() == null)
                                        wrapper.setVersion(version);
+                               wrapper.setFactory(this);
                        }
        }
 
index f0ab4e2e487d5e6a87f17d5d7dd66ef4ab9d19c8..709a8882b958524b36bb6bd4158f7b252c940595 100644 (file)
@@ -3,18 +3,17 @@ package org.argeo.slc.repo.osgi;
 import java.util.ArrayList;
 import java.util.Iterator;
 import java.util.List;
+import java.util.SortedSet;
+import java.util.TreeSet;
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-import org.argeo.slc.CategorizedNameVersion;
 import org.argeo.slc.ModuleSet;
 import org.argeo.slc.NameVersion;
 import org.argeo.slc.build.Distribution;
 import org.argeo.slc.build.ModularDistribution;
 import org.argeo.slc.execution.ExecutionFlow;
 import org.argeo.slc.repo.ArtifactDistribution;
-import org.sonatype.aether.artifact.Artifact;
-import org.sonatype.aether.util.artifact.DefaultArtifact;
 
 /** A consistent and versioned OSGi distribution, which can be built and tested. */
 public class ArgeoOsgiDistribution extends ArtifactDistribution implements
@@ -30,11 +29,20 @@ public class ArgeoOsgiDistribution extends ArtifactDistribution implements
 
        public void init() {
                if (log.isDebugEnabled()) {
+                       SortedSet<String> sort = new TreeSet<String>();
                        Iterator<? extends NameVersion> nvIt = nameVersions();
                        while (nvIt.hasNext()) {
-                               log.debug(nvIt.next());
+                               NameVersion nv = nvIt.next();
+                               sort.add(nv.getName() + ":" + nv.getVersion());
+                       }
 
+                       StringBuffer buf = new StringBuffer(
+                                       "## OSGi FACTORY MANAGED MODULES : \n");
+                       for (String str : sort) {
+                               buf.append(str).append('\n');
                        }
+
+                       log.debug(buf);
                }
        }
 
index f1acf49e4d8c54fb2e10c3d953ab73db1455beba..29c0f78e7e2e0828b116673105d154a1f2970a69 100644 (file)
@@ -31,6 +31,8 @@ public class BndWrapper implements Constants, CategorizedNameVersion,
 
        private Boolean doNotModify = false;
 
+       private Runnable factory = null;
+
        public void wrapJar(InputStream in, OutputStream out) {
                Builder b = new Builder();
                try {
@@ -101,6 +103,14 @@ public class BndWrapper implements Constants, CategorizedNameVersion,
 
        }
 
+       public Runnable getFactory() {
+               return factory;
+       }
+
+       public void setFactory(Runnable factory) {
+               this.factory = factory;
+       }
+
        public void setName(String bsn) {
                this.name = bsn;
        }
index 829bea480a79e9f2c72c2caa09ffafd745ff6b45..2942e212bf1282a6271cd9ecf60475f69080bccf 100644 (file)
@@ -22,6 +22,10 @@ public class MavenWrapper extends BndWrapper implements Runnable {
 
        private OsgiFactory osgiFactory;
 
+       public MavenWrapper() {
+               setFactory(this);
+       }
+
        public void run() {
                Session distSession = null;
                Session javaSession = null;
index 26f063991b936f049cdf7ee12f754d3cf1d430ab..982492c99667da69979aee6ade87ad4d4e9e13b6 100644 (file)
@@ -30,8 +30,8 @@ public class ProcessDistribution implements Runnable {
                        Iterator<NameVersion> it = osgiDistribution.nameVersions();
                        while (it.hasNext()) {
                                NameVersion t = it.next();
-                               if (log.isDebugEnabled())
-                                       log.debug("Check " + t + "...");
+                               if (log.isTraceEnabled())
+                                       log.trace("Check " + t + "...");
                                if (!(t instanceof CategorizedNameVersion))
                                        throw new SlcException("Unsupported type " + t.getClass());
                                CategorizedNameVersion nv = (CategorizedNameVersion) t;
@@ -39,13 +39,21 @@ public class ProcessDistribution implements Runnable {
                                                nv.getName(), "jar", nv.getVersion());
                                String path = MavenConventionsUtils.artifactPath("/", artifact);
                                if (!javaSession.itemExists(path)) {
-                                       if (nv instanceof Runnable) {
+                                       // if (nv instanceof Runnable) {
+                                       // if (log.isDebugEnabled())
+                                       // log.debug("Run " + nv + "...");
+                                       // ((Runnable) nv).run();
+                                       // } else
+                                       if (nv instanceof BndWrapper) {
                                                if (log.isDebugEnabled())
-                                                       log.debug("Run " + nv + "...");
-                                               ((Runnable) nv).run();
+                                                       log.debug("Run factory for   : " + nv + "...");
+                                               ((BndWrapper) nv).getFactory().run();
                                        } else {
-                                               log.warn("Skipped unsupported " + nv);
+                                               log.warn("Skip unsupported   : " + nv);
                                        }
+                               } else {
+                                       if (log.isDebugEnabled())
+                                               log.debug("Already available : " + nv);
                                }
                        }
                } catch (RepositoryException e) {
index 45456ad31abb4d525a9b34f1c53636628682913a..7cb9de6e28646b49e29d12f9b5c9e6949afc71a1 100644 (file)
@@ -25,6 +25,10 @@ public class UriWrapper extends BndWrapper implements Runnable {
 
        private OsgiFactory osgiFactory;
 
+       public UriWrapper() {
+               setFactory(this);
+       }
+
        public void run() {
                Session distSession = null;
                Session javaSession = null;