01: /*
02: * $Id: MuleContextFactory.java 10489 2008-01-23 17:53:38Z dfeist $
03: * --------------------------------------------------------------------------------------
04: * Copyright (c) MuleSource, Inc. All rights reserved. http://www.mulesource.com
05: *
06: * The software in this package is published under the terms of the CPAL v1.0
07: * license, a copy of which has been included with this distribution in the
08: * LICENSE.txt file.
09: */
10:
11: package org.mule.api.context;
12:
13: import org.mule.api.MuleContext;
14: import org.mule.api.config.ConfigurationBuilder;
15: import org.mule.api.config.ConfigurationException;
16: import org.mule.api.lifecycle.InitialisationException;
17: import org.mule.config.builders.DefaultsConfigurationBuilder;
18:
19: import java.util.List;
20:
21: /**
22: * A {@link CopyOfMuleContextFactory} is used to create instances of
23: * {@link MuleContext}. The instances of {@link MuleContext} returned by this
24: * factory are initialised but not started.
25: */
26: public interface MuleContextFactory {
27:
28: /**
29: * Returns an existing instance of {@link MuleContext} is one exists, otherwise a
30: * new {@link MuleContext} instance is created with defaults.
31: *
32: * @return
33: * @throws InitialisationException
34: * @throws ConfigurationException
35: * @see {@link DefaultsConfigurationBuilder}
36: */
37: MuleContext createMuleContext() throws InitialisationException,
38: ConfigurationException;
39:
40: /**
41: * Creates a new MuleContext using the {@link MuleContextBuilder} provided.
42: *
43: * @param configurationBuilder
44: * @return
45: * @throws InitialisationException
46: * @throws ConfigurationException
47: */
48: public MuleContext createMuleContext(
49: MuleContextBuilder muleContextBuilder)
50: throws InitialisationException, ConfigurationException;
51:
52: /**
53: * Creates a new MuleContext using the given configurationBuilder
54: *
55: * @param configurationBuilder
56: * @return
57: * @throws InitialisationException
58: * @throws ConfigurationException
59: */
60: public MuleContext createMuleContext(
61: ConfigurationBuilder configurationBuilder)
62: throws InitialisationException, ConfigurationException;
63:
64: /**
65: * Creates a new MuleContext using the {@link MuleContextBuilder} provided and
66: * configures it with the list of configuration builder and c onfigures it with
67: * configurationBuilder
68: *
69: * @param configurationBuilder
70: * @return
71: * @throws InitialisationException
72: * @throws ConfigurationException
73: */
74: public MuleContext createMuleContext(
75: ConfigurationBuilder configurationBuilder,
76: MuleContextBuilder muleContextBuilder)
77: throws InitialisationException, ConfigurationException;
78:
79: /**
80: * Creates a new MuleContext using the {@link MuleContextBuilder} provided and
81: * configures it with the list of configuration builders. Configuration builders
82: * will be invoked in the same or as provided in the List.
83: *
84: * @param configurationBuilder
85: * @return
86: * @throws InitialisationException
87: * @throws ConfigurationException
88: */
89: public MuleContext createMuleContext(List configurationBuilders,
90: MuleContextBuilder muleContextBuilder)
91: throws InitialisationException, ConfigurationException;
92:
93: }
|