Coverage Report - org.mule.config.builders.DefaultsConfigurationBuilder
 
Classes in this File Line Coverage Branch Coverage Complexity
DefaultsConfigurationBuilder
100%
27/27
N/A
1
 
 1  
 /*
 2  
  * $Id: DefaultsConfigurationBuilder.java 12370 2008-07-17 13:11:17Z tcarlson $
 3  
  * --------------------------------------------------------------------------------------
 4  
  * Copyright (c) MuleSource, Inc.  All rights reserved.  http://www.mulesource.com
 5  
  *
 6  
  * The software in this package is published under the terms of the CPAL v1.0
 7  
  * license, a copy of which has been included with this distribution in the
 8  
  * LICENSE.txt file.
 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  
  * Configures defaults required by Mule. This configuration builder is used to
 32  
  * configure mule with these defaults when no other ConfigurationBuilder that sets
 33  
  * these is being used. This is used by both AbstractMuleTestCase and MuleClient.
 34  
  * <br>
 35  
  * <br>
 36  
  * Default instances of the following are configured:
 37  
  * <li> {@link SimpleRegistryBootstrap}
 38  
  * <li> {@link QueueManager}
 39  
  * <li> {@link SecurityManager}
 40  
  * <li> {@link DefaultEndpointFactory}
 41  
  * <li> {@link Model} systemModel
 42  
  * <li> {@link ThreadingProfile} defaultThreadingProfile
 43  
  * <li> {@link ThreadingProfile} defaultMessageDispatcherThreadingProfile
 44  
  * <li> {@link ThreadingProfile} defaultMessageRequesterThreadingProfile
 45  
  * <li> {@link ThreadingProfile} defaultMessageReceiverThreadingProfile
 46  
  * <li> {@link ThreadingProfile} defaultComponentThreadingProfile
 47  
  */
 48  1146
 public class DefaultsConfigurationBuilder extends AbstractConfigurationBuilder
 49  
 {
 50  
 
 51  
     protected void doConfigure(MuleContext muleContext) throws Exception
 52  
     {
 53  1146
         configureDefaults(muleContext.getRegistry());
 54  1146
     }
 55  
 
 56  
     protected void configureDefaults(Registry registry) throws MuleException
 57  
     {
 58  1146
         registry.registerObject(MuleProperties.OBJECT_MULE_SIMPLE_REGISTRY_BOOTSTRAP,
 59  
             new SimpleRegistryBootstrap());
 60  
         
 61  1146
         QueueManager queueManager = new TransactionalQueueManager();
 62  1146
         queueManager.setPersistenceStrategy(new FilePersistenceStrategy());
 63  1146
         registry.registerObject(MuleProperties.OBJECT_QUEUE_MANAGER, queueManager);
 64  
         
 65  1146
         registry.registerObject(MuleProperties.OBJECT_SECURITY_MANAGER, new MuleSecurityManager());
 66  
         
 67  1146
         registry.registerObject(MuleProperties.OBJECT_MULE_ENDPOINT_FACTORY, new DefaultEndpointFactory());
 68  1146
         registry.registerObject(MuleProperties.OBJECT_MULE_STREAM_CLOSER_SERVICE, new DefaultStreamCloserService());
 69  
         
 70  1146
         ThreadingProfile defaultThreadingProfile = new ChainedThreadingProfile();
 71  1146
         defaultThreadingProfile.setThreadWaitTimeout(30);
 72  1146
         defaultThreadingProfile.setMaxThreadsActive(10);
 73  1146
         defaultThreadingProfile.setMaxThreadsIdle(10);
 74  1146
         defaultThreadingProfile.setMaxBufferSize(0);
 75  1146
         defaultThreadingProfile.setThreadTTL(60000);
 76  1146
         defaultThreadingProfile.setPoolExhaustedAction(ThreadingProfile.WHEN_EXHAUSTED_RUN);
 77  1146
         registry.registerObject(MuleProperties.OBJECT_DEFAULT_THREADING_PROFILE, defaultThreadingProfile);
 78  1146
         registry.registerObject(MuleProperties.OBJECT_DEFAULT_MESSAGE_RECEIVER_THREADING_PROFILE,
 79  
             new ChainedThreadingProfile(defaultThreadingProfile));
 80  1146
         registry.registerObject(MuleProperties.OBJECT_DEFAULT_MESSAGE_REQUESTER_THREADING_PROFILE,
 81  
             new ChainedThreadingProfile(defaultThreadingProfile));
 82  1146
         registry.registerObject(MuleProperties.OBJECT_DEFAULT_MESSAGE_DISPATCHER_THREADING_PROFILE,
 83  
             new ChainedThreadingProfile(defaultThreadingProfile));
 84  1146
         registry.registerObject(MuleProperties.OBJECT_DEFAULT_COMPONENT_THREADING_PROFILE,
 85  
             new ChainedThreadingProfile(defaultThreadingProfile));
 86  
         
 87  1146
         registry.registerObject(MuleProperties.OBJECT_DEFAULT_CONNECTION_STRATEGY, new SingleAttemptConnectionStrategy());
 88  
         
 89  1146
         Model systemModel = new SedaModel();
 90  1146
         systemModel.setName(MuleProperties.OBJECT_SYSTEM_MODEL);
 91  1146
         registry.registerModel(systemModel);
 92  1146
     }
 93  
 }