You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@karaf.apache.org by Guillaume Nodet <gn...@apache.org> on 2015/05/05 16:59:20 UTC

Re: [DISCUSS] Cave and Karaf 4

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é <jb...@nanthrax.net>:

> 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é <jb...@nanthrax.net>:
>>
>>  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é
>>> jbonofre@apache.org
>>> http://blog.nanthrax.net
>>> Talend - http://www.talend.com
>>>
>>>
>>
> --
> Jean-Baptiste Onofré
> jbonofre@apache.org
> http://blog.nanthrax.net
> Talend - http://www.talend.com
>

Re: [DISCUSS] Cave and Karaf 4

Posted by Jean-Baptiste Onofré <jb...@nanthrax.net>.
Awesome, thanks Guillaume !

I will update to merge some changes.

Thanks a lot !
Regards
JB

On 05/05/2015 04:59 PM, Guillaume Nodet wrote:
> 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é <jb...@nanthrax.net>:
>
>> 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é <jb...@nanthrax.net>:
>>>
>>>   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é
>>>> jbonofre@apache.org
>>>> http://blog.nanthrax.net
>>>> Talend - http://www.talend.com
>>>>
>>>>
>>>
>> --
>> Jean-Baptiste Onofré
>> jbonofre@apache.org
>> http://blog.nanthrax.net
>> Talend - http://www.talend.com
>>
>

-- 
Jean-Baptiste Onofré
jbonofre@apache.org
http://blog.nanthrax.net
Talend - http://www.talend.com