Replace eclipse console with karaf
I'm trying to use the Karaf console in an OSGi project rather than using the eclipse console. The problem is when I run it, it starts up but terminate immediately after. It is an almost empty eclipse plugin project, with a target platform with the following five bundles: org.apache.aries.blueprint (0.2.0.invubating) org.apache.felix.configadmin (1.2.4) org.apache.karaf.shell.console (2.1.2) org.eclipse.osgi (3.6.1.R36x_v20100806) org.ops4j.pax.logging.pax-logging-api (1.5.3) The output from the run is here: http://pastebin.com/uncPWdxw pastebin.com This is with the following VM arguments: -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false If I remove -console from the program arguements is does not even start up. Any ideas as to why I can't get the Karaf console to work? -- View this message in context: http://karaf.922171.n3.nabble.com/Replace-eclipse-console-with-karaf-tp2156020p2156020.html Sent from the Karaf - User mailing list archive at Nabble.com.
RE: Replace eclipse console with karaf
Hi, You may be interested in EIK (Eclipse Integration for Karaf) made by Stephen Evanchik: http://stephen.evanchik.com/blog/2010/12/05-release-eclipse-integration-kara f.html The EIK provides target platform definition for Karaf and let you start it directly from your IDE. Best regards, Lukasz -Original Message- From: WPH [mailto:w...@maconomy.com] Sent: Tuesday, December 28, 2010 10:40 AM To: user@karaf.apache.org Subject: Replace eclipse console with karaf I'm trying to use the Karaf console in an OSGi project rather than using the eclipse console. The problem is when I run it, it starts up but terminate immediately after. It is an almost empty eclipse plugin project, with a target platform with the following five bundles: org.apache.aries.blueprint (0.2.0.invubating) org.apache.felix.configadmin (1.2.4) org.apache.karaf.shell.console (2.1.2) org.eclipse.osgi (3.6.1.R36x_v20100806) org.ops4j.pax.logging.pax-logging-api (1.5.3) The output from the run is here: http://pastebin.com/uncPWdxw pastebin.com This is with the following VM arguments: -Declipse.ignoreApp=true -Dosgi.noShutdown=true -Dkaraf.startLocalConsole=true -Dkaraf.startRemoteShell=false If I remove -console from the program arguements is does not even start up. Any ideas as to why I can't get the Karaf console to work? -- View this message in context: http://karaf.922171.n3.nabble.com/Replace-eclipse-console-with-karaf-tp21560 20p2156020.html Sent from the Karaf - User mailing list archive at Nabble.com.
Re: Problem reusing JAAS login modules
It's certainly a missing import package. When drpped into the deploy folder, the deployer will automatically add the required import packages. On Tuesday, December 28, 2010, Rafael Marins rafael.mar...@neociclo.com wrote: Hi, When using the PropertiesLoginModule from a blueprint file in my bundle located at the /OSGI-INF/blueprint/ folder, I've encountered problem with ClassNotFoundException. But I can get it working properly when deploying the blueprint xml into the /deploy/ folder. Check the logging stack trace here: http://pastebin.com/yFiKkpg3 (at line 57) From my blueprint file: accord-jaas-module.xml ... jaas:config name=accord jaas:module className=org.apache.karaf.jaas.modules.properties.PropertiesLoginModule flags=required users = $[karaf.base]/etc/accord-users.properties debug = true /jaas:module /jaas:config ... Any ideas on what must be done to solve this problem? --Rafael Marins -- Cheers, Guillaume Nodet Blog: http://gnodet.blogspot.com/ Open Source SOA http://fusesource.com
Re: Problem reusing JAAS login modules
Hi JB, Thanks everybody for all replies. I suspected about it and included org.apache.karaf.modules.* to the bundle imports, but didn't worked. The maven-bundle-plugin simply don't put that import statement it in the Manifest as there is no Java package imports. See the pom statements: From the org.neociclo.accord.server.server-core bundle's pom: artifactIdserver-core/artifactId packagingbundle/packaging nameAccord Server :: Core/name properties !-- OSGi bundle custom properties -- accord.osgi.export.pkg org.neociclo.accord.server.* /accord.osgi.export.pkg accord.osgi.private.pkg org.neociclo.accord.server.impl.* /accord.osgi.private.pkg accord.osgi.import.additional org.apache.karaf.jaas.config.*;version=[2.1.2,3), org.apache.karaf.jaas.modules.*;version=[2.1.2,3) /accord.osgi.import.additional /properties From the parent pom: properties ... accord.osgi.name${project.name}/accord.osgi.name accord.osgi.import.accord.versionversion=[$(version;==;${accord.osgi.version.clean}),$(version;=+;${accord.osgi.version.clean}))/accord.osgi.import.accord.version accord.osgi.import.strict.versionversion=[$(version;===;${accord.osgi.version.clean}),$(version;==+;${accord.osgi.version.clean}))/accord.osgi.import.strict.version accord.osgi.import.default.version[$(version;==;$(@)),$(version;+;$(@)))/accord.osgi.import.default.version accord.osgi.import.defaults org.springframework.*;version=[3.0,4), org.apache.camel.*;version=[2.5,3), org.slf4j.*;version=[1.5,1.6), /accord.osgi.import.defaults accord.osgi.import.before.defaults / accord.osgi.import.additional / accord.osgi.import.pkg !${accord.osgi.export.pkg}, org.neociclo.accord.server.*;${accord.osgi.import.accord.version}, ${accord.osgi.import.before.defaults}, ${accord.osgi.import.defaults}, ${accord.osgi.import.additional}, * /accord.osgi.import.pkg accord.osgi.activator / accord.osgi.failokfalse/accord.osgi.failok accord.osgi.private.pkg!*/accord.osgi.private.pkg accord.osgi.export${accord.osgi.export.pkg};${accord.osgi.version}/accord.osgi.export accord.osgi.versionversion=${project.version}/accord.osgi.version accord.osgi.split.pkg-split-package:=first/accord.osgi.split.pkg accord.osgi.import${accord.osgi.import.pkg}/accord.osgi.import accord.osgi.dynamic / accord.osgi.symbolic.name${project.groupId}.${project.artifactId}/accord.osgi.symbolic.name accord.osgi.exclude.dependenciesfalse/accord.osgi.exclude.dependencies ... plugin groupIdorg.apache.felix/groupId artifactIdmaven-bundle-plugin/artifactId version${felix-version}/version extensionstrue/extensions configuration excludeDependencies${accord.osgi.exclude.dependencies}/excludeDependencies instructions Bundle-Name${accord.osgi.name}/Bundle-Name Bundle-SymbolicName${accord.osgi.symbolic.name}/Bundle-SymbolicName Bundle-Activator${accord.osgi.activator}/Bundle-Activator Export-Package${accord.osgi.export}/Export-Package Import-Package${accord.osgi.import}/Import-Package DynamicImport-Package${accord.osgi.dynamic}/DynamicImport-Package Private-Package${accord.osgi.private.pkg}/Private-Package Implementation-TitleNeociclo Accord/Implementation-Title Implementation-Version${project.version}/Implementation-Version _versionpolicy${accord.osgi.import.default.version}/_versionpolicy _failok${accord.osgi.failok}/_failok /instructions /configuration /plugin ... And it produced the MANIFEST.MF with: Bundle-SymbolicName: org.neociclo.accord.server.server-core Import-Package: javax.security.auth,javax.security.auth.callback,javax .security.auth.login,javax.security.auth.spi,org.osgi.service.bluepri nt;version=[1.0.0,2.0.0) Best regards, -- Rafael Marins On Dec 28, 2010, at 4:34 AM, Jean-Baptiste Onofré wrote: Hi Rafael, it's certainly due to classloader issue. Could you paste your bundle pom to see the Import-Package statement ? Regards JB
Re: Problem reusing JAAS login modules
maybe I'm blind, but shouldn't this line: Import-Package${accord.osgi.import}/Import-Package look like: Import-Package${accord.osgi.import.pkg}/Import-Package kind regards, andreas On Tue, Dec 28, 2010 at 09:25:24AM -0200, Rafael Marins wrote: Hi JB, Thanks everybody for all replies. I suspected about it and included org.apache.karaf.modules.* to the bundle imports, but didn't worked. The maven-bundle-plugin simply don't put that import statement it in the Manifest as there is no Java package imports. See the pom statements: From the org.neociclo.accord.server.server-core bundle's pom: artifactIdserver-core/artifactId packagingbundle/packaging nameAccord Server :: Core/name properties !-- OSGi bundle custom properties -- accord.osgi.export.pkg org.neociclo.accord.server.* /accord.osgi.export.pkg accord.osgi.private.pkg org.neociclo.accord.server.impl.* /accord.osgi.private.pkg accord.osgi.import.additional org.apache.karaf.jaas.config.*;version=[2.1.2,3), org.apache.karaf.jaas.modules.*;version=[2.1.2,3) /accord.osgi.import.additional /properties From the parent pom: properties ... accord.osgi.name${project.name}/accord.osgi.name accord.osgi.import.accord.versionversion=[$(version;==;${accord.osgi.version.clean}),$(version;=+;${accord.osgi.version.clean}))/accord.osgi.import.accord.version accord.osgi.import.strict.versionversion=[$(version;===;${accord.osgi.version.clean}),$(version;==+;${accord.osgi.version.clean}))/accord.osgi.import.strict.version accord.osgi.import.default.version[$(version;==;$(@)),$(version;+;$(@)))/accord.osgi.import.default.version accord.osgi.import.defaults org.springframework.*;version=[3.0,4), org.apache.camel.*;version=[2.5,3), org.slf4j.*;version=[1.5,1.6), /accord.osgi.import.defaults accord.osgi.import.before.defaults / accord.osgi.import.additional / accord.osgi.import.pkg !${accord.osgi.export.pkg}, org.neociclo.accord.server.*;${accord.osgi.import.accord.version}, ${accord.osgi.import.before.defaults}, ${accord.osgi.import.defaults}, ${accord.osgi.import.additional}, * /accord.osgi.import.pkg accord.osgi.activator / accord.osgi.failokfalse/accord.osgi.failok accord.osgi.private.pkg!*/accord.osgi.private.pkg accord.osgi.export${accord.osgi.export.pkg};${accord.osgi.version}/accord.osgi.export accord.osgi.versionversion=${project.version}/accord.osgi.version accord.osgi.split.pkg-split-package:=first/accord.osgi.split.pkg accord.osgi.import${accord.osgi.import.pkg}/accord.osgi.import accord.osgi.dynamic / accord.osgi.symbolic.name${project.groupId}.${project.artifactId}/accord.osgi.symbolic.name accord.osgi.exclude.dependenciesfalse/accord.osgi.exclude.dependencies ... plugin groupIdorg.apache.felix/groupId artifactIdmaven-bundle-plugin/artifactId version${felix-version}/version extensionstrue/extensions configuration excludeDependencies${accord.osgi.exclude.dependencies}/excludeDependencies instructions Bundle-Name${accord.osgi.name}/Bundle-Name Bundle-SymbolicName${accord.osgi.symbolic.name}/Bundle-SymbolicName Bundle-Activator${accord.osgi.activator}/Bundle-Activator Export-Package${accord.osgi.export}/Export-Package Import-Package${accord.osgi.import}/Import-Package DynamicImport-Package${accord.osgi.dynamic}/DynamicImport-Package Private-Package${accord.osgi.private.pkg}/Private-Package Implementation-TitleNeociclo Accord/Implementation-Title Implementation-Version${project.version}/Implementation-Version _versionpolicy${accord.osgi.import.default.version}/_versionpolicy _failok${accord.osgi.failok}/_failok /instructions /configuration /plugin ... And it produced the MANIFEST.MF with: Bundle-SymbolicName: org.neociclo.accord.server.server-core Import-Package: javax.security.auth,javax.security.auth.callback,javax .security.auth.login,javax.security.auth.spi,org.osgi.service.bluepri nt;version=[1.0.0,2.0.0) Best regards, -- Rafael Marins On Dec 28, 2010, at 4:34 AM, Jean-Baptiste Onofré wrote: Hi Rafael, it's certainly due to classloader issue. Could you paste your bundle pom to see the Import-Package statement ? Regards JB pgpQR2eEN0xru.pgp Description: PGP signature
Re: Problem reusing JAAS login modules
Hi Andreas, There is a accord.osgi.import${accord.osgi.import.pkg}/accord.osgi.import... almost the same result. Best regards, -- Rafael Marins On Dec 28, 2010, at 9:32 AM, Andreas Pieber wrote: maybe I'm blind, but shouldn't this line: Import-Package${accord.osgi.import}/Import-Package look like: Import-Package${accord.osgi.import.pkg}/Import-Package kind regards, andreas
Re: Problem reusing JAAS login modules
Hi Guillaume, When dropped into the deploy/ folder, the deployer is adding Karaf JAAS Config and OSGI Blueprint Services imports, as paste below: Imported Packages (accord-jaas-module.xml - from webconsole) org.apache.aries.blueprint,version=0.2.0.incubating from org.apache.aries.blueprint (7) org.apache.aries.blueprint.ext,version=0.2.0.incubating from org.apache.aries.blueprint (7) org.apache.camel,version=2.5.0 from org.apache.camel.camel-core (183) org.apache.camel.spi,version=2.5.0 from org.apache.camel.camel-core (183) org.apache.karaf.jaas.config,version=2.1.2 from org.apache.karaf.jaas.config (8) org.apache.karaf.jaas.config.impl,version=2.1.2 from org.apache.karaf.jaas.config (8) org.osgi.service.blueprint.container,version=1.0.1 from org.apache.aries.blueprint (7) But when the blueprint file is processed from within my bundle, in the OSGI-INF/blueprint/ folder, only the OSGI Blueprint Service were added: Imported Packages (org.neociclo.accord.server.server-core bundle - from webconsole) javax.security.auth,version=0.0.0 from org.apache.felix.framework (0) javax.security.auth.callback,version=0.0.0 from org.apache.felix.framework (0) javax.security.auth.login,version=0.0.0 from org.apache.felix.framework (0) javax.security.auth.spi,version=0.0.0 from org.apache.felix.framework (0) org.osgi.service.blueprint,version=1.0.1 from org.apache.aries.blueprint (7) Best regards, -- Rafael Marins On Dec 28, 2010, at 8:15 AM, Guillaume Nodet wrote: It's certainly a missing import package. When drpped into the deploy folder, the deployer will automatically add the required import packages.
Re: Problem reusing JAAS login modules
Hi Andreas, Sure, check it out here: http://pastebin.com/fx9JF873 Best regards, -- Rafael Marins On Dec 28, 2010, at 9:43 AM, Andreas Pieber wrote: Can you upload the effective pom for org.neociclo.accord.server.server-core [1]? kind regards, andreas [1] http://maven.apache.org/plugins/maven-help-plugin/effective-pom-mojo.html
Re: Problem reusing JAAS login modules
your pom looks ok so far... The imports * is not taken into account (not sure y) but the easiest solution is to 1) put your blueprint into deploy 2) get all imported packages 3) explicitly add those packages as imports (do not use *) (e.g. use .karaf.config and XXX.karaf.config.impl, ...). This should do the trick kind regards, andreas On Tue, Dec 28, 2010 at 10:12:49AM -0200, Rafael Marins wrote: Hi Andreas, Sure, check it out here: [1]http://pastebin.com/fx9JF873 Best regards, -- Rafael Marins On Dec 28, 2010, at 9:43 AM, Andreas Pieber wrote: Can you upload the effective pom for org.neociclo.accord.server.server-core [1]? kind regards, andreas [1] [2]http://maven.apache.org/plugins/maven-help-plugin/effective-p om-mojo.html References 1. http://pastebin.com/fx9JF873 2. http://maven.apache.org/plugins/maven-help-plugin/effective-pom-mojo.html pgpLpwSRafC5m.pgp Description: PGP signature
Re: Problem reusing JAAS login modules
Hi Andreas, Changing the imports to meet the specific package just worked for my bundle, which encompass both the jaas configuration blueprint xml and the oftp-context.xml with Camel routes. Thanks everybody!!! What did the trick was simply the: accord.osgi.import.additional org.apache.karaf.jaas.modules.properties;version=[2.1.2,3) /accord.osgi.import.additional Although, restarting Karaf was required. The JAAS realm is not found when used after a fresh features:install accord-server. Any guess why? Best regards, -- Rafael Marins On Dec 28, 2010, at 10:24 AM, Andreas Pieber wrote: your pom looks ok so far... The imports * is not taken into account (not sure y) but the easiest solution is to 1) put your blueprint into deploy 2) get all imported packages 3) explicitly add those packages as imports (do not use *) (e.g. use .karaf.config and XXX.karaf.config.impl, ...). This should do the trick kind regards, andreas
Re: Problem reusing JAAS login modules
Not ad-hoc, but if you can provide a very simple example to reproduce the problem and create an issue for it I can take a look at it. kind regards, andreas On Tue, Dec 28, 2010 at 02:52:21PM -0200, Rafael Marins wrote: Hi Andreas, Changing the imports to meet the specific package just worked for my bundle, which encompass both the jaas configuration blueprint xml and the oftp-context.xml with Camel routes. Thanks everybody!!! What did the trick was simply the: accord.osgi.import.additional org.apache.karaf.jaas.modules.properties;version=[2.1.2,3) /accord.osgi.import.additional Although, restarting Karaf was required. The JAAS realm is not found when used after a fresh features:install accord-server. Any guess why? Best regards, -- Rafael Marins On Dec 28, 2010, at 10:24 AM, Andreas Pieber wrote: your pom looks ok so far... The imports * is not taken into account (not sure y) but the easiest solution is to 1) put your blueprint into deploy 2) get all imported packages 3) explicitly add those packages as imports (do not use *) (e.g. use .karaf.config and XXX.karaf.config.impl, ...). This should do the trick kind regards, andreas pgpZ4SbXfecMQ.pgp Description: PGP signature
Re: Problem reusing JAAS login modules
Hi Andreas, Filled the issue KARAF-344 to report and track the problem. Best, -- Rafael Marins On Dec 28, 2010, at 4:28 PM, Rafael Marins wrote: Hi Andreas, I've prepared the attached project to test this behavior. You can build and simply follow the steps: ka...@root osgi:install \-s mvn:org.neociclo.samples.karaf/jaas-config-requires-restart/1.0-SNAPSHOT Bundle ID: 330 ka...@root nc:jaaslogin user pwd org.osgi.service.blueprint.container.ServiceUnavailableException: Service is unavailable at org.apache.aries.blueprint.container.ReferenceListRecipe$ServiceDispatcher.call(ReferenceListRecipe.java:201) at org.apache.aries.blueprint.container.AbstractServiceReferenceRecipe$CgLibProxyFactory$1.loadObject(AbstractServiceReferenceRecipe.java:652) at org.apache.karaf.jaas.config.JaasRealm$$EnhancerByCGLIB$$59154.getName(generated) at org.apache.karaf.jaas.config.impl.OsgiConfiguration.getAppConfigurationEntry(OsgiConfiguration.java:52) at javax.security.auth.login.LoginContext.init(LoginContext.java:243) at javax.security.auth.login.LoginContext.init(LoginContext.java:367) at javax.security.auth.login.LoginContext.init(LoginContext.java:444) at org.neociclo.samples.karaf.JaasLoginShellCommand.doExecute(JaasLoginShellCommand.java:41) at org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:38) at org.apache.felix.gogo.commands.basic.AbstractCommand.execute(AbstractCommand.java:35) at org.apache.felix.gogo.runtime.shell.CommandProxy.execute(CommandProxy.java:50) at org.apache.felix.gogo.runtime.shell.Closure.execute(Closure.java:229) at org.apache.felix.gogo.runtime.shell.Closure.executeStatement(Closure.java:162) at org.apache.felix.gogo.runtime.shell.Pipe.run(Pipe.java:101) at org.apache.felix.gogo.runtime.shell.Closure.execute(Closure.java:79) at org.apache.felix.gogo.runtime.shell.CommandSessionImpl.execute(CommandSessionImpl.java:71) at org.apache.karaf.shell.console.jline.Console.run(Console.java:169) at java.lang.Thread.run(Thread.java:680) Failed to load LoginContext for realm=nctestka...@root shutdown localhost:karaf rmarins$ ./bin/karaf __ __ / //_/ __ _/ __/ / , / __ `/ ___/ __ `/ /_ / /| |/ /_/ / / / /_/ / __/ /_/ |_|\__,_/_/ \__,_/_/ Apache Karaf (2.1.2) Hit 'tab' for a list of available commands and '[cmd] --help' for help on a specific command. Hit 'ctrl-d' or 'osgi:shutdown' to shutdown Karaf. ka...@root nc:jaaslogin user pwd javax.security.auth.login.FailedLoginException: User user does not exist at org.apache.karaf.jaas.modules.properties.PropertiesLoginModule.login(PropertiesLoginModule.java:97) at org.apache.karaf.jaas.boot.ProxyLoginModule.login(ProxyLoginModule.java:83) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at javax.security.auth.login.LoginContext.invoke(LoginContext.java:769) at javax.security.auth.login.LoginContext.access$000(LoginContext.java:186) at javax.security.auth.login.LoginContext$4.run(LoginContext.java:683) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:680) at javax.security.auth.login.LoginContext.login(LoginContext.java:579) at org.neociclo.samples.karaf.JaasLoginShellCommand.doExecute(JaasLoginShellCommand.java:61) at org.apache.karaf.shell.console.OsgiCommandSupport.execute(OsgiCommandSupport.java:38) at org.apache.felix.gogo.commands.basic.AbstractCommand.execute(AbstractCommand.java:35) at org.apache.felix.gogo.runtime.shell.CommandProxy.execute(CommandProxy.java:50) at org.apache.felix.gogo.runtime.shell.Closure.execute(Closure.java:229) at org.apache.felix.gogo.runtime.shell.Closure.executeStatement(Closure.java:162) at org.apache.felix.gogo.runtime.shell.Pipe.run(Pipe.java:101) at org.apache.felix.gogo.runtime.shell.Closure.execute(Closure.java:79) at org.apache.felix.gogo.runtime.shell.CommandSessionImpl.execute(CommandSessionImpl.java:71) at org.apache.karaf.shell.console.jline.Console.run(Console.java:169) at java.lang.Thread.run(Thread.java:680) Login failed ka...@root nc:jaaslogin karaf karaf Login succeed for realm=nctest, user=karaf ka...@root jaas-config-requires-restart.zip Best regards, -- Rafael Marins On Dec 28, 2010, at 2:56 PM, Andreas Pieber wrote: Not ad-hoc, but if you can provide a very simple
Branded Karaf...
Hey Karafers. I'm building a framework on top of Karaf, that is currently only adding the Branding library and a few bundles. But, it is likely in the future I'll need to remove some things, and more. Is there a best way strategy to manage to relationship between my framework and Karaf? How does ServiceMix do it? TIA, Kit -- View this message in context: http://karaf.922171.n3.nabble.com/Branded-Karaf-tp2158363p2158363.html Sent from the Karaf - User mailing list archive at Nabble.com.
Re: Branded Karaf...
There's no cleanly defined way to do that. I have in mind since several months to enhance the features maven plugin from Karaf to help doing that in a much easier way, i.e. have a simple way to create custom distributions on top of karaf by overlaying a set of karaf features + configuration files + branding (which could include renaming the main scripts to something different than karaf/karaf.bat) and let the plugin do all the work. There's a jira for that but nobody has had much time to work on that unfortunately. In the mean time, what ServiceMix does is using the maven assembly plugin to add all the required files on top of the unpacked karaf distribution and rebuild archives from that. On Tue, Dec 28, 2010 at 20:41, Kit Plummer kitplum...@gmail.com wrote: Hey Karafers. I'm building a framework on top of Karaf, that is currently only adding the Branding library and a few bundles. But, it is likely in the future I'll need to remove some things, and more. Is there a best way strategy to manage to relationship between my framework and Karaf? How does ServiceMix do it? TIA, Kit -- View this message in context: http://karaf.922171.n3.nabble.com/Branded-Karaf-tp2158363p2158363.html Sent from the Karaf - User mailing list archive at Nabble.com. -- Cheers, Guillaume Nodet Blog: http://gnodet.blogspot.com/ Open Source SOA http://fusesource.com