I'd love to know how to do that. This page:
https://github.com/sneakybeaky/jedis-osgi
lists this information:
<dependency>
<groupId>redis.clients</groupId>
<artifactId>com.ninedemons.jedis</artifactId>
<version>2.1.0-SNAPSHOT</version>
</dependency>
When I go to maven central website and search for redis.clients I get a
single hit pointing to jedis. com.ninedemons.jedis is not listed.
I also found a different Redis client RJC here:
https://github.com/e-mzungu/rjc
It claims to be OSGi compliant but it hasn't been updated in four years.
And I don't know how many changes to the code I will have to make to get
it to work (or if it even has the features I need).
And then there is this thing:
http://mvnrepository.com/artifact/org.apache.servicemix.bundles/org.apache.servicemix.bundles.jedis
Its the same version of the library that I'm using right now but it has
zero listed Usages. Gonna see what happens if I install this thing into
Karaf.
On 04/28/2015 02:15 PM, Achim Nierbeck wrote:
> Hi,
>
> did you check if the bundle you are looking for is now released?
> Cause usually the snapshots are deleted the minute a release is through.
>
> regards, Achim
>
>
> 2015-04-28 14:11 GMT+02:00 Jurgen Voorneveld
> <[email protected] <mailto:[email protected]>>:
>
>
> On 04/28/2015 01:59 PM, Achim Nierbeck wrote:> hi Jurgen,
> >
> > a quick googling for Redis + OSGi gave me this [1].
> >
> > Looks like someone is using jedis to connect to his redis server via
> > blueprint.
> > Might want to take a look at this.
> >
> > regards, Achim
> >
> > [1]
> > -
>
> https://github.com/sneakybeaky/jedis-osgi/blob/master/example-datasource/src/main/resources/OSGI-INF/blueprint/local-redis-datasource.xml
>
> yeah I've run into a couple of people using redis with karaf. One guy
> was using it together with spring which doesn't help me much. I did find
> this page: https://github.com/sneakybeaky/karaf-jedis
>
> Which gives an example of how to install the redis bundle. I tried it
> and it gives me two problems. One is that it uses a really old version
> of the pool library that would conflict with my newer version of Hikari,
> now that I'm using Bone its less of an issue but worth keeping in mind.
> Second problem is more serious:
>
> karaf@root()> install -s
> mvn:redis.clients/com.ninedemons.jedis/2.1.0-SNAPSHOT
> Bundle IDs:
> Error executing command: Error installing bundles:
> Unable to install bundle
> mvn:redis.clients/com.ninedemons.jedis/2.1.0-SNAPSHOT
>
> Caused by: java.io.IOException: Error resolving artifact
> redis.clients:com.ninedemons.jedis:jar:2.1.0-SNAPSHOT: Could not find
> artifact redis.clients:com.ninedemons.jedis:jar:2.1.0-SNAPSHOT in apache
> (http://repository.apache.org/content/groups/snapshots-group/)
>
> looks like the bundle no longer exists.
>
> On 04/28/2015 02:00 PM, Achim Nierbeck wrote:> Oh and one, more I think
> there is a redis OSGi client available from the
> > servicemix bundles.
> > Might want to look at that too.
> > Could be that you need to split your application a lot faster then you
> > thought :D
>
> Yeah, every fix I do seems to require some form of splitting. Oh well,
> as long as it works in the end. :)
>
>
> > 2015-04-28 13:56 GMT+02:00 Jurgen Voorneveld
> > <[email protected]
> <mailto:[email protected]>
> <mailto:[email protected]
> <mailto:[email protected]>>>:
> >
> > I have no idea how Redis uses this library, I haven't read the
> code. My
> > code does this:
> >
> > new JedisPool(new JedisPoolConfig(), redis_driver[0],
> > Integer.parseInt(redis_driver[1]), 1800, password);
> >
> > On 04/28/2015 01:41 PM, Guillaume Nodet wrote:
> > > Not sure what the exact usage of command-pool is, but given the
> stack
> > > trace, it could be that a class is loaded from its name (i
> suspect it
> > > comes from the configuration). In such a case, to make it work
> in OSGi,
> > > the correct class loader needs to be used, one can't rely on the
> thread
> > > context class loader, or even the current class' classloader,
> which may
> > > have no visibility to the package.
> > > It may require a fix in some code loading the class to behave
> properly
> > > in OSGi.
> > >
> > > 2015-04-28 13:31 GMT+02:00 Jurgen Voorneveld
> > > <[email protected]
> <mailto:[email protected]>
> > <mailto:[email protected]
> <mailto:[email protected]>>
> > <mailto:[email protected]
> <mailto:[email protected]>
> > <mailto:[email protected]
> <mailto:[email protected]>>>>:
> > >
> > > I couldn't get the Apache Commons Pool libary to load
> under Karaf so I
> > > tried rewriting the app to use BoneCP instead of
> HikariCP. Bone doesn't
> > > have this dependency.
> > >
> > > This appears to work. BoneCP does want to load.
> Unfortunately I also
> > > have a Redis database which also has the dependency on
> Apache Commons
> > > Pool. So I'm back to the same error just one line down
> in my code.
> > >
> > > It doesn't look like there are any alternative
> connection pool libraries
> > > for Redis.
> > >
> > > I want to be able to connect to my Redis db using a
> connection pool,
> > > anyone know how to do that?
> > >
> > > On 04/23/2015 05:14 PM, Jurgen Voorneveld wrote:
> > > > I got the maven install to work and installed a bunch
> of bundles:
> > > >
> > > > karaf@root()> list
> > > > START LEVEL 100 , List Threshold: 50
> > > > ID | State | Lvl | Version | Name
> > > >
> > > >
> > >
>
> -----------------------------------------------------------------------------
> > > > 102 | Resolved | 80 | 2.3.0 | Apache Commons Pool
> > > >
> > > > 107 | Resolved | 80 | 2.3.6 | HikariCP
> > > >
> > > > 110 | Resolved | 80 | 3.19.0.GA <http://3.19.0.GA>
> <http://3.19.0.GA>
> > <http://3.19.0.GA> | Javassist
> > > >
> > > > 111 | Resolved | 80 | 5.1.35 | Oracle
> Corporation's JDBC
> > > Driver for
> > > > MySQL
> > > > 113 | Resolved | 80 | 01.00.46 | Analyzer
> > > >
> > > >
> > > > Unfortunately this doesn't actually solve the problem.
> I'm still
> > > getting
> > > > the same error:
> > > >
> > > > Caused by: java.lang.ClassNotFoundException:
> > > > org.apache.commons.pool2.impl.DefaultEvictionPolicy
> > > >
> > > > despite it existing in the exports list:
> > > >
> > > > karaf@root()> package:exports | grep commons
> > > > org.apache.commons.pool2.impl |
> 2.3.0 |
> > 102 |
> > > > org.apache.commons.pool2
> > > > org.apache.commons.pool2.proxy |
> 2.3.0 |
> > 102 |
> > > > org.apache.commons.pool2
> > > > org.apache.commons.pool2 |
> 2.3.0 |
> > 102 |
> > > > org.apache.commons.pool2
> > > >
> > > > and being included in the Import-Package in the manifest.
> > > >
> > > > running out of ideas...
> > > >
> > > > Jurgen
> > > >
> > > > On 04/23/2015 12:51 PM, Morgan Hautman wrote:
> > > >> Sorry for the typo, it changed to "package" in Karaf 3.
> > > >>
> > > >> You should install one package that export this
> service too.
> > > >>
> > > >> Try this: install mvn:com.zaxxer/HikariCP/x.x.x (version
> > you want
> > > to use)
> > > >>
> > > >> Regards
> > > >> Morgan
> > > >>
> > > >> On 23/04/2015 12:37, Jurgen Voorneveld wrote:
> > > >>> Should have paid more attention.
> > > >>>
> > > >>> karaf@root()> package:exports | grep HikariConfig
> > > >>>
> > > >>> Returns empty. Which I guess makes sense; there is no
> > library in
> > > Karaf
> > > >>> exporting these classes by default.
> > > >>> But I don't see how that could make it fail. The
> class is
> > > available in
> > > >>> the bundle itself.
> > > >>>
> > > >>> For completeness this is the imports in the manifest:
> > > >>>
> > > >>> Import-Package: org.osgi.framework, javax.naming
> > > >>>
> > > >>> Jurgen
> > > >>>
> > > >>> On 04/23/2015 12:30 PM, Jurgen Voorneveld wrote:
> > > >>>> Helo Morgan,
> > > >>>>
> > > >>>> I get this:
> > > >>>>
> > > >>>> karaf@root()> packages:exports | grep HikariConfig
> > > >>>> pipe:
> org.apache.felix.gogo.runtime.CommandNotFoundException:
> > > Command
> > > >>>> not found: packages:exports
> > > >>>>
> > > >>>> I have no idea what this means.
> > > >>>>
> > > >>>> Jurgen
> > > >>>>
> > > >>>> On 04/23/2015 12:18 PM, Morgan Hautman wrote:
> > > >>>>> Hello Jurgen,
> > > >>>>>
> > > >>>>> What do you get when you're doing a
> "packages:exports | grep
> > > >>>>> HikariConfig"?
> > > >>>>>
> > > >>>>> Regards
> > > >>>>> Morgan
> > > >>>>>
> > > >>>>> On 23/04/2015 11:58, Jurgen Voorneveld wrote:
> > > >>>>>> Dear list,
> > > >>>>>>
> > > >>>>>> I have Apache Karaf installed on a production system
> > here at
> > > work and
> > > >>>>>> I'm trying to install a bundle into it. This is
> fairly
> > new to
> > > me as
> > > >>>>>> previously the code was simply running as standalone
> > > applications.
> > > >>>>>>
> > > >>>>>> I'm getting an exception when I try to load the
> bundle:
> > > >>>>>>
> > > >>>>>> karaf@root()> list
> > > >>>>>> START LEVEL 100 , List Threshold: 50
> > > >>>>>> ID | State | Lvl | Version | Name
> > > >>>>>> -----------------------------------------
> > > >>>>>> 87 | Resolved | 80 | 01.00.27 | Analyzer
> > > >>>>>> karaf@root()> start 87
> > > >>>>>> Error executing command: Error executing command on
> > bundles:
> > > >>>>>> Unable to execute command on bundle 87:
> Activator
> > start
> > > error in
> > > >>>>>> bundle
> > > >>>>>> nl.redsocks.farm.analyzer [87].
> > > >>>>>> karaf@root()> log:display
> > > >>>>>> 2015-04-23 11:48:28,700 | ERROR | h for user karaf |
> > ShellUtil
> > > >>>>>> | 25 -
> org.apache.karaf.shell.console -
> > 3.0.3 |
> > > >>>>>> Exception
> > > >>>>>> caught while executing command
> > > >>>>>> org.apache.karaf.shell.console.MultiException: Error
> > > executing command
> > > >>>>>> on bundles:
> > > >>>>>> Unable to execute command on bundle 87:
> Activator
> > start
> > > error in
> > > >>>>>> bundle
> > > >>>>>> nl.redsocks.farm.analyzer [87].
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.karaf.shell.console.MultiException.throwIf(MultiException.java:92)
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:58)
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.karaf.bundle.command.BundlesCommand.doExecute(BundlesCommand.java:50)
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:41)
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.karaf.shell.console.AbstractAction.execute(AbstractAction.java:33)[25:org.apache.karaf.shell.console:3.0.3]
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:39)[25:org.apache.karaf.shell.console:3.0.3]
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.karaf.shell.commands.basic.AbstractCommand.execute(AbstractCommand.java:33)[25:org.apache.karaf.shell.console:3.0.3]
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > Proxy5f648166_9983_4f8f_acb1_23f0c1d1ea3b.execute(Unknown
> > > >>>>>> Source)[:]
> > > >>>>>> at
> > Proxy5f648166_9983_4f8f_acb1_23f0c1d1ea3b.execute(Unknown
> > > >>>>>> Source)[:]
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.felix.gogo.runtime.CommandProxy.execute(CommandProxy.java:78)[25:org.apache.karaf.shell.console:3.0.3]
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.felix.gogo.runtime.Closure.executeCmd(Closure.java:477)[25:org.apache.karaf.shell.console:3.0.3]
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.felix.gogo.runtime.Closure.executeStatement(Closure.java:403)[25:org.apache.karaf.shell.console:3.0.3]
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.felix.gogo.runtime.Pipe.run(Pipe.java:108)[25:org.apache.karaf.shell.console:3.0.3]
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:183)[25:org.apache.karaf.shell.console:3.0.3]
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.felix.gogo.runtime.Closure.execute(Closure.java:120)[25:org.apache.karaf.shell.console:3.0.3]
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.felix.gogo.runtime.CommandSessionImpl.execute(CommandSessionImpl.java:92)
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.karaf.shell.console.impl.jline.ConsoleImpl.run(ConsoleImpl.java:208)
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.karaf.shell.ssh.ShellFactoryImpl$ShellImpl$1.runConsole(ShellFactoryImpl.java:158)[52:org.apache.karaf.shell.ssh:3.0.3]
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.karaf.shell.ssh.ShellFactoryImpl$ShellImpl$1$1.run(ShellFactoryImpl.java:133)
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> java.security.AccessController.doPrivileged(Native
> > > >>>>>> Method)[:1.8.0_25]
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.karaf.jaas.modules.JaasHelper.doAs(JaasHelper.java:57)[26:org.apache.karaf.jaas.modules:3.0.3]
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.karaf.shell.ssh.ShellFactoryImpl$ShellImpl$1.run(ShellFactoryImpl.java:129)[52:org.apache.karaf.shell.ssh:3.0.3]
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> Caused by: java.lang.Exception: Unable to execute
> > command on
> > > bundle
> > > >>>>>> 87:
> > > >>>>>> Activator start error in bundle
> > nl.redsocks.farm.analyzer [87].
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:55)
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> ... 20 more
> > > >>>>>> Caused by: org.osgi.framework.BundleException:
> > Activator start
> > > >>>>>> error in
> > > >>>>>> bundle nl.redsocks.farm.analyzer [87].
> > > >>>>>> at
> > > >>>>>>
> > org.apache.felix.framework.Felix.activateBundle(Felix.java:2196)
> > > >>>>>> at
> > >
> org.apache.felix.framework.Felix.startBundle(Felix.java:2064)
> > > >>>>>> at
> > > >>>>>>
> > org.apache.felix.framework.BundleImpl.start(BundleImpl.java:955)
> > > >>>>>> at
> > > >>>>>>
> > org.apache.felix.framework.BundleImpl.start(BundleImpl.java:942)
> > > >>>>>> at
> > > >>>>>>
> > >
> >
> org.apache.karaf.bundle.command.Start.executeOnBundle(Start.java:27)
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.karaf.bundle.command.BundlesCommandWithConfirmation.doExecute(BundlesCommandWithConfirmation.java:53)
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> ... 20 more
> > > >>>>>> Caused by: java.lang.NoClassDefFoundError: Could not
> > > initialize class
> > > >>>>>> com.zaxxer.hikari.HikariConfig
> > > >>>>>> at
> > > nl.redsocks.farm.common.services.MySQL.init(MySQL.java:29)
> > > >>>>>> at
> > > >>>>>>
> > nl.redsocks.farm.analyzer.core.Analyzer.start(Analyzer.java:250)
> > > >>>>>> at
> > > >>>>>>
> > >
> >
>
> org.apache.felix.framework.util.SecureAction.startActivator(SecureAction.java:645)
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> at
> > > >>>>>>
> > org.apache.felix.framework.Felix.activateBundle(Felix.java:2146)
> > > >>>>>> ... 25 more
> > > >>>>>>
> > > >>>>>> karaf@root()>
> > > >>>>>>
> > > >>>>>> sorry for the wrapping. It looks like the problem
> is with
> > > HikariCP;
> > > >>>>>> "Caused by: java.lang.NoClassDefFoundError: Could not
> > > initialize class
> > > >>>>>> com.zaxxer.hikari.HikariConfig"
> > > >>>>>>
> > > >>>>>> I checked the jar and this class is in there. And the
> > code also
> > > >>>>>> functions without problems when run standalone.
> > > >>>>>>
> > > >>>>>> Right now I'm creating bundles by creating one
> massive jar
> > > with all
> > > >>>>>> dependencies packaged together. Perhaps I should try
> > installing
> > > >>>>>> HikariCP
> > > >>>>>> as a library inside its own bundle?
> > > >>>>>>
> > > >>>>>> How can I solve the problem?
> > > >>>>>>
> > > >>>>>> thanks
> > > >>>>>> Jurgen
> > > >>>>>>
> > > >>>>>> versions:
> > > >>>>>>
> > > >>>>>> $ java -version
> > > >>>>>> java version "1.8.0_25"
> > > >>>>>> Java(TM) SE Runtime Environment (build 1.8.0_25-b17)
> > > >>>>>> Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02,
> > mixed mode)
> > > >>>>>>
> > > >>>>>> $ uname -a
> > > >>>>>> Linux farm 3.13.0-48-generic #80-Ubuntu SMP Thu
> Mar 12
> > > 11:16:15 UTC
> > > >>>>>> 2015
> > > >>>>>> x86_64 x86_64 x86_64 GNU/Linux
> > > >>>>>>
> > > >>>>>> $ awk 'NR>=17&&NR<=20{print}NR>=21{exit}'
> RELEASE-NOTES
> > > >>>>>>
> > > >>>>>> Apache Karaf 3.0.3
> > > >>>>>> ==================
> > > >>>>>>
> > > >>>>>>
> > >
> > >
> >
> >
> >
> >
> > --
> >
> > Apache Member
> > Apache Karaf <http://karaf.apache.org/> Committer & PMC
> > OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
> Committer
> > & Project Lead
> > blog <http://notizblog.nierbeck.de/>
> > Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
> >
> > Software Architect / Project Manager / Scrum Master
> >
>
>
>
>
> --
>
> Apache Member
> Apache Karaf <http://karaf.apache.org/> Committer & PMC
> OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer
> & Project Lead
> blog <http://notizblog.nierbeck.de/>
> Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
>
> Software Architect / Project Manager / Scrum Master
>