@POST @Path("/register") @Consumes("application/json") @Produces("application/json") public void register(@Suspended AsyncResponse response, RegisterEntry entry) { ReactiveSeq.of(this).foldFuture(WorkerThreads.ioExecutor.get(), s -> s.forEach(Long.MAX_VALUE, next -> { try { register.register(entry); response.resume(HashMapBuilder.of("status", "complete")); } catch (Exception e) { logger.error(e.getMessage(), e); response.resume(HashMapBuilder.of("status", "failure")); } })); }
@Before public void setUp() throws Exception { try { FileUtils.deleteDirectory(new File( System.getProperty("java.io.tmpdir"), "service-reg-writer")); } catch (Exception e) { } new File(System.getProperty("java.io.tmpdir"), "service-reg-writer").mkdirs(); writer = new Register( new RegisterConfig( new File( System.getProperty("java.io.tmpdir"), "service-reg-writer").getAbsolutePath())); entry = new RegisterEntry( 8080, "host", "module", "context", new Date(), null, 8080); }
@Test public void testRegister() { writer.register(entry); File dir = new File( new File( System.getProperty("java.io.tmpdir"), "service-reg-writer"), "module"); assertThat(dir.listFiles().length, equalTo(1)); } }
@Before public void setUp() throws Exception { try { new File( System.getProperty("java.io.tmpdir"), "service-reg-finder").delete(); } catch (Exception e) { } new File(System.getProperty("java.io.tmpdir"), "service-reg-finder").mkdirs(); registerConfig = new RegisterConfig( new File(System.getProperty("java.io.tmpdir"), "service-reg-finder").getAbsolutePath()); writer = new Register(registerConfig); finder = new Finder(registerConfig); entry = new RegisterEntry( 8080, "host", "module", "context", new Date(), null, 8080); }
@Test public void testClean() { writer.register(entry.withTime(new Date(System.currentTimeMillis() - 2000))); cleaner.clean(); List<RegisterEntry> list = finder.find(Optional.empty()); assertThat(list.size(), equalTo(0)); } }
@Before public void setUp() throws Exception { try { new File( System.getProperty("java.io.tmpdir"), "lana-service-reg-cleaner").delete(); } catch (Exception e) { } new File( System.getProperty("java.io.tmpdir"), "lana-service-reg-cleaner").mkdirs(); registerConfig = new RegisterConfig( new File( System.getProperty("java.io.tmpdir"), "lana-service-reg-cleaner").getAbsolutePath()); writer = new Register(registerConfig); finder = new Finder(registerConfig); cleaner = new Cleaner(registerConfig, 1); entry = new RegisterEntry( 8080, "host", "module", "context", new Date(), null, 8080); }
@Test public void testFind() { writer.register(entry); List<RegisterEntry> list = finder.find(Optional.empty()); assertThat(list.size(), greaterThan(0)); assertThat(list.get(0).getContext(), equalTo("context")); } }
@POST @Path("/register") @Consumes("application/json") @Produces("application/json") public void register(@Suspended AsyncResponse response, RegisterEntry entry) { ReactiveSeq.of(this).foldFuture(WorkerThreads.ioExecutor.get(), s -> s.forEach(Long.MAX_VALUE, next -> { try { register.register(entry); response.resume(HashMapBuilder.of("status", "complete")); } catch (Exception e) { logger.error(e.getMessage(), e); response.resume(HashMapBuilder.of("status", "failure")); } })); }