Fix CADI Connection to Remote DNS AAF servers on proxied network
[aaf/authz.git] / cadi / client / src / main / java / org / onap / aaf / cadi / locator / SingleEndpointLocator.java
index 23bcd4a..e9e9708 100644 (file)
@@ -7,9 +7,9 @@
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
  * You may obtain a copy of the License at
- * 
+ *
  *      http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -24,69 +24,85 @@ import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Date;
 
-import org.onap.aaf.cadi.Locator;
 import org.onap.aaf.cadi.LocatorException;
+import org.onap.aaf.cadi.config.SecurityInfoC;
+
+public class SingleEndpointLocator implements SizedLocator<URI> {
+    private final URI uri;
+    private final static Item item = new Item() {};
+    private Date noRetryUntil;
+
+    /**
+     * New constructor that works with the Config.loadLocator function
+     */
+    public SingleEndpointLocator(final SecurityInfoC<?> sec, final URI uri) throws LocatorException {
+        this.uri = uri;
+    }
+
+    public SingleEndpointLocator(final URI uri) {
+        this.uri = uri;
+    }
+
+    public SingleEndpointLocator(final String endpoint) throws LocatorException {
+        try {
+            this.uri = new URI(endpoint);
+        } catch (URISyntaxException e) {
+            throw new LocatorException(e);
+        }
+    }
 
-public class SingleEndpointLocator implements Locator<URI> {
-       private final URI uri;
-       private final static Item item = new Item() {};  
-       private Date noRetryUntil;
-       
-       public SingleEndpointLocator(final URI uri) {
-               this.uri = uri;
-       }
-       
-       public SingleEndpointLocator(final String endpoint) throws URISyntaxException {
-               this.uri = new URI(endpoint);
-       }
+    @Override
+    public URI get(Item item) throws LocatorException {
+        return uri;
+    }
 
-       @Override
-       public URI get(Item item) throws LocatorException {
-               return uri;
-       }
+    @Override
+    public boolean hasItems() {
+        if (noRetryUntil!=null) {
+            if (new Date().after(noRetryUntil)) {
+                noRetryUntil = null;
+            } else {
+                return false;
+            }
+        }
+        return true;
+    }
 
-       @Override
-       public boolean hasItems() {
-               if(noRetryUntil!=null) {
-                       if(new Date().after(noRetryUntil)) {
-                               noRetryUntil = null;
-                       } else {
-                               return false;
-                       }
-               }
-               return true;
-       }
+    @Override
+    public void invalidate(Item item) throws LocatorException {
+        // one minute timeout, because there is no other item
+        noRetryUntil = new Date(System.currentTimeMillis()+60000);
+    }
 
-       @Override
-       public void invalidate(Item item) throws LocatorException {
-               // one minute timeout, because there is no other item
-               noRetryUntil = new Date(System.currentTimeMillis()+60000); 
-       }
+    @Override
+    public Item best() throws LocatorException {
+        return item;
+    }
 
-       @Override
-       public Item best() throws LocatorException {
-               return item;
-       }
+    @Override
+    public Item first() throws LocatorException {
+        return item;
+    }
 
-       @Override
-       public Item first() throws LocatorException {
-               return item;
-       }
+    @Override
+    public Item next(Item inItem) throws LocatorException {
+        // only one item
+        return null;
+    }
 
-       @Override
-       public Item next(Item inItem) throws LocatorException {
-               // only one item
-               return null;
-       }
+    @Override
+    public boolean refresh() {
+        // Never refreshed
+        return true;
+    }
 
-       @Override
-       public boolean refresh() {
-               // Never refreshed
-               return true;
-       }
+    @Override
+    public int size() {
+        return 1;
+    }
 
-       @Override
-       public void destroy() {
-               // Nothing to do here
-       }
+    @Override
+    public void destroy() {
+        // Nothing to do here
+    }
 }