use of io.fabric8.annotations.Configuration in project fabric8 by jboss-fuse.
the class FabricDetectingGateway method activate.
@Activate
void activate(Map<String, ?> configuration) throws Exception {
shutdownTacker = new ShutdownTracker();
initialize(configuration);
}
use of io.fabric8.annotations.Configuration in project fabric8 by jboss-fuse.
the class KarafContainerRegistration method configurationEvent.
/**
* Receives notification of a Configuration that has changed.
*
* @param event The <code>ConfigurationEvent</code>.
*/
@Override
public void configurationEvent(ConfigurationEvent event) {
if (isValid()) {
try {
Container current = new ImmutableContainerBuilder().id(runtimeIdentity).ip(ip).build();
RuntimeProperties sysprops = runtimeProperties.get();
String runtimeIdentity = sysprops.getRuntimeIdentity();
if (event.getPid().equals(SSH_PID) && event.getType() == ConfigurationEvent.CM_UPDATED) {
Configuration config = configAdmin.get().getConfiguration(SSH_PID, null);
int sshPort = Integer.parseInt((String) config.getProperties().get(SSH_BINDING_PORT_KEY));
int sshConnectionPort = getSshConnectionPort(current, sshPort);
String sshUrl = getSshUrl(runtimeIdentity, sshConnectionPort);
setData(curator.get(), CONTAINER_SSH.getPath(runtimeIdentity), sshUrl);
if (portService.get().lookupPort(current, SSH_PID, SSH_BINDING_PORT_KEY) != sshPort) {
portService.get().unregisterPort(current, SSH_PID);
portService.get().registerPort(current, SSH_PID, SSH_BINDING_PORT_KEY, sshPort);
}
}
if (event.getPid().equals(HTTP_PID) && event.getType() == ConfigurationEvent.CM_UPDATED) {
Configuration config = configAdmin.get().getConfiguration(HTTP_PID, null);
boolean httpEnabled = isHttpEnabled();
boolean httpsEnabled = isHttpsEnabled();
String protocol = httpsEnabled && !httpEnabled ? "https" : "http";
int httpConnectionPort = -1;
if (httpEnabled) {
int httpPort = Integer.parseInt((String) config.getProperties().get(HTTP_BINDING_PORT_KEY));
httpConnectionPort = getHttpConnectionPort(current, httpPort);
if (portService.get().lookupPort(current, HTTP_PID, HTTP_BINDING_PORT_KEY) != httpPort) {
portService.get().unregisterPort(current, HTTP_PID, HTTP_BINDING_PORT_KEY);
portService.get().registerPort(current, HTTP_PID, HTTP_BINDING_PORT_KEY, httpPort);
}
}
if (httpsEnabled) {
int httpsPort = Integer.parseInt((String) config.getProperties().get(HTTPS_BINDING_PORT_KEY));
if (httpConnectionPort == -1) {
httpConnectionPort = getHttpsConnectionPort(current, httpsPort);
}
if (portService.get().lookupPort(current, HTTP_PID, HTTPS_BINDING_PORT_KEY) != httpsPort) {
portService.get().unregisterPort(current, HTTP_PID, HTTPS_BINDING_PORT_KEY);
portService.get().registerPort(current, HTTP_PID, HTTPS_BINDING_PORT_KEY, httpsPort);
}
}
String httpUrl = getHttpUrl(protocol, runtimeIdentity, httpConnectionPort);
setData(curator.get(), CONTAINER_HTTP.getPath(runtimeIdentity), httpUrl);
}
if (event.getPid().equals(MANAGEMENT_PID) && event.getType() == ConfigurationEvent.CM_UPDATED) {
Configuration config = configAdmin.get().getConfiguration(MANAGEMENT_PID, null);
int rmiServerPort = Integer.parseInt((String) config.getProperties().get(RMI_SERVER_BINDING_PORT_KEY));
int rmiServerConnectionPort = getRmiServerConnectionPort(current, rmiServerPort);
int rmiRegistryPort = Integer.parseInt((String) config.getProperties().get(RMI_REGISTRY_BINDING_PORT_KEY));
int rmiRegistryConnectionPort = getRmiRegistryConnectionPort(current, rmiRegistryPort);
String jmxUrl = getJmxUrl(runtimeIdentity, rmiServerConnectionPort, rmiRegistryConnectionPort);
setData(curator.get(), CONTAINER_JMX.getPath(runtimeIdentity), jmxUrl);
// Whenever the JMX URL changes we need to make sure that the java.rmi.server.hostname points to a valid address.
System.setProperty(SystemProperties.JAVA_RMI_SERVER_HOSTNAME, current.getIp());
if (portService.get().lookupPort(current, MANAGEMENT_PID, RMI_REGISTRY_BINDING_PORT_KEY) != rmiRegistryPort || portService.get().lookupPort(current, MANAGEMENT_PID, RMI_SERVER_BINDING_PORT_KEY) != rmiServerPort) {
portService.get().unregisterPort(current, MANAGEMENT_PID);
portService.get().registerPort(current, MANAGEMENT_PID, RMI_SERVER_BINDING_PORT_KEY, rmiServerPort);
portService.get().registerPort(current, MANAGEMENT_PID, RMI_REGISTRY_BINDING_PORT_KEY, rmiRegistryPort);
}
}
} catch (Exception ex) {
LOGGER.error("Cannot reconfigure container", ex);
}
}
}
use of io.fabric8.annotations.Configuration in project fabric8 by jboss-fuse.
the class KarafContainerRegistration method isHttpsEnabled.
private boolean isHttpsEnabled() throws IOException {
Configuration configuration = configAdmin.get().getConfiguration(HTTP_PID, null);
Dictionary properties = configuration.getProperties();
if (properties != null && properties.get(HTTPS_ENABLED) != null) {
return Boolean.parseBoolean(String.valueOf(properties.get(HTTPS_ENABLED)));
} else {
return false;
}
}
use of io.fabric8.annotations.Configuration in project fabric8 by jboss-fuse.
the class KarafContainerRegistration method registerHttp.
private void registerHttp(Container container) throws Exception {
boolean httpEnabled = isHttpEnabled();
boolean httpsEnabled = isHttpsEnabled();
Configuration configuration = configAdmin.get().getConfiguration(HTTP_PID, null);
Dictionary<String, Object> dictionary = configuration == null ? null : configuration.getProperties();
boolean changed = false;
PortService.Lock lock = null;
int httpPort = 0;
int httpsPort = 0;
if (httpEnabled) {
try {
lock = portService.get().acquirePortLock();
httpPort = getHttpPort(container, lock);
portService.get().registerPort(container, HTTP_PID, HTTP_BINDING_PORT_KEY, httpPort, lock);
} finally {
portService.get().releasePortLock(lock);
}
if (configuration != null) {
changed = updateIfNeeded(dictionary, HTTP_BINDING_PORT_KEY, httpPort);
}
}
if (httpsEnabled) {
try {
lock = portService.get().acquirePortLock();
httpsPort = getHttpsPort(container, lock);
portService.get().registerPort(container, HTTP_PID, HTTPS_BINDING_PORT_KEY, httpsPort, lock);
} finally {
portService.get().releasePortLock(lock);
}
changed |= updateIfNeeded(dictionary, HTTPS_BINDING_PORT_KEY, httpsPort);
}
String protocol = httpsEnabled && !httpEnabled ? "https" : "http";
int httpConnectionPort = httpsEnabled && !httpEnabled ? getHttpsConnectionPort(container, httpsPort) : getHttpConnectionPort(container, httpPort);
String httpUrl = getHttpUrl(protocol, container.getId(), httpConnectionPort);
setData(curator.get(), CONTAINER_HTTP.getPath(container.getId()), httpUrl);
if (configuration != null && changed) {
configuration.update(dictionary);
}
}
use of io.fabric8.annotations.Configuration in project fabric8 by jboss-fuse.
the class KarafContainerRegistration method isHttpEnabled.
private boolean isHttpEnabled() throws IOException {
Configuration configuration = configAdmin.get().getConfiguration(HTTP_PID, null);
Dictionary properties = configuration.getProperties();
if (properties != null && properties.get(HTTP_ENABLED) != null) {
return Boolean.parseBoolean(String.valueOf(properties.get(HTTP_ENABLED)));
} else {
return true;
}
}
Aggregations