Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
 /*
  * #%L
  * Service Activity Monitoring :: Agent
  * %%
  * Copyright (C) 2011 Talend Inc.
  * %%
  * Licensed 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
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * #L%
 */
package org.talend.esb.sam.agent.flowidprocessor;
import static org.talend.esb.sam.agent.message.FlowIdHelper.FLOW_ID_QNAME;
Read and write the FlowId using the SOAP headers
public class FlowIdSoapCodec {
    protected static Logger logger = Logger.getLogger(FlowIdSoapCodec.class.getName());
    public static String readFlowId(Message message) {
    	if (!(message instanceof SoapMessage)) {
    		return null;
    	}
        String flowId = null;
        SoapMessage soapMessage = (SoapMessage)message;
        Header hdFlowId = soapMessage.getHeader(.);
        if (hdFlowId != null) {
            if (hdFlowId.getObject() instanceof String) {
                flowId = (String)hdFlowId.getObject();
            } else if (hdFlowId.getObject() instanceof Node) {
                Node headerNode = (Node)hdFlowId.getObject();
                flowId = headerNode.getTextContent();
            } else {
                .warning("Found FlowId soap header but value is not a String or a Node! Value: "
                               + hdFlowId.getObject().toString());
            }
        }
        return flowId;
    }
    public static void writeFlowId(Message messageString flowId) {
    	if (!(message instanceof SoapMessage)) {
    		return;
    	}
        SoapMessage soapMessage = (SoapMessage)message;
        List<Headerheaders = soapMessage.getHeaders();
        Header flowIdHeader;
        try {
            flowIdHeader = new Header(flowIdnew JAXBDataBinding(String.class));
            headers.add(flowIdHeader);
            .fine("Stored flowId '" + flowId + "' in soap header: " + .toString());
        } catch (JAXBException e) {
            .log(."Couldn't create flowId header."e);
        }
    }
New to GrepCode? Check out our FAQ X