From 62c4eb45e157d502463d797c1353802ca8e1e307 Mon Sep 17 00:00:00 2001 From: sg481n Date: Fri, 25 Aug 2017 01:57:24 -0400 Subject: Update project structure for aaf/cadi Update project structure from com.att to org.onap and add distribution management and staging plugin. Issue-id: AAF-22 Change-Id: Idf2b591139e38921ad28782a51486714a05dee92 Signed-off-by: sg481n --- .../main/java/org/onap/aaf/cadi/dme2/DRcli.java | 142 +++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 client/src/main/java/org/onap/aaf/cadi/dme2/DRcli.java (limited to 'client/src/main/java/org/onap/aaf/cadi/dme2/DRcli.java') diff --git a/client/src/main/java/org/onap/aaf/cadi/dme2/DRcli.java b/client/src/main/java/org/onap/aaf/cadi/dme2/DRcli.java new file mode 100644 index 0000000..cd95bcc --- /dev/null +++ b/client/src/main/java/org/onap/aaf/cadi/dme2/DRcli.java @@ -0,0 +1,142 @@ +/******************************************************************************* + * ============LICENSE_START==================================================== + * * org.onap.aaf + * * =========================================================================== + * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. + * * =========================================================================== + * * 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. + * * See the License for the specific language governing permissions and + * * limitations under the License. + * * ============LICENSE_END==================================================== + * * + * * ECOMP is a trademark and service mark of AT&T Intellectual Property. + * * + ******************************************************************************/ +package org.onap.aaf.cadi.dme2; + +import java.net.MalformedURLException; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.List; + +import org.onap.aaf.cadi.CadiException; +import org.onap.aaf.cadi.SecuritySetter; +import org.onap.aaf.cadi.client.EClient; +import org.onap.aaf.cadi.client.Rcli; + +import com.att.aft.dme2.api.DME2Client; +import com.att.aft.dme2.api.DME2Exception; +import com.att.aft.dme2.api.DME2Manager; +import com.att.aft.dme2.manager.registry.DME2Endpoint; +import com.att.aft.dme2.request.DmeUniformResource; +import org.onap.aaf.inno.env.APIException; +import org.onap.aaf.inno.env.Data.TYPE; + +/** + * DME2 Rosetta Client + * + * JAXB defined JSON or XML over DME2 middleware + * + * + * @param + */ +public class DRcli extends Rcli { + // Can be more efficient if tied to manager, apparently. Can pass in null. + DME2Manager manager=null; + private SecuritySetter ss; + private boolean isProxy; + + public DRcli(URI uri, SecuritySetter secSet) { + this.uri = uri; + type = TYPE.JSON; + apiVersion = null; + ss=secSet; + } + + @Override + protected DRcli clone(URI uri, SecuritySetter ss) { + return new DRcli(uri,ss); + } + + + + /** + * Note from Thaniga on 11/5. DME2Client is not expected to be reused... need a fresh one + * on each transaction, which is expected to cover the Async aspects. + * + * @return + * @throws APIException + * @throws DME2Exception + */ + protected EClient client() throws CadiException { + try { + DEClient dc = new DEClient(manager,getSecuritySetter(),uri,readTimeout); + dc.setProxy(isProxy); + return dc; + } catch (DME2Exception e) { + throw new CadiException(e); + } + } + + public DRcli setManager(DME2Manager dme2Manager) { + manager = dme2Manager; + return this; + } + + public List all() throws DME2Exception, APIException { + ArrayList al = new ArrayList(); + + if(manager == null) { + manager = DME2Manager.getDefaultInstance(); + } + try { + DME2Endpoint[] endp = manager.getEndpoints(new DmeUniformResource(manager.getConfig(),uri)); + // Convert Searchable Endpoints to Direct Endpoints + for(DME2Endpoint de : endp) { + al.add(new DRcli( + new URI(uri.getScheme(),null,de.getHost(),de.getPort(),null,null,null),ss) +// new URI(uri.getScheme(),null,de.getHost(),de.getPort(),uri.getPath(),null,null),ss) + .setManager(manager) + ); + } + } catch (MalformedURLException e) { + throw new APIException("Invalid URL",e); + } catch (URISyntaxException e) { + throw new APIException("Invalid URI",e); + } + return al; + } + + @Override + public void invalidate() throws CadiException { + try { + manager.refresh(); + } catch (Exception e) { + throw new CadiException(e); + } + } + + @Override + public void setSecuritySetter(SecuritySetter ss) { + this.ss = ss; + } + + @Override + public SecuritySetter getSecuritySetter() { + return ss; + } + + public void setProxy(boolean isProxy) { + this.isProxy = isProxy; + } + +} -- cgit 1.2.3-korg