View Javadoc
1   /*
2    * Copyright (c) MuleSoft, Inc.  All rights reserved.  http://www.mulesoft.com
3    * The software in this package is published under the terms of the CPAL v1.0
4    * license, a copy of which has been included with this distribution in the
5    * LICENSE.txt file.
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   * TODO
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  }