1 17 package org.apache.servicemix.jsr181.xfire; 18 19 import javax.jbi.component.ComponentContext; 20 21 import org.apache.commons.logging.Log; 22 import org.apache.commons.logging.LogFactory; 23 import org.codehaus.xfire.handler.LocateBindingHandler; 24 import org.codehaus.xfire.service.Service; 25 import org.codehaus.xfire.soap.SoapTransport; 26 import org.codehaus.xfire.soap.handler.SoapBodyHandler; 27 import org.codehaus.xfire.transport.AbstractTransport; 28 import org.codehaus.xfire.transport.Channel; 29 import org.codehaus.xfire.transport.DefaultEndpoint; 30 import org.codehaus.xfire.wsdl11.WSDL11Transport; 31 32 37 public class JbiTransport extends AbstractTransport implements WSDL11Transport, SoapTransport { 38 39 private static final Log log = LogFactory.getLog(JbiTransport.class); 40 41 public final static String JBI_BINDING = "http://java.sun.com/xml/ns/jbi/binding/service+engine"; 42 43 private final static String URI_PREFIX = "urn:xfire:transport:jbi:"; 44 45 private ComponentContext context; 46 47 public JbiTransport(ComponentContext context) { 48 addInHandler(new LocateBindingHandler()); 49 addInHandler(new SoapBodyHandler()); 50 this.context = context; 51 } 52 53 public String getName() { 54 return "JBI"; 55 } 56 57 public String getServiceURL(Service service) { 58 return "jbi://" + service.getName(); 59 } 60 61 protected Channel createNewChannel(String uri) { 62 log.debug("Creating new channel for uri: " + uri); 63 JbiChannel c = new JbiChannel(uri, this); 64 c.setEndpoint(new DefaultEndpoint()); 65 return c; 66 } 67 68 protected String getUriPrefix() { 69 return URI_PREFIX; 70 } 71 72 public String [] getSupportedBindings() 73 { 74 return new String [] { JBI_BINDING }; 75 } 76 77 public String [] getKnownUriSchemes() { 78 return new String [] { "jbi://" }; 79 } 80 81 public ComponentContext getContext() { 82 return context; 83 } 84 85 public boolean equals(Object o) { 86 return o instanceof JbiTransport; 87 } 88 89 } 90 91 | Popular Tags |