class JacksonJsonObjectMarshaller<T> implements JsonObjectMarshaller<T> {

	private ObjectMapper objectMapper;

	public JacksonJsonObjectMarshaller() {
		this(new ObjectMapper());
	}

	public JacksonJsonObjectMarshaller(ObjectMapper objectMapper) {
		this.objectMapper = objectMapper;
	}

	/**
	 * Set the {@link ObjectMapper} to use.
	 * @param objectMapper to use
	 * @see #JacksonJsonObjectMarshaller(ObjectMapper)
	 */
	public void setObjectMapper(ObjectMapper objectMapper) {
		this.objectMapper = objectMapper;
	}

	@Override
	public String marshal(T item) {<FILL_FUNCTION_BODY>}

}

		try {
			return objectMapper.writeValueAsString(item);
		}
		catch (JsonProcessingException e) {
			throw new ItemStreamException("Unable to marshal object " + item + " to Json", e);
		}
	
<no_super_class>