Unable to run JUnit test - 100% CPU then OOME when resolving bundles

287 views
Skip to first unread message

Dan Gravell

unread,
Mar 26, 2013, 12:53:27 PM3/26/13
to bndtool...@googlegroups.com
I'm trying to run a JUnit test but whenever I do the CPU for the process hits 100% and after a few minutes I get an OOME.

Looking in the heap dump it shows that the OOME occurs when Felix is asked to resolveBundles from the main thread:

main
  at java.lang.OutOfMemoryError.<init>()V (OutOfMemoryError.java:42)
  at java.util.Arrays.copyOf([Ljava/lang/Object;I)[Ljava/lang/Object; (Arrays.java:2746)
  at java.util.ArrayList.ensureCapacity(I)V (ArrayList.java:187)
  at java.util.ArrayList.add(Ljava/lang/Object;)Z (ArrayList.java:378)
  at org.apache.felix.framework.resolver.ResolverImpl.mergeUses(Lorg/osgi/framework/wiring/BundleRevision;Lorg/apache/felix/framework/resolver/ResolverImpl$Packages;Lorg/osgi/framework/wiring/BundleCapability;Ljava/util/List;Ljava/util/Map;Lorg/apache/felix/framework/resolver/Candidates;Ljava/util/Map;)V (ResolverImpl.java:891)
  at org.apache.felix.framework.resolver.ResolverImpl.mergeUses(Lorg/osgi/framework/wiring/BundleRevision;Lorg/apache/felix/framework/resolver/ResolverImpl$Packages;Lorg/osgi/framework/wiring/BundleCapability;Ljava/util/List;Ljava/util/Map;Lorg/apache/felix/framework/resolver/Candidates;Ljava/util/Map;)V (ResolverImpl.java:893)
  at org.apache.felix.framework.resolver.ResolverImpl.mergeUses(Lorg/osgi/framework/wiring/BundleRevision;Lorg/apache/felix/framework/resolver/ResolverImpl$Packages;Lorg/osgi/framework/wiring/BundleCapability;Ljava/util/List;Ljava/util/Map;Lorg/apache/felix/framework/resolver/Candidates;Ljava/util/Map;)V (ResolverImpl.java:899)
  at org.apache.felix.framework.resolver.ResolverImpl.calculatePackageSpaces(Lorg/osgi/framework/wiring/BundleRevision;Lorg/apache/felix/framework/resolver/Candidates;Ljava/util/Map;Ljava/util/Map;Ljava/util/Set;)V (ResolverImpl.java:659)
  at org.apache.felix.framework.resolver.ResolverImpl.resolve(Lorg/apache/felix/framework/resolver/Resolver$ResolverState;Ljava/util/Set;Ljava/util/Set;Ljava/util/Set;)Ljava/util/Map; (ResolverImpl.java:181)
  at org.apache.felix.framework.StatefulResolver.resolve(Ljava/util/Set;Ljava/util/Set;)V (StatefulResolver.java:168)
  at org.apache.felix.framework.Felix.resolveBundles(Ljava/util/Collection;)Z (Felix.java:3783)
  at org.apache.felix.framework.FrameworkWiringImpl.resolveBundles(Ljava/util/Collection;)Z (FrameworkWiringImpl.java:117)
  at org.apache.felix.framework.PackageAdminImpl.resolveBundles([Lorg/osgi/framework/Bundle;)Z (PackageAdminImpl.java:262)
  at aQute.launcher.Launcher.update()V (Launcher.java:290)
  at aQute.launcher.Launcher.activate()I (Launcher.java:235)
  at aQute.launcher.Launcher.run([Ljava/lang/String;)V (Launcher.java:139)
  at aQute.launcher.Launcher.main([Ljava/lang/String;)V (Launcher.java:74)

The ResolverImpl consumes 90MB - I have -Xmx128M.

I'm guessing there's something strange in my setup maybe causing duplicate bundles to be deployed? What sort of information is required for this to debug?

Thanks,
Dan

jerome moliere

unread,
Mar 26, 2013, 1:32:13 PM3/26/13
to bndtool...@googlegroups.com
Hi Dan,
what is the result of the following shell command (in felix) : felix:lb?
I guess that showing contents from your bnd.bnd file may help..
especially the run requirements clause 

Kind regards
Jerome

PS:
128Mb of heap is quite big for standard applications 

J.MOLIERE - Mentor/J



2013/3/26 Dan Gravell <elstens...@googlemail.com>

--
You received this message because you are subscribed to the Google Groups "bndtools-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bndtools-user...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

Dan Gravell

unread,
Mar 26, 2013, 2:02:03 PM3/26/13
to bndtool...@googlegroups.com
Thanks. I can't do an lb because it doesn't get to the point where gogo is started... it's at deployment time this OOME occurs.

The bndrun file is:

-runfw: org.apache.felix.framework;version='[4,5)'
-runee: JavaSE-1.6
-runrepos: Local,\
Bndtools Hub,\
Workspace
-runbundles: com.google.guava;version=11.0.1,\
log4j,\
org.apache.commons.httpclient,\
com.elsten.bliss.platform.test;version=latest,\
org.jaudiotagger,\
org.apache.commons.lang,\
com.google.guava;version='[11.0.0,12.0.0)',\
org.junit;version='[4.10.0,4.11.0)',\
com.springsource.javax.media.jai.core;version='[1.1.3,1.2.0)',\
com.springsource.javax.media.jai.codec;version='[1.1.3,1.2.0)',\
com.sun.jna;version='[3.2.1,3.2.2)',\
net.contentobjects.jnotify;version='[0.94.0,0.95.0)',\
net.contentobjects.jnotify.linux.x86;version='[0.94.0,0.95.0)',\
com.elsten.util;version=latest,\
com.elsten.util.test;version=latest,\
com.elsten.bliss.model.api;version=latest,\
com.elsten.bliss.bundle;version=latest,\
com.elsten.bliss.logging;version=latest,\
com.elsten.bliss.model;version=latest,\
com.elsten.bliss.platform;version=latest,\
com.elsten.bliss.platform.stresstest;version=latest,\
com.elsten.bliss.model.test;version=latest,\
com.elsten.bliss.music.info.dto;version=latest,\
com.elsten.bliss.music.info.tagsource.impl;version=latest,\
com.elsten.bliss.music.info.tagsource.api;version=latest,\
com.elsten.bliss.policy.coverart.lookup.api;version=latest,\
com.elsten.bliss.policy.coverart.lookup.common;version=latest,\
com.elsten.bliss.policy.tag.auto;version=latest,\
com.elsten.bliss.policy.parsed;version=latest,\
com.elsten.bliss.policy.tag.tagtype;version=latest,\
com.elsten.bliss.music.info.api;version=latest,\
com.elsten.bliss.music.info.common;version=latest,\
com.elsten.bliss.ui;version=latest,\
com.elsten.bliss.updater;version=latest,\
com.elsten.musicbrainz;version=latest,\
com.elsten.bliss.osgi.system;version=latest,\
com.google.gson,\
jdbm-trunk-patched;version='[0.0.0,0.0.1)',\
javax.servlet,\
org.apache.felix.scr;version='[1.6.0,1.6.1)',\
osgi.cmpn;version='[4.2.0,4.2.1)',\
org.apache.commons.codec;version='[1.4.0,1.4.1)',\
org.apache.commons.logging;version=latest,\
JGoogleAnalytics_0.3,\
scala-library;version='[2.9.1,2.9.2)',\
org.apache.felix.bundlerepository;version='[1.6.6,1.7.0)',\
org.eclipse.jetty.osgi.boot;version='[7.6.1,7.6.2)',\
org.eclipse.jetty.webapp;version='[7.6.1,7.6.2)',\
org.eclipse.jetty.continuation;version='[7.6.1,7.6.2)',\
org.eclipse.jetty.server;version='[7.6.1,7.6.2)',\
org.eclipse.jetty.xml;version='[7.6.1,7.6.2)',\
org.eclipse.jetty.security;version='[7.6.1,7.6.2)',\
org.eclipse.jetty.http;version='[7.6.1,7.6.2)',\
org.eclipse.jetty.util;version='[7.6.1,7.6.2)',\
org.eclipse.jetty.servlet;version='[7.6.1,7.6.2)',\
org.eclipse.jetty.io;version='[7.6.1,7.6.2)',\
org.eclipse.jetty.deploy;version='[7.6.1,7.6.2)',\
slf4j.log4j12;version='[1.6.4,1.6.5)',\
slf4j.api;version='[1.6.4,1.6.5)',\
org.apache.commons.collections;version='[3.2.1,3.2.2)'
Test-Cases: com.elsten.bliss.music.policy.coverartpolicy.stresstest.AssortedRealLifeLibraryLargeArtCoverArtEndToEndTest
-runproperties: ds.loglevel=3

Dan

jerome moliere

unread,
Mar 26, 2013, 2:12:02 PM3/26/13
to bndtool...@googlegroups.com
Humm this run directive sounds very heavy , are you really sure to need at the same time commons logging and slf4j ? If you cannot increase the heap size and the perm gen size I fear that you will be obliged to chase some unused dependencies...Don't know the eclipse packaging for Jetty but if you simply need an Http Service implementation you can get it for fewer bundles (and probably bytecode size).
Webconsole could be your friend too but it's not the good moment to add bundles...

Kind regards
jerome

Neil Bartlett

unread,
Mar 26, 2013, 3:26:55 PM3/26/13
to bndtool...@googlegroups.com
I think it might be best to report this as an issue against the Felix resolver. As Jerome says you have quite a few bundles, but it's not THAT many... I've seen Eclipse instances with over 500 resolved/active bundles. So it should be possible to handle this many.

For diagnostics I would start by attaching a profiler or using the Eclipse Memory Analyzer Toolkit.

Cheers,
Neil


--

jerome moliere

unread,
Mar 26, 2013, 4:36:56 PM3/26/13
to bndtool...@googlegroups.com
Yes of course ,WASD is composed of 500+ hundred plugins (aka bundles) but does not fit in  128Mb....Judging by your plugins runtime description are you sure that the native code invoked through JNA does not consume much memory ? Can you through your bundle & config try to decrease memory consumption (it seems that it is a linux sound library using maybe some cache/buffer)?

kind regards
Jerome

J.MOLIERE - Mentor/J



2013/3/26 Neil Bartlett <njbar...@gmail.com>

Peter Kriens

unread,
Mar 27, 2013, 3:28:13 AM3/27/13
to bndtool...@googlegroups.com
can you set -runtrace: true and show the output?

Does the same set of bundles resolve with OSGi Run instead of OSGi Debug?

Kind regards.

Peter Kriens

Dan Gravell

unread,
Mar 28, 2013, 1:25:27 PM3/28/13
to bndtool...@googlegroups.com
Regarding the memory usage, as stated it is the ResolverImpl using 90MB and the OOME occurs in the main thread (I have already used MAT to find this out).

I forgot to say this is all bndtools v2. I used to use an alpha of v2, but created a new workspace when upgrading and re-imported the new projects. When I did this I also copied the projects on the filesystem because I noticed a strange bug on my first attempt where the cnf would point back to the old workspace!

can you set -runtrace: true and show the output?

I've appended the output of runtrace at the end of this message, due to its length (thought it would be more searchable than attaching).
 
Does the same set of bundles resolve with OSGi Run instead of OSGi Debug?

Interesting question. The answer is, for this particular bundle, it used to be that nothing resolved, which might be part of the issue. I had to build the runbundles manually.

Before, if I dropped in *just* the bundle containing the test, then resolve, I used to get an error dialog about a missing requirement on <<INITIAL>> saying that the actual bundle under test couldn't be found. I say "it used to be that..." - well this doesn't happen anymore, so I can't copy and paste the actual message, sorry.

So now, resolution does work. Running the test now still gives 100% CPU, but for much less time. So maybe it is to do with the resolution and the number of bundles being run. That said this is not normally a problem when I run the app 'normally' via the bnd runner.

I've now hit a problem with JUnit. JUnit4 is being used, why I know not, although I know a JUnit4 bundle is pulled in by a bundle this bundle-under-test is dependent on. I tried adding an explicit dependency on JUnit4 in my bundle and adding @Test methods, but this didn't work, JUnit still thinks there are no test methods in this particular class. Maybe a class loading/comparison problem for the @Test annotation?

So here's runtrace... the CPU hits 100% after the "bundles administered" line.

# inited runbundles=[/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/JGoogleAnalytics_0.3/JGoogleAnalytics_0.3-0.0.0.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model/generated/com.elsten.bliss.model.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model.api/generated/com.elsten.bliss.model.api.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model.test/generated/com.elsten.bliss.model.test.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.api/generated/com.elsten.bliss.music.info.api.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.common/generated/com.elsten.bliss.music.info.common.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.dto/generated/com.elsten.bliss.music.info.dto.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.tagsource.api/generated/com.elsten.bliss.music.info.tagsource.api.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.tagsource.impl/generated/com.elsten.bliss.music.info.tagsource.impl.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.osgi.system/generated/com.elsten.bliss.osgi.system.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform/generated/com.elsten.bliss.platform.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.stresstest/generated/com.elsten.bliss.platform.stresstest.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.test/generated/com.elsten.bliss.platform.test.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.coverart.lookup.api/generated/com.elsten.bliss.policy.coverart.lookup.api.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.coverart.lookup.common/generated/com.elsten.bliss.policy.coverart.lookup.common.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.parsed/generated/com.elsten.bliss.policy.parsed.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.tag.auto/generated/com.elsten.bliss.policy.tag.auto.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.tag.tagtype/generated/com.elsten.bliss.policy.tag.tagtype.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.musicbrainz/generated/com.elsten.musicbrainz.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.util/generated/com.elsten.util.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.util.test/generated/com.elsten.util.test.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.google.gson/com.google.gson-1.6.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.google.guava/com.google.guava-11.0.1.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.springsource.javax.media.jai.codec/com.springsource.javax.media.jai.codec-1.1.3.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.springsource.javax.media.jai.core/com.springsource.javax.media.jai.core-1.1.3.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.sun.jna/com.sun.jna-3.2.1.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/jdbm-trunk-patched/jdbm-trunk-patched-0.0.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/log4j/log4j-1.2.17.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/net.contentobjects.jnotify/net.contentobjects.jnotify-0.94.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.codec/org.apache.commons.codec-1.4.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.collections/org.apache.commons.collections-3.2.1.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.httpclient/org.apache.commons.httpclient-3.1.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.io/org.apache.commons.io-1.4.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.lang/org.apache.commons.lang-2.6.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.logging/org.apache.commons.logging-1.0.4.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.jaudiotagger/org.jaudiotagger-2.0.4.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.junit/org.junit-4.10.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/scala-library/scala-library-2.9.0.jar] activators=[aQute.junit.Activator] timeout=0
# using working dir: /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.stresstest/generated/fw
# deleting working dir /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.stresstest/generated/fw because not kept
# system packages used: sun.reflect,org.osgi.framework.startlevel;uses:="org.osgi.framework";version="1.0",org.osgi.framework.wiring;uses:="org.osgi.framework";version="1.0",org.osgi.framework.hooks.bundle;uses:="org.osgi.framework";version="1.0",org.osgi.framework.hooks.service;uses:="org.osgi.framework";version="1.1",org.osgi.framework.hooks.resolver;uses:="org.osgi.framework.wiring";version="1.0",org.osgi.framework.launch;uses:="org.osgi.framework";version="1.0",org.osgi.framework;version="1.6",org.osgi.framework.hooks.weaving;uses:="org.osgi.framework.wiring";version="1.0",org.osgi.service.packageadmin;uses:="org.osgi.framework";version="1.2",org.osgi.service.url;version="1.0",org.osgi.service.startlevel;uses:="org.osgi.framework";version="1.1",org.osgi.util.tracker;uses:="org.osgi.framework";version="1.5",junit.framework;version="3.8";uses:="org.junit.runner.notification,org.junit.runner,org.junit.runner.manipulation",org.junit;version="4.10";uses:="org.junit.internal,org.hamcrest",org.junit.experimental;version="4.10";uses:="org.junit.runner,org.junit.runners.model",org.junit.experimental.categories;version="4.10";uses:="org.junit.runner,org.junit.runner.manipulation,org.junit.runners,org.junit.runners.model",org.junit.experimental.max;version="4.10";uses:="org.junit.runner.notification,org.junit.runner",org.junit.experimental.results;version="4.10";uses:="org.junit.runner.notification,org.junit.runner,org.hamcrest",org.junit.experimental.runners;version="4.10";uses:="org.junit.runners,org.junit.runners.model",org.junit.experimental.theories;version="4.10";uses:="org.junit.internal,org.junit.runners,org.junit.runners.model,org.junit.experimental.theories.internal",org.junit.experimental.theories.internal;version="4.10";uses:="org.junit.experimental.theories,org.junit.runners.model",org.junit.experimental.theories.suppliers;version="4.10";uses:="org.junit.experimental.theories",org.junit.internal;version="4.10";uses:="org.junit.runner.notification,org.junit.runner,org.hamcrest",org.junit.internal.builders;version="4.10";uses:="org.junit.runner.notification,org.junit.runner,org.junit.runners.model",org.junit.internal.matchers;version="4.10";uses:="org.hamcrest",org.junit.internal.requests;version="4.10";uses:="org.junit.runner,org.junit.runner.manipulation",org.junit.internal.runners;version="4.10";uses:="junit.framework,org.junit.runner.notification,org.junit.runner,org.junit.runner.manipulation",org.junit.internal.runners.model;version="4.10";uses:="org.junit.internal,org.junit.runner.notification,org.junit.runner,org.junit.runners.model",org.junit.internal.runners.rules;version="4.10";uses:="org.junit.runners.model",org.junit.internal.runners.statements;version="4.10";uses:="org.junit.runners.model",org.junit.matchers;version="4.10";uses:="org.hamcrest,org.junit.internal.matchers",org.junit.rules;version="4.10";uses:="org.junit.runner,org.hamcrest,org.junit.runners.model",org.junit.runner;version="4.10";uses:="junit.framework,org.junit.internal,org.junit.runner.notification,org.junit.runner.manipulation,org.junit.runners.model",org.junit.runner.manipulation;version="4.10";uses:="org.junit.runner",org.junit.runner.notification;version="4.10";uses:="org.junit.runner",org.junit.runners;version="4.10";uses:="org.junit.runner.notification,org.junit.runner,org.junit.runner.manipulation,org.junit.rules,org.junit.internal.runners,org.junit.runners.model",org.junit.runners.model;version="4.10";uses:="org.junit.runner",org.hamcrest;version="1.0.0",org.hamcrest.core;version="1.0.0";uses:="org.hamcrest",org.hamcrest.internal;version="1.0.0";uses:="org.hamcrest"
# using META-INF/services
# found META-INF/services in jar:file:/home/gravelld/.bnd/cache/https%253A%252F%252Fgithub.com%252Fbndtools%252Fbundle-hub%252Fraw%252Fmaster%252Forg.apache.felix.framework/org.apache.felix.framework-4.0.3.jar!/META-INF/services/org.osgi.framework.launch.FrameworkFactory
# org.apache.felix.framework.FrameworkFactory
# Framework factory org.apache.felix.framework.FrameworkFactory@95fd19
# framework instance org.apache.felix.framework [0]
# inited system bundle org.apache.felix.framework [0]
# system bundle started ok
# start embedded activators
# adding activator Thread[bnd Runtime Test Bundle,5,main]
# Updating framework with [/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/JGoogleAnalytics_0.3/JGoogleAnalytics_0.3-0.0.0.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model/generated/com.elsten.bliss.model.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model.api/generated/com.elsten.bliss.model.api.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model.test/generated/com.elsten.bliss.model.test.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.api/generated/com.elsten.bliss.music.info.api.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.common/generated/com.elsten.bliss.music.info.common.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.dto/generated/com.elsten.bliss.music.info.dto.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.tagsource.api/generated/com.elsten.bliss.music.info.tagsource.api.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.tagsource.impl/generated/com.elsten.bliss.music.info.tagsource.impl.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.osgi.system/generated/com.elsten.bliss.osgi.system.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform/generated/com.elsten.bliss.platform.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.stresstest/generated/com.elsten.bliss.platform.stresstest.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.test/generated/com.elsten.bliss.platform.test.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.coverart.lookup.api/generated/com.elsten.bliss.policy.coverart.lookup.api.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.coverart.lookup.common/generated/com.elsten.bliss.policy.coverart.lookup.common.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.parsed/generated/com.elsten.bliss.policy.parsed.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.tag.auto/generated/com.elsten.bliss.policy.tag.auto.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.tag.tagtype/generated/com.elsten.bliss.policy.tag.tagtype.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.musicbrainz/generated/com.elsten.musicbrainz.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.util/generated/com.elsten.util.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.util.test/generated/com.elsten.util.test.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.google.gson/com.google.gson-1.6.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.google.guava/com.google.guava-11.0.1.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.springsource.javax.media.jai.codec/com.springsource.javax.media.jai.codec-1.1.3.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.springsource.javax.media.jai.core/com.springsource.javax.media.jai.core-1.1.3.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.sun.jna/com.sun.jna-3.2.1.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/jdbm-trunk-patched/jdbm-trunk-patched-0.0.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/log4j/log4j-1.2.17.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/net.contentobjects.jnotify/net.contentobjects.jnotify-0.94.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.codec/org.apache.commons.codec-1.4.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.collections/org.apache.commons.collections-3.2.1.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.httpclient/org.apache.commons.httpclient-3.1.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.io/org.apache.commons.io-1.4.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.lang/org.apache.commons.lang-2.6.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.logging/org.apache.commons.logging-1.0.4.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.jaudiotagger/org.jaudiotagger-2.0.4.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.junit/org.junit-4.10.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/scala-library/scala-library-2.9.0.jar]
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/JGoogleAnalytics_0.3/JGoogleAnalytics_0.3-0.0.0.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/JGoogleAnalytics_0.3/JGoogleAnalytics_0.3-0.0.0.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model/generated/com.elsten.bliss.model.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model/generated/com.elsten.bliss.model.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model.api/generated/com.elsten.bliss.model.api.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model.api/generated/com.elsten.bliss.model.api.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model.test/generated/com.elsten.bliss.model.test.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model.test/generated/com.elsten.bliss.model.test.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.api/generated/com.elsten.bliss.music.info.api.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.api/generated/com.elsten.bliss.music.info.api.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.common/generated/com.elsten.bliss.music.info.common.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.common/generated/com.elsten.bliss.music.info.common.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.dto/generated/com.elsten.bliss.music.info.dto.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.dto/generated/com.elsten.bliss.music.info.dto.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.tagsource.api/generated/com.elsten.bliss.music.info.tagsource.api.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.tagsource.api/generated/com.elsten.bliss.music.info.tagsource.api.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.tagsource.impl/generated/com.elsten.bliss.music.info.tagsource.impl.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.tagsource.impl/generated/com.elsten.bliss.music.info.tagsource.impl.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.osgi.system/generated/com.elsten.bliss.osgi.system.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.osgi.system/generated/com.elsten.bliss.osgi.system.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform/generated/com.elsten.bliss.platform.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform/generated/com.elsten.bliss.platform.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.stresstest/generated/com.elsten.bliss.platform.stresstest.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.stresstest/generated/com.elsten.bliss.platform.stresstest.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.test/generated/com.elsten.bliss.platform.test.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.test/generated/com.elsten.bliss.platform.test.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.coverart.lookup.api/generated/com.elsten.bliss.policy.coverart.lookup.api.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.coverart.lookup.api/generated/com.elsten.bliss.policy.coverart.lookup.api.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.coverart.lookup.common/generated/com.elsten.bliss.policy.coverart.lookup.common.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.coverart.lookup.common/generated/com.elsten.bliss.policy.coverart.lookup.common.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.parsed/generated/com.elsten.bliss.policy.parsed.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.parsed/generated/com.elsten.bliss.policy.parsed.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.tag.auto/generated/com.elsten.bliss.policy.tag.auto.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.tag.auto/generated/com.elsten.bliss.policy.tag.auto.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.tag.tagtype/generated/com.elsten.bliss.policy.tag.tagtype.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.tag.tagtype/generated/com.elsten.bliss.policy.tag.tagtype.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.musicbrainz/generated/com.elsten.musicbrainz.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.musicbrainz/generated/com.elsten.musicbrainz.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.util/generated/com.elsten.util.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.util/generated/com.elsten.util.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/com.elsten.util.test/generated/com.elsten.util.test.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/com.elsten.util.test/generated/com.elsten.util.test.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.google.gson/com.google.gson-1.6.0.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.google.gson/com.google.gson-1.6.0.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.google.guava/com.google.guava-11.0.1.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.google.guava/com.google.guava-11.0.1.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.springsource.javax.media.jai.codec/com.springsource.javax.media.jai.codec-1.1.3.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.springsource.javax.media.jai.codec/com.springsource.javax.media.jai.codec-1.1.3.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.springsource.javax.media.jai.core/com.springsource.javax.media.jai.core-1.1.3.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.springsource.javax.media.jai.core/com.springsource.javax.media.jai.core-1.1.3.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.sun.jna/com.sun.jna-3.2.1.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.sun.jna/com.sun.jna-3.2.1.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/jdbm-trunk-patched/jdbm-trunk-patched-0.0.0.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/jdbm-trunk-patched/jdbm-trunk-patched-0.0.0.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/log4j/log4j-1.2.17.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/log4j/log4j-1.2.17.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/net.contentobjects.jnotify/net.contentobjects.jnotify-0.94.0.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/net.contentobjects.jnotify/net.contentobjects.jnotify-0.94.0.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.codec/org.apache.commons.codec-1.4.0.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.codec/org.apache.commons.codec-1.4.0.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.collections/org.apache.commons.collections-3.2.1.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.collections/org.apache.commons.collections-3.2.1.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.httpclient/org.apache.commons.httpclient-3.1.0.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.httpclient/org.apache.commons.httpclient-3.1.0.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.io/org.apache.commons.io-1.4.0.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.io/org.apache.commons.io-1.4.0.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.lang/org.apache.commons.lang-2.6.0.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.lang/org.apache.commons.lang-2.6.0.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.logging/org.apache.commons.logging-1.0.4.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.logging/org.apache.commons.logging-1.0.4.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.jaudiotagger/org.jaudiotagger-2.0.4.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.jaudiotagger/org.jaudiotagger-2.0.4.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.junit/org.junit-4.10.0.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.junit/org.junit-4.10.0.jar with reference
# installing /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/scala-library/scala-library-2.9.0.jar
# will install /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/scala-library/scala-library-2.9.0.jar with reference
# Waiting for refresh to finish
# refresh ended
# bundles administered [/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/JGoogleAnalytics_0.3/JGoogleAnalytics_0.3-0.0.0.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model/generated/com.elsten.bliss.model.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model.api/generated/com.elsten.bliss.model.api.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model.test/generated/com.elsten.bliss.model.test.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.api/generated/com.elsten.bliss.music.info.api.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.common/generated/com.elsten.bliss.music.info.common.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.dto/generated/com.elsten.bliss.music.info.dto.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.tagsource.api/generated/com.elsten.bliss.music.info.tagsource.api.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.tagsource.impl/generated/com.elsten.bliss.music.info.tagsource.impl.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.osgi.system/generated/com.elsten.bliss.osgi.system.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform/generated/com.elsten.bliss.platform.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.stresstest/generated/com.elsten.bliss.platform.stresstest.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.test/generated/com.elsten.bliss.platform.test.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.coverart.lookup.api/generated/com.elsten.bliss.policy.coverart.lookup.api.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.coverart.lookup.common/generated/com.elsten.bliss.policy.coverart.lookup.common.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.parsed/generated/com.elsten.bliss.policy.parsed.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.tag.auto/generated/com.elsten.bliss.policy.tag.auto.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.tag.tagtype/generated/com.elsten.bliss.policy.tag.tagtype.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.musicbrainz/generated/com.elsten.musicbrainz.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.util/generated/com.elsten.util.jar, /home/gravelld/eclipse-workspaces/bliss2/com.elsten.util.test/generated/com.elsten.util.test.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.google.gson/com.google.gson-1.6.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.google.guava/com.google.guava-11.0.1.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.springsource.javax.media.jai.codec/com.springsource.javax.media.jai.codec-1.1.3.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.springsource.javax.media.jai.core/com.springsource.javax.media.jai.core-1.1.3.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.sun.jna/com.sun.jna-3.2.1.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/jdbm-trunk-patched/jdbm-trunk-patched-0.0.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/log4j/log4j-1.2.17.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/net.contentobjects.jnotify/net.contentobjects.jnotify-0.94.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.codec/org.apache.commons.codec-1.4.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.collections/org.apache.commons.collections-3.2.1.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.httpclient/org.apache.commons.httpclient-3.1.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.io/org.apache.commons.io-1.4.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.lang/org.apache.commons.lang-2.6.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.logging/org.apache.commons.logging-1.0.4.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.jaudiotagger/org.jaudiotagger-2.0.4.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.junit/org.junit-4.10.0.jar, /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/scala-library/scala-library-2.9.0.jar]
# Will start bundles: [JGoogleAnalytics_0.3 [1], com.elsten.bliss.model [2], com.elsten.bliss.model.api [3], com.elsten.bliss.model.test [4], com.elsten.bliss.music.info.api [5], com.elsten.bliss.music.info.common [6], com.elsten.bliss.music.info.dto [7], com.elsten.bliss.music.info.tagsource.api [8], com.elsten.bliss.music.info.tagsource.impl [9], com.elsten.bliss.osgi.system [10], com.elsten.bliss.platform [11], com.elsten.bliss.platform.stresstest [12], com.elsten.bliss.platform.test [13], com.elsten.bliss.policy.coverart.lookup.api [14], com.elsten.bliss.policy.coverart.lookup.common [15], com.elsten.bliss.policy.parsed [16], com.elsten.bliss.policy.tag.auto [17], com.elsten.bliss.policy.tag.tagtype [18], com.elsten.musicbrainz [19], com.elsten.util [20], com.elsten.util.test [21], com.google.gson [22], com.google.guava [23], com.springsource.javax.media.jai.codec [24], com.springsource.javax.media.jai.core [25], com.sun.jna [26], jdbm-trunk-patched [27], log4j [28], net.contentobjects.jnotify [29], org.apache.commons.codec [30], org.apache.commons.collections [31], org.apache.commons.httpclient [32], org.apache.commons.io [33], org.apache.commons.lang [34], org.apache.commons.logging [35], org.jaudiotagger [36], org.junit [37], scala-library [38]]
# starting JGoogleAnalytics_0.3
# started  JGoogleAnalytics_0.3
# starting com.elsten.bliss.model
# started  com.elsten.bliss.model
# starting com.elsten.bliss.model.api
# started  com.elsten.bliss.model.api
# starting com.elsten.bliss.model.test
# started  com.elsten.bliss.model.test
# starting com.elsten.bliss.music.info.api
# started  com.elsten.bliss.music.info.api
# starting com.elsten.bliss.music.info.common
# started  com.elsten.bliss.music.info.common
# starting com.elsten.bliss.music.info.dto
# started  com.elsten.bliss.music.info.dto
# starting com.elsten.bliss.music.info.tagsource.api
# started  com.elsten.bliss.music.info.tagsource.api
# starting com.elsten.bliss.music.info.tagsource.impl
# started  com.elsten.bliss.music.info.tagsource.impl
# starting com.elsten.bliss.osgi.system
# started  com.elsten.bliss.osgi.system
# starting com.elsten.bliss.platform
# started  com.elsten.bliss.platform
# starting com.elsten.bliss.platform.stresstest
# started  com.elsten.bliss.platform.stresstest
# starting com.elsten.bliss.platform.test
# started  com.elsten.bliss.platform.test
# starting com.elsten.bliss.policy.coverart.lookup.api
# started  com.elsten.bliss.policy.coverart.lookup.api
# starting com.elsten.bliss.policy.coverart.lookup.common
# started  com.elsten.bliss.policy.coverart.lookup.common
# starting com.elsten.bliss.policy.parsed
# started  com.elsten.bliss.policy.parsed
# starting com.elsten.bliss.policy.tag.auto
# started  com.elsten.bliss.policy.tag.auto
# starting com.elsten.bliss.policy.tag.tagtype
# started  com.elsten.bliss.policy.tag.tagtype
# starting com.elsten.musicbrainz
# started  com.elsten.musicbrainz
# starting com.elsten.util
# started  com.elsten.util
# starting com.elsten.util.test
# started  com.elsten.util.test
# starting com.google.gson
# started  com.google.gson
# starting com.google.guava
# started  com.google.guava
# starting com.springsource.javax.media.jai.codec
# started  com.springsource.javax.media.jai.codec
# starting com.springsource.javax.media.jai.core
# started  com.springsource.javax.media.jai.core
# starting com.sun.jna
# started  com.sun.jna
# starting jdbm-trunk-patched
# started  jdbm-trunk-patched
# starting log4j
# started  log4j
# starting net.contentobjects.jnotify
# started  net.contentobjects.jnotify
# starting org.apache.commons.codec
# started  org.apache.commons.codec
# starting org.apache.commons.collections
# started  org.apache.commons.collections
# starting org.apache.commons.httpclient
# started  org.apache.commons.httpclient
# starting org.apache.commons.lang
# started  org.apache.commons.lang
# starting org.apache.commons.logging
# started  org.apache.commons.logging
# starting org.jaudiotagger
# started  org.jaudiotagger
# starting org.junit
# started  org.junit
# starting scala-library
# started  scala-library
------------------------------- REPORT --------------------------

Framework                               class org.apache.felix.framework.Felix
Framework type                          META-INF/services
Storage                                 /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.stresstest/generated/fw
Keep                                    false
Security                                false
Run bundles                             /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/JGoogleAnalytics_0.3/JGoogleAnalytics_0.3-0.0.0.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model/generated/com.elsten.bliss.model.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model.api/generated/com.elsten.bliss.model.api.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model.test/generated/com.elsten.bliss.model.test.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.api/generated/com.elsten.bliss.music.info.api.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.common/generated/com.elsten.bliss.music.info.common.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.dto/generated/com.elsten.bliss.music.info.dto.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.tagsource.api/generated/com.elsten.bliss.music.info.tagsource.api.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.tagsource.impl/generated/com.elsten.bliss.music.info.tagsource.impl.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.osgi.system/generated/com.elsten.bliss.osgi.system.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform/generated/com.elsten.bliss.platform.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.stresstest/generated/com.elsten.bliss.platform.stresstest.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.test/generated/com.elsten.bliss.platform.test.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.coverart.lookup.api/generated/com.elsten.bliss.policy.coverart.lookup.api.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.coverart.lookup.common/generated/com.elsten.bliss.policy.coverart.lookup.common.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.parsed/generated/com.elsten.bliss.policy.parsed.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.tag.auto/generated/com.elsten.bliss.policy.tag.auto.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.tag.tagtype/generated/com.elsten.bliss.policy.tag.tagtype.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.musicbrainz/generated/com.elsten.musicbrainz.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.util/generated/com.elsten.util.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/com.elsten.util.test/generated/com.elsten.util.test.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.google.gson/com.google.gson-1.6.0.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.google.guava/com.google.guava-11.0.1.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.springsource.javax.media.jai.codec/com.springsource.javax.media.jai.codec-1.1.3.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.springsource.javax.media.jai.core/com.springsource.javax.media.jai.core-1.1.3.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.sun.jna/com.sun.jna-3.2.1.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/jdbm-trunk-patched/jdbm-trunk-patched-0.0.0.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/log4j/log4j-1.2.17.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/net.contentobjects.jnotify/net.contentobjects.jnotify-0.94.0.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.codec/org.apache.commons.codec-1.4.0.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.collections/org.apache.commons.collections-3.2.1.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.httpclient/org.apache.commons.httpclient-3.1.0.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.io/org.apache.commons.io-1.4.0.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.lang/org.apache.commons.lang-2.6.0.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.logging/org.apache.commons.logging-1.0.4.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.jaudiotagger/org.jaudiotagger-2.0.4.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.junit/org.junit-4.10.0.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/scala-library/scala-library-2.9.0.jar
Classpath                               /home/gravelld/.bnd/cache/https%3A%2F%2Fgithub.com%2Fbndtools%2Fbundle-hub%2Fraw%2Fmaster%2Forg.apache.felix.framework/org.apache.felix.framework-4.0.3.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/cache/biz.aQute.launcher/biz.aQute.launcher-1.0.5.jar
                                        /home/gravelld/eclipse-workspaces/bliss2/cnf/cache/biz.aQute.junit/biz.aQute.junit-1.1.0.jar
System Packages                         sun.reflect
                                        org.osgi.framework.startlevel;uses:="org.osgi.framework";version="1.0"
                                        org.osgi.framework.wiring;uses:="org.osgi.framework";version="1.0"
                                        org.osgi.framework.hooks.bundle;uses:="org.osgi.framework";version="1.0"
                                        org.osgi.framework.hooks.service;uses:="org.osgi.framework";version="1.1"
                                        org.osgi.framework.hooks.resolver;uses:="org.osgi.framework.wiring";version="1.0"
                                        org.osgi.framework.launch;uses:="org.osgi.framework";version="1.0"
                                        org.osgi.framework;version="1.6"
                                        org.osgi.framework.hooks.weaving;uses:="org.osgi.framework.wiring";version="1.0"
                                        org.osgi.service.packageadmin;uses:="org.osgi.framework";version="1.2"
                                        org.osgi.service.url;version="1.0"
                                        org.osgi.service.startlevel;uses:="org.osgi.framework";version="1.1"
                                        org.osgi.util.tracker;uses:="org.osgi.framework";version="1.5"
                                        junit.framework;version="3.8";uses:="org.junit.runner.notification
                                        org.junit.runner
                                        org.junit.runner.manipulation"
                                        org.junit;version="4.10";uses:="org.junit.internal
                                        org.hamcrest"
                                        org.junit.experimental;version="4.10";uses:="org.junit.runner
                                        org.junit.runners.model"
                                        org.junit.experimental.categories;version="4.10";uses:="org.junit.runner
                                        org.junit.runner.manipulation
                                        org.junit.runners
                                        org.junit.runners.model"
                                        org.junit.experimental.max;version="4.10";uses:="org.junit.runner.notification
                                        org.junit.runner"
                                        org.junit.experimental.results;version="4.10";uses:="org.junit.runner.notification
                                        org.junit.runner
                                        org.hamcrest"
                                        org.junit.experimental.runners;version="4.10";uses:="org.junit.runners
                                        org.junit.runners.model"
                                        org.junit.experimental.theories;version="4.10";uses:="org.junit.internal
                                        org.junit.runners
                                        org.junit.runners.model
                                        org.junit.experimental.theories.internal"
                                        org.junit.experimental.theories.internal;version="4.10";uses:="org.junit.experimental.theories
                                        org.junit.runners.model"
                                        org.junit.experimental.theories.suppliers;version="4.10";uses:="org.junit.experimental.theories"
                                        org.junit.internal;version="4.10";uses:="org.junit.runner.notification
                                        org.junit.runner
                                        org.hamcrest"
                                        org.junit.internal.builders;version="4.10";uses:="org.junit.runner.notification
                                        org.junit.runner
                                        org.junit.runners.model"
                                        org.junit.internal.matchers;version="4.10";uses:="org.hamcrest"
                                        org.junit.internal.requests;version="4.10";uses:="org.junit.runner
                                        org.junit.runner.manipulation"
                                        org.junit.internal.runners;version="4.10";uses:="junit.framework
                                        org.junit.runner.notification
                                        org.junit.runner
                                        org.junit.runner.manipulation"
                                        org.junit.internal.runners.model;version="4.10";uses:="org.junit.internal
                                        org.junit.runner.notification
                                        org.junit.runner
                                        org.junit.runners.model"
                                        org.junit.internal.runners.rules;version="4.10";uses:="org.junit.runners.model"
                                        org.junit.internal.runners.statements;version="4.10";uses:="org.junit.runners.model"
                                        org.junit.matchers;version="4.10";uses:="org.hamcrest
                                        org.junit.internal.matchers"
                                        org.junit.rules;version="4.10";uses:="org.junit.runner
                                        org.hamcrest
                                        org.junit.runners.model"
                                        org.junit.runner;version="4.10";uses:="junit.framework
                                        org.junit.internal
                                        org.junit.runner.notification
                                        org.junit.runner.manipulation
                                        org.junit.runners.model"
                                        org.junit.runner.manipulation;version="4.10";uses:="org.junit.runner"
                                        org.junit.runner.notification;version="4.10";uses:="org.junit.runner"
                                        org.junit.runners;version="4.10";uses:="org.junit.runner.notification
                                        org.junit.runner
                                        org.junit.runner.manipulation
                                        org.junit.rules
                                        org.junit.internal.runners
                                        org.junit.runners.model"
                                        org.junit.runners.model;version="4.10";uses:="org.junit.runner"
                                        org.hamcrest;version="1.0.0"
                                        org.hamcrest.core;version="1.0.0";uses:="org.hamcrest"
                                        org.hamcrest.internal;version="1.0.0";uses:="org.hamcrest"
Properties                              
launch.name                             com.elsten.bliss.platform.stresstest
tester.port                             53236
tester.dir                              /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.stresstest/generated/test-reports
launch.trace                            true
launch.services                         true
launch.activators                       aQute.junit.Activator
launch.system.packages                  sun.reflect,org.osgi.framework.startlevel;uses:="org.osgi.framework";version="1.0",org.osgi.framework.wiring;uses:="org.osgi.framework";version="1.0",org.osgi.framework.hooks.bundle;uses:="org.osgi.framework";version="1.0",org.osgi.framework.hooks.service;uses:="org.osgi.framework";version="1.1",org.osgi.framework.hooks.resolver;uses:="org.osgi.framework.wiring";version="1.0",org.osgi.framework.launch;uses:="org.osgi.framework";version="1.0",org.osgi.framework;version="1.6",org.osgi.framework.hooks.weaving;uses:="org.osgi.framework.wiring";version="1.0",org.osgi.service.packageadmin;uses:="org.osgi.framework";version="1.2",org.osgi.service.url;version="1.0",org.osgi.service.startlevel;uses:="org.osgi.framework";version="1.1",org.osgi.util.tracker;uses:="org.osgi.framework";version="1.5",junit.framework;version="3.8";uses:="org.junit.runner.notification,org.junit.runner,org.junit.runner.manipulation",org.junit;version="4.10";uses:="org.junit.internal,org.hamcrest",org.junit.experimental;version="4.10";uses:="org.junit.runner,org.junit.runners.model",org.junit.experimental.categories;version="4.10";uses:="org.junit.runner,org.junit.runner.manipulation,org.junit.runners,org.junit.runners.model",org.junit.experimental.max;version="4.10";uses:="org.junit.runner.notification,org.junit.runner",org.junit.experimental.results;version="4.10";uses:="org.junit.runner.notification,org.junit.runner,org.hamcrest",org.junit.experimental.runners;version="4.10";uses:="org.junit.runners,org.junit.runners.model",org.junit.experimental.theories;version="4.10";uses:="org.junit.internal,org.junit.runners,org.junit.runners.model,org.junit.experimental.theories.internal",org.junit.experimental.theories.internal;version="4.10";uses:="org.junit.experimental.theories,org.junit.runners.model",org.junit.experimental.theories.suppliers;version="4.10";uses:="org.junit.experimental.theories",org.junit.internal;version="4.10";uses:="org.junit.runner.notification,org.junit.runner,org.hamcrest",org.junit.internal.builders;version="4.10";uses:="org.junit.runner.notification,org.junit.runner,org.junit.runners.model",org.junit.internal.matchers;version="4.10";uses:="org.hamcrest",org.junit.internal.requests;version="4.10";uses:="org.junit.runner,org.junit.runner.manipulation",org.junit.internal.runners;version="4.10";uses:="junit.framework,org.junit.runner.notification,org.junit.runner,org.junit.runner.manipulation",org.junit.internal.runners.model;version="4.10";uses:="org.junit.internal,org.junit.runner.notification,org.junit.runner,org.junit.runners.model",org.junit.internal.runners.rules;version="4.10";uses:="org.junit.runners.model",org.junit.internal.runners.statements;version="4.10";uses:="org.junit.runners.model",org.junit.matchers;version="4.10";uses:="org.hamcrest,org.junit.internal.matchers",org.junit.rules;version="4.10";uses:="org.junit.runner,org.hamcrest,org.junit.runners.model",org.junit.runner;version="4.10";uses:="junit.framework,org.junit.internal,org.junit.runner.notification,org.junit.runner.manipulation,org.junit.runners.model",org.junit.runner.manipulation;version="4.10";uses:="org.junit.runner",org.junit.runner.notification;version="4.10";uses:="org.junit.runner",org.junit.runners;version="4.10";uses:="org.junit.runner.notification,org.junit.runner,org.junit.runner.manipulation,org.junit.rules,org.junit.internal.runners,org.junit.runners.model",org.junit.runners.model;version="4.10";uses:="org.junit.runner",org.hamcrest;version="1.0.0",org.hamcrest.core;version="1.0.0";uses:="org.hamcrest",org.hamcrest.internal;version="1.0.0";uses:="org.hamcrest"
ds.loglevel                             3
launch.timeout                          0
launch.embedded                         false
tester.continuous                       false
launch.storage.dir                      /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.stresstest/generated/fw
launch.bundles                          /home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/JGoogleAnalytics_0.3/JGoogleAnalytics_0.3-0.0.0.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model/generated/com.elsten.bliss.model.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model.api/generated/com.elsten.bliss.model.api.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model.test/generated/com.elsten.bliss.model.test.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.api/generated/com.elsten.bliss.music.info.api.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.common/generated/com.elsten.bliss.music.info.common.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.dto/generated/com.elsten.bliss.music.info.dto.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.tagsource.api/generated/com.elsten.bliss.music.info.tagsource.api.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.tagsource.impl/generated/com.elsten.bliss.music.info.tagsource.impl.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.osgi.system/generated/com.elsten.bliss.osgi.system.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform/generated/com.elsten.bliss.platform.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.stresstest/generated/com.elsten.bliss.platform.stresstest.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.test/generated/com.elsten.bliss.platform.test.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.coverart.lookup.api/generated/com.elsten.bliss.policy.coverart.lookup.api.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.coverart.lookup.common/generated/com.elsten.bliss.policy.coverart.lookup.common.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.parsed/generated/com.elsten.bliss.policy.parsed.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.tag.auto/generated/com.elsten.bliss.policy.tag.auto.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.tag.tagtype/generated/com.elsten.bliss.policy.tag.tagtype.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.musicbrainz/generated/com.elsten.musicbrainz.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.util/generated/com.elsten.util.jar,/home/gravelld/eclipse-workspaces/bliss2/com.elsten.util.test/generated/com.elsten.util.test.jar,/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.google.gson/com.google.gson-1.6.0.jar,/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.google.guava/com.google.guava-11.0.1.jar,/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.springsource.javax.media.jai.codec/com.springsource.javax.media.jai.codec-1.1.3.jar,/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.springsource.javax.media.jai.core/com.springsource.javax.media.jai.core-1.1.3.jar,/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.sun.jna/com.sun.jna-3.2.1.jar,/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/jdbm-trunk-patched/jdbm-trunk-patched-0.0.0.jar,/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/log4j/log4j-1.2.17.jar,/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/net.contentobjects.jnotify/net.contentobjects.jnotify-0.94.0.jar,/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.codec/org.apache.commons.codec-1.4.0.jar,/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.collections/org.apache.commons.collections-3.2.1.jar,/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.httpclient/org.apache.commons.httpclient-3.1.0.jar,/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.io/org.apache.commons.io-1.4.0.jar,/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.lang/org.apache.commons.lang-2.6.0.jar,/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.logging/org.apache.commons.logging-1.0.4.jar,/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.jaudiotagger/org.jaudiotagger-2.0.4.jar,/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.junit/org.junit-4.10.0.jar,/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/scala-library/scala-library-2.9.0.jar
launch.keep                             false
tester.trace                            true

Id    State Modified      Location
0     ACTIV <>            System Bundle
1     ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/JGoogleAnalytics_0.3/JGoogleAnalytics_0.3-0.0.0.jar
2     ACTIV 201320281621  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model/generated/com.elsten.bliss.model.jar
3     ACTIV 201320281610  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model.api/generated/com.elsten.bliss.model.api.jar
4     ACTIV 201320281622  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.model.test/generated/com.elsten.bliss.model.test.jar
5     ACTIV 201320281610  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.api/generated/com.elsten.bliss.music.info.api.jar
6     ACTIV 201320281621  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.common/generated/com.elsten.bliss.music.info.common.jar
7     ACTIV 201320281610  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.dto/generated/com.elsten.bliss.music.info.dto.jar
8     ACTIV 201320281610  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.tagsource.api/generated/com.elsten.bliss.music.info.tagsource.api.jar
9     ACTIV 201320281621  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.music.info.tagsource.impl/generated/com.elsten.bliss.music.info.tagsource.impl.jar
10    RSLVD 201320251753  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.osgi.system/generated/com.elsten.bliss.osgi.system.jar
11    ACTIV 201320281621  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform/generated/com.elsten.bliss.platform.jar
12    ACTIV 201320281711  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.stresstest/generated/com.elsten.bliss.platform.stresstest.jar
13    ACTIV 201320281622  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.test/generated/com.elsten.bliss.platform.test.jar
14    ACTIV 201320281621  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.coverart.lookup.api/generated/com.elsten.bliss.policy.coverart.lookup.api.jar
15    ACTIV 201320281621  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.coverart.lookup.common/generated/com.elsten.bliss.policy.coverart.lookup.common.jar
16    ACTIV 201320251753  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.parsed/generated/com.elsten.bliss.policy.parsed.jar
17    ACTIV 201320281621  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.tag.auto/generated/com.elsten.bliss.policy.tag.auto.jar
18    ACTIV 201320251753  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.policy.tag.tagtype/generated/com.elsten.bliss.policy.tag.tagtype.jar
19    ACTIV 201320281621  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.musicbrainz/generated/com.elsten.musicbrainz.jar
20    ACTIV 201320281610  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.util/generated/com.elsten.util.jar
21    ACTIV 201320281610  reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.util.test/generated/com.elsten.util.test.jar
22    ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.google.gson/com.google.gson-1.6.0.jar
23    ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.google.guava/com.google.guava-11.0.1.jar
24    ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.springsource.javax.media.jai.codec/com.springsource.javax.media.jai.codec-1.1.3.jar
25    ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.springsource.javax.media.jai.core/com.springsource.javax.media.jai.core-1.1.3.jar
26    ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/com.sun.jna/com.sun.jna-3.2.1.jar
27    ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/jdbm-trunk-patched/jdbm-trunk-patched-0.0.0.jar
28    ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/log4j/log4j-1.2.17.jar
29    ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/net.contentobjects.jnotify/net.contentobjects.jnotify-0.94.0.jar
30    ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.codec/org.apache.commons.codec-1.4.0.jar
31    ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.collections/org.apache.commons.collections-3.2.1.jar
32    ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.httpclient/org.apache.commons.httpclient-3.1.0.jar
33    ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.io/org.apache.commons.io-1.4.0.jar
34    ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.lang/org.apache.commons.lang-2.6.0.jar
35    ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.apache.commons.logging/org.apache.commons.logging-1.0.4.jar
36    ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.jaudiotagger/org.jaudiotagger-2.0.4.jar
37    ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/org.junit/org.junit-4.10.0.jar
38    ACTIV 201320251647  reference:file:/home/gravelld/eclipse-workspaces/bliss2/cnf/localrepo/scala-library/scala-library-2.9.0.jar
# starting activator Thread[bnd Runtime Test Bundle,5,main]
# framework=org.apache.felix.framework [0]
# registered launcher with arguments for syncing
# will wait for a registered Runnable
# automatic testing of all bundles with Test-Cases header
# using /home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.stresstest/generated/test-reports, needed creation false
# adding Bundle Listener for getting test bundle events
# found active bundle with test cases com.elsten.bliss.platform.stresstest [12] : com.elsten.bliss.music.policy.coverartpolicy.stresstest.AssortedRealLifeLibraryLargeArtCoverArtEndToEndTest
# starting queue
# received bundle to test: reference:file:/home/gravelld/eclipse-workspaces/bliss2/com.elsten.bliss.platform.stresstest/generated/com.elsten.bliss.platform.stresstest.jar
# test will run
# testing bundle com.elsten.bliss.platform.stresstest [12] with com.elsten.bliss.music.policy.coverartpolicy.stresstest.AssortedRealLifeLibraryLargeArtCoverArtEndToEndTest
# changed streams
# created suite junit.framework.TestSuite@156d7c8
# >>>> com.elsten.bliss.platform.stresstest [12], tests [com.elsten.bliss.music.policy.coverartpolicy.stresstest.AssortedRealLifeLibraryLargeArtCoverArtEndToEndTest]
# running suite junit.framework.TestSuite@156d7c8
#   >> initializationError(com.elsten.bliss.music.policy.coverartpolicy.stresstest.AssortedRealLifeLibraryLargeArtCoverArtEndToEndTest)
# got bundle context org.apache.felix.framework.BundleContextImpl@14596d5 from com.elsten.bliss.platform.stresstest [12] in state 32
#   add error to initializationError(com.elsten.bliss.music.policy.coverartpolicy.stresstest.AssortedRealLifeLibraryLargeArtCoverArtEndToEndTest) : No runnable methods
java.lang.Exception: No runnable methods
at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:166)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:102)
at org.junit.runners.ParentRunner.validate(ParentRunner.java:344)
at org.junit.runners.ParentRunner.<init>(ParentRunner.java:74)
at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:55)
at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:13)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:24)
at junit.framework.JUnit4TestAdapter.<init>(JUnit4TestAdapter.java:31)
at junit.framework.JUnit4TestAdapter.<init>(JUnit4TestAdapter.java:24)
at aQute.junit.Activator.addTest(Activator.java:337)
at aQute.junit.Activator.addTest(Activator.java:294)
at aQute.junit.Activator.createSuite(Activator.java:271)
at aQute.junit.Activator.test(Activator.java:227)
at aQute.junit.Activator.automatic(Activator.java:127)
at aQute.junit.Activator.run(Activator.java:61)
#   << initializationError(com.elsten.bliss.music.policy.coverartpolicy.stresstest.AssortedRealLifeLibraryLargeArtCoverArtEndToEndTest), fails=1, errors=1
# <<<<
# unset streams
Errors: 1
Failures: 0
# test ran
# queue []

