summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/onap/dmaap/dmf/mr/listener/DME2EndPointLoader.java
blob: eb5bf374afcf6c8c3cee5cd3d7135aebfb45ec5a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
/*******************************************************************************
 *  ============LICENSE_START=======================================================
 *  org.onap.dmaap
 *  ================================================================================
 *  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.dmaap.dmf.mr.listener;

import com.att.aft.dme2.api.DME2Exception;
import com.att.aft.dme2.api.DME2Manager;
import com.att.aft.dme2.manager.registry.DME2EndpointRegistry;
import com.att.eelf.configuration.EELFLogger;
import com.att.eelf.configuration.EELFManager;
import org.onap.dmaap.dmf.mr.service.impl.EventsServiceImpl;

import java.io.IOException;
import java.io.InputStream;
import java.util.Properties;

/**
 * 
 * @author anowarul.islam
 *
 */
public class DME2EndPointLoader {

	private String latitude;
	private String longitude;
	private String version;
	private String serviceName;
	private String env;
	private String routeOffer;
	private String hostName;
	private String port;
	private String contextPath;
	private String protocol;
	private String serviceURL;
	private static DME2EndPointLoader loader = new DME2EndPointLoader();

	private static final EELFLogger LOG = EELFManager.getInstance().getLogger(EventsServiceImpl.class);
	private DME2EndPointLoader() {
	}

	public static DME2EndPointLoader getInstance() {
		return loader;
	}

	/**
	 * publishing endpoints
	 */
	public void publishEndPoints() {

		try {
			InputStream input = this.getClass().getResourceAsStream("/endpoint.properties");
			Properties props = new Properties();
			props.load(input);

			latitude = props.getProperty("Latitude");
			longitude = props.getProperty("Longitude");
			version = props.getProperty("Version");
			serviceName = props.getProperty("ServiceName");
			env = props.getProperty("Environment");
			routeOffer = props.getProperty("RouteOffer");
			hostName = props.getProperty("HostName");
			port = props.getProperty("Port");
			contextPath = props.getProperty("ContextPath");
			protocol = props.getProperty("Protocol");

			System.setProperty("AFT_LATITUDE", latitude);
			System.setProperty("AFT_LONGITUDE", longitude);
			System.setProperty("AFT_ENVIRONMENT", "AFTUAT");

			serviceURL = "service=" + serviceName + "/" + "version=" + version + "/" + "envContext=" + env + "/"
					+ "routeOffer=" + routeOffer;

			DME2Manager manager = new DME2Manager("testEndpointPublish", props);
			manager.setClientCredentials("sh301n", "");
			DME2EndpointRegistry svcRegistry = manager.getEndpointRegistry();
			// Publish API takes service name, context path, hostname, port and
			// protocol as args
			svcRegistry.publish(serviceURL, contextPath, hostName, Integer.parseInt(port), protocol);

		} catch (IOException | DME2Exception e) {
			LOG.error("Failed due to :" + e);
		}

	}
/**
 * unpublishing endpoints
 */
	public void unPublishEndPoints() {

		DME2Manager manager;
		try {
			System.setProperty("AFT_LATITUDE", latitude);
			System.setProperty("AFT_LONGITUDE", longitude);
			System.setProperty("AFT_ENVIRONMENT", "AFTUAT");

			manager = DME2Manager.getDefaultInstance();
			DME2EndpointRegistry svcRegistry = manager.getEndpointRegistry();
			svcRegistry.unpublish(serviceURL, hostName, Integer.parseInt(port));
		} catch (DME2Exception e) {
			LOG.error("Failed due to DME2Exception" + e);
		}

	}

}