1
2
3
4
5
6
7 package org.mule.lifecycle.phases;
8
9 import org.mule.api.MuleContext;
10 import org.mule.api.agent.Agent;
11 import org.mule.api.component.Component;
12 import org.mule.api.construct.FlowConstruct;
13 import org.mule.api.lifecycle.Initialisable;
14 import org.mule.api.lifecycle.Startable;
15 import org.mule.api.lifecycle.Stoppable;
16 import org.mule.api.model.Model;
17 import org.mule.api.registry.Registry;
18 import org.mule.api.routing.OutboundRouter;
19 import org.mule.api.routing.OutboundRouterCollection;
20 import org.mule.api.source.MessageSource;
21 import org.mule.api.transport.Connector;
22 import org.mule.lifecycle.LifecycleObject;
23 import org.mule.lifecycle.NotificationLifecycleObject;
24 import org.mule.util.queue.TransactionalQueueManager;
25
26 import java.util.LinkedHashSet;
27 import java.util.Set;
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 public class MuleContextStartPhase extends DefaultLifecyclePhase
49 {
50 public MuleContextStartPhase()
51 {
52 this(new Class[]{Registry.class, MuleContext.class, MessageSource.class, Component.class, OutboundRouterCollection.class, OutboundRouter.class});
53 }
54
55 public MuleContextStartPhase(Class<?>[] ignorredObjects)
56 {
57 super(Startable.PHASE_NAME, Startable.class, Stoppable.PHASE_NAME);
58
59 Set<LifecycleObject> startOrderedObjects = new LinkedHashSet<LifecycleObject>();
60 startOrderedObjects.add(new NotificationLifecycleObject(TransactionalQueueManager.class));
61 startOrderedObjects.add(new NotificationLifecycleObject(Connector.class));
62 startOrderedObjects.add(new NotificationLifecycleObject(Agent.class));
63 startOrderedObjects.add(new NotificationLifecycleObject(Model.class));
64 startOrderedObjects.add(new NotificationLifecycleObject(FlowConstruct.class));
65 startOrderedObjects.add(new NotificationLifecycleObject(Startable.class));
66
67 setIgnoredObjectTypes(ignorredObjects);
68 setOrderedLifecycleObjects(startOrderedObjects);
69 registerSupportedPhase(Initialisable.PHASE_NAME);
70
71 registerSupportedPhase(Stoppable.PHASE_NAME);
72 }
73 }