1 /**
2 *
3 * Copyright 2003-2004 The Apache Software Foundation
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 */
17 package org.apache.geronimo.kernel.config;
18
19 import org.apache.geronimo.gbean.AbstractName;
20 import org.apache.geronimo.gbean.GBeanData;
21 import org.apache.geronimo.kernel.GBeanNotFoundException;
22 import org.apache.geronimo.kernel.repository.Artifact;
23
24 /**
25 * A specialized ConfigurationManager that can change the set of GBeans
26 * included in the configuration at runtime.
27 *
28 * @version $Rev: 430508 $ $Date: 2006-08-10 12:56:47 -0700 (Thu, 10 Aug 2006) $
29 */
30 public interface EditableConfigurationManager extends ConfigurationManager {
31 /**
32 * Adds a new GBean to an existing Configuration.
33 * @param configID The configuration to add the GBean to.
34 * @param gbean The data representing the GBean to add.
35 * @param start If true, the GBean should be started as part of this call.
36 */
37 void addGBeanToConfiguration(Artifact configID, GBeanData gbean, boolean start) throws InvalidConfigException;
38
39 /**
40 * Adds a new GBean to an existing Configuration.
41 * @param configID The configuration to add the GBean to.
42 * @param name The short name for the new GBean.
43 * @param gbean The data representing the GBean to add. This must not have an abstract name set.
44 * @param start If true, the GBean should be started as part of this call.
45 */
46 void addGBeanToConfiguration(Artifact configID, String name, GBeanData gbean, boolean start) throws InvalidConfigException;
47
48 /**
49 * Removes a GBean from a configuration. Note: this may simply mark it to
50 * not be loaded in the future, as opposed to actually removing it from
51 * the data in the config store.
52 * @param configID The configuration to remove the GBean from.
53 * @param gbean The ObjectName of the GBean to remove.
54 */
55 void removeGBeanFromConfiguration(Artifact configID, AbstractName gbean) throws InvalidConfigException, GBeanNotFoundException;
56 }