Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  * Licensed to the soi-toolkit project under one or more
  * contributor license agreements.  See the NOTICE file distributed with
  * this work for additional information regarding copyright ownership.
  * The soi-toolkit project licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * See the License for the specific language governing permissions and
 * limitations under the License.
package org.soitoolkit.commons.mule.jaxb;
Transform a XML payload to a JAXB v2 object. Sample usage: <custom-transformer name="XmlToJaxbObject" class="org.soitoolkit.commons.mule.jaxb.XmlToJaxbObjectTransformer"> <spring:property name="contextPath" value="se.callista.soalab.purchase.wsdl.v1"/> </custom-transformer> NOTE: For JAXB classes that are not annotated with a

Magnus Larsson
we typically get a JAXBElement object when we unmarshall a XML string. For simplified usage this transformer removes any JAXBElements and returns the actual object that we are interested in. See for details regarding usage of the @XmlRootElement annotation.
	public Object transform(MuleMessage messageString outputEncodingthrows TransformerException
        Object payload = message.getPayload();
    	// TODO: Sometimes we get a payload as an Object-array containing the XMLStreamReader, seems like a bug to me...
    	// Will ask on the maillist for an explanation.
    	if (payload instanceof Object[]) {
    		payload = getXMLStreamReader((Object[])payload);
        return getJaxbUtil().unmarshal(payload);
	private Object getXMLStreamReader(Object[] payload) {
		XMLStreamReader reader = null;
		for (Object o : payload) {
			if (o instanceof XMLStreamReader) {
				reader = (XMLStreamReader)o;
		// If no XMLStreamReader was found then return the original payload
		return (reader == null) ? payload : reader;
New to GrepCode? Check out our FAQ X