/* | |
* Copyright (c) OSGi Alliance (2009, 2010). All Rights Reserved. | |
* | |
* Licensed under the Apache License, Version 2.0 (the "License"); | |
* you may not use this file except in compliance with the License. | |
* You may obtain a copy of the License at | |
* | |
* http://www.apache.org/licenses/LICENSE-2.0 | |
* | |
* Unless required by applicable law or agreed to in writing, software | |
* distributed under the License is distributed on an "AS IS" BASIS, | |
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
* See the License for the specific language governing permissions and | |
* limitations under the License. | |
*/ | |
package org.osgi.jmx.service.cm; | |
import java.io.IOException; | |
import javax.management.openmbean.TabularData; | |
import org.osgi.jmx.JmxConstants; | |
/** | |
* This MBean provides the management interface to the OSGi Configuration | |
* Administration Service. | |
* | |
* @version $Revision: 9080 $ | |
* @ThreadSafe | |
*/ | |
public interface ConfigurationAdminMBean { | |
/** | |
* The object name for this mbean. | |
*/ | |
String OBJECTNAME = JmxConstants.OSGI_COMPENDIUM+":service=cm,version=1.3"; | |
/** | |
* Create a new configuration instance for the supplied persistent id of the | |
* factory, answering the PID of the created configuration | |
* | |
* @param factoryPid the persistent id of the factory | |
* @return the PID of the created configuration | |
* @throws IOException if the operation failed | |
*/ | |
String createFactoryConfiguration(String factoryPid) throws IOException; | |
/** | |
* Create a factory configuration for the supplied persistent id of the | |
* factory and the bundle location bound to bind the created configuration | |
* to, answering the PID of the created configuration | |
* | |
* @param factoryPid the persistent id of the factory | |
* @param location the bundle location | |
* @return the pid of the created configuation | |
* @throws IOException if the operation failed | |
*/ | |
String createFactoryConfigurationForLocation(String factoryPid, String location) | |
throws IOException; | |
/** | |
* Delete the configuration | |
* | |
* @param pid the persistent identifier of the configuration | |
* @throws IOException if the operation fails | |
*/ | |
void delete(String pid) throws IOException; | |
/** | |
* Delete the configuration | |
* | |
* @param pid the persistent identifier of the configuration | |
* @param location the bundle location | |
* @throws IOException if the operation fails | |
*/ | |
void deleteForLocation(String pid, String location) throws IOException; | |
/** | |
* Delete the configurations matching the filter specification. | |
* | |
* @param filter the string representation of the | |
* <code>org.osgi.framework.Filter</code> | |
* @throws IOException if the operation failed | |
* @throws IllegalArgumentException if the filter is invalid | |
*/ | |
void deleteConfigurations(String filter) throws IOException; | |
/** | |
* Answer the bundle location the configuration is bound to | |
* | |
* @param pid the persistent identifier of the configuration | |
* @return the bundle location | |
* @throws IOException if the operation fails | |
*/ | |
String getBundleLocation(String pid) throws IOException; | |
/** | |
* Answer the factory PID if the configuration is a factory configuration, | |
* null otherwise. | |
* | |
* @param pid the persistent identifier of the configuration | |
* @return the factory PID | |
* @throws IOException if the operation fails | |
*/ | |
String getFactoryPid(String pid) throws IOException; | |
/** | |
* Answer the factory PID if the configuration is a factory configuration, | |
* null otherwise. | |
* | |
* @param pid the persistent identifier of the configuration | |
* @param location the bundle location | |
* @return the factory PID | |
* @throws IOException if the operation fails | |
*/ | |
String getFactoryPidForLocation(String pid, String location) throws IOException; | |
/** | |
* Answer the contents of the configuration. | |
* | |
* @see JmxConstants#PROPERTIES_TYPE JmxConstants.PROPERTIES_TYPE for the | |
* details of the TabularType | |
* | |
* @param pid the persistent identifier of the configuration | |
* @return the table of contents | |
* @throws IOException if the operation fails | |
*/ | |
TabularData getProperties(String pid) throws IOException; | |
/** | |
* Answer the contents of the configuration. | |
* | |
* @see JmxConstants#PROPERTIES_TYPE JmxConstants.PROPERTIES_TYPE for the | |
* details of the TabularType | |
* | |
* @param pid the persistent identifier of the configuration | |
* @param location the bundle location | |
* @return the table of contents | |
* @throws IOException if the operation fails | |
*/ | |
TabularData getPropertiesForLocation(String pid, String location) throws IOException; | |
/** | |
* Answer the list of PID/Location pairs of the configurations managed by | |
* this service | |
* | |
* @param filter the string representation of the | |
* <code>org.osgi.framework.Filter</code> | |
* @return the list of configuration PID/Location pairs | |
* @throws IOException if the operation failed | |
* @throws IllegalArgumentException if the filter is invalid | |
*/ | |
String[][] getConfigurations(String filter) throws IOException; | |
/** | |
* Set the bundle location the configuration is bound to | |
* | |
* @param pid the persistent identifier of the configuration | |
* @param location the bundle location | |
* @throws IOException if the operation fails | |
*/ | |
void setBundleLocation(String pid, String location) throws IOException; | |
/** | |
* Update the configuration with the supplied properties For each property | |
* entry, the following row is supplied. | |
* | |
* @see JmxConstants#PROPERTIES_TYPE JmxConstants.PROPERTIES_TYPE for the | |
* details of the TabularType | |
* | |
* @param pid the persistent identifier of the configuration | |
* @param properties the table of properties | |
* @throws IOException if the operation fails | |
*/ | |
void update(String pid, TabularData properties) throws IOException; | |
/** | |
* Update the configuration with the supplied properties For each property | |
* entry, the following row is supplied. | |
* | |
* @see JmxConstants#PROPERTIES_TYPE JmxConstants.PROPERTIES_TYPE for the | |
* details of the TabularType | |
* | |
* @param pid the persistent identifier of the configuration | |
* @param location the bundle location | |
* @param properties the table of properties | |
* @throws IOException if the operation fails | |
*/ | |
void updateForLocation(String pid, String location, TabularData properties) | |
throws IOException; | |
} |