One of the major changes in M4 is that "sources" and "source-endpoints" have been separated. In other words a source-endpoint is just responsible for connecting a source to a channel. The source implementations are responsible for providing a receive() method that returns Messages.
The new configuration of a JMS source would be as follows:
Note that the jms-source should only be used when you want polling behavior. Otherwise the new jms-gateway provides an event-driven alternative.
<source-endpoint channel="channel" source="jmsSource">
<jms-source id="jmsSource" destination="myQueue"/>
Hope that helps.