/* * 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.net.URI; import java.util.logging.Logger; import junit.framework.TestCase; import org.junit.Test; import com.almende.eve.agent.AgentBuilder; import com.almende.eve.agent.AgentConfig; import com.almende.eve.agent.ExampleAgent; import com.almende.eve.capabilities.handler.Handler; import com.almende.eve.transport.Receiver; import com.almende.eve.transport.Transport; import com.almende.eve.transport.TransportBuilder; import com.almende.eve.transport.http.HttpTransportConfig; import com.almende.util.URIUtil; import com.almende.util.jackson.JOM; import com.fasterxml.jackson.databind.node.ObjectNode; /** * The Class TestHttp. */ public class TestHttp extends TestCase { private static final Logger LOG = Logger.getLogger(TestHttp.class.getName()); /** * Test http. * * @throws IOException * Signals that an I/O exception has occurred. */ @Test public void testHttp() throws IOException { final HttpTransportConfig config = HttpTransportConfig.create(); config.setServletUrl("http://localhost:8080/agents/"); config.setId("testAgent"); config.setServletLauncher("JettyLauncher"); final ObjectNode jettyParms = JOM.createObjectNode(); jettyParms.put("port", 8080); config.set("jetty", jettyParms); final Transport transport = new TransportBuilder().withConfig(config) .withHandle(new myReceiver()).build(); transport.send( URIUtil.create("http://localhost:8080/agents/testAgent"), "Hello World", null, null); } /** * Test manual http. * * @throws IOException * Signals that an I/O exception has occurred. */ @Test public void testManualHttp() throws IOException { final HttpTransportConfig transportConfig = HttpTransportConfig .create(); transportConfig.setServletUrl("http://localhost:8080/agents/"); transportConfig .setServletClass(com.almende.eve.transport.http.DebugServlet.class .getName()); transportConfig.setServletLauncher("JettyLauncher"); final ObjectNode jettyParms = JOM.createObjectNode(); jettyParms.put("port", 8080); transportConfig.set("jetty", jettyParms); final AgentConfig agentConf = AgentConfig.create("manual"); agentConf.addTransport(transportConfig); agentConf.setClassName(ExampleAgent.class.getName()); new AgentBuilder().withConfig(agentConf).build(); try { Thread.sleep(120000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /** * The Class myReceiver. */ public class myReceiver implements Receiver, Handler<Receiver> { /* * (non-Javadoc) * @see com.almende.eve.transport.Receiver#receive(java.lang.Object, * java.net.URI, java.lang.String) */ @Override public void receive(final Object msg, final URI senderUrl, final String tag) { LOG.warning("Received msg:'" + msg + "' from: " + senderUrl.toASCIIString()); } /* * (non-Javadoc) * @see com.almende.eve.capabilities.handler.Handler#get() */ @Override public Receiver get() { return this; } /* * (non-Javadoc) * @see * com.almende.eve.capabilities.handler.Handler#update(com.almende.eve * .capabilities.handler.Handler) */ @Override public void update(final Handler<Receiver> newHandler) { // Not used, data should be the same. } /* * (non-Javadoc) * @see com.almende.eve.capabilities.handler.Handler#getKey() */ @Override public String getKey() { // Not used, data should be the same. return null; } @Override public Receiver getNoWait() { return this; } } }