package com.ifsoft.jmxweb.plugin;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.*;
import org.jivesoftware.util.*;
import org.jivesoftware.openfire.XMPPServer;
public class HttpClient {
private static Logger Log = LoggerFactory.getLogger("JmxWebPlugin:HttpClient");
StringBuilder resultString = new StringBuilder("");
String line="";
public String getMemoryData(){
try {
String port = JiveGlobals.getProperty("httpbind.port.plain", "7070");
String host = XMPPServer.getInstance().getServerInfo().getHostname();
String username = JiveGlobals.getProperty("jmxweb.admin.username", "admin");
String password = JiveGlobals.getProperty("jmxweb.admin.password", "admin");
URL url = new URL("http://" + username + ":" + password + "@" + host + ":" + port + "/jolokia/read/java.lang:type=Memory/HeapMemoryUsage");
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
if (conn.getResponseCode() != 200) {
throw new RuntimeException("HTTP Call Failed : HTTP error code : " + conn.getResponseCode());
}
BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
while ((line = br.readLine()) != null) {
resultString.append(line);
}
Log.info("Memory data: "+ resultString.toString());
conn.disconnect();
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return resultString.toString();
}
}