1
2
3
4
5
6
7 package org.mule.config.dsl;
8
9 import org.mule.api.MuleContext;
10 import org.mule.api.routing.OutboundRouterCollection;
11 import org.mule.api.service.Service;
12 import org.mule.model.seda.SedaService;
13
14
15
16
17 public class ServiceBuilder
18 {
19 private Service service;
20 private MuleContext muleContext;
21
22
23 public ServiceBuilder(String name, MuleContext muleContext)
24 {
25 this.muleContext = muleContext;
26 service = new SedaService(muleContext);
27 service.setName(name);
28 }
29
30 public ComponentBuilder toComponent(Class clazz)
31 {
32 ComponentBuilder builder = new ComponentBuilder(ComponentBuilder.Scope.Prototype, clazz, muleContext);
33 service.setComponent(builder.create());
34 return builder;
35 }
36
37 public ComponentBuilder toPooledComponent(Class clazz)
38 {
39 ComponentBuilder builder = new ComponentBuilder(ComponentBuilder.Scope.Pooled, clazz, muleContext);
40 service.setComponent(builder.create());
41 return builder;
42 }
43
44 public ComponentBuilder toComponent(Object instance)
45 {
46 ComponentBuilder builder = new ComponentBuilder(instance, muleContext);
47 service.setComponent(builder.create());
48 return builder;
49 }
50
51 public OutRouteBuilder to(String uri)
52 {
53 OutRouteBuilder rb = new OutRouteBuilder(
54 (OutboundRouterCollection) service.getOutboundMessageProcessor(), muleContext);
55 rb.to(uri);
56 return rb;
57 }
58
59 Service create()
60 {
61 return service;
62 }
63 }