1
2
3
4
5
6
7 package org.mule.module.cxf.endpoint;
8
9 import org.mule.api.MuleContext;
10 import org.mule.api.endpoint.EndpointException;
11 import org.mule.api.endpoint.EndpointURI;
12 import org.mule.api.endpoint.ImmutableEndpoint;
13 import org.mule.api.endpoint.InboundEndpoint;
14 import org.mule.api.endpoint.OutboundEndpoint;
15 import org.mule.api.lifecycle.InitialisationException;
16 import org.mule.api.processor.MessageProcessor;
17 import org.mule.endpoint.AbstractMetaEndpointBuilder;
18 import org.mule.endpoint.EndpointURIEndpointBuilder;
19 import org.mule.endpoint.URIBuilder;
20 import org.mule.module.cxf.builder.LocalClientMessageProcessorBuilder;
21
22 import java.util.ArrayList;
23
24 public class CxfEndpointBuilder extends AbstractMetaEndpointBuilder
25 {
26
27 public CxfEndpointBuilder()
28 {
29 super();
30 }
31
32 public CxfEndpointBuilder(EndpointURI endpointURI)
33 {
34 super(endpointURI);
35 }
36
37 public CxfEndpointBuilder(EndpointURIEndpointBuilder global) throws EndpointException
38 {
39 super(global);
40 }
41
42 public CxfEndpointBuilder(ImmutableEndpoint source)
43 {
44 super(source);
45 }
46
47 public CxfEndpointBuilder(String address, MuleContext muleContext)
48 {
49 super(getEndpointAddressWithoutMetaScheme(address), muleContext);
50 }
51
52 public CxfEndpointBuilder(URIBuilder builder)
53 {
54 super(builder);
55 }
56
57 @Override
58 public InboundEndpoint buildInboundEndpoint() throws EndpointException, InitialisationException
59 {
60 throw new UnsupportedOperationException("Inbound meta CXF endpoints not supported");
61 }
62
63 @Override
64 public OutboundEndpoint buildOutboundEndpoint() throws EndpointException, InitialisationException
65 {
66 LocalClientMessageProcessorBuilder builder = new LocalClientMessageProcessorBuilder();
67 builder.setMuleContext(muleContext);
68 builder.setAddress(getEndpointBuilder().getEndpoint().toString());
69
70 try
71 {
72 ArrayList<MessageProcessor> processors = new ArrayList<MessageProcessor>();
73 processors.add(builder.build());
74 if (messageProcessors != null)
75 {
76 processors.addAll(messageProcessors);
77 }
78 messageProcessors = processors;
79 }
80 catch (Exception e)
81 {
82 throw new EndpointException(e);
83 }
84
85 return super.buildOutboundEndpoint();
86 }
87
88 }