import java.net.UnknownHostException;
import org.onap.aaf.cadi.Access;
-import org.onap.aaf.cadi.CadiException;
import org.onap.aaf.cadi.Access.Level;
+import org.onap.aaf.cadi.CadiException;
import org.onap.aaf.cadi.util.Split;
public class RegistrationPropHolder {
- private final String PUBLIC_NAME="%NS.%N";
- private final String REGI="RegistrationProperty: %s='%s'";
- private final Access access;
- public String hostname;
- private int port;
- public String public_fqdn;
- private Integer public_port;
- public Float latitude;
- public Float longitude;
- public final String default_fqdn;
- public final String default_container_ns;
- public final String default_name;
- public final String lentries;
- public final String lcontainer;
- public final String default_container;
- private static boolean firstlog = true;
+ private final String PUBLIC_NAME="%NS.%N";
+ private final String REGI="RegistrationProperty: %s='%s'";
+ private final Access access;
+ public String hostname;
+ private int port;
+ public String public_fqdn;
+ private Integer public_port;
+ public Float latitude;
+ public Float longitude;
+ public final String default_fqdn;
+ public final String default_container_ns;
+ public final String default_name;
+ public final String lentries;
+ public final String lcontainer;
+ public final String default_container;
+ private static boolean firstlog = true;
- public RegistrationPropHolder(final Access access, final int port) throws UnknownHostException, CadiException {
- this.access = access;
- StringBuilder errs = new StringBuilder();
- String str;
- this.port = port;
+ public RegistrationPropHolder(final Access access, final int port) throws UnknownHostException, CadiException {
+ this.access = access;
+ StringBuilder errs = new StringBuilder();
+ String str;
+ this.port = port;
- lentries=access.getProperty(Config.AAF_LOCATOR_ENTRIES,"");
- default_container = access.getProperty(Config.AAF_LOCATOR_CONTAINER, "");
- if(firstlog) {
- access.printf(Level.INIT, REGI,"default_container",default_container);
- }
- if(!default_container.isEmpty()) {
- lcontainer=',' + default_container; // "" makes a blank default Public Entry
- str = access.getProperty(Config.AAF_LOCATOR_PUBLIC_PORT+'.'+default_container, null);
- if(str==null) {
- str = access.getProperty(Config.AAF_LOCATOR_PUBLIC_PORT, null);
- }
- } else {
- lcontainer=default_container;
- str = access.getProperty(Config.AAF_LOCATOR_PUBLIC_PORT, null);
- }
- if(str!=null) {
- public_port=Integer.decode(str);
- }
- if(firstlog) {
- access.printf(Level.INIT, "RegistrationProperty: public_port='%d'",public_port);
- }
+ lentries=access.getProperty(Config.AAF_LOCATOR_ENTRIES,"");
+ default_container = access.getProperty(Config.AAF_LOCATOR_CONTAINER, "");
+ if(firstlog) {
+ access.printf(Level.INIT, REGI,"default_container",default_container);
+ }
+ if(!default_container.isEmpty()) {
+ lcontainer=',' + default_container; // "" makes a blank default Public Entry
+ str = access.getProperty(Config.AAF_LOCATOR_PUBLIC_PORT+'.'+default_container, null);
+ if(str==null) {
+ str = access.getProperty(Config.AAF_LOCATOR_PUBLIC_PORT, null);
+ }
+ } else {
+ lcontainer=default_container;
+ str = access.getProperty(Config.AAF_LOCATOR_PUBLIC_PORT, null);
+ }
+ if(str!=null) {
+ public_port=Integer.decode(str);
+ }
+ if(firstlog) {
+ access.printf(Level.INIT, "RegistrationProperty: public_port='%d'",public_port);
+ }
- hostname = access.getProperty(Config.HOSTNAME, null);
- if (hostname==null) {
- hostname = Inet4Address.getLocalHost().getHostName();
- }
- if (hostname==null) {
- mustBeDefined(errs,Config.HOSTNAME);
- }
- if(firstlog) {
- access.printf(Level.INIT, REGI,"hostname",hostname);
- }
+ hostname = access.getProperty(Config.HOSTNAME, null);
+ if (hostname==null) {
+ hostname = Inet4Address.getLocalHost().getHostName();
+ }
+ if (hostname==null) {
+ mustBeDefined(errs,Config.HOSTNAME);
+ }
+ if(firstlog) {
+ access.printf(Level.INIT, REGI,"hostname",hostname);
+ }
- public_fqdn = access.getProperty(Config.AAF_LOCATOR_PUBLIC_FQDN, hostname);
- if(firstlog) {
- access.printf(Level.INIT, REGI,"public_fqdn",public_fqdn);
- }
-
- default_name = access.getProperty(Config.AAF_LOCATOR_NAME, PUBLIC_NAME);
- if(firstlog) {
- access.printf(Level.INIT, REGI,"default_name",default_name);
- }
-
- latitude=null;
- String slatitude = access.getProperty(Config.CADI_LATITUDE, null);
- if(slatitude == null) {
- mustBeDefined(errs,Config.CADI_LATITUDE);
- } else {
- latitude = Float.parseFloat(slatitude);
- }
- if(firstlog) {
- access.printf(Level.INIT, REGI,"latitude",slatitude);
- }
+ public_fqdn = access.getProperty(Config.AAF_LOCATOR_PUBLIC_FQDN, hostname);
+ if(firstlog) {
+ access.printf(Level.INIT, REGI,"public_fqdn",public_fqdn);
+ }
- longitude=null;
- String slongitude = access.getProperty(Config.CADI_LONGITUDE, null);
- if(slongitude == null) {
- mustBeDefined(errs,Config.CADI_LONGITUDE);
- } else {
- longitude = Float.parseFloat(slongitude);
- }
- if(firstlog) {
- access.printf(Level.INIT, REGI,"longitude",slongitude);
- }
+ // Allow Container to reset the standard name for public
+ String container_public_name = access.getProperty(Config.AAF_LOCATOR_PUBLIC_NAME+'.'+default_container, null);
+ if(container_public_name==null) {
+ container_public_name = access.getProperty(Config.AAF_LOCATOR_PUBLIC_NAME, null);
+ if(container_public_name==null) {
+ container_public_name = access.getProperty(Config.AAF_LOCATOR_NAME, PUBLIC_NAME);
+ }
+ }
+ default_name = container_public_name;
+
+ if(firstlog) {
+ access.printf(Level.INIT, REGI,"default_name",default_name);
+ }
+
+ latitude=null;
+ String slatitude = access.getProperty(Config.CADI_LATITUDE, null);
+ if(slatitude == null) {
+ mustBeDefined(errs,Config.CADI_LATITUDE);
+ } else {
+ latitude = Float.parseFloat(slatitude);
+ }
+ if(firstlog) {
+ access.printf(Level.INIT, REGI,"latitude",slatitude);
+ }
- String dot_le;
- // Note: only one of the ports can be public... Therefore, only the last
- for(String le : Split.splitTrim(',', lcontainer)) {
- dot_le = le.isEmpty()?le :"."+le;
- str = access.getProperty(Config.AAF_LOCATOR_PUBLIC_FQDN+dot_le,null);
- if( str != null && !str.isEmpty()) {
- public_fqdn=str;
- if(firstlog) {
- access.printf(Level.INIT, "RegistrationProperty: public_hostname(overloaded by %s)='%s'",dot_le,public_fqdn);
- }
- }
- }
-
- default_fqdn = access.getProperty(Config.AAF_LOCATOR_FQDN, hostname);
- if(firstlog) {
- access.printf(Level.INIT, REGI,"default_fqdn",default_fqdn);
- }
- default_container_ns = access.getProperty(Config.AAF_LOCATOR_CONTAINER_NS,"");
- if(firstlog) {
- access.printf(Level.INIT, REGI,"default_container_ns",default_container_ns);
- }
- if(errs.length()>0) {
- throw new CadiException(errs.toString());
- }
- firstlog = false;
- }
+ longitude=null;
+ String slongitude = access.getProperty(Config.CADI_LONGITUDE, null);
+ if(slongitude == null) {
+ mustBeDefined(errs,Config.CADI_LONGITUDE);
+ } else {
+ longitude = Float.parseFloat(slongitude);
+ }
+ if(firstlog) {
+ access.printf(Level.INIT, REGI,"longitude",slongitude);
+ }
- private void mustBeDefined(StringBuilder errs, String propname) {
- errs.append('\n');
- errs.append(propname);
- errs.append(" must be defined.");
-
- }
+ String dot_le;
+ // Note: only one of the ports can be public... Therefore, only the last
+ for(String le : Split.splitTrim(',', lcontainer)) {
+ dot_le = le.isEmpty()?le :"."+le;
+ str = access.getProperty(Config.AAF_LOCATOR_PUBLIC_FQDN+dot_le,null);
+ if( str != null && !str.isEmpty()) {
+ public_fqdn=str;
+ if(firstlog) {
+ access.printf(Level.INIT, "RegistrationProperty: public_hostname(overloaded by %s)='%s'",dot_le,public_fqdn);
+ }
+ }
+ }
+
+ default_fqdn = access.getProperty(Config.AAF_LOCATOR_FQDN, hostname);
+ if(firstlog) {
+ access.printf(Level.INIT, REGI,"default_fqdn",default_fqdn);
+ }
+ default_container_ns = access.getProperty(Config.AAF_LOCATOR_CONTAINER_NS,"");
+ if(firstlog) {
+ access.printf(Level.INIT, REGI,"default_container_ns",default_container_ns);
+ }
+ if(errs.length()>0) {
+ throw new CadiException(errs.toString());
+ }
+ firstlog = false;
+ }
- public String getEntryFQDN(final String entry, final String dot_le) {
- String str;
- if(public_fqdn!=null && dot_le.isEmpty()) {
- str = public_fqdn;
- } else {
- str = access.getProperty(Config.AAF_LOCATOR_FQDN+dot_le, default_fqdn);
- }
- return replacements("RegistrationPropHolder.getEntryFQDN",str,entry,dot_le);
- }
-
- public String getEntryName(final String entry, final String dot_le) {
- String str;
- if(dot_le.isEmpty()) {
- str = default_name;
- } else {
- str = access.getProperty(Config.AAF_LOCATOR_NAME+dot_le, default_name);
- }
- return replacements("RegistrationPropHolder.getEntryName",str,entry,dot_le);
- }
-
-
- private String getNS(String dot_le) {
- String ns;
- ns = access.getProperty(Config.AAF_LOCATOR_APP_NS+dot_le,null);
- if(ns==null) {
- ns = access.getProperty(Config.AAF_LOCATOR_APP_NS, "");
- }
- return ns;
- }
+ private void mustBeDefined(StringBuilder errs, String propname) {
+ errs.append('\n');
+ errs.append(propname);
+ errs.append(" must be defined.");
+
+ }
-
- public String replacements(final String fromCode, final String source, final String name, final String _dot_le) {
- if(source == null) {
- return "";
- } else if(source.isEmpty()) {
- return source;
- }
- String value = source;
- String dot_le;
- if(_dot_le==null) {
- dot_le = default_container.isEmpty()?"":'.'+default_container;
- } else {
- dot_le = _dot_le;
- }
+ public String getEntryFQDN(final String entry, final String dot_le) {
+ String str;
+ if(public_fqdn!=null && dot_le.isEmpty()) {
+ str = public_fqdn;
+ } else {
+ str = access.getProperty(Config.AAF_LOCATOR_FQDN+dot_le, default_fqdn);
+ }
+ return replacements("RegistrationPropHolder.getEntryFQDN",str,entry,dot_le);
+ }
+
+ public String getEntryName(final String entry, final String dot_le) {
+ String str;
+ if(dot_le.isEmpty()) {
+ str = default_name;
+ } else {
+ str = access.getProperty(Config.AAF_LOCATOR_NAME+dot_le, default_name);
+ }
+ return replacements("RegistrationPropHolder.getEntryName",str,entry,dot_le);
+ }
+
+ public String getPublicEntryName(final String entry, final String dot_le) {
+ String str = access.getProperty(Config.AAF_LOCATOR_PUBLIC_NAME+dot_le, null);
+ if(str==null) {
+ str = access.getProperty(Config.AAF_LOCATOR_PUBLIC_NAME,null);
+ }
+ if(str==null) {
+ str = default_name;
+ }
+ return replacements("RegistrationPropHolder.getEntryName",str,entry,dot_le);
+ }
+
+
+ private String getNS(String dot_le) {
+ String ns;
+ ns = access.getProperty(Config.AAF_LOCATOR_APP_NS+dot_le,null);
+ if(ns==null) {
+ ns = access.getProperty(Config.AAF_LOCATOR_APP_NS, "AAF_NS");
+ }
+ return ns;
+ }
+
+
+ public String replacements(final String fromCode, final String source, final String name, final String _dot_le) {
+ if(source == null) {
+ return "";
+ } else if(source.isEmpty()) {
+ return source;
+ }
+ String value = source;
+ String dot_le;
+ if(_dot_le==null) {
+ dot_le = default_container.isEmpty()?"":'.'+default_container;
+ } else {
+ dot_le = _dot_le;
+ }
String aaf_locator_host = access.getProperty(Config.AAF_LOCATE_URL+dot_le,null);
if(aaf_locator_host==null) {
- aaf_locator_host = access.getProperty(Config.AAF_LOCATE_URL,null);
+ aaf_locator_host = access.getProperty(Config.AAF_LOCATE_URL,null);
}
String str;
if(aaf_locator_host!=null) {
- if("https://AAF_LOCATE_URL".equals(value)) {
- value = aaf_locator_host;
- } else {
- str = aaf_locator_host;
- if(value.indexOf(Config.AAF_LOCATE_URL_TAG)>=0) {
- if(!str.endsWith("/")) {
- str+='/';
- }
- if(!str.endsWith("/locate/")) {
- str+="locate/";
- }
- value = value.replace("https://AAF_LOCATE_URL/", str);
- }
- }
+ if("https://AAF_LOCATE_URL".equals(value)) {
+ value = aaf_locator_host;
+ } else {
+ str = aaf_locator_host;
+ if(value.indexOf(Config.AAF_LOCATE_URL_TAG)>=0) {
+ if(!str.endsWith("/")) {
+ str+='/';
+ }
+ if(!str.endsWith("/locate/")) {
+ str+="locate/";
+ }
+ if(value.startsWith("http:")) {
+ value = value.replace("http://AAF_LOCATE_URL/", str);
+ } else {
+ value = value.replace("https://AAF_LOCATE_URL/", str);
+
+ }
+ }
+ }
}
- int atC = value.indexOf("%C");
- if(atC>=0) {
- // aaf_locator_container_ns
- str = access.getProperty(Config.AAF_LOCATOR_CONTAINER_NS+dot_le, default_container_ns);
- if(str.isEmpty()) {
- value = value.replace("%CNS"+'.', str);
- }
- value = value.replace("%CNS", str);
-
- str = access.getProperty(Config.AAF_LOCATOR_CONTAINER+dot_le,default_container);
- if(str.isEmpty()) {
- value = value.replace("%C"+'.', str);
- }
- value = value.replace("%C", str);
- }
-
- if(value.indexOf("%NS")>=0) {
- str = getNS(dot_le);
- if(str==null || str.isEmpty()) {
- value = value.replace("%NS"+'.', str);
- }
- value = value.replace("%NS", str);
- }
+ int atC = value.indexOf("%C");
+ if(atC>=0) {
+ // aaf_locator_container_ns
+ str = access.getProperty(Config.AAF_LOCATOR_CONTAINER_NS+dot_le, default_container_ns);
+ if(str.isEmpty()) {
+ value = value.replace("%CNS"+'.', str);
+ }
+ value = value.replace("%CNS", str);
+
+ str = access.getProperty(Config.AAF_LOCATOR_CONTAINER+dot_le,default_container);
+ if(str.isEmpty()) {
+ value = value.replace("%C"+'.', str);
+ }
+ value = value.replace("%C", str);
+ }
+
+ if(value.indexOf("%NS")>=0) {
+ str = getNS(dot_le);
+ if(str==null || str.isEmpty()) {
+ value = value.replace("%NS"+'.', "");
+ } else {
+ value = value.replace("%NS", str);
+ }
+ }
- // aaf_root_ns
- if(value.indexOf("AAF_NS")>=0) {
- str = access.getProperty(Config.AAF_ROOT_NS, Config.AAF_ROOT_NS_DEF) + '.';
- String temp = value.replace("%AAF_NS.", str);
- if(temp.equals(value)) { // intended
- value = value.replace("AAF_NS.", str); // Backward Compatibility
- } else {
- value = temp;
- }
- }
+ // aaf_root_ns
+ if(value.indexOf("AAF_NS")>=0) {
+ str = access.getProperty(Config.AAF_ROOT_NS, Config.AAF_ROOT_NS_DEF) + '.';
+ String temp = value.replace("%AAF_NS.", str);
+ if(temp.equals(value)) { // intended
+ value = value.replace("AAF_NS.", str); // Backward Compatibility
+ } else {
+ value = temp;
+ }
+ }
-
- if(value.indexOf('%')>=0) {
+
+ if(value.indexOf('%')>=0) {
// These shouldn't be expected to have dot elements
if(name!=null) {
value = value.replace("%N", name);
if(public_fqdn!=null) {
value = value.replace("%PH", public_fqdn);
}
- }
- access.printf(Level.DEBUG,
- "RegistrationReplacement from %s, source: %s, dot_le: %s, value: %s",
- fromCode,source,dot_le,value);
+ }
+ access.printf(Level.DEBUG,
+ "RegistrationReplacement from %s, source: %s, dot_le: %s, value: %s",
+ fromCode,source,dot_le,value);
- return value;
- }
-
- public int getEntryPort(final String dot_le) {
- return public_port!=null && dot_le.isEmpty()?
- public_port:
- port;
- }
+ return value;
+ }
+
+ public int getEntryPort(final String dot_le) {
+ return public_port!=null && dot_le.isEmpty()?
+ public_port:
+ port;
+ }
- public Access access() {
- return access;
- }
+ public Access access() {
+ return access;
+ }
}
\ No newline at end of file