/* * Copyright: Almende B.V. (2014), Rotterdam, The Netherlands * License: The Apache Software License, Version 2.0 */ package com.almende.eve.test; import java.io.IOException; import java.lang.ref.WeakReference; import java.net.URISyntaxException; import junit.framework.TestCase; import org.junit.Test; import com.almende.eve.agent.Agent; import com.almende.eve.agent.AgentConfig; import com.almende.eve.agent.ExampleAgent; import com.almende.eve.transport.http.HttpTransportConfig; import com.almende.util.jackson.JOM; import com.fasterxml.jackson.databind.node.ObjectNode; /** * The Class TestAgents. */ public class TestDelete extends TestCase { /** * Test agents. * * @throws IOException * Signals that an I/O exception has occurred. * @throws URISyntaxException * the URI syntax exception * @throws InterruptedException * the interrupted exception */ @Test public void testDelete() throws IOException, URISyntaxException, InterruptedException { HttpTransportConfig transportConfig = HttpTransportConfig.create(); transportConfig.setServletUrl("http://localhost:8080/agents/"); transportConfig.setServletLauncher("JettyLauncher"); ObjectNode jettyParms = JOM.createObjectNode(); jettyParms.put("port", 8080); transportConfig.set("jetty", jettyParms); AgentConfig config = AgentConfig.create("example"); config.addTransport(transportConfig); ExampleAgent agent = new ExampleAgent(); agent.setConfig(config); transportConfig = null; config = null; WeakReference<Agent> test = new WeakReference<Agent>(agent); agent.destroy(false); agent = null; System.gc(); System.gc(); try { Thread.sleep(1000); } catch (final InterruptedException e) {} System.gc(); System.gc(); assertNull(test.get()); // LOG.warning("Sleeping for profiler connection."); // try { // Thread.sleep(20000); // } catch (final InterruptedException e) {} } }