Sergey,

If you want to me to tackle PADB  for Aegis, you have a writing
assignment.  Please write up a comprehensive explanation in the
javadoc. Just calling it an 'alternative' does not give an implementor
much to go with.

I think the top-level issue with namespaces is going to boil down to
the existence, or nonexistence, of 'parts', but I'll report back
presently.

--benson

On Mon, Aug 24, 2009 at 8:58 AM, Sergey
Beryozkin<sergey.beryoz...@iona.com> wrote:
>
> Hi Benson
>
> Thanks for spending your time on these tests, and fixing CXF 2401. I was
> also able to add few more tests, including the one which writes/reads a
> complex Map to/from JSON.
>
> AegisJSONProvider tries its best for users to avoid setting up a namespace
> map manually, but in cases when it does not guess properly the users would
> be able to overwrite namespaces and their prefixes as needed. This isssue
> would likely arise on the read side only, when CXF reads it. JSON is
> namespace-unaware so when reading, one needs to setup a namespace map for
> Jettison to report values like @ns1.bar to the JAXB reader... (but only if
> AegisJSONProvider has not guessed how to map prefixes to namespaces)
>
> There's a couple of issues I'd like to discuss. First one is that
> AegisJsonProviderTest.testReadWriteComplexMap does have to setup a namespace
> for a map root element, but it does not have to do it for
> testWrite/ReadCollection tests. I'm wondering, can it be avoided in cases
> when Maps are being written/read ? That is, can we modify
> createReader/Writer methods such that QNames for containers like
> Map/Collections and its member types are available ?
>
> Another one is that DataBindingJSONProvider test (aegis tests) still can not
> handle collections. I think the problem there is that when
> DataBindingProvider (the one DataBindingJSONProvider extends) is being
> initialized, it uses a workaround which we discussed in the other thread.
> Namely, it attempts to convert a JAXRS model info into WSDL-like one and set
> calls DataBinding.initialize(Service). It's quite limiting for a number of
> reasons, and one of them is that the generic types are not visible to data
> bindings....
> So we introduced PropertiesAwareDataBinding interface and I've just updated
> the JAXRS code to call it like this :
>
> Map<Class<?>, Type> allClasses = getAllJAXRSResponseInputTypes();
> Map<String, Object> props = new HashMap<String, Object>();
> props.put(PropertiesAwareDataBinding.TYPES_PROPERTY, allClasses);
> ((PropertiesAwareDataBinding)db).initialize(props);
>
> At the moment no CXF DataBindings implement this newly introduced interface.
> I think the only way for  DataBindingJSONProvider aegis tests which handle
> collections to start passing is for Aegis DataBinding to implement
> PropertiesAwareDataBinding and initialize itself using the provided
> Map<Class<?>, Type>, as opposed to Service. Would you be open to updating
> the Aegis databinding ?
>
> thanks, Sergey
>
>
>
>
>
>
>
>
>
>
>
> bimargulies wrote:
>>
>> I have a rather clear memory of working on these, there wasn't enough
>> passing of Generic classes around. I'll go have a look.
>>
>>
>> On Fri, Aug 21, 2009 at 6:38 AM, Sergey
>> Beryozkin<sergey.beryoz...@iona.com> wrote:
>>>
>>> Hi Benson
>>>
>>> if you could look at any of these tests or at least point me in the right
>>> direction then it would be great.
>>> I know you're busy - so just look at it whenever you get a chance, not
>>> urgent...
>>>
>>> cheers, Sergey
>>>
>>>
>>> Sergey Beryozkin-2 wrote:
>>>>
>>>>
>>>>
>>>> Hi Benson
>>>>
>>>> I can't make the Aegis tests writing/reading collections working in CXF
>>>> JAX-RS.
>>>> I've found that AegisProviderTest#testReadWriteComplexMap is still
>>>> @Ignored, it might've passed for you because it was @Ignored :-)
>>>>
>>>> I've also added testWriteCollections() (which writes
>>>> List<AegisTestBean>)
>>>> to AegisJSONProviderTest. I also updated DataBindingJSONProviderTest,
>>>> one
>>>> of its internal classes to return List<Book>. AegisJSONProvider extends
>>>> AegisElementProvider, DataBindingJSONProvider extends
>>>> DataBindingProvider
>>>> which actually (in this case) delegates to Aegis DataBinding.
>>>>
>>>> AegisJSONProviderTest fails at the write time, it can't find the mapping
>>>> for List. DataBindingJSONProviderTest fails early at the Aegis
>>>> DataBinding
>>>> initialization time for the same reason. I thought Lists were supported
>>>> by
>>>> default ? I haven't found any exam[le showing how a type mapping for
>>>> Lists
>>>> can be created.
>>>> Can you please, whenever you have a chance, have a look at these tests ?
>>>>
>>>> thanks, Sergey
>>>>
>>>>
>>>
>>> --
>>> View this message in context:
>>> http://www.nabble.com/Handling-collections-with-Aegis-in-JAX-RS-tp24933144p25076146.html
>>> Sent from the cxf-dev mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>
> --
> View this message in context: 
> http://www.nabble.com/Handling-collections-with-Aegis-in-JAX-RS-tp24933144p25115676.html
> Sent from the cxf-dev mailing list archive at Nabble.com.
>
>

Reply via email to