import org.argeo.node.NodeConstants;
import org.argeo.node.NodeState;
import org.argeo.node.RepoConf;
import org.argeo.node.NodeConstants;
import org.argeo.node.NodeState;
import org.argeo.node.RepoConf;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
import org.osgi.framework.ServiceReference;
import org.osgi.framework.BundleContext;
import org.osgi.framework.Constants;
import org.osgi.framework.ServiceReference;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
import org.osgi.service.cm.ManagedService;
import org.osgi.service.cm.Configuration;
import org.osgi.service.cm.ConfigurationAdmin;
import org.osgi.service.cm.ManagedService;
Configuration nodeConf = configurationAdmin.getConfiguration(NodeConstants.NODE_STATE_PID);
Dictionary<String, Object> props = nodeConf.getProperties();
if (props == null) {
if (log.isDebugEnabled())
log.debug("Clean node state");
Dictionary<String, Object> envProps = getStatePropertiesFromEnvironment();
Configuration nodeConf = configurationAdmin.getConfiguration(NodeConstants.NODE_STATE_PID);
Dictionary<String, Object> props = nodeConf.getProperties();
if (props == null) {
if (log.isDebugEnabled())
log.debug("Clean node state");
Dictionary<String, Object> envProps = getStatePropertiesFromEnvironment();
Dictionary<String, Object> envProps = getStatePropertiesFromEnvironment();
for (String key : LangUtils.keys(envProps)) {
Object envValue = envProps.get(key);
Dictionary<String, Object> envProps = getStatePropertiesFromEnvironment();
for (String key : LangUtils.keys(envProps)) {
Object envValue = envProps.get(key);
throw new CmsException("State value for " + key + "=" + storedValue
+ " is different from env value =" + envValue + ", please clean the OSGi configuration.");
}
throw new CmsException("State value for " + key + "=" + storedValue
+ " is different from env value =" + envValue + ", please clean the OSGi configuration.");
}
+ Dictionary<String, Object> regProps = LangUtils.init(Constants.SERVICE_PID, NodeConstants.NODE_STATE_PID);
+ regProps.put(NodeConstants.CN, cn);
+ bc.registerService(LangUtils.names(NodeState.class, ManagedService.class), nodeState, regProps);
+
+
+ public String[] getLocales() {
+ // TODO optimize?
+ List<Locale> locales = getNodeState().getLocales();
+ String[] res = new String[locales.size()];
+ for (int i = 0; i < locales.size(); i++)
+ res[i] = locales.get(i).toString();
+ return res;
+ }
+