Peter Kriens

unread,
Mar 29, 2013, 4:09:28 AM3/29/13
to bndtool...@googlegroups.com
I guess you might have some hard to resolve bundles, there can be some odd cases. Richard Hall might be interested in seeing this. However, I understand you're ok now for this part?

I do not think JUnit 4 works for OSGi tests since the bnd launcher uses JUnit 3.8. There was a bug about this, not sure what happened. Would be nice to get a patch since lots of people seem to want this.

Kind regards,

Peter Kriens


Dan Gravell

unread,
Mar 29, 2013, 7:19:45 AM3/29/13
to bndtool...@googlegroups.com
I guess the last remaining problem is that JUnit4 appears to be used by the bnd launcher to run the test, when really I want JUnit3 to be used because, as you say, that's what the bnd launcher requires. How do I mandate this? I have to include JUnit4 otherwise the other bundles won't resolve.

Dan

Andrei Pozolotin

unread,
Apr 6, 2013, 10:56:08 PM4/6/13
to bndtool...@googlegroups.com, Peter Kriens
Peter, hello.

Do you by chance have annotation equivalent to "provide:=true"?
http://www.aqute.biz/Bnd/Versioning

For example look on how much duplication is going on in aries:
https://github.com/apache/aries/blob/trunk/application/application-converters/pom.xml#L43
https://github.com/apache/aries/blob/trunk/application/application-default-local-platform/pom.xml#L44
etc

