Hi all,
I've been messing around with OSGi and Karaf for a bit over 2 years now.
Technically I'm no longer a developer, although if you want to get stuff done,
sometimes you just have to do it yourself. I've built a BAM (Business Activity
Monitoring) platform using OSGi (I wasn't aware of Decanter when I originally
did this but it sounds very similar in many ways. Looking more closely at that
is a future).
To date, I've done everything using Blueprint which has worked quite well but I
thought it might be time to take a look at DS to see where that might fit in.
To get a feel, I had BndTools create a component bundle and tweaked things a
bit so that it should run in Karaf 4.0.5 as BndTools appears to be anticipating
OSGi R6 support. I changed the build to reference osgi.cmpn; version=5.0 for
example.
When I deploy the bundle, the resolver complains about not being able to
satisfy the package requirement: org.osgi.service.component - version
[1.2-2.0). I've looked at the manifest and verified that the package is
actually imported so I'm at a loss. The component code and actual bundle
manifest are shown below, for completeness. Any thoughts on what might be
going on would be appreciated.
Regards, Scott
Manifest-Version: 1.0
Bnd-LastModified: 1463152495066
Bundle-ManifestVersion: 2
Bundle-Name: zCompTest
Bundle-SymbolicName: zCompTest
Bundle-Version: 1.0.0.201605131514
Created-By: 1.8.0_71 (Oracle Corporation)
Export-Package: com.medline.zcomptest;version="1.0.0";uses:="org.osgi.
service.component"
Import-Package: org.osgi.service.component;version="[1.2,2)"
Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))"
Service-Component: OSGI-INF/com.medline.zcomptest.Example.xml
Tool: Bnd-3.2.0.201605070046-SNAPSHOT
import org.osgi.service.component.ComponentContext;
import org.osgi.service.component.annotations.Activate;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Deactivate;
@Component(
immediate = true
)
public class Example {
@Activate
protected void activate(ComponentContext c)
{
System.out.println("++ ACTIVATE");
}
@Deactivate
protected void deactivate(ComponentContext c)
{
System.out.println("-- DEACTIVATE");
}
}