You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@olingo.apache.org by Sergey Beryozkin <sb...@gmail.com> on 2013/11/29 18:40:39 UTC

Support for OData in Apache CXF

Hi Olingo Team,

I'm interested in getting OData directly supported in Apache CXF, please 
see [1].

CXF offers its own Search API which currently supports Feed Item Query 
Language (FIQL). It works similar to the way Olingo works, a FIQL parser 
parsers a FIQL expression and users register so called search visitors 
which adapt the parsed expression to other query languages such as SQL, etc.

IMHO supporting OData directly with CXF Search API with the help of 
Olingo will be really nice. It will help CXF users to get a better 
understanding of OData and perhaps will encourage them to work more with 
Olingo in cases where a CXF Olingo-based solution will prove limiting as 
suggested at [1].

After thinking about this for a while, it appears to me that perhaps we 
should simply start the work in CXF and start asking questions on Olingo 
users or dev lists and may be offer some patches if needed and if the 
analysis will prove implementing [1] is realistic.

I'd like to ask however: do you reckon it might make sense to do it in 
Olingo itself ? For example, we'd create a new Maven tree, example, 
/integration/cxf and work there. Perhaps that can be distracting for the 
core Olingo effort, so for now I'm inclined to do it at CXF level,

Comments are welcome
Thanks, Sergey

[1] https://issues.apache.org/jira/browse/CXF-5430

Re: Support for OData in Apache CXF

Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi Francesco
On 03/12/13 12:48, Francesco Chicchiriccò wrote:
> Hi Sergey,
> nice to read you here as well :-)
>
Great to see you here too :-)
> Even though I've been mostly only lurking e-mails at Olingo, I have been
> dealing with OData specs quite enough in the recent past.
> I'd say that your proposal looks quite interesting: why not  refer to it
> as "support for OData filtering options in Apache CXF" instead of
> generic "support for OData in Apache CXF"?
>
> Moreover, while this mostly implied $filter, $orderby and few other
> query options in OData 2.0 (and 3.0), in OData 4.0 changes have changed
> considerably in this respect (see [2] and [3], for example).
>
Yes, you are right, it is really about supporting an effectively subset 
of OData directly at CXF level, I linked to
http://www.odata.org/documentation/odata-v3-documentation/url-conventions/#5_Query_Options

Supporting all of OData is unrealistic at CXF level, we have Olingo 
offering a complete full-feature implementation.

> Anyway, I hope to get enough spare cycles to get more involved here in
> actual project activities.
>
I hope to contribute more too :-)

Cheers, Sergey

> Regards.
>
> On 02/12/2013 12:21, Sergey Beryozkin wrote:
>> Hi,
>> On 29/11/13 17:40, Sergey Beryozkin wrote:
>>> Hi Olingo Team,
>>>
>>> I'm interested in getting OData directly supported in Apache CXF, please
>>> see [1].
>>>
>>> CXF offers its own Search API which currently supports Feed Item Query
>>> Language (FIQL). It works similar to the way Olingo works, a FIQL parser
>>> parsers a FIQL expression and users register so called search visitors
>>> which adapt the parsed expression to other query languages such as SQL,
>>> etc.
>>>
>>> IMHO supporting OData directly with CXF Search API with the help of
>>> Olingo will be really nice. It will help CXF users to get a better
>>> understanding of OData and perhaps will encourage them to work more with
>>> Olingo in cases where a CXF Olingo-based solution will prove limiting as
>>> suggested at [1].
>>>
>>> After thinking about this for a while, it appears to me that perhaps we
>>> should simply start the work in CXF and start asking questions on Olingo
>>> users or dev lists and may be offer some patches if needed and if the
>>> analysis will prove implementing [1] is realistic.
>>>
>>> I'd like to ask however: do you reckon it might make sense to do it in
>>> Olingo itself ? For example, we'd create a new Maven tree, example,
>>> /integration/cxf and work there. Perhaps that can be distracting for the
>>> core Olingo effort, so for now I'm inclined to do it at CXF level,
>>>
>> Note, if the team decides that the Olingo project can actually 'host'
>> the CXF or other Olingo-based 3rd party extensions then as far as we
>> are concerned we can move a CXF wrapper to Olingo immediately.
>>
>> What I'd like to say is that we can start experimenting with Olingo
>> first, ask questions, do patches if needed, and once we have a CXF
>> Olingo wrapper working we can update this thread and solicit some
>> feedback on where we'd be better off hosting it.
>>
>> Hope it sounds reasonable:-)
>>
>> Thanks, Sergey
>>
>>> Comments are welcome
>>> Thanks, Sergey
>>>
>>> [1] https://issues.apache.org/jira/browse/CXF-5430
> [2]
> http://docs.oasis-open.org/odata/new-in-odata/v4.0/new-in-odata-v4.0.html#_Toc364328584
>
> [3]
> http://docs.oasis-open.org/odata/new-in-odata/v4.0/cn01/new-in-odata-v4.0-cn01.html#_Toc366145451
>
>



