Angelo created CXF-4359:
---------------------------

             Summary: ParameterizedType#getActualTypeArguments() classes not 
added to th eJAXBContext for the providers
                 Key: CXF-4359
                 URL: https://issues.apache.org/jira/browse/CXF-4359
             Project: CXF
          Issue Type: New Feature
          Components: JAX-RS
    Affects Versions: 2.6.1
            Reporter: Angelo


Take a parameterized class like PageResult<T> : 

--------------------------------------------------------
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class ResultPage<T> {

        private List<T> content;

        public List<T> getContent() {
                return content;
        }
        
        public void setContent(List<T> content) {
                this.content = content;
        }

}
--------------------------------------------------------

And take a service which uses this parameterized class : 

--------------------------------------------------------

public interface UserService {

@GET
public PageResult<User> findUsers();

@GET
public PageResult<Role> findRoles();

}
--------------------------------------------------------

When provider create JAXBContext (eg: JSONProvider) for this interface, only 
PageResult class is added to the JAXBContext and we need declare the 2 classes 

-------------------------------------------------------------

<bean id="jsonProvider" class="org.apache.cxf.jaxrs.provider.JSONProvider">
        <property name="singleJaxbContext" value="true" />
        <property name="extraClass">
                <list>
                        <value>User</value>
                        <value>Role</value>
                </list>
        </property>
</bean>
-------------------------------------------------------------

This mean can be boring, because as soon as you add new domain class, you must 
modify too this declaration.

In my case I cannot use XmlSeeAlso because PageResult belongs to another Java 
Project (Spring Data) and it can be used with any domain classes.

To fix this problem, the JAX-RS CXF provider should populate the JAXBContext 
with PageResult, A and B instead of just with PageResult.

The attached patch manage this case.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to