package org.wildfly.swarm.monitor; import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.URL; import java.net.URLConnection; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.container.test.api.RunAsClient; import org.jboss.arquillian.junit.Arquillian; import org.jboss.shrinkwrap.api.Archive; import org.jboss.shrinkwrap.api.ShrinkWrap; import org.jboss.shrinkwrap.api.asset.EmptyAsset; import org.junit.Test; import org.junit.runner.RunWith; import org.wildfly.swarm.Swarm; import org.wildfly.swarm.arquillian.CreateSwarm; import org.wildfly.swarm.spi.api.JARArchive; /** * @author Ken Finnigan */ @RunWith(Arquillian.class) public class MonitorArquillianTest { @Deployment(testable = false) public static Archive createDeployment() { JARArchive deployment = ShrinkWrap.create(JARArchive.class); deployment.add(EmptyAsset.INSTANCE, "nothing"); return deployment; } @CreateSwarm(startEagerly = true) public static Swarm newContainer() throws Exception { return new Swarm().fraction(new MonitorFraction()); } @RunAsClient @Test public void testEndpoints() throws Exception { System.out.println(getUrlContents("http://127.0.0.1:8080/node")); System.out.println(getUrlContents("http://127.0.0.1:8080/heap")); System.out.println(getUrlContents("http://127.0.0.1:8080/threads")); } private static String getUrlContents(String theUrl) { StringBuilder content = new StringBuilder(); try { URL url = new URL(theUrl); URLConnection urlConnection = url.openConnection(); BufferedReader bufferedReader = new BufferedReader( new InputStreamReader(urlConnection.getInputStream()) ); String line; while ((line = bufferedReader.readLine()) != null) { content.append(line + "\n"); } bufferedReader.close(); } catch (Exception e) { throw new RuntimeException(e); } return content.toString(); } }