1
2
3
4
5
6
7
8
9
10
11 package org.mule.config.builders;
12
13 import org.mule.api.MuleContext;
14 import org.mule.api.MuleException;
15 import org.mule.api.config.MuleProperties;
16 import org.mule.api.config.ThreadingProfile;
17 import org.mule.api.model.Model;
18 import org.mule.api.registry.Registry;
19 import org.mule.config.ChainedThreadingProfile;
20 import org.mule.config.bootstrap.SimpleRegistryBootstrap;
21 import org.mule.endpoint.DefaultEndpointFactory;
22 import org.mule.model.seda.SedaModel;
23 import org.mule.security.MuleSecurityManager;
24 import org.mule.transport.SingleAttemptConnectionStrategy;
25 import org.mule.util.DefaultStreamCloserService;
26 import org.mule.util.queue.FilePersistenceStrategy;
27 import org.mule.util.queue.QueueManager;
28 import org.mule.util.queue.TransactionalQueueManager;
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 public class DefaultsConfigurationBuilder extends AbstractConfigurationBuilder
49 {
50
51 protected void doConfigure(MuleContext muleContext) throws Exception
52 {
53 configureDefaults(muleContext.getRegistry());
54 }
55
56 protected void configureDefaults(Registry registry) throws MuleException
57 {
58 registry.registerObject(MuleProperties.OBJECT_MULE_SIMPLE_REGISTRY_BOOTSTRAP,
59 new SimpleRegistryBootstrap());
60
61 QueueManager queueManager = new TransactionalQueueManager();
62 queueManager.setPersistenceStrategy(new FilePersistenceStrategy());
63 registry.registerObject(MuleProperties.OBJECT_QUEUE_MANAGER, queueManager);
64
65 registry.registerObject(MuleProperties.OBJECT_SECURITY_MANAGER, new MuleSecurityManager());
66
67 registry.registerObject(MuleProperties.OBJECT_MULE_ENDPOINT_FACTORY, new DefaultEndpointFactory());
68 registry.registerObject(MuleProperties.OBJECT_MULE_STREAM_CLOSER_SERVICE, new DefaultStreamCloserService());
69
70 ThreadingProfile defaultThreadingProfile = new ChainedThreadingProfile();
71 defaultThreadingProfile.setThreadWaitTimeout(30);
72 defaultThreadingProfile.setMaxThreadsActive(10);
73 defaultThreadingProfile.setMaxThreadsIdle(10);
74 defaultThreadingProfile.setMaxBufferSize(0);
75 defaultThreadingProfile.setThreadTTL(60000);
76 defaultThreadingProfile.setPoolExhaustedAction(ThreadingProfile.WHEN_EXHAUSTED_RUN);
77 registry.registerObject(MuleProperties.OBJECT_DEFAULT_THREADING_PROFILE, defaultThreadingProfile);
78 registry.registerObject(MuleProperties.OBJECT_DEFAULT_MESSAGE_RECEIVER_THREADING_PROFILE,
79 new ChainedThreadingProfile(defaultThreadingProfile));
80 registry.registerObject(MuleProperties.OBJECT_DEFAULT_MESSAGE_REQUESTER_THREADING_PROFILE,
81 new ChainedThreadingProfile(defaultThreadingProfile));
82 registry.registerObject(MuleProperties.OBJECT_DEFAULT_MESSAGE_DISPATCHER_THREADING_PROFILE,
83 new ChainedThreadingProfile(defaultThreadingProfile));
84 registry.registerObject(MuleProperties.OBJECT_DEFAULT_COMPONENT_THREADING_PROFILE,
85 new ChainedThreadingProfile(defaultThreadingProfile));
86
87 registry.registerObject(MuleProperties.OBJECT_DEFAULT_CONNECTION_STRATEGY, new SingleAttemptConnectionStrategy());
88
89 Model systemModel = new SedaModel();
90 systemModel.setName(MuleProperties.OBJECT_SYSTEM_MODEL);
91 registry.registerModel(systemModel);
92 }
93 }