X-Git-Url: https://gerrit.onap.org/r/gitweb?p=dmaap%2Fbuscontroller.git;a=blobdiff_plain;f=dmaap-bc%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fdmaap%2Fdbcapi%2Fclient%2FDrProvConnection.java;fp=dmaap-bc%2Fsrc%2Fmain%2Fjava%2Forg%2Fonap%2Fdmaap%2Fdbcapi%2Fclient%2FDrProvConnection.java;h=0e4ae09dfe723fe734d96568ab12a52b4fb5f5e0;hp=dffe830a1ccf38e27727d7e496d9992a58421a16;hb=a4d9c6bfc2a648a6892e94ad45e8ab9f64327dc4;hpb=86532163d19990e3acfa645a367ed0e0a1c787e0 diff --git a/dmaap-bc/src/main/java/org/onap/dmaap/dbcapi/client/DrProvConnection.java b/dmaap-bc/src/main/java/org/onap/dmaap/dbcapi/client/DrProvConnection.java index dffe830..0e4ae09 100644 --- a/dmaap-bc/src/main/java/org/onap/dmaap/dbcapi/client/DrProvConnection.java +++ b/dmaap-bc/src/main/java/org/onap/dmaap/dbcapi/client/DrProvConnection.java @@ -28,9 +28,12 @@ import java.io.InputStream; import java.io.InputStreamReader; import java.io.OutputStream; import java.net.ConnectException; +import java.net.HttpURLConnection; +import java.net.MalformedURLException; import java.net.ProtocolException; import java.net.SocketException; import java.net.URL; +import java.net.UnknownHostException; import java.util.Arrays; import javax.net.ssl.HttpsURLConnection; import org.onap.dmaap.dbcapi.logging.BaseLoggingClass; @@ -53,9 +56,8 @@ public class DrProvConnection extends BaseLoggingClass { private String subContentType; private String unit_test; private String provURI; - - private HttpsURLConnection uc; + private HttpURLConnection uc; public DrProvConnection() { provURL = new DmaapService().getDmaap().getDrProvUrl(); @@ -71,45 +73,44 @@ public class DrProvConnection extends BaseLoggingClass { logger.info( "provURL=" + provURL + " provApi=" + provApi + " behalfHeader=" + behalfHeader + " feedContentType=" + feedContentType + " subContentType=" + subContentType ); unit_test = p.getProperty( "UnitTest", "No" ); - } public boolean makeFeedConnection() { - return makeConnection( provURL ); + return makeDrConnection( provURL ); } public boolean makeFeedConnection(String feedId) { - return makeConnection( provURL + "/feed/" + feedId ); + return makeDrConnection( provURL + "/feed/" + feedId ); } public boolean makeSubPostConnection( String subURL ) { String[] parts = subURL.split("/"); String revisedURL = provURL + "/" + parts[3] + "/" + parts[4]; logger.info( "mapping " + subURL + " to " + revisedURL ); - return makeConnection( revisedURL ); + return makeDrConnection( revisedURL ); } public boolean makeSubPutConnection( String subId ) { String revisedURL = provURL + "/subs/" + subId; logger.info( "mapping " + subId + " to " + revisedURL ); - return makeConnection( revisedURL ); + return makeDrConnection( revisedURL ); } public boolean makeIngressConnection( String feed, String user, String subnet, String nodep ) { String uri = String.format("/internal/route/ingress/?feed=%s&user=%s&subnet=%s&nodepatt=%s", feed, user, subnet, nodep ); - return makeConnection( provURL + uri ); + return makeDrConnection( provURL + uri ); } public boolean makeEgressConnection( String sub, String nodep ) { String uri = String.format("/internal/route/egress/?sub=%s&node=%s", sub, nodep ); - return makeConnection( provURL + uri ); + return makeDrConnection( provURL + uri ); } public boolean makeDumpConnection() { String url = provURL + provURI; - return makeConnection( url ); + return makeDrConnection( url ); } public boolean makeNodesConnection( String varName ) { String uri = String.format("/internal/api/%s", varName); - return makeConnection( provURL + uri ); + return makeDrConnection( provURL + uri ); } public boolean makeNodesConnection( String varName, String val ) { @@ -120,23 +121,55 @@ public class DrProvConnection extends BaseLoggingClass { String cv = val.replaceAll("\\|", "%7C"); String uri = String.format( "/internal/api/%s?val=%s", varName, cv ); - return makeConnection( provURL + uri ); + return makeDrConnection( provURL + uri ); + } + + public boolean makeDrConnection(String provUrl) { + boolean rc = false; + logger.info( "connect to data router at: {}", provUrl); + try { + URL pUrl = new URL(provUrl); + if (pUrl.getProtocol().equals( "https" )) { + rc = makeSecureConnection(pUrl); + } else { + rc = makeDrConnection(pUrl); + } + } catch (MalformedURLException e) { + e.printStackTrace(); + } + + return rc; } - private boolean makeConnection( String pURL ) { - + private boolean makeSecureConnection(URL u) { try { - URL u = new URL( pURL ); uc = (HttpsURLConnection) u.openConnection(); uc.setInstanceFollowRedirects(false); - logger.info( "successful connect to " + pURL ); - uc.setSSLSocketFactory(DmaapConfig.getSSLSocketFactory()); + logger.info( "successful connect to {}", u); + HttpsURLConnection ucs = (HttpsURLConnection) uc; + ucs.setSSLSocketFactory(DmaapConfig.getSSLSocketFactory()); return(true); } catch (Exception e) { - errorLogger.error( DmaapbcLogMessageEnum.HTTP_CONNECTION_ERROR, pURL, e.getMessage() ); + logger.error("Unexpected error during openConnection of {}", u, e.getMessage()); return(false); } } + + private boolean makeDrConnection(URL u) { + try { + uc = (HttpURLConnection) u.openConnection(); + uc.setInstanceFollowRedirects(false); + logger.info( "successful connect to {}", u); + return(true); + } catch(UnknownHostException uhe){ + logger.error("Caught UnknownHostException for {}", u); + return(false); + } catch (Exception e) { + logger.error("Unexpected error during openConnection of {}", u, e.getMessage()); + return(false); + } + + } public String bodyToString( InputStream is ) { logger.info( "is=" + is );