Add optional decompressData field to DR_Sub
Change-Id: Ib9af7cbd5d40eace4d952fb10d9f667919c4df87
Issue-ID: DMAAP-1059
Signed-off-by: econwar <conor.ward@est.tech>
diff --git a/src/main/java/org/onap/dmaap/dbcapi/model/DR_Sub.java b/src/main/java/org/onap/dmaap/dbcapi/model/DR_Sub.java
index 9b6e2d7..9d30021 100644
--- a/src/main/java/org/onap/dmaap/dbcapi/model/DR_Sub.java
+++ b/src/main/java/org/onap/dmaap/dbcapi/model/DR_Sub.java
@@ -45,15 +45,16 @@
private boolean guaranteedDelivery;
private boolean guaranteedSequence;
private boolean privilegedSubscriber;
-
+ private boolean decompressData;
+
// NOTE: the following fields are optional in the API but not stored in the DB
+
private String feedName;
private String feedVersion;
-
public DR_Sub() {
}
-
+
public DR_Sub( String dLN,
String uN,
String uP,
@@ -71,12 +72,12 @@
this.setStatus( DmaapObject_Status.NEW );
this.subId = "0";
}
-
+
public DR_Sub ( String json ) {
logger.info( "DR_Sub:" + json );
JSONParser parser = new JSONParser();
JSONObject jsonObj;
-
+
try {
jsonObj = (JSONObject) parser.parse( json );
} catch ( ParseException pe ) {
@@ -87,7 +88,7 @@
this.setOwner( (String) jsonObj.get("subscriber"));
this.setSuspended( (boolean) jsonObj.get("suspend"));
-
+
try {
JSONObject links = (JSONObject) jsonObj.get("links");
String url = (String) links.get("feed");
@@ -97,7 +98,7 @@
logger.info( "feedid="+ this.getFeedId() );
this.setLogURL( (String) links.get("log") );
} catch (NullPointerException npe ) {
-
+
}
try {
this.setGuaranteedDelivery( (boolean) jsonObj.get("guaranteed_delivery"));
@@ -114,20 +115,23 @@
} catch( NullPointerException npe ) {
this.setPrivilegedSubscriber(false);
}
-
+ try {
+ this.setDecompressData((boolean) jsonObj.get("decompressData"));
+ } catch( NullPointerException npe ) {
+ this.setDecompressData(false);
+ }
+
JSONObject del = (JSONObject) jsonObj.get("delivery");
- this.setDeliveryURL( (String) del.get("url") );
+ this.setDeliveryURL( (String) del.get("url") );
this.setUsername( (String) del.get("user"));
this.setUserpwd( (String) del.get( "password"));
this.setUse100((boolean) del.get( "use100"));
-
-
this.setStatus( DmaapObject_Status.VALID );
logger.info( "new DR_Sub returning");
}
-
+
public String getOwner() {
return owner;
}
@@ -234,8 +238,14 @@
public void setPrivilegedSubscriber(boolean privilegedSubscriber) {
this.privilegedSubscriber = privilegedSubscriber;
}
-
-
+
+ public boolean isDecompressData() {
+ return decompressData;
+ }
+
+ public void setDecompressData(boolean decompressData) {
+ this.decompressData = decompressData;
+ }
public String getFeedName() {
return feedName;
@@ -260,31 +270,32 @@
return toProvJSON().getBytes(StandardCharsets.UTF_8);
}
// returns the DR_Sub object in JSON that conforms to ONAP DR Prov Server expectations
- public String toProvJSON() {
+ public String toProvJSON() {
// this is the original DR API that was contributed to ONAP
String postJSON = String.format("{\"suspend\": %s, \"delivery\":"
+ "{\"url\": \"%s\", \"user\": \"%s\", \"password\": \"%s\", \"use100\": %s }"
+ ", \"metadataOnly\": %s, \"groupid\": \"%s\", \"follow_redirect\": %s "
- + ", \"privilegedSubscriber\": %s "
+ + ", \"privilegedSubscriber\": %s, \"decompress\": %s "
+ "}"
,this.suspended
,this.getDeliveryURL()
,this.getUsername()
,this.getUserpwd()
- ,this.isUse100()
+ ,this.isUse100()
,"false"
,"0"
,"true"
,this.isPrivilegedSubscriber()
- );
-
+ ,this.isDecompressData()
+ );
+
logger.info( postJSON );
return postJSON;
}
// returns the DR_Sub object in JSON that conforms to AT&T DR Prov Server expectations
// In Jan, 2019, the DR API used internally at AT&T diverged, so this function can be used in
// that runtime environment
- public String toProvJSONforATT() {
+ public String toProvJSONforATT() {
// in DR 3.0, API v2.1 a new groupid field is added. We are not using this required field so just set it to 0.
// we send this regardless of DR Release because older versions of DR seem to safely ignore it
// and soon those versions won't be around anyway...
@@ -312,12 +323,12 @@
,"true"
,this.isGuaranteedDelivery()
,this.isGuaranteedSequence()
- );
-
+ );
+
logger.info( postJSON );
return postJSON;
}
-
+
@Override
public String toString() {
String rc = String.format ( "DR_Sub: {dcaeLocationName=%s username=%s userpwd=%s feedId=%s deliveryURL=%s logURL=%s subid=%s use100=%s suspended=%s owner=%s}",
diff --git a/src/main/resources/schema_12.sql b/src/main/resources/schema_12.sql
index 7aaab11..22f0559 100644
--- a/src/main/resources/schema_12.sql
+++ b/src/main/resources/schema_12.sql
@@ -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.
@@ -21,9 +21,10 @@
@alter table dr_sub
- add column guaranteed_delivery boolean,
- add column guaranteed_sequence boolean,
- add column privileged_subscriber boolean
+ add column guaranteed_delivery boolean,
+ add column guaranteed_sequence boolean,
+ add column privileged_subscriber boolean,
+ add column decompress_data boolean
;
diff --git a/src/test/java/org/onap/dmaap/dbcapi/model/DRSubTest.java b/src/test/java/org/onap/dmaap/dbcapi/model/DRSubTest.java
index 480ff07..59a4023 100644
--- a/src/test/java/org/onap/dmaap/dbcapi/model/DRSubTest.java
+++ b/src/test/java/org/onap/dmaap/dbcapi/model/DRSubTest.java
@@ -69,7 +69,7 @@
assertTrue( t.isGuaranteedDelivery() == false );
assertTrue( t.isGuaranteedSequence() == false );
assertTrue( t.isPrivilegedSubscriber() == false );
-
+ assertTrue( t.isDecompressData() == false );
}
@Test
@@ -113,6 +113,8 @@
assertTrue( t.isGuaranteedSequence() == v );
t.setPrivilegedSubscriber(v);
assertTrue( t.isPrivilegedSubscriber() == v );
+ t.setDecompressData(v);
+ assertTrue( t.isDecompressData() == v );
}
@Test