[ 
https://issues.apache.org/jira/browse/AMQ-3388?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13059478#comment-13059478
 ] 

Marcel Casado edited comment on AMQ-3388 at 7/4/11 3:21 PM:
------------------------------------------------------------

In this patch a Factory for xstream is added and all the classes that need and 
instance uses is static method to get a new instance. The method has a flag to 
whether to create it with a wrapper that ignores unknown fields. All the 
classes needing a XStream instance ask for the ignoring fields instance giving 
some flexibility on changes in the commands APT with respect fields. In the 
future xstream could provide this in a more configurable way 
:http://jira.codehaus.org/browse/XSTR-30

      was (Author: marcelcasado):
    In this patch a Factory for stream is added and all the classes that need 
and instance uses is static method to get a new instance. The method has a flag 
whether to create to create it with a wrapper that ignores unknown fields. All 
the classes needing a XStream instance ask for the ignoring fields instance 
giving some flexibility on changes in the commands APT with respecto fields. In 
the future xstream could provide this in a more configurable way 
:http://jira.codehaus.org/browse/XSTR-30
  
> Http/https protocol uses Xstream for serializing commands in xml. Field 
> additions to the commands bresks xtream serializacion between amq versions 
> ---------------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: AMQ-3388
>                 URL: https://issues.apache.org/jira/browse/AMQ-3388
>             Project: ActiveMQ
>          Issue Type: Improvement
>          Components: Transport
>    Affects Versions: 5.4.1, 5.4.2, 5.5.0
>            Reporter: Marcel Casado
>         Attachments: AMQ-3388.patch
>
>
> Addition of fields in commands used between clients and brokers in newer amq 
> versions breaks easily the http transport that uses xstream for xml 
> serialization. 
> To make xstream more tolerant to this changes between versions in 
> org.apache.activemq.transport.xstream.XStreamWireFormat we could add the code 
> below so xstream ignores unknown fields :
>   // Implementation methods
>     // 
> -------------------------------------------------------------------------
>     protected XStream createXStream() {
>        // return new XStream();
>        return new XStream() {
>             protected MapperWrapper wrapMapper(MapperWrapper next) {
>                 return new MapperWrapper(next) {
>                     public boolean shouldSerializeMember(Class definedIn, 
> String fieldName) {
>                         return definedIn != Object.class ? 
> super.shouldSerializeMember(definedIn, fieldName) : false;
>                     }
>                 };
>             }
>         };
>     }

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to