Hi Francesco,

I'm realizing I've typed a lot of nonsense to do with typed proxies :-), the underlying issue is to do with the proxy implementation not unwrapping TypeVariable.

The fix will go in as soon as the current Apache LDAP issues get resolved.

Note though, you'd still need to add @JsonTypeInfo to AbstractSchemaTO if you need to access the specific subtype's info in the client code, otherwise Jackson will not be able to create subtype instances from the payload.

Thanks, Sergey

On 19/07/13 09:26, Francesco Chicchiriccò wrote:
On 18/07/2013 23:44, Andrei Shakirin wrote:
Hi Francesco,

I am not 100% sure that is a solution for your case, but I have used
Jackson specific annotation in AbstractSchemaTO:
@JsonTypeInfo(use=Id.CLASS, include=As.PROPERTY, property="class").

Annotation is currently deactivated, because it causes conflicts with
Syncope Spring MVC Rest implementation.
The annotation forces client to send concrete class name in JSON
representation, as a result service has more information to construct
concrete class.
As I can remember, I have tested this code for JSON using CXF JAX-RS
client and service.

Could you try to activate it and retest?

Hi Andrei,
when adding such Jackson annotation to AbstractSchemaTO, the JSON
payload actually adds the expected attribute:

{
   "class": "org.apache.syncope.common.to.SchemaTO",
   "name": "fullname",
   "type": "String",
   "mandatoryCondition": "true",
   "enumerationValues": null,
   "enumerationKeys": null,
   "multivalue": false,
   "uniqueConstraint": true,
   "readonly": false,
   "conversionPattern": null,
   "validatorClass": null
}

However, this still generates the (same) exception:

java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to
org.apache.syncope.common.to.AbstractSchemaTO

BTW, I have verified via debug that in ProviderBase (ancestor of
JacksonJaxbJsonProvider), the method readFrom() is invoked with parameters

Class<Object> type => class org.apache.syncope.common.to.AbstractSchemaTO
Type genericType => T, with name
""org.apache.syncope.common.to.AbstractSchemaTO"

Regards.



Reply via email to