1
2
3
4
5
6
7
8
9
10
11 package org.mule.config.spring.factories;
12
13 import org.mule.api.endpoint.EndpointBuilder;
14 import org.mule.api.endpoint.EndpointException;
15 import org.mule.api.endpoint.OutboundEndpoint;
16 import org.mule.api.registry.ServiceType;
17 import org.mule.endpoint.AbstractEndpoint;
18 import org.mule.endpoint.EndpointURIEndpointBuilder;
19 import org.mule.processor.AbstractRedeliveryPolicy;
20 import org.mule.transport.service.TransportServiceDescriptor;
21
22
23
24
25 public class OutboundEndpointFactoryBean extends AbstractEndpointFactoryBean
26 {
27
28 public OutboundEndpointFactoryBean(EndpointURIEndpointBuilder global) throws EndpointException
29 {
30 super(global);
31 }
32
33 public OutboundEndpointFactoryBean()
34 {
35 super();
36 }
37
38 public Class getObjectType()
39 {
40 return OutboundEndpoint.class;
41 }
42
43 public Object doGetObject() throws Exception
44 {
45
46 String scheme = getEndpointBuilder().getEndpoint().getFullScheme();
47 TransportServiceDescriptor tsd = (TransportServiceDescriptor) muleContext.getRegistry().lookupServiceDescriptor(ServiceType.TRANSPORT, scheme, null);
48 EndpointBuilder endpointBuilder = tsd.createEndpointBuilder(this);
49
50 OutboundEndpoint outboundEndpoint = muleContext.getEndpointFactory().getOutboundEndpoint(endpointBuilder);
51 if (outboundEndpoint instanceof AbstractEndpoint)
52 {
53 AbstractEndpoint.class.cast(outboundEndpoint).setAnnotations(getAnnotations());
54 }
55 return outboundEndpoint;
56 }
57
58 @Override
59 public void setRedeliveryPolicy(AbstractRedeliveryPolicy redeliveryPolicy)
60 {
61 throw new IllegalStateException("A redelivery policy cannot be specified for an outbound endpoint.");
62 }
63 }