Re: Support for OData in Apache CXF

Posted by Francesco Chicchiriccò <il...@apache.org>.
Hi Sergey,
nice to read you here as well :-)

Even though I've been mostly only lurking e-mails at Olingo, I have been 
dealing with OData specs quite enough in the recent past.
I'd say that your proposal looks quite interesting: why not  refer to it 
as "support for OData filtering options in Apache CXF" instead of 
generic "support for OData in Apache CXF"?

Moreover, while this mostly implied $filter, $orderby and few other 
query options in OData 2.0 (and 3.0), in OData 4.0 changes have changed 
considerably in this respect (see [2] and [3], for example).

Anyway, I hope to get enough spare cycles to get more involved here in 
actual project activities.

Regards.

On 02/12/2013 12:21, Sergey Beryozkin wrote:
> Hi,
> On 29/11/13 17:40, Sergey Beryozkin wrote:
>> Hi Olingo Team,
>>
>> I'm interested in getting OData directly supported in Apache CXF, please
>> see [1].
>>
>> CXF offers its own Search API which currently supports Feed Item Query
>> Language (FIQL). It works similar to the way Olingo works, a FIQL parser
>> parsers a FIQL expression and users register so called search visitors
>> which adapt the parsed expression to other query languages such as SQL,
>> etc.
>>
>> IMHO supporting OData directly with CXF Search API with the help of
>> Olingo will be really nice. It will help CXF users to get a better
>> understanding of OData and perhaps will encourage them to work more with
>> Olingo in cases where a CXF Olingo-based solution will prove limiting as
>> suggested at [1].
>>
>> After thinking about this for a while, it appears to me that perhaps we
>> should simply start the work in CXF and start asking questions on Olingo
>> users or dev lists and may be offer some patches if needed and if the
>> analysis will prove implementing [1] is realistic.
>>
>> I'd like to ask however: do you reckon it might make sense to do it in
>> Olingo itself ? For example, we'd create a new Maven tree, example,
>> /integration/cxf and work there. Perhaps that can be distracting for the
>> core Olingo effort, so for now I'm inclined to do it at CXF level,
>>
> Note, if the team decides that the Olingo project can actually 'host' 
> the CXF or other Olingo-based 3rd party extensions then as far as we 
> are concerned we can move a CXF wrapper to Olingo immediately.
>
> What I'd like to say is that we can start experimenting with Olingo 
> first, ask questions, do patches if needed, and once we have a CXF 
> Olingo wrapper working we can update this thread and solicit some 
> feedback on where we'd be better off hosting it.
>
> Hope it sounds reasonable:-)
>
> Thanks, Sergey
>
>> Comments are welcome
>> Thanks, Sergey
>>
>> [1] https://issues.apache.org/jira/browse/CXF-5430
[2] 
http://docs.oasis-open.org/odata/new-in-odata/v4.0/new-in-odata-v4.0.html#_Toc364328584
[3] 
http://docs.oasis-open.org/odata/new-in-odata/v4.0/cn01/new-in-odata-v4.0-cn01.html#_Toc366145451

-- 
Francesco Chicchiriccò

Tirasa - Open Source Excellence
http://www.tirasa.net/

ASF Member, Apache Syncope PMC chair, Apache Cocoon PMC Member
http://people.apache.org/~ilgrosso/


Re: Support for OData in Apache CXF

Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi Stephan
On 02/12/13 16:02, Klevenz, Stephan wrote:
> Hi Sergey,
>
> This is a cool proposal and I think both projects, CXF and Olingo, can
> profit from such an activity.
>
I hope so too

> I had a look into [1] and [2] and see a proximity to OData which has a URI
> based query syntax which us parsed by Olingo and ends up into a abstract
> syntax tree to be traversed by the visitor pattern as well. To get a
> better understanding about what should be achieved can you please give a
> use case just for example?
>
What I'm looking for is for CXF users which have already started using 
its Search API be able to reuse the same custom or shipped CXF visitors 
when OData query expressions are used.

