title: How to receive GenericMessage with Object payload instead of string from MessageCollector
body: <p>I try to test message sending and receiving via <code>spring-cloud-stream</code> using <code>MessageCollector</code>. </p>
  
  <p>When i am using native java serialization for stream cloud all works fine, but when i change serialization to json, MessageCollector returns me GenericMessage with <code>string</code> payload instead of <code>SomeObject</code> payload.</p>
  
  <p>Configuration is </p>
  
  <pre><code>  cloud.stream.default.contentType=application/json 
  </code></pre>
  
  <p>Test case:</p>
  
  <pre><code>    Message outMsg = new GenericMessage&lt;SomeObject&gt;(new SomeObject(1));
      someChannel.send(outMsg);
      GenericMessage&lt;SomeObject&gt; inMsg = (GenericMessage&lt;SomeObject&gt;) messageCollector.forChannel(someChannel).poll();
  
      Assert.assertTrue(inMsg.getPayload() instanceof SomeObject);
  </code></pre>
  
  <p>As a result Assertions is false. <code>inMsg</code> contains string payload (the string contains valid json representation of SomeObject). </p>
  
  <p><strong>And my question is:</strong> How can i receive <code>GenericMessage</code> with SomeObject payload from <code>MessageCollector</code>?</p>
  
  <p><em>production environment works fine without explicitly mapping to <code>SomeObject</code>.</em></p>