I would imagine I could annotate the provider class,
and bnd would look at interface, find the api package, and generate the "provide:=true" for it.

Thank you,

Andrei

Ferry Huberts

unread,
Apr 7, 2013, 2:46:09 AM4/7/13
to bndtool...@googlegroups.com, Andrei Pozolotin
We have the @ProviderType but I don't think bnd currently automatically generates a 'provide:=true'


Thank you,

Andrei

--
You received this message because you are subscribed to the Google Groups "bndtools-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to bndtools-user...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
 
 

-- 
Ferry Huberts

Neil Bartlett

unread,
Apr 7, 2013, 2:53:50 AM4/7/13
to bndtool...@googlegroups.com, Andrei Pozolotin
There is no need to generate provide:=true if you are using the @ProviderType annotation.

Neil

BJ Hargrave

unread,
Apr 7, 2013, 8:39:50 AM4/7/13
to bndtool...@googlegroups.com

On Apr 7, 2013, at 02:53 , Neil Bartlett <njbar...@gmail.com> wrote:

There is no need to generate provide:=true if you are using the @ProviderType annotation.

provide:=true has nothing to do with @ProviderType. provide:=true (on Export-Package) tell bnd to _not_ generate the matching Import-Package clause for the exported package. That is, the bundle must only export the package. The package is not substitutable for the bundle.

And, given this meaning, it does not make sense for provide:=true to be declared by an annotation in source code since non-substituability is not an inherent part of the package but rather a bundle recipe choice that belongs in the bnd file.

-- 

BJ



BJ Hargrave

unread,
Apr 7, 2013, 8:39:50 AM4/7/13
to bndtool...@googlegroups.com
On Apr 7, 2013, at 02:53 , Neil Bartlett <njbar...@gmail.com> wrote:

There is no need to generate provide:=true if you are using the @ProviderType annotation.

Andrei Pozolotin

unread,
Apr 7, 2013, 10:37:35 AM4/7/13
to bndtool...@googlegroups.com, BJ Hargrave
well, my interpretation of the primary intent of "provide:=true"
http://www.aqute.biz/Bnd/Versioning

is to switch from the default "consumer import policy" to the manual "provider import policy"
for the purposes of semantic version policy enforcement
http://www.osgi.org/wiki/uploads/Links/SemanticVersioning.pdf

that is, to control the importer bundle binding version range pattern.
(consumer binds to MAJOR, provider binds to MAJOR.MINOR)

the special behavior you describe about what "provide:=true" means (substitution)
when placed on import-package vs export-package is a secondary benefit to me.

BTW, to those interested, this is how aries is doing semantic version policy enforcement
https://github.com/apache/aries/tree/trunk/versioning
works good so far for me, but does not use bnd, which they should.

Andrei Pozolotin

unread,
Apr 7, 2013, 11:20:10 AM4/7/13
to Ferry Huberts, bndtool...@googlegroups.com
-------- Original Message --------
Subject: Re: bnd "provide:=true" annotation?
From: Ferry Huberts <mail...@hupie.com>
To: bndtool...@googlegroups.com
Cc: Andrei Pozolotin <andrei.p...@gmail.com>
Date: Sun 07 Apr 2013 01:46:09 AM CDT

We have the @ProviderType but I don't think bnd currently automatically generates a 'provide:=true'


my real concert is not to generate "provide:=true"

but to generate proper consumer-vs-provider import version range.

so is it a feature or a bug? should I file an issue here?
https://github.com/bndtools/bndtools/issues

Ferry Huberts

unread,
Apr 7, 2013, 11:22:50 AM4/7/13
to bndtool...@googlegroups.com, Andrei Pozolotin
Don't think so.
bnd uses these annotations (@ProviderType and @ConsumerType) to generate the correct import ranges.

So you'll have to start using bnd ;-)

Andrei Pozolotin

unread,
Apr 7, 2013, 11:28:45 AM4/7/13
to Ferry Huberts, bndtool...@googlegroups.com

-------- Original Message --------
Subject: Re: bnd "provide:=true" annotation?
From: Ferry Huberts <mail...@hupie.com>
To: bndtool...@googlegroups.com
Cc: Andrei Pozolotin <andrei.p...@gmail.com>
Date: Sun 07 Apr 2013 10:22:50 AM CDT

so is it a feature or a bug? should I file an issue here?
https://github.com/bndtools/bndtools/issues


Don't think so.
bnd uses these annotations (@ProviderType and @ConsumerType) to generate the correct import ranges.

So you'll have to start using bnd ;-)

I am using bnd, and for many years. just in a hidden form of maven-bundle-plugin :-)

can you please point me to bnd test case or bnd code where this happens?

I tried, but can not find.

BJ Hargrave

unread,
Apr 7, 2013, 12:02:18 PM4/7/13
to bndtool...@googlegroups.com
We use provide:=true on Export-Package in the OSGi build to prevent bnd from generating the matching Import-Package clause (in some bundles). That is, to prevent substitutability of the exported package. provide:=true does not appear in the generated manifest. I don't believe provide:=true has anything to do with @ProviderType. It just has to do with preventing the generation of the matching Import-Package clause.

-- 

BJ



Neil Bartlett

unread,
Apr 7, 2013, 12:08:56 PM4/7/13
to bndtool...@googlegroups.com
BJ, I'm pretty sure you're mistaken, provide:=true does affect the versioning. But I'm not in front of a computer from which I could provide evidence of this...

--
Neil Bartlett
Sent from a phone

Andrei Pozolotin

unread,
Apr 7, 2013, 12:14:22 PM4/7/13
to bndtool...@googlegroups.com, BJ Hargrave

-------- Original Message --------
Subject: Re: bnd "provide:=true" annotation?
From: BJ Hargrave <b...@bjhargrave.com>
To: bndtool...@googlegroups.com <bndtool...@googlegroups.com>
Date: Sun 07 Apr 2013 11:02:18 AM CDT
We use provide:=true on Export-Package in the OSGi build to prevent bnd from generating the matching Import-Package clause (in some bundles). That is, to prevent substitutability of the exported package. provide:=true does not appear in the generated manifest. I don't believe provide:=true has anything to do with @ProviderType. It just has to do with preventing the generation of the matching Import-Package clause.



I am completely lost! :-)

when I build aries, bnd instructions like these
https://github.com/apache/aries/blob/trunk/application/application-converters/pom.xml#L44

do affect the generated import range in the import-package manifest entires. it that a wrong behavior?

BJ Hargrave

unread,
Apr 7, 2013, 12:15:14 PM4/7/13
to bndtool...@googlegroups.com

On Apr 7, 2013, at 12:08 , Neil Bartlett <njbar...@gmail.com> wrote:

BJ, I'm pretty sure you're mistaken, provide:=true does affect the versioning. But I'm not in front of a computer from which I could provide evidence of this...


I guess I don't see how a provide:=true on an Export-Package clause in the bnd file can affect the version of the exported package since the package's version is set by either the @Version annotation on package-info.java or the package's packageinfo file. I guess I could see how it might affect the version on the generated matching Import-Package clause but the provide:=true directive means bnd does not generate a matching Import-Package clause (at least not in my OSGi build).

Furthermore, the provide:=true directive does not survive into the generated bundle, so I don't see how it could affect any baseline versioning of bundles. @ProviderType does of course make it into generated bundles.

But I am curious to hear how you believe it affects versioning since I may then need to make changes to the OSGi build.
-- 

BJ



BJ Hargrave

unread,
Apr 7, 2013, 12:18:40 PM4/7/13
to bndtool...@googlegroups.com
On Apr 7, 2013, at 12:14 , Andrei Pozolotin <andrei.p...@gmail.com> wrote:

I am completely lost! :-)

when I build aries, bnd instructions like these
https://github.com/apache/aries/blob/trunk/application/application-converters/pom.xml#L44

Well that line has:

<aries.osgi.import.pkg>
           org.apache.aries.application.management.spi.convert;provide:=true,
           org.apache.aries.web.converter;provide:=true,
           *
        </aries.osgi.import.pkg>
which have nothing whatsoever to do with bnd.

I suspect that property is used by the org.apache.aries.versioning.plugin plugin which is part of Aries and not bnd.


do affect the generated import range in the import-package manifest entires. it that a wrong behavior?

I suspect you are confusing provide:=true as defined by the Aries versioning plugin with provide:=true as defined by bnd.

-- 

BJ



Neil Bartlett

unread,
Apr 7, 2013, 12:24:56 PM4/7/13
to bndtool...@googlegroups.com
My understanding was that exporting with provide:=true *would* generate an import, but with the provider range.

So I'm going to have to go back and check this. 

--
Neil Bartlett
Sent from a phone

Andrei Pozolotin

unread,
Apr 7, 2013, 12:27:43 PM4/7/13
to bndtool...@googlegroups.com, BJ Hargrave
I pretty sure this property is directly translated by maven-bundle-plugin

into bnd invocation equivalent to the bnd instruction:

Import-Package=org.apache.aries.application.management.spi.convert;provide:=true,org.apache.aries.web.converter;provide:=true,*

http://felix.apache.org/site/apache-felix-maven-bundle-plugin-bnd.html

-------- Original Message --------
Subject: Re: bnd "provide:=true" annotation?
From: BJ Hargrave <b...@bjhargrave.com>
To: bndtool...@googlegroups.com <bndtool...@googlegroups.com>

BJ Hargrave

unread,
Apr 7, 2013, 12:41:13 PM4/7/13
to bndtool...@googlegroups.com

On Apr 7, 2013, at 12:27 , Andrei Pozolotin <andrei.p...@gmail.com> wrote:

I pretty sure this property is directly translated by maven-bundle-plugin 

into bnd invocation equivalent to the bnd instruction:

Import-Package=org.apache.aries.application.management.spi.convert;provide:=true,org.apache.aries.web.converter;provide:=true,*

Nevermind. I confused myself and thought provide:=true was -noimport:=true on Export-Package. So ignore everything I have said in this thread. :-(

-- 

BJ



Ferry Huberts

unread,
Apr 7, 2013, 12:50:58 PM4/7/13
to bndtool...@googlegroups.com, BJ Hargrave, Neil Bartlett

On 07/04/13 18:24, Neil Bartlett wrote:
My understanding was that exporting with provide:=true *would* generate an import, but with the provider range.


That was my understanding as well.

Just verified it on a test project.

Doing a
   Export-Package: org.example.api;provide:=true

will generate an import for that package with the provider range.
When you don't add the provide:=true you'll get the consumer range



-- 
Ferry Huberts

Andrei Pozolotin

unread,
Apr 7, 2013, 12:58:08 PM4/7/13
to bndtool...@googlegroups.com, Ferry Huberts, BJ Hargrave, Neil Bartlett
so bottom line:

1) "provide:=true" could be used to control provider import policy (works OK in my tests)

2) @ProviderType could be used to control provider import policy (does NOT work in my tests)

I would like to avoid "provide:=true" and use @ProviderType instead, but I can't.

I can see there is a lot of difference between current bndtools github and the Bnd-1.50.0 jar in the maven central.

may be you just need to release current bnd to maven central so I can get bnd where @ProviderType works?

should I file a bug?

-------- Original Message --------
Subject: Re: bnd "provide:=true" annotation?

Ferry Huberts

unread,
Apr 7, 2013, 1:36:12 PM4/7/13
to Andrei Pozolotin, bndtool...@googlegroups.com

On 07/04/13 18:58, Andrei Pozolotin wrote:
so bottom line:

1) "provide:=true" could be used to control provider import policy (works OK in my tests)

2) @ProviderType could be used to control provider import policy (does NOT work in my tests)


AFAIK this works, but you need a fairly recent build of bndtools for that to work. I don't think it works in 2.0.0 but I'm not sure.


I would like to avoid "provide:=true" and use @ProviderType instead, but I can't.

I can see there is a lot of difference between current bndtools github and the Bnd-1.50.0 jar in the maven central.

may be you just need to release current bnd to maven central so I can get bnd where @ProviderType works?


AFAIK there is a new snapshot of bnd in Maven central, put there by Stuart, who works on the maven-bundle-plugin.

Stuart is waiting for the 2.1.0 release of bnd/bndtools to update the plugin.


-- 
Ferry Huberts

Neil Bartlett

unread,
Apr 7, 2013, 1:46:16 PM4/7/13
to Andrei Pozolotin, bndtool...@googlegroups.com, Ferry Huberts, BJ Hargrave
@ProviderType certainly does work. There are two possibilities:

1) The version of maven-bundle-plugin you're using has not been updated to use bnd 2.0. I honestly don't know what the correct version of m-b-p you need to be using is.

2) Many people misunderstand where they are supposed to use this annotation. It goes on the *interface* which your provider is implementing... not on the provider class! The reason is that you are indicating the role of the interface in the overall contract.

So, please check these two suggestions.

Cheers
Neil

Stuart McCulloch

unread,
Apr 7, 2013, 1:56:46 PM4/7/13
to bndtool...@googlegroups.com
On 7 Apr 2013, at 18:46, Neil Bartlett wrote:

@ProviderType certainly does work. There are two possibilities:

1) The version of maven-bundle-plugin you're using has not been updated to use bnd 2.0. I honestly don't know what the correct version of m-b-p you need to be using is.

maven-bundle-plugin-2.4.0-SNAPSHOT uses bnd 2.0 (specifically 2.0.0.20130123-133441) - you can either built it from source or get it from https://repository.apache.org/content/repositories/snapshots/

Andrei Pozolotin

unread,
Apr 7, 2013, 1:57:04 PM4/7/13
to Ferry Huberts, bndtool...@googlegroups.com
got it, thank you. filed request for Stuart:
https://issues.apache.org/jira/browse/FELIX-4017

Stuart McCulloch

unread,
Apr 7, 2013, 2:07:35 PM4/7/13
to bndtool...@googlegroups.com
On 7 Apr 2013, at 18:36, Ferry Huberts wrote:


On 07/04/13 18:58, Andrei Pozolotin wrote:
so bottom line:

1) "provide:=true" could be used to control provider import policy (works OK in my tests)

2) @ProviderType could be used to control provider import policy (does NOT work in my tests)


AFAIK this works, but you need a fairly recent build of bndtools for that to work. I don't think it works in 2.0.0 but I'm not sure.

I would like to avoid "provide:=true" and use @ProviderType instead, but I can't.

I can see there is a lot of difference between current bndtools github and the Bnd-1.50.0 jar in the maven central.

may be you just need to release current bnd to maven central so I can get bnd where @ProviderType works?


AFAIK there is a new snapshot of bnd in Maven central, put there by Stuart, who works on the maven-bundle-plugin.

The version uploaded was 2.0.0.20130123-133441 which is the one from Bndtools 2.0:


 It's actually a release (you can't have snapshots in maven central) - I just used the full bundle-version in the maven coordinates

Andrei Pozolotin

unread,
Apr 7, 2013, 2:46:18 PM4/7/13
to bndtool...@googlegroups.com, Stuart McCulloch
Stuart

1) I produced private release of 2.4.0
https://github.com/barchart/barchart-maven-bundle-plugin

and now @ProviderType works!
https://github.com/barchart/barchart-version-tester/blob/master/one-api-provider/doc/manifest-02.txt#L19

2) do you think you could decouple bndlib so it could be updated independent of the plugin?

I tried the following, but it blows up with plexus class realm exceptions:

            <plugin>
                <groupId>org.apache.felix</groupId>
                <artifactId>maven-bundle-plugin</artifactId>
                <version>2.3.7</version>
                <extensions>true</extensions>
                <dependencies>
                    <dependency>
                        <groupId>biz.aQute</groupId>
                        <artifactId>bndlib</artifactId>
                        <version>2.0.0.20130123-133441</version>
                    </dependency>
                </dependencies>
            </plugin>

Thank you,

Andrei

Andrei Pozolotin

unread,
Apr 7, 2013, 2:51:15 PM4/7/13
to bndtool...@googlegroups.com, BJ Hargrave
BJ

now that I proved that bnd annotations work :-) can I ask:

will there be an osgi standard for @ConsumerType, @ProviderType,
and other semantic versioning related annotations?

Thank you,

Andrei
-------- Original Message --------
Subject: Re: bnd "provide:=true" annotation?
From: BJ Hargrave <b...@bjhargrave.com>
To: bndtool...@googlegroups.com <bndtool...@googlegroups.com>

BJ Hargrave

unread,
Apr 7, 2013, 3:06:03 PM4/7/13
to bndtool...@googlegroups.com

On Apr 7, 2013, at 14:51 , Andrei Pozolotin <andrei.p...@gmail.com> wrote:

BJ

now that I proved that bnd annotations work :-) can I ask:

will there be an osgi standard for @ConsumerType, @ProviderType, 
and other semantic versioning related annotations?

We do have RFC 197 OSGi Package and Type Annotation under discussion. It includes @Version, @ProviderType and @ConsumerType. It may be part of Core R6 but that is not decided at this point since we will then no longer be able to compile for Java 1.4 which is still used by some OSGi consumers.

-- 

BJ



Andrei Pozolotin

unread,
Apr 7, 2013, 3:13:34 PM4/7/13
to bndtool...@googlegroups.com, BJ Hargrave, Stuart McCulloch, Ferry Huberts, Neil Bartlett
great! thank you guys all for your help. bndtools rules.

-------- Original Message --------
Subject: Re: bnd "provide:=true" annotation?
From: BJ Hargrave <b...@bjhargrave.com>
To: bndtool...@googlegroups.com <bndtool...@googlegroups.com>

Stuart McCulloch

unread,
Apr 7, 2013, 3:51:47 PM4/7/13
to bndtool...@googlegroups.com
On 7 Apr 2013, at 19:46, Andrei Pozolotin wrote:
Stuart

1) I produced private release of 2.4.0
https://github.com/barchart/barchart-maven-bundle-plugin

and now @ProviderType works!
https://github.com/barchart/barchart-version-tester/blob/master/one-api-provider/doc/manifest-02.txt#L19

2) do you think you could decouple bndlib so it could be updated independent of the plugin?
Various bnd APIs used by the bundleplugin changed from bnd 1.x to 2.x (hence the major version bump) so you can't simply drop bnd 2.x into the old 2.3.7 bundleplugin

The bundleplugin internals have already been modified to work with bnd 2.x, and there's a roadmap towards getting 2.4.0 out of the door (also pending bnd 2.1):


As for introducing yet-another-abstraction-layer, not sure how useful that would be since the bnd 2.x API is stable and already provides a good level of decoupling.

Andrei Pozolotin

unread,
Apr 7, 2013, 4:45:14 PM4/7/13
to bndtool...@googlegroups.com, Stuart McCulloch

-------- Original Message --------
Subject: Re: bnd "provide:=true" annotation?
From: Stuart McCulloch <mcc...@gmail.com>
To: bndtool...@googlegroups.com
Date: Sun 07 Apr 2013 02:51:47 PM CDT

2) do you think you could decouple bndlib so it could be updated independent of the plugin?
Various bnd APIs used by the bundleplugin changed from bnd 1.x to 2.x (hence the major version bump) so you can't simply drop bnd 2.x into the old 2.3.7 bundleplugin

The bundleplugin internals have already been modified to work with bnd 2.x, and there's a roadmap towards getting 2.4.0 out of the door (also pending bnd 2.1):


As for introducing yet-another-abstraction-layer, not sure how useful that would be since the bnd 2.x API is stable and already provides a good level of decoupling.


got it. make sense.

is it too late to piggy back new feature in 2.4.0: goal to enforce semantic version (similar to aries, but based on bndlib)?

Reply all
Reply to author
Forward
0 new messages