Ok,  I've spent the bulk of my day on this, and have met with some success.

There are a few other gotcha's trying to get swagger to run from karaf.  (some 
issues were fought based on my application, for example, i was using guava 18, 
however swagger brings with it guava 15 creating some dependency chain 
nightmares...)

The first "real" issue was with the RBAC setup in newer karaf versions.  The 
DefaultCamelSwaggerServlet tries to execute "dumpRestsAsXml" and karaf will not 
allow it.

To fix this I created etc/jmx.acl.org.apache.camel.context.cfg with contents:

dumpRestsAsXml = *

This should probably go into the camel-swagger feature?

Second problem, my application has multiple camel servlets, and the class 
mentioned above essentially just picks the last one it enumerates, unless the 
camelId init-param is set on the servlet config.

So to get DefaultCamelSwaggerServlet to pick the correct mbean to invoke 
dumpRestAsXml, I had to add this to my web.xml inside the 
DefaultCamelSwaggerServlet definition:

<init-param>
            <param-name>camelId</param-name>
            <param-value>"elnk-jhm-main"</param-value>
</init-param>

where elnk-jhm-main is the name of my camel context containing my rest routes

NOTE: the quotes were required here.

camelId is currently not documented on the wiki page, and it seems like 
DefaultCamelSwaggerServlet should probably be modified so that it strips the 
quotes when doing the .equals on camelId, so that the param-value doesn't need 
quotes.


I got all this working, and was a little surprised to just see a json output 
(was expecting the swagger web ui).  So i built and ran the camel tomcat 
servlet example which has swagger configured, and upon snooping around that 
project realized you still need to do a bunch of additional work to actually 
include the swagger ui into your project (all done in the pom.xml of that 
example project)  

This is fine, and apparent to me now, but my expectation going into this was 
more along the lines of once I had the camel-swagger stuff configured in my 
servlet, bam, i would have swagger running.  It might be worth updating the 
wiki to mention the pom.xml configs for downloading/extracting/installing 
swagger are required still.

All in all I made good progress, I'm willing to either help with the 
documentation updates or the karaf feature config if any help is needed.  
please let me know!

Thanks,
Ed


On Wed, 1 Apr 2015 16:42:40 +0200, Claus Ibsen <claus.ib...@gmail.com> wrote:

> Hi
> 
> See the known issue section at
> http://camel.apache.org/camel-2150-release.html
> 
> On Wed, Apr 1, 2015 at 4:24 PM, Ed Welch <e...@edjusted.com> wrote:
> > With the release of 2.15.1 fixing a bug that prevented 2.15 from working in 
> > an OSGi environment, figured I'd give camel-swagger feature a try...
> >
> > 2015-04-01 09:52:38,672 | ERROR | qtp3964738-67    | FeaturesPlugin         
> >           | 88 - org.apache.karaf.webconsole.features - 3.0.3 | Can't 
> > install feature camel-swagger/2.15.1
> > java.lang.IllegalStateException: Can't install feature camel-swagger/2.15.1:
> > Could not start bundle 
> > mvn:org.apache.servicemix.bundles/org.apache.servicemix.bundles.swagger-core/1.3.12_1
> >  in feature(s) camel-swagger-2.15.1: Unresolved constraint in bundle 
> > org.apache.servicemix.bundles.swagger-core [111]: Unable to resolve 111.0: 
> > missing requirement [111.0] osgi.wiring.package; 
> > (&(osgi.wiring.package=scala.reflect.api)(version>=2.10.0)(!(version>=3.0.0)))
> >
> > Vanilla Karaf 3.0.3
> >
> > Am I missing something or should I file a bug?
> >
> > Thanks!
> > Ed
> 
> 
> 
> -- 
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> Email: cib...@redhat.com
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
> hawtio: http://hawt.io/
> fabric8: http://fabric8.io/


Reply via email to