X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=cadi%2Faaf%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Faaf%2Fcadi%2Faaf%2Fv2_0%2FAAFLocator.java;h=ed24b1ee5292becf84458d1a9ba8173b2b387b8a;hb=3d1706fcbe7f95830ff6fd23cf679ee55c6d0595;hp=4f60edaf26f165090489e66e789d8d739ec7323d;hpb=a20accc73189d8e5454cd26049c0e6fae75da16f;p=aaf%2Fauthz.git diff --git a/cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AAFLocator.java b/cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AAFLocator.java index 4f60edaf..ed24b1ee 100644 --- a/cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AAFLocator.java +++ b/cadi/aaf/src/main/java/org/onap/aaf/cadi/aaf/v2_0/AAFLocator.java @@ -28,6 +28,7 @@ import java.util.Collections; import java.util.LinkedList; import java.util.List; +import org.onap.aaf.cadi.Access; import org.onap.aaf.cadi.CadiException; import org.onap.aaf.cadi.LocatorException; import org.onap.aaf.cadi.SecuritySetter; @@ -35,6 +36,7 @@ import org.onap.aaf.cadi.client.Future; import org.onap.aaf.cadi.config.Config; import org.onap.aaf.cadi.config.SecurityInfoC; import org.onap.aaf.cadi.http.HClient; +import org.onap.aaf.cadi.util.FixURIinfo; import org.onap.aaf.cadi.util.Split; import org.onap.aaf.misc.env.APIException; import org.onap.aaf.misc.env.Data.TYPE; @@ -46,87 +48,87 @@ import locate.v1_0.Endpoint; import locate.v1_0.Endpoints; public class AAFLocator extends AbsAAFLocator { - private static RosettaEnv env; - HClient client; - private RosettaDF epsDF; + private static RosettaEnv env; + HClient client; + private RosettaDF epsDF; - public AAFLocator(SecurityInfoC si, URI locatorURI) throws LocatorException { - super(si.access, nameFromLocatorURI(locatorURI), 10000L /* Wait at least 10 seconds between refreshes */); - SecuritySetter ss; - try { - ss=AAFConHttp.bestSS(si); - } catch (APIException | CadiException e1) { - throw new LocatorException(e1); - } - synchronized(sr) { - if(env==null) { - env = new RosettaEnv(access.getProperties()); - } - } - - int connectTimeout = Integer.parseInt(si.access.getProperty(Config.AAF_CONN_TIMEOUT, Config.AAF_CONN_TIMEOUT_DEF)); - try { - String[] path = Split.split('/',locatorURI.getPath()); - if(path.length>2 && "locate".equals(path[1])) { - StringBuilder sb = new StringBuilder(); - for(int i=3;i si, URI locatorURI) throws LocatorException { + super(si.access, nameFromLocatorURI(locatorURI), 10000L /* Wait at least 10 seconds between refreshes */); + synchronized(sr) { + if (env==null) { + env = new RosettaEnv(access.getProperties()); + } + } + + int connectTimeout = Integer.parseInt(si.access.getProperty(Config.AAF_CONN_TIMEOUT, Config.AAF_CONN_TIMEOUT_DEF)); + try { + String[] path = Split.split('/',locatorURI.getPath()); + FixURIinfo fui = new FixURIinfo(locatorURI); + if ("AAF_LOCATE_URL".equals(fui.getHost())) { + client = createClient(si.defSS, locatorURI, connectTimeout); + } else if (path.length>1 && "locate".equals(path[1])) { + StringBuilder sb = new StringBuilder(); + for (int i=3;i fr = client.futureRead(epsDF, TYPE.JSON); - if(fr.get(client.timeout())) { - List epl = new LinkedList(); - for(Endpoint endpoint : fr.value.getEndpoint()) { - epl.add(new EP(endpoint,latitude,longitude)); - } - - Collections.sort(epl); - replace(epl); - return true; - } else { - env.error().printf("Error reading location information from %s: %d %s\n",client.getURI().toString(),fr.code(),fr.body()); - } - } catch (CadiException | URISyntaxException | APIException e) { - env.error().log(e,"Error connecting " + client.getURI() + " for location."); - } - return false; - } + @Override + public boolean refresh() { + try { + client.setMethod("GET"); + client.send(); + Future fr = client.futureRead(epsDF, TYPE.JSON); + if (fr.get(client.timeout())) { + List epl = new LinkedList<>(); + for (Endpoint endpoint : fr.value.getEndpoint()) { + epl.add(new EP(endpoint,latitude,longitude)); + } + + Collections.sort(epl); + replace(epl); + return true; + } else { + env.error().printf("Error reading location information from %s: %d %s\n",client.getURI().toString(),fr.code(),fr.body()); + } + } catch (CadiException | URISyntaxException | APIException e) { + env.error().log(e,"Error connecting " + client.getURI() + " for location."); + } + return false; + } - /* (non-Javadoc) - * @see org.onap.aaf.cadi.aaf.v2_0.AbsAAFLocator#getURI() - */ - @Override - protected URI getURI() { - return client.getURI(); - } + /* (non-Javadoc) + * @see org.onap.aaf.cadi.aaf.v2_0.AbsAAFLocator#getURI() + */ + @Override + protected URI getURI() { + return client.getURI(); + } + + protected HClient createClient(SecuritySetter ss, URI uri, int connectTimeout) throws LocatorException { + return new HClient(ss, uri, connectTimeout); + } + }