/*
* Copyright (C) 2015 Orange
*
* This software is distributed under the terms and conditions of the 'GNU GENERAL PUBLIC LICENSE
* Version 2' license which can be found in the file 'LICENSE.txt' in this package distribution or
* at 'http://www.gnu.org/licenses/gpl-2.0-standalone.html'.
*/
package com.orange.cepheus.broker;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Component;
/**
* Configuration properties to access ligth broker
*/
@Component
public class Configuration {
/**
* Url to this broker instance
*/
@Value("${local.url}")
private String localUrl;
/**
* Url to the remote broker
*/
@Value("${remote.url:}")
private String remoteUrl;
/**
* Fiware specific service name (optional)
*/
@Value("${remote.serviceName:}")
private String remoteServiceName;
/**
* Fiware specific service path (optional)
*/
@Value("${remote.servicePath:}")
private String remoteServicePath;
/**
* OAuth token for secured brokers
*/
@Value("${remote.authToken:}")
private String remoteAuthToken;
/**
* Disable forwarding updateContext requests to the remote broker
*
* All NGSI requests are forwarded by the Cepheus-Broker to the remote broker.
* Except:
* - subscribeContext/updateContextSubscription/unsubscribeContext (handled by the app)
* - updateContext (if
*/
@Value("${remote.forward.updateContext:true}")
private boolean remoteForwardUpdateContext = true;
public Configuration() {
}
public String getLocalUrl() {
return localUrl;
}
public void setLocalUrl(String localUrl) {
this.localUrl = localUrl;
}
public String getRemoteUrl() {
return remoteUrl;
}
public void setRemoteUrl(String remoteUrl) {
this.remoteUrl = remoteUrl;
}
public String getRemoteServiceName() {
return remoteServiceName;
}
public void setRemoteServiceName(String remoteServiceName) {
this.remoteServiceName = remoteServiceName;
}
public String getRemoteServicePath() {
return remoteServicePath;
}
public void setRemoteServicePath(String remoteServicePath) {
this.remoteServicePath = remoteServicePath;
}
public String getRemoteAuthToken() {
return remoteAuthToken;
}
public void setRemoteAuthToken(String remoteAuthToken) {
this.remoteAuthToken = remoteAuthToken;
}
public boolean isRemoteForwardUpdateContext() {
return remoteForwardUpdateContext;
}
public void setRemoteForwardUpdateContext(boolean remoteForwardUpdateContext) {
this.remoteForwardUpdateContext = remoteForwardUpdateContext;
}
/*
* Inject Orion-specific headers into the given HttpHeaders list
* @param httpHeaders
*/
public void addRemoteHeaders(HttpHeaders httpHeaders) {
if (remoteServiceName != null) {
httpHeaders.set("Fiware-Service", remoteServiceName);
}
if (remoteServicePath != null) {
httpHeaders.set("Fiware-ServicePath", remoteServicePath);
}
if (remoteAuthToken != null) {
httpHeaders.set("X-Auth-Token", remoteAuthToken);
}
}
@Override
public String toString() {
return "Configuration{" +
"localUrl='" + localUrl + '\'' +
", remoteUrl='" + remoteUrl + '\'' +
", remoteServiceName='" + remoteServiceName + '\'' +
", remoteServicePath='" + remoteServicePath + '\'' +
", remoteAuthToken='" + remoteAuthToken + '\'' +
", remoteForwardUpdateContext=" + remoteForwardUpdateContext +
'}';
}
}