package org.talend.esb.policy.transformation.feature; import org.apache.cxf.Bus; import org.apache.cxf.common.injection.NoJSR250Annotations; import org.apache.cxf.feature.AbstractFeature; import org.apache.cxf.interceptor.InterceptorProvider; import org.talend.esb.policy.transformation.TransformationAssertion; import org.talend.esb.policy.transformation.TransformationPolicyInInterceptor; import org.talend.esb.policy.transformation.TransformationPolicyOutInterceptor; import org.talend.esb.policy.transformation.TransformationType; import org.talend.esb.policy.transformation.TransformationAssertion.AppliesToType; import org.talend.esb.policy.transformation.TransformationAssertion.MessageType;; @NoJSR250Annotations public class TransformationFeature extends AbstractFeature { private String path; private MessageType messageType; private AppliesToType appliesTo; private TransformationType transformationType = TransformationType.xslt; @Override protected void initializeProvider(InterceptorProvider provider, Bus bus) { TransformationAssertion assertion = new TransformationAssertion(path, appliesTo, messageType, transformationType); TransformationPolicyInInterceptor in = new TransformationPolicyInInterceptor(assertion); provider.getInInterceptors().add(in); provider.getInInterceptors().add(in); TransformationPolicyOutInterceptor out = new TransformationPolicyOutInterceptor(assertion); provider.getOutInterceptors().add(out); provider.getOutFaultInterceptors().add(out); } public void setPath(String path) { this.path = path; } public void setType(String type) { transformationType = TransformationType.valueOf(type); } public void setAppliesTo(String appliesTo) { this.appliesTo = AppliesToType.valueOf(appliesTo); } public void setMessage(String messageType) { this.messageType = MessageType.valueOf(messageType); } }