blob: a630209e62eb66dcffc213d457d4df8636f71150 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You 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.apache.karaf.scr.management;
import javax.management.openmbean.TabularData;
/**
* The management interface for SCR Components.
*/
public interface ServiceComponentRuntimeMBean {
String COMPONENT_BUNDLE_ID = "BundleId";
String COMPONENT_NAME = "Name";
String COMPONENT_FACTORY = "Factory";
String COMPONENT_SCOPE = "Scope";
String COMPONENT_IMPLEMENTATION_CLASS = "ImplementationClass";
String COMPONENT_DEFAULT_ENABLED = "DefaultEnabled";
String COMPONENT_IMMEDIATE = "Immediate";
String COMPONENT_SERVICE_INTERFACES = "ServiceInterfaces";
String COMPONENT_PROPERTIES = "Properties";
String COMPONENT_REFERENCES = "References";
String COMPONENT_ACTIVATE = "Activate";
String COMPONENT_DEACTIVATE = "Deactivate";
String COMPONENT_MODIFIED = "Modified";
String COMPONENT_CONFIGURATION_POLICY = "ConfigurationPolicy";
String COMPONENT_CONFIGURATION_PID = "ConfigurationId";
String COMPONENT_STATE = "State";
String COMPONENT_ID = "Id";
String COMPONENT_SATISFIED_REFERENCES = "SatisfiedReferences";
String COMPONENT_UNSATISFIED_REFERENCES = "UnsatisfiedReferences";
String PROPERTY_KEY = "Key";
String PROPERTY_VALUE = "Value";
/*
itemValues[0] = reference.name;
itemValues[1] = reference.interfaceName;
itemValues[2] = reference.cardinality;
itemValues[3] = reference.policy;
itemValues[4] = reference.policyOption;
itemValues[5] = reference.target;
itemValues[6] = reference.bind;
itemValues[7] = reference.unbind;
itemValues[8] = reference.updated;
itemValues[9] = reference.field;
itemValues[10] = reference.fieldOption;
itemValues[11] = reference.scope;
*/
String REFERENCE_NAME = "Name";
String REFERENCE_INTERFACE_NAME = "InterfaceName";
String REFERENCE_CARDINALITY = "Cardinality";
String REFERENCE_POLICY = "Policy";
String REFERENCE_POLICY_OPTION = "PolicyOption";
String REFERENCE_TARGET = "Target";
String REFERENCE_BIND = "Bind";
String REFERENCE_UNBIND = "Unbind";
String REFERENCE_UPDATED = "Updated";
String REFERENCE_FIELD = "Field";
String REFERENCE_FIELD_OPTION = "FieldOption";
String REFERENCE_SCOPE = "Scope";
String REFERENCE_BOUND_SERVICES = "BoundServices";
/**
* The item names in the CompositeData representing a component
*/
String[] COMPONENT_DESCRIPTION = {COMPONENT_BUNDLE_ID, COMPONENT_NAME, COMPONENT_FACTORY,
COMPONENT_SCOPE, COMPONENT_IMPLEMENTATION_CLASS, COMPONENT_DEFAULT_ENABLED,
COMPONENT_IMMEDIATE, COMPONENT_SERVICE_INTERFACES,
COMPONENT_PROPERTIES, COMPONENT_REFERENCES,
COMPONENT_ACTIVATE, COMPONENT_DEACTIVATE, COMPONENT_MODIFIED,
COMPONENT_CONFIGURATION_POLICY, COMPONENT_CONFIGURATION_PID};
String[] COMPONENT_CONFIGURATION = {COMPONENT_BUNDLE_ID, COMPONENT_NAME,
COMPONENT_STATE, COMPONENT_ID,
COMPONENT_PROPERTIES,
COMPONENT_SATISFIED_REFERENCES, COMPONENT_UNSATISFIED_REFERENCES
};
String[] PROPERTY = {PROPERTY_KEY, PROPERTY_VALUE};
String[] REFERENCE = {REFERENCE_NAME, REFERENCE_INTERFACE_NAME,
REFERENCE_CARDINALITY, REFERENCE_POLICY,
REFERENCE_POLICY_OPTION, REFERENCE_TARGET,
REFERENCE_BIND, REFERENCE_UNBIND, REFERENCE_UPDATED,
REFERENCE_FIELD, REFERENCE_FIELD_OPTION, REFERENCE_SCOPE};
String[] SVC_REFERENCE = {REFERENCE_NAME, REFERENCE_TARGET, REFERENCE_BOUND_SERVICES};
/**
* Display a {@link TabularData} with all the component details.
*
* @return A {@link TabularData} containing all SCR components.
*/
TabularData getComponents();
/**
* Display a {@link TabularData} with all the component configurations details.
*
* @return A {@link TabularData} containing all SCR components.
*/
TabularData getComponentConfigs();
/**
* Present a {@code String} array of components currently registered with the SCR.
*
* @return A {@code String[]} containing all SCR components ID.
*/
TabularData getComponentConfigs(long bundleId, String componentName);
/**
* Check if the named component is currently enabled.
*
* @param componentName The component name.
* @return True if the component is ACTIVE, otherwise false.
*/
boolean isComponentEnabled(long bundleId, String componentName);
/**
* Enable a component.
*
* @param componentName The component name.
*/
void enableComponent(long bundleId, String componentName);
/**
* Disable a component.
*
* @param componentName The component name.
*/
void disableComponent(long bundleId, String componentName);
}