Improve support for http to MR
[dmaap/dbcapi.git] / src / main / java / org / onap / dmaap / dbcapi / model / MR_Cluster.java
1 /*-
2  * ============LICENSE_START=======================================================
3  * org.onap.dmaap
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  * 
11  *      http://www.apache.org/licenses/LICENSE-2.0
12  * 
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20
21 package org.onap.dmaap.dbcapi.model;
22
23 import javax.xml.bind.annotation.XmlRootElement;
24
25 import org.onap.dmaap.dbcapi.util.DmaapTimestamp;
26
27
28
29 @XmlRootElement
30 public class MR_Cluster extends DmaapObject {
31
32         private String dcaeLocationName;
33         private String fqdn;
34         private String[] hosts;
35         private DmaapTimestamp lastMod;
36         private String  topicProtocol;
37         private String  topicPort;
38
39         
40         // TODO: make this a system property
41         private static String defaultTopicProtocol = "https";
42         private static String defaultTopicPort = "3905";
43         
44
45
46
47         public MR_Cluster() {
48                 this.topicProtocol = defaultTopicProtocol;
49                 this.topicPort = defaultTopicPort;
50                 this.hosts = new String[3];
51                 this.lastMod = new DmaapTimestamp();
52                 this.lastMod.mark();
53
54                 debugLogger.debug( "MR_Cluster constructor " + this.lastMod );
55                 
56         }
57         
58         // Deprecate this constructor
59         public MR_Cluster( String dLN,
60                                                 String f,
61                                                 String a,
62                                                 String[] h ) {
63                 this.dcaeLocationName = dLN;
64                 this.fqdn = f;
65                 this.hosts = new String[3];
66                 this.hosts[0] = h[0];
67                 this.hosts[1] = h[1];
68                 this.hosts[2] = h[2];
69                 this.topicProtocol = defaultTopicProtocol;
70                 this.topicPort = defaultTopicPort;
71                 this.lastMod = new DmaapTimestamp();
72                 this.lastMod.mark();
73
74                 debugLogger.debug( "depracated MR_Cluster constructor w initialization complete" + this.lastMod.getVal() );
75         }
76         
77         // new style constructor
78         public MR_Cluster( String dLN,
79                         String f,
80                         String prot,
81                         String port ) {
82                 this.dcaeLocationName = dLN;
83                 this.fqdn = f;
84                 this.hosts = new String[3];
85                 this.hosts[0] = fqdn;
86                 this.hosts[1] = fqdn;
87                 this.hosts[2] = fqdn;
88                 this.topicProtocol = prot;
89                 this.topicPort = port;
90                 this.lastMod = new DmaapTimestamp();
91                 this.lastMod.mark();
92                 
93                 debugLogger.debug( "MR_Cluster constructor w initialization complete" + this.lastMod.getVal() );
94 }
95         public String getDcaeLocationName() {
96                 return dcaeLocationName;
97         }
98
99         public void setDcaeLocationName(String dcaeLocationName) {
100                 this.dcaeLocationName = dcaeLocationName;
101         }
102
103         public String getFqdn() {
104                 return fqdn;
105         }
106
107         public void setFqdn(String fqdn) {
108                 this.fqdn = fqdn;
109         }
110
111         public String[] getHosts() {
112                 return hosts;
113         }
114
115         public void setHosts(String[] hosts) {
116                 this.hosts = hosts;
117         }
118
119         public String getTopicProtocol() {
120                 return topicProtocol;
121         }
122
123         public void setTopicProtocol(String topicProtocol) {
124                 this.topicProtocol = topicProtocol;
125         }
126
127         public String getTopicPort() {
128                 return topicPort;
129         }
130
131         public void setTopicPort(String topicPort) {
132                 this.topicPort = topicPort;
133         }
134
135
136
137         public String genTopicURL(String overideFqdn, String topic) {
138
139                 StringBuilder str = new StringBuilder( topicProtocol );
140                 str.append("://")
141                         .append( overideFqdn != null ? overideFqdn : fqdn)
142                         .append(":")
143                         .append(topicPort)
144                         .append("/events/")
145                         .append(topic);
146                 
147                 return str.toString();
148
149
150         }
151
152
153 }