import org.onap.aaf.cadi.Access;
import org.onap.aaf.cadi.Access.Level;
+import org.onap.aaf.cadi.aaf.Defaults;
import org.onap.aaf.cadi.Locator;
import org.onap.aaf.cadi.LocatorException;
import org.onap.aaf.cadi.config.Config;
protected String myhostname;
protected int myport;
protected final String aaf_locator_host;
+ protected final URI aaf_locator_uri;
private long earliest;
private final long refreshWait;
public AbsAAFLocator(Access access, String name, final long refreshMin) throws LocatorException {
aaf_locator_host = access.getProperty(Config.AAF_LOCATE_URL, null);
+ if(aaf_locator_host==null) {
+ aaf_locator_uri = null;
+ } else {
+ try {
+ aaf_locator_uri = new URI(aaf_locator_host);
+ } catch (URISyntaxException e) {
+ throw new LocatorException(e);
+ }
+ }
- epList = new LinkedList<EP>();
+ epList = new LinkedList<>();
refreshWait = refreshMin;
this.access = access;
latitude = Double.parseDouble(lat);
longitude = Double.parseDouble(lng);
}
+ if(name.startsWith(Defaults.AAF_NS)) {
+ String root_ns = access.getProperty(Config.AAF_ROOT_NS, null);
+ if(root_ns!=null) {
+ name=name.replace(Defaults.AAF_NS, root_ns);
+ }
+ }
if(name.startsWith("http")) { // simple URL
this.name = name;
this.version = Config.AAF_DEFAULT_VERSION;
} else {
String[] split = Split.split(':', name);
-
- switch(split.length) {
- case 1:
- this.name = split[0];
- this.version = Config.AAF_DEFAULT_VERSION;
- break;
- case 0:
- this.name = name;
- this.version = Config.AAF_DEFAULT_VERSION;
- break;
- default:
- this.version = split[1];
- this.name = split[0];
-
- }
+ this.name = split[0];
+ this.version = (split.length > 1) ? split[1] : Config.AAF_DEFAULT_VERSION;
}
}
if(key.startsWith("http")) {
if(name!=null) {
if(locatorCreator != null) {
- if(name!=null) {
- AbsAAFLocator<?> aal = locatorCreator.create(name, version);
- if(pathInfo!=null) {
- aal.setPathInfo(pathInfo);
- }
- return aal;
+ AbsAAFLocator<?> aal = locatorCreator.create(name, version);
+ if(pathInfo!=null) {
+ aal.setPathInfo(pathInfo);
}
+ return aal;
}
} else {
return new PropertyLocator(key);
@Override
public Item best() throws LocatorException {
if(!hasItems()) {
- throw new LocatorException("No Entries found" + (pathInfo==null?"":(" for " + pathInfo)));
+ throw new LocatorException("No Entries found for '" + aaf_locator_uri.toString() + "/locate/" + name + ':' + version + '\'');
}
- List<EP> lep = new ArrayList<EP>();
+ List<EP> lep = new ArrayList<>();
EP first = null;
// Note: Deque is sorted on the way by closest distance
Iterator<EP> iter = getIterator();
try {
return new URI(rv.getScheme(),rv.getUserInfo(),rv.getHost(),rv.getPort(),pathInfo,query,fragment);
} catch (URISyntaxException e) {
- throw new LocatorException("Error coping URL");
+ throw new LocatorException("Error copying URL");
}
}
return rv;