@Test public void defaultResourcesNew(){ Module m = ConfigurableModule.builder().defaultResources(Arrays.asList(this.getClass())).build(); assertThat(m.getDefaultResources().size(),equalTo(1)); } @Test
public <T> ConfigurableModule withServerConfigManager(Consumer<WebServerProvider<?>> serverConfigManager) { return new ConfigurableModule(jaxRsResourceObjects, restResourceClasses, restAnnotationClasses, defaultResources, listeners, requestListeners, filters, servlets, jaxWsRsApplication, providers, context, springConfigurationClasses, propertyOverrides, defaultJaxRsPackages, (Consumer) serverConfigManager, resourceConfigManager, serverProperties, resetAll); }
@Override public Set<Class<?>> getRestResourceClasses() { if (restResourceClasses != null) return SetX.fromIterable(concat(restResourceClasses, extract(() -> Collections.singletonList(CommonRestResource.class)))); return Module.super.getRestResourceClasses(); }
@Test public void testWithProviders() { assertThat(unchanged.withProviders(this.providers).getProviders(),is(module.getProviders())); }
@Test public void testProviders(){ System.out.println(ConfigurableModule.builder().build().getProviders()); //test MyPlugin working System.out.println(new ModuleImpl().getProviders()); String additional = ReactiveSeq .fromStream( Arrays.<Plugin>asList(new TestPlugin()) .stream()).filter(module -> module.providers()!=null) .concatMap(Plugin::providers) .join(","); assertThat(additional, equalTo("")); } static class ModuleImpl implements Module{
public static void main(String[] args){ new MicroserverApp(ConfigurableModule.builder().context("test-app") .build().<ResourceConfig>withResourceConfigManager(rc->rc.getJaxRsConfig().register(new CustomBinder()))) .run(); } @GET
@Override public Map<String, Object> getServerProperties() { if (serverProperties != null) { return MapX.fromMap(serverProperties).plusAll(extractMap(() -> Module.super.getServerProperties())); } else { return Module.super.getServerProperties(); } }
@Test public void testGetProviders() { assertThat(module.getProviders(),is(this.providers)); } @Test
@Test public void testProviders(){ //test MyPlugin working assertThat("com.oath.micro.server.rest.providers,com.my.new.provider,com.my.new.provider2", equalTo(ConfigurableModule.builder().build().getProviders())); System.out.println(new ModuleImpl().getProviders()); String additional = ReactiveSeq .fromStream( Arrays.asList(new MyPlugin()) .stream()).filter(module -> module.providers()!=null) .concatMap(Plugin::providers) .join(","); assertThat(additional, equalTo("com.my.new.provider,com.my.new.provider2")); }
@Override public Map<String, Filter> getFilters(ServerData data) { if (filters != null) return MapX.fromMap(filters).plusAll(extractMap(() -> Module.super.getFilters(data))); return Module.super.getFilters(data); }
@Test public void testGetProvidersUnchanged() { assertThat(unchanged.getProviders(),is(m.getProviders())); }
@Test public void defaultResourcesDefault(){ Module m = ConfigurableModule.builder().build(); assertThat(m.getDefaultResources().size(),equalTo(0)); } @Test
@Override public Set<Object> getJaxRsResourceObjects() { if (this.jaxRsResourceObjects != null) return SetX.fromIterable(concat(this.jaxRsResourceObjects, extract(() -> Module.super.getJaxRsResourceObjects()))); return Module.super.getJaxRsResourceObjects(); }
@Override public Map<String, Servlet> getServlets(ServerData data) { if (servlets != null) return MapX.fromMap(servlets).plusAll(extractMap(() -> Module.super.getServlets(data))); return Module.super.getServlets(data); }
public <T> ConfigurableModule withResourceConfigManager(Consumer<JaxRsProvider<T>> resourceConfigManager) { return new ConfigurableModule(jaxRsResourceObjects, restResourceClasses, restAnnotationClasses, defaultResources, listeners, requestListeners, filters, servlets, jaxWsRsApplication, providers, context, springConfigurationClasses, propertyOverrides, defaultJaxRsPackages, serverConfigManager, (Consumer) resourceConfigManager, serverProperties, resetAll); }
@Test public void resetAllIsFalse(){ ConfigurableModule m = ConfigurableModule.builder().build(); assertFalse(m.resetAll); } @Test
@Override public List<ServletContextListener> getListeners(ServerData data) { if (listeners != null) return ListX.fromIterable((concat(this.listeners, extract(() -> Module.super.getListeners(data))))); return Module.super.getListeners(data); }
@Override public Map<String, Servlet> getServlets(ServerData data) { if (servlets != null) return MapX.fromMap(servlets).plusAll(extractMap(() -> Module.super.getServlets(data))); return Module.super.getServlets(data); }
public <T> ConfigurableModule withResourceConfigManager(Consumer<JaxRsProvider<T>> resourceConfigManager) { return new ConfigurableModule(jaxRsResourceObjects, restResourceClasses, restAnnotationClasses, defaultResources, listeners, requestListeners, filters, servlets, jaxWsRsApplication, providers, context, springConfigurationClasses, propertyOverrides, defaultJaxRsPackages, serverConfigManager, (Consumer) resourceConfigManager, serverProperties, resetAll); }
@Before public void startServer(){ Map<String, Servlet> servlets = new HashMap<>(); servlets.put("/configured", new ConfiguredServlet()); server = new MicroserverApp( AppRunnerLocalMain.class, ConfigurableModule.builder().context("test-app").servlets(servlets ).build()); server.start(); }