I've pushed all the changes to Cave master branch. So cave requires Karaf 4, all the modules have been modified to align with Karaf 4 (no blueprint, new command api), the dependencies have been lightened a bit, the rest support has been moved to its own module, the features are now verified, and the maven-proxy module from Karaf 4 has been moved to Cave. I'll do a bit more testing for the cave integration with the karaf resolver to make sure everything works well.
I think the next step would be to integrate maven support into cave a bit more. Right now, the repositories served by cave either use http:xxx urls when proxying, or relative uris when the artifacts are stored locally. However, the use of relative uris is not permitted by the spec, so I had to rewrite the repository on the fly to get rid of the relative uris and use the correct http:xxx uris so that artifacts can be served correctly. I think a better way would be to use mvn:xxx uris, so that all artifacts serving would be managed by the maven servlet. I'll try to experiment a bit more with that, but we could release a Cave 4.0 in this state, and a cave 4.1 at a later time with those enhancements. 2015-04-30 22:22 GMT+02:00 Jean-Baptiste Onofré <[email protected]>: > Hi Guillaume, > > sorry I was offline yesterday and today due to family issue to address. > > I will take a look later tonight or tomorrow about your changes and push > my changes as well (REST, etc). > > No, I started to expose and manipulate a CaveRepository via a REST API but > it's not yet available (just preparation work). > > The HTTP layer is done by the WrapperServlet. > > I will complete the REST layer. > > Regards > JB > > > On 04/30/2015 09:57 PM, Guillaume Nodet wrote: > >> I've done most of the work already. >> See https://github.com/gnodet/karaf-cave/tree/KARAF-3712 >> I'm only missing a small loop to look up the resources in >> CaveRepsoitoryServiceImpl#getResourceByUri(). I'll implement next week... >> >> However, there's one thing I don't understand. >> The CaveRepositoryService is exposed through jaxrs using CXF, but I can't >> find the address it's bound to. >> Is it actually accessible ? >> >> Guillaume >> >> 2015-04-30 21:52 GMT+02:00 Jean-Baptiste Onofré <[email protected]>: >> >> Hi, >>> >>> I will tackle that tomorrow. >>> >>> I keep you posted. >>> >>> Regards >>> JB >>> >>> On 04/29/2015 05:18 PM, Guillaume Nodet wrote: >>> >>> I've raised a JIRA issue for the integration of Cave and Karaf 4 (see >>>> KARAF-3712). >>>> >>>> I have the following things in mind to integrate Cave into Karaf 4. >>>> >>>> When I mean integrating, I mean two things : >>>> >>>> - ability to to use osgi repository from cave inside the karaf >>>> feature >>>> resolution process (karaf 4 already support external osgi >>>> repositories so >>>> we're simply missing a compliant repository server) >>>> - ability to use cave as a maven repository and not only an osgi >>>> repository (i.e. serve other kind of artifacts with a real maven >>>> layout) >>>> >>>> >>>> It would require the following things : >>>> >>>> - upgrade to CXF 3.1 >>>> - us the spec'ed xml instead of the custom bundle repository xml >>>> format >>>> (both internally and for external access) >>>> - provide support for accessing repositories as json based >>>> repository >>>> as >>>> read by karaf 4 (see JsonRepository class) >>>> - support for gzip encoding of the repository in the servlet >>>> (repositories do compress very well) >>>> - move the maven proxy support from karaf 4 to cave >>>> >>>> I think a good addition would be to provide each repository managed by >>>> cave >>>> as a Repository object instead of relying on the bundle repository >>>> Repository object which is an aggregation. >>>> >>>> I would also get rid of OBR since this is deprecated. >>>> >>>> We may also want to get rid of the felix bundle repository completely >>>> and >>>> rely on the felix repository and karat-features-core bundle internal >>>> classes. >>>> >>>> Another good improvement for 4.0 would be to make sure the repositories >>>> can >>>> be used with cellar using DOSGi. Using a simple servlet instead of a >>>> full >>>> war for the cave http servlet would trim down the dependencies a bit too >>>> with no real loss imho. >>>> >>>> I'm wiling to experiment a bit with these ideas ... >>>> >>>> Thoughts ? >>>> >>>> >>>> -- >>> Jean-Baptiste Onofré >>> [email protected] >>> http://blog.nanthrax.net >>> Talend - http://www.talend.com >>> >>> >> > -- > Jean-Baptiste Onofré > [email protected] > http://blog.nanthrax.net > Talend - http://www.talend.com >
