@Override public final Endpoint getEndpoint(NetworkConfig config, InetSocketAddress address) { CoapEndpoint endpoint = new CoapEndpoint(address, config); return endpoint; }
@Override public synchronized void start() throws IOException { if (started) { LOGGER.log(Level.FINE, "Endpoint at {0} is already started", getAddress()); return; setMessageDeliverer(new ClientMessageDeliverer()); LOGGER.log(Level.CONFIG, "Endpoint [{0}] requires an executor to start, using default single-threaded daemon executor", getAddress()); setExecutor(Executors.newSingleThreadScheduledExecutor( new DaemonThreadFactory("CoapEndpoint-" + connector.getAddress() + '#'))); //$NON-NLS-1$ addObserver(new EndpointObserver() { @Override public void started(final Endpoint endpoint) { LOGGER.log(Level.INFO, "Starting endpoint at {0}", getAddress()); obs.started(this); startExecutor(); } catch (IOException e) { stop(); throw e;
@Override public synchronized void destroy() { LOGGER.log(Level.INFO, "Destroying endpoint at address {0}", getAddress()); if (started) { stop(); } connector.destroy(); coapstack.destroy(); for (EndpointObserver obs : observers) { obs.destroyed(this); } }
private static void createServer() { CoapEndpoint endpoint = new CoapEndpoint(new InetSocketAddress(InetAddress.getLoopbackAddress(), 0)); resource = new StorageResource(TARGET, CONTENT_1); server = new CoapServer(); server.add(resource); server.addEndpoint(endpoint); server.start(); serverAddress = endpoint.getAddress(); }
@Before public void setUp() throws Exception { context = new MapBasedCorrelationContext(); receivedRequests = new ArrayList<Request>(); connector = new SimpleConnector(); endpoint = new CoapEndpoint(connector, CONFIG); sentLatch = new CountDownLatch(1); MessageDeliverer deliverer = new MessageDeliverer() { @Override public void deliverResponse(Exchange exchange, Response response) { } @Override public void deliverRequest(Exchange exchange) { receivedRequests.add(exchange.getRequest()); latch.countDown(); } }; endpoint.setMessageDeliverer(deliverer); endpoint.start(); }
private static void createServerAndClientEndpoints() throws Exception { NetworkConfig config = network.getStandardTestConfig() // We make sure that the sweep deduplicator is used .setString(NetworkConfig.Keys.DEDUPLICATOR, NetworkConfig.Keys.DEDUPLICATOR_MARK_AND_SWEEP) .setInt(NetworkConfig.Keys.MARK_AND_SWEEP_INTERVAL, TEST_SWEEP_DEDUPLICATOR_INTERVAL) .setLong(NetworkConfig.Keys.EXCHANGE_LIFETIME, TEST_EXCHANGE_LIFETIME) // set ACK timeout to 500ms .setInt(NetworkConfig.Keys.ACK_TIMEOUT, ACK_TIMEOUT) .setInt(NetworkConfig.Keys.MAX_RETRANSMIT, 1) // We set the block size to 16 bytes .setInt(NetworkConfig.Keys.MAX_MESSAGE_SIZE, TEST_BLOCK_SIZE) .setInt(NetworkConfig.Keys.PREFERRED_BLOCK_SIZE, TEST_BLOCK_SIZE); // Create the endpoint for the server and create surveillant serverExchangeStore = new InMemoryMessageExchangeStore(config); serverEndpoint = new CoapEndpoint(new InetSocketAddress(InetAddress.getLoopbackAddress(), 0), config, serverExchangeStore); serverEndpoint.addInterceptor(new MessageTracer()); clientExchangeStore = new InMemoryMessageExchangeStore(config); clientEndpoint = new CoapEndpoint(new InetSocketAddress(InetAddress.getLoopbackAddress(), 0), config, clientExchangeStore); clientEndpoint.start(); // Create a server with two resources: one that sends piggy-backed // responses and one that sends separate responses server = new CoapServer(config); server.addEndpoint(serverEndpoint); resource = new TestResource(timer); server.add(resource); server.start(); serverPort = serverEndpoint.getAddress().getPort(); }
@Test public void testSynchronousPing() throws Exception { final AtomicBoolean sent = new AtomicBoolean(); CoapEndpoint clientEndpoint = new CoapEndpoint(new InetSocketAddress(InetAddress.getLoopbackAddress(), 0)); clientEndpoint.addInterceptor(new MessageInterceptorAdapter() { @Override public void sendRequest(Request request) { sent.set(true); } }); String uri = TestTools.getUri(serverEndpoint, TARGET); CoapClient client = new CoapClient(uri).useExecutor(); client.setEndpoint(clientEndpoint); // Check that we get the right content when calling get() boolean ping = client.ping(); Assert.assertTrue(ping); Assert.assertTrue("Ping not sent using provided endpoint", sent.get()); }
public InetSocketAddress getSecuredAddress() { if (securedEndpoint != null) { return securedEndpoint.getAddress(); } else { return null; } } }
@After public void shutDownEndpoint() { endpoint.stop(); }
@Before public void startupServer() throws Exception { System.out.println(System.lineSeparator() + "Start " + getClass().getSimpleName()); CoapEndpoint endpoint = new CoapEndpoint(new InetSocketAddress(InetAddress.getLoopbackAddress(), 0)); server = new CoapServer(); server.addEndpoint(endpoint); server.add(new CoapResource(TARGET) { @Override public void handleGET(CoapExchange exchange) { exchange.respond(RESPONSE_PAYLOAD); } }); server.start(); serverAddress = endpoint.getAddress(); }
public InetSocketAddress getSecuredAddress() { if (securedEndpoint != null) { return securedEndpoint.getAddress(); } else { return null; } }
@Override public synchronized void destroy() { LOGGER.log(Level.INFO, "Destroying endpoint at address " + getAddress()); if (started) stop(); connector.destroy(); coapstack.destroy(); for (EndpointObserver obs:observers) obs.destroyed(this); }
@AfterClass public static void shutdownServer() { timer.shutdown(); clientEndpoint.stop(); server.destroy(); LOGGER.log(Level.FINE, "End {0}", MemoryLeakingHashMapTest.class.getSimpleName()); }
@Override public final Endpoint getEndpoint(NetworkConfig config, InetSocketAddress address) { CoapEndpoint endpoint = new CoapEndpoint(address, config); return endpoint; }
private void createSimpleServer() { CoapEndpoint endpoint = new CoapEndpoint(new InetSocketAddress(InetAddress.getLoopbackAddress(), 0)); CoapServer server = new CoapServer(); server.addEndpoint(endpoint); server.setMessageDeliverer(new MessageDeliverer() { @Override public void deliverRequest(Exchange exchange) { System.out.println("server received request"); exchange.sendAccept(); try { Thread.sleep(500); } catch (Exception e) {} Response response = new Response(ResponseCode.CONTENT); response.setConfirmable(false); response.setPayload(SERVER_RESPONSE); exchange.sendResponse(response); } @Override public void deliverResponse(Exchange exchange, Response response) { } }); server.start(); serverPort = endpoint.getAddress().getPort(); } }
@Override public synchronized void start() throws IOException { if (started) { LOGGER.log(Level.FINE, "Endpoint at " + getAddress().toString() + " is already started"); return; setExecutor(executor); addObserver(new EndpointObserver() { public void started(Endpoint endpoint) { } public void stopped(Endpoint endpoint) { } LOGGER.log(Level.INFO, "Starting endpoint at " + getAddress()); for (EndpointObserver obs:observers) obs.started(this); startExecutor(); } catch (IOException e) { stop(); throw e;
public InetSocketAddress getUnsecuredAddress() { if (unsecuredEndpoint != null) { return unsecuredEndpoint.getAddress(); } else { return null; } }
@Override public final Endpoint getSecureEndpoint(NetworkConfig config, InetSocketAddress address) { Endpoint endpoint = null; if (secureConnectorFactory != null) { endpoint = new CoapEndpoint( secureConnectorFactory.newConnector(address), config); } else { log.fine("A secure ConnectorFactory is required to create secure Endpoints."); } return endpoint; }
@BeforeClass public static void setupServer() { System.out.println(System.lineSeparator() + "Start " + MessageTypeTest.class.getSimpleName()); EndpointManager.clear(); CoapEndpoint endpoint = new CoapEndpoint(new InetSocketAddress(InetAddress.getLoopbackAddress(), 0)); server = new CoapServer(); server.addEndpoint(endpoint); server.add(new CoapResource(ACC_RESOURCE) { public void handlePOST(CoapExchange exchange) { exchange.accept(); System.out.println("gotit"); exchange.respond(SERVER_RESPONSE); } }); server.add(new CoapResource(NO_ACC_RESOURCE) { public void handlePOST(CoapExchange exchange) { exchange.respond(SERVER_RESPONSE); } }); server.start(); serverPort = endpoint.getAddress().getPort(); }