Start of DR API diverge
[dmaap/dbcapi.git] / src / main / java / org / onap / dmaap / dbcapi / client / DrProvConnection.java
index 8b3a4c4..eda3653 100644 (file)
@@ -3,6 +3,8 @@
  * org.onap.dmaap
  * ================================================================================
  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ *
+ * Modifications Copyright (C) 2019 IBM.
  * ================================================================================
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
 
 package org.onap.dmaap.dbcapi.client;
 
-import java.io.BufferedReader;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.io.OutputStream;
-import java.net.ConnectException;
-import java.net.ProtocolException;
-import java.net.SocketException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-
-import javax.net.ssl.HttpsURLConnection;
-
-import org.apache.log4j.Logger;
-import org.apache.log4j.PropertyConfigurator;
 import org.onap.dmaap.dbcapi.logging.BaseLoggingClass;
 import org.onap.dmaap.dbcapi.logging.DmaapbcLogMessageEnum;
 import org.onap.dmaap.dbcapi.model.ApiError;
-import org.onap.dmaap.dbcapi.model.DR_Pub;
 import org.onap.dmaap.dbcapi.model.DR_Sub;
 import org.onap.dmaap.dbcapi.model.Feed;
 import org.onap.dmaap.dbcapi.service.DmaapService;
-import org.onap.dmaap.dbcapi.util.RandomInteger;
+import org.onap.dmaap.dbcapi.util.DmaapConfig;
+
+import javax.net.ssl.HttpsURLConnection;
+import java.io.*;
+import java.net.ConnectException;
+import java.net.ProtocolException;
+import java.net.SocketException;
+import java.net.URL;
+import java.util.Arrays;
 
 
 
@@ -51,6 +44,10 @@ public class DrProvConnection extends BaseLoggingClass {
           
    
        private String provURL;
+       private String provApi;
+       private String  behalfHeader;
+       private String  feedContentType;
+       private String  subContentType;
        
        private HttpsURLConnection uc;
 
@@ -60,6 +57,13 @@ public class DrProvConnection extends BaseLoggingClass {
                if ( provURL.length() < 1 ) {
                        errorLogger.error( DmaapbcLogMessageEnum.PREREQ_DMAAP_OBJECT, "getDrProvUrl");
                }
+               DmaapConfig p = (DmaapConfig)DmaapConfig.getConfig();
+               provApi = p.getProperty( "DR.provApi", "ONAP" );
+               behalfHeader = p.getProperty( "DR.onBehalfHeader", "X-DR-ON-BEHALF-OF");
+               feedContentType = p.getProperty( "DR.feedContentType", "application/vnc.dr.feed");
+               subContentType = p.getProperty( "DR.subContentType", "application/vnd.dr.subscription");
+               logger.info( "provURL=" + provURL + " provApi=" + provApi + " behalfHeader=" + behalfHeader
+                               + " feedContentType=" + feedContentType + " subContentType=" + subContentType );
                        
        }
        
@@ -151,9 +155,9 @@ public class DrProvConnection extends BaseLoggingClass {
                try {
                        logger.info( "uc=" + uc );
                        uc.setRequestMethod("POST");
-                       uc.setRequestProperty("Content-Type", "application/vnd.att-dr.feed");
+                       uc.setRequestProperty("Content-Type", feedContentType);
                        uc.setRequestProperty( "charset", "utf-8");
-                       uc.setRequestProperty( "X-ATT-DR-ON-BEHALF-OF", postFeed.getOwner() );
+                       uc.setRequestProperty( behalfHeader, postFeed.getOwner() );
                        uc.setRequestProperty( "Content-Length", Integer.toString( postData.length ));
                        uc.setUseCaches(false);
                        uc.setDoOutput(true);
@@ -239,9 +243,9 @@ public class DrProvConnection extends BaseLoggingClass {
 
                try {
                        uc.setRequestMethod("POST");
-//                     uc.setRequestProperty("Content-Type", "application/vnd.att-dr.feed");
+//                     uc.setRequestProperty("Content-Type", feedContenType );
 //                     uc.setRequestProperty( "charset", "utf-8");
-//                     uc.setRequestProperty( "X-ATT-DR-ON-BEHALF-OF", postFeed.getOwner() );
+//                     uc.setRequestProperty( behalfHeader, postFeed.getOwner() );
 //                     uc.setRequestProperty( "Content-Length", Integer.toString( postData.length ));
 //                     uc.setUseCaches(false);
 //                     uc.setDoOutput(true);   
@@ -288,7 +292,7 @@ public class DrProvConnection extends BaseLoggingClass {
        
        public String doPostDr_Sub( DR_Sub postSub, ApiError err ) {
                logger.info( "entry: doPostDr_Sub() "  );
-               byte[] postData = postSub.getBytes();
+               byte[] postData = postSub.getBytes(provApi );
                logger.info( "post fields=" + postData );
                String responsemessage = null;
                String responseBody = null;
@@ -297,9 +301,9 @@ public class DrProvConnection extends BaseLoggingClass {
        
                        uc.setRequestMethod("POST");
                
-                       uc.setRequestProperty("Content-Type", "application/vnd.att-dr.subscription");
+                       uc.setRequestProperty("Content-Type", subContentType );
                        uc.setRequestProperty( "charset", "utf-8");
-                       uc.setRequestProperty( "X-ATT-DR-ON-BEHALF-OF", "DGL" );
+                       uc.setRequestProperty( behalfHeader, "DGL" );
                        uc.setRequestProperty( "Content-Length", Integer.toString( postData.length ));
                        uc.setUseCaches(false);
                        uc.setDoOutput(true);
@@ -369,9 +373,9 @@ public class DrProvConnection extends BaseLoggingClass {
                try {
                        logger.info( "uc=" + uc );
                        uc.setRequestMethod("PUT");
-                       uc.setRequestProperty("Content-Type", "application/vnd.att-dr.feed");
+                       uc.setRequestProperty("Content-Type", feedContentType );
                        uc.setRequestProperty( "charset", "utf-8");
-                       uc.setRequestProperty( "X-ATT-DR-ON-BEHALF-OF", putFeed.getOwner() );
+                       uc.setRequestProperty( behalfHeader, putFeed.getOwner() );
                        uc.setRequestProperty( "Content-Length", Integer.toString( postData.length ));
                        uc.setUseCaches(false);
                        uc.setDoOutput(true);
@@ -453,7 +457,7 @@ public class DrProvConnection extends BaseLoggingClass {
        }
        public String doPutDr_Sub(DR_Sub postSub, ApiError err) {
                logger.info( "entry: doPutDr_Sub() "  );
-               byte[] postData = postSub.getBytes();
+               byte[] postData = postSub.getBytes(provApi);
                logger.info( "post fields=" + postData );
                String responsemessage = null;
                String responseBody = null;
@@ -462,9 +466,9 @@ public class DrProvConnection extends BaseLoggingClass {
        
                        uc.setRequestMethod("PUT");
                
-                       uc.setRequestProperty("Content-Type", "application/vnd.att-dr.subscription");
+                       uc.setRequestProperty("Content-Type", subContentType );
                        uc.setRequestProperty( "charset", "utf-8");
-                       uc.setRequestProperty( "X-ATT-DR-ON-BEHALF-OF", "DGL" );
+                       uc.setRequestProperty( behalfHeader, "DGL" );
                        uc.setRequestProperty( "Content-Length", Integer.toString( postData.length ));
                        uc.setUseCaches(false);
                        uc.setDoOutput(true);
@@ -539,9 +543,9 @@ public class DrProvConnection extends BaseLoggingClass {
        
                        uc.setRequestMethod("GET");
                
-                       //uc.setRequestProperty("Content-Type", "application/vnd.att-dr.subscription");
+                       //uc.setRequestProperty("Content-Type", subContentType );
                        //uc.setRequestProperty( "charset", "utf-8");
-                       //uc.setRequestProperty( "X-ATT-DR-ON-BEHALF-OF", "DGL" );
+                       //uc.setRequestProperty( behalfHeader, "DGL" );
                        //uc.setRequestProperty( "Content-Length", Integer.toString( postData.length ));
                        //uc.setUseCaches(false);
                        //uc.setDoOutput(true);
@@ -624,9 +628,9 @@ public class DrProvConnection extends BaseLoggingClass {
        
                        uc.setRequestMethod("PUT");
                
-                       //uc.setRequestProperty("Content-Type", "application/vnd.att-dr.subscription");
+                       //uc.setRequestProperty("Content-Type", subContentType );
                        //uc.setRequestProperty( "charset", "utf-8");
-                       //uc.setRequestProperty( "X-ATT-DR-ON-BEHALF-OF", "DGL" );
+                       //uc.setRequestProperty( behalfHeader, "DGL" );
                        //uc.setRequestProperty( "Content-Length", Integer.toString( postData.length ));
                        uc.setUseCaches(false);
                        //uc.setDoOutput(true);
@@ -696,9 +700,9 @@ public class DrProvConnection extends BaseLoggingClass {
                try {
                        logger.info( "uc=" + uc );
                        uc.setRequestMethod("DELETE");
-                       uc.setRequestProperty("Content-Type", "application/vnd.att-dr.feed");
+                       uc.setRequestProperty("Content-Type", feedContentType );
                        uc.setRequestProperty( "charset", "utf-8");
-                       uc.setRequestProperty( "X-ATT-DR-ON-BEHALF-OF", putFeed.getOwner() );
+                       uc.setRequestProperty( behalfHeader, putFeed.getOwner() );
                        //uc.setRequestProperty( "Content-Length", Integer.toString( postData.length ));
                        uc.setUseCaches(false);
                        uc.setDoOutput(true);
@@ -781,7 +785,7 @@ public class DrProvConnection extends BaseLoggingClass {
        
        public String doDeleteDr_Sub(DR_Sub delSub, ApiError err) {
                logger.info( "entry: doDeleteDr_Sub() "  );
-               byte[] postData = delSub.getBytes();
+               byte[] postData = delSub.getBytes(provApi);
                logger.info( "post fields=" + postData );
                String responsemessage = null;
                String responseBody = null;
@@ -790,9 +794,9 @@ public class DrProvConnection extends BaseLoggingClass {
        
                        uc.setRequestMethod("DELETE");
                
-                       uc.setRequestProperty("Content-Type", "application/vnd.att-dr.subscription");
+                       uc.setRequestProperty("Content-Type", subContentType);
                        uc.setRequestProperty( "charset", "utf-8");
-                       uc.setRequestProperty( "X-ATT-DR-ON-BEHALF-OF", "DGL" );
+                       uc.setRequestProperty( behalfHeader, "DGL" );
                        //uc.setRequestProperty( "Content-Length", Integer.toString( postData.length ));
                        uc.setUseCaches(false);
                        uc.setDoOutput(true);
@@ -831,12 +835,11 @@ public class DrProvConnection extends BaseLoggingClass {
                      }
                  }
             }
+               err.setCode(rc);
             if (rc == 204 ) {
                        responseBody = bodyToString( uc.getInputStream() );
                        logger.info( "responseBody=" + responseBody );
-
             } else {
-               err.setCode(rc);
                err.setMessage(responsemessage);
             }