View Javadoc

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  }