Right now most of CXF Search API code is not aware of the fact FIQL 
queries are used, the only piece of code which does is 
org.apache.cxf.jaxrs.ext.search.SearchConditionParser FIQL-aware 
implementation.

So IMHO if we can come up with OData-aware 
org.apache.cxf.jaxrs.ext.search.SearchConditionParser implementation 
which would use Olingo parser and adapt the OData query to the 
constraints of CXF Search API, which indeed appears to be possible, then 
it would let CXF users reuses the same code with FIQL or OData queries 
which will be positive.

It may also simplify for us integrating with Olingo at the higher-level 
(in the tooling, etc).

As I said I don't expect the full OData support done within CXF Search 
API constraints, the CXF users keen exploring OData to the full will 
move to working with Olingo directly, what I'd be happy to get supported 
at the CXF level with the help of Olingo is this part:

http://www.odata.org/documentation/odata-v3-documentation/url-conventions/#5_Query_Options

(Specifically examples in 5.1.2.1) and the extra filter options as 
suggested by Francesco.

I'm not sure CXF can also support paths like "/products(1)/customers" 
but may we can get an Olingo Parser wrapper adapting such paths with 
some conventions...

> To start the effort in a CXF context is fine and it can later be decided
> to have a substantial contribution into Olingo. That is a standard
> procedure for Apache projects, right?
>
Yes sure; for now we can do the actual parser in CXF and ask at Olingo 
all the questions

> If you have detailed questions to Olingo then do not hesitate to query our
> mailing list.
>
Sure, thanks
Sergey

> Greetings,
> Stephan
>
> [1] http://tools.ietf.org/html/draft-nottingham-atompub-fiql-00
> [2] http://cxf.apache.org/docs/jax-rs-search.html
>
>
>
>
> On 02.12.13 12:21, "Sergey Beryozkin" <sb...@gmail.com> wrote:
>
>> Hi,
>> On 29/11/13 17:40, Sergey Beryozkin wrote:
>>> Hi Olingo Team,
>>>
>>> I'm interested in getting OData directly supported in Apache CXF, please
>>> see [1].
>>>
>>> CXF offers its own Search API which currently supports Feed Item Query
>>> Language (FIQL). It works similar to the way Olingo works, a FIQL parser
>>> parsers a FIQL expression and users register so called search visitors
>>> which adapt the parsed expression to other query languages such as SQL,
>>> etc.
>>>
>>> IMHO supporting OData directly with CXF Search API with the help of
>>> Olingo will be really nice. It will help CXF users to get a better
>>> understanding of OData and perhaps will encourage them to work more with
>>> Olingo in cases where a CXF Olingo-based solution will prove limiting as
>>> suggested at [1].
>>>
>>> After thinking about this for a while, it appears to me that perhaps we
>>> should simply start the work in CXF and start asking questions on Olingo
>>> users or dev lists and may be offer some patches if needed and if the
>>> analysis will prove implementing [1] is realistic.
>>>
>>> I'd like to ask however: do you reckon it might make sense to do it in
>>> Olingo itself ? For example, we'd create a new Maven tree, example,
>>> /integration/cxf and work there. Perhaps that can be distracting for the
>>> core Olingo effort, so for now I'm inclined to do it at CXF level,
>>>
>> Note, if the team decides that the Olingo project can actually 'host'
>> the CXF or other Olingo-based 3rd party extensions then as far as we are
>> concerned we can move a CXF wrapper to Olingo immediately.
>>
>> What I'd like to say is that we can start experimenting with Olingo
>> first, ask questions, do patches if needed, and once we have a CXF
>> Olingo wrapper working we can update this thread and solicit some
>> feedback on where we'd be better off hosting it.
>>
>> Hope it sounds reasonable:-)
>>
>> Thanks, Sergey
>>
>>
>>> Comments are welcome
>>> Thanks, Sergey
>>>
>>> [1] https://issues.apache.org/jira/browse/CXF-5430
>>
>>
>

Re: Support for OData in Apache CXF

Posted by "Klevenz, Stephan" <st...@sap.com>.
Hi Sergey,

This is a cool proposal and I think both projects, CXF and Olingo, can
profit from such an activity.

I had a look into [1] and [2] and see a proximity to OData which has a URI
based query syntax which us parsed by Olingo and ends up into a abstract
syntax tree to be traversed by the visitor pattern as well. To get a
better understanding about what should be achieved can you please give a
use case just for example?

To start the effort in a CXF context is fine and it can later be decided
to have a substantial contribution into Olingo. That is a standard
procedure for Apache projects, right?

If you have detailed questions to Olingo then do not hesitate to query our
mailing list. 

Greetings,
Stephan

[1] http://tools.ietf.org/html/draft-nottingham-atompub-fiql-00
[2] http://cxf.apache.org/docs/jax-rs-search.html




On 02.12.13 12:21, "Sergey Beryozkin" <sb...@gmail.com> wrote:

>Hi,
>On 29/11/13 17:40, Sergey Beryozkin wrote:
>> Hi Olingo Team,
>>
>> I'm interested in getting OData directly supported in Apache CXF, please
>> see [1].
>>
>> CXF offers its own Search API which currently supports Feed Item Query
>> Language (FIQL). It works similar to the way Olingo works, a FIQL parser
>> parsers a FIQL expression and users register so called search visitors
>> which adapt the parsed expression to other query languages such as SQL,
>> etc.
>>
>> IMHO supporting OData directly with CXF Search API with the help of
>> Olingo will be really nice. It will help CXF users to get a better
>> understanding of OData and perhaps will encourage them to work more with
>> Olingo in cases where a CXF Olingo-based solution will prove limiting as
>> suggested at [1].
>>
>> After thinking about this for a while, it appears to me that perhaps we
>> should simply start the work in CXF and start asking questions on Olingo
>> users or dev lists and may be offer some patches if needed and if the
>> analysis will prove implementing [1] is realistic.
>>
>> I'd like to ask however: do you reckon it might make sense to do it in
>> Olingo itself ? For example, we'd create a new Maven tree, example,
>> /integration/cxf and work there. Perhaps that can be distracting for the
>> core Olingo effort, so for now I'm inclined to do it at CXF level,
>>
>Note, if the team decides that the Olingo project can actually 'host'
>the CXF or other Olingo-based 3rd party extensions then as far as we are
>concerned we can move a CXF wrapper to Olingo immediately.
>
>What I'd like to say is that we can start experimenting with Olingo
>first, ask questions, do patches if needed, and once we have a CXF
>Olingo wrapper working we can update this thread and solicit some
>feedback on where we'd be better off hosting it.
>
>Hope it sounds reasonable:-)
>
>Thanks, Sergey
>
>
>> Comments are welcome
>> Thanks, Sergey
>>
>> [1] https://issues.apache.org/jira/browse/CXF-5430
>
>


Re: Support for OData in Apache CXF

Posted by Sergey Beryozkin <sb...@gmail.com>.
Hi,
On 29/11/13 17:40, Sergey Beryozkin wrote:
> Hi Olingo Team,
>
> I'm interested in getting OData directly supported in Apache CXF, please
> see [1].
>
> CXF offers its own Search API which currently supports Feed Item Query
> Language (FIQL). It works similar to the way Olingo works, a FIQL parser
> parsers a FIQL expression and users register so called search visitors
> which adapt the parsed expression to other query languages such as SQL,
> etc.
>
> IMHO supporting OData directly with CXF Search API with the help of
> Olingo will be really nice. It will help CXF users to get a better
> understanding of OData and perhaps will encourage them to work more with
> Olingo in cases where a CXF Olingo-based solution will prove limiting as
> suggested at [1].
>
> After thinking about this for a while, it appears to me that perhaps we
> should simply start the work in CXF and start asking questions on Olingo
> users or dev lists and may be offer some patches if needed and if the
> analysis will prove implementing [1] is realistic.
>
> I'd like to ask however: do you reckon it might make sense to do it in
> Olingo itself ? For example, we'd create a new Maven tree, example,
> /integration/cxf and work there. Perhaps that can be distracting for the
> core Olingo effort, so for now I'm inclined to do it at CXF level,
>
Note, if the team decides that the Olingo project can actually 'host' 
the CXF or other Olingo-based 3rd party extensions then as far as we are 
concerned we can move a CXF wrapper to Olingo immediately.

What I'd like to say is that we can start experimenting with Olingo 
first, ask questions, do patches if needed, and once we have a CXF 
Olingo wrapper working we can update this thread and solicit some 
feedback on where we'd be better off hosting it.

Hope it sounds reasonable:-)

Thanks, Sergey


> Comments are welcome
> Thanks, Sergey
>
> [1] https://issues.apache.org/jira/browse/CXF-5430