@Microserver static class Instance{} }
private List<Class> buildClasses(Class class1, Microserver microserver) { List<Class> classes = new ArrayList(); classes.add(class1); if (microserver.classes() != null) classes.addAll(Arrays.asList(microserver.classes())); List<Plugin> modules = PluginLoader.INSTANCE.plugins.get(); if(modules.size()>0) classes.addAll(ReactiveSeq.fromStream(modules.stream()).flatMap(module -> module.springClasses().stream()).toList()); return classes; }
public Config buildConfig(Class class1) { Microserver microserver = (Microserver) class1.getAnnotation(Microserver.class); if (microserver == null){ microserver = Microserver.Instance.class.getAnnotation(Microserver.class); } String[] basePackages=microserver.basePackages(); if(basePackages.length==0){ String[] basePackagesFromClass ={class1.getPackage().getName()}; basePackages = basePackagesFromClass; } List<Class> classes = buildClasses(class1, microserver); Map<String, String> properties = buildProperties(microserver); return Config.instance().withBasePackages(basePackages).withEntityScan(microserver.entityScan()).withClasses(cyclops.data.HashSet.fromIterable(classes)) .withPropertiesName(microserver.propertiesName()).withInstancePropertiesName(microserver.instancePropertiesName()) .withServiceTypePropertiesName(microserver.serviceTypePropertiesName()) .withAllowCircularReferences(microserver.allowCircularDependencies()).withProperties(HashMap.fromMap(properties)).set(); }
public SpringContextFactory(SpringBuilder builder, Config config, Class<?> c, Set<Class<?>> classes) { PersistentSet<Class> s = config.getClasses(); for(Class next : classes){ s = s.plus(next); } s = s.plus(c); Microserver microserver = c.getAnnotation(Microserver.class); final PersistentSet<Class> immutableS = s; s = Optional.ofNullable(microserver) .flatMap(ms -> Optional.ofNullable(ms.blacklistedClasses())) .map(bl -> { Set<Class> blacklistedClasses = Arrays.stream(bl) .collect(Collectors.toSet()); PersistentSet<Class> rs = immutableS.stream() .filter(clazz -> !blacklistedClasses.contains(clazz)) .hashSet(); return rs; }) .orElse(immutableS); this.classes = s; this.config = config; springBuilder = builder; }
public Config buildConfig(Class class1) { Microserver microserver = (Microserver) class1.getAnnotation(Microserver.class); if (microserver == null){ microserver = Microserver.Instance.class.getAnnotation(Microserver.class); } String[] basePackages=microserver.basePackages(); if(basePackages.length==0){ String[] basePackagesFromClass ={class1.getPackage().getName()}; basePackages = basePackagesFromClass; } List<Class> classes = buildClasses(class1, microserver); Map<String, String> properties = buildProperties(microserver); return Config.instance().withBasePackages(basePackages).withEntityScan(microserver.entityScan()).withClasses(cyclops.data.HashSet.fromIterable(classes)) .withPropertiesName(microserver.propertiesName()).withInstancePropertiesName(microserver.instancePropertiesName()) .withServiceTypePropertiesName(microserver.serviceTypePropertiesName()) .withAllowCircularReferences(microserver.allowCircularDependencies()).withProperties(HashMap.fromMap(properties)).set(); }
public SpringContextFactory(Config config, Class<?> c, Set<Class<?>> classes) { PersistentSet<Class> s = config.getClasses() .plusAll(classes); s= s.plus(c); Microserver microserver = c.getAnnotation(Microserver.class); final PersistentSet<Class> immutableS = s; s = Optional.ofNullable(microserver) .flatMap(ms -> Optional.ofNullable(ms.blacklistedClasses())) .map(bl -> { Set<Class> blacklistedClasses = Arrays.stream(bl) .collect(Collectors.toSet()); return (PersistentSet<Class>)immutableS.stream() .filter(clazz -> !blacklistedClasses.contains(clazz)).hashSet(); }) .orElse(immutableS); this.classes = s; this.config = config; springBuilder = ReactiveSeq.fromStream(PluginLoader.INSTANCE.plugins.get() .stream()) .filter(m -> m.springBuilder() != null) .map(Plugin::springBuilder) .findFirst() .orElse(new SpringApplicationConfigurator()); }
@Microserver(basePackages = { "app.embedded.com.oath.micro.server" }) public class EmbeddedAppLocalMain { public static void main(String[] args) throws InterruptedException { new MicroserverApp( EmbeddedModule.tagInterfaceModule(Arrays.asList(TestAppRestResource.class),"test-app"), EmbeddedModule.tagInterfaceModule(Arrays.asList(AltAppRestResource.class),"alternative-app")).start(); } }
public SpringContextFactory(SpringBuilder builder, Config config, Class<?> c, Set<Class<?>> classes) { PersistentSet<Class> s = config.getClasses(); for(Class next : classes){ s = s.plus(next); } s = s.plus(c); Microserver microserver = c.getAnnotation(Microserver.class); final PersistentSet<Class> immutableS = s; s = Optional.ofNullable(microserver) .flatMap(ms -> Optional.ofNullable(ms.blacklistedClasses())) .map(bl -> { Set<Class> blacklistedClasses = Arrays.stream(bl) .collect(Collectors.toSet()); PersistentSet<Class> rs = immutableS.stream() .filter(clazz -> !blacklistedClasses.contains(clazz)) .hashSet(); return rs; }) .orElse(immutableS); this.classes = s; this.config = config; springBuilder = builder; }
private List<Class> buildClasses(Class class1, Microserver microserver) { List<Class> classes = new ArrayList(); classes.add(class1); if (microserver.classes() != null) classes.addAll(Arrays.asList(microserver.classes())); List<Plugin> modules = PluginLoader.INSTANCE.plugins.get(); if(modules.size()>0) classes.addAll(ReactiveSeq.fromStream(modules.stream()).flatMap(module -> module.springClasses().stream()).toList()); return classes; }
@Microserver(basePackages = { "app.embedded.com.oath.micro.server" }) public class EmbeddedAppLocalMain { public static void main(String[] args) throws InterruptedException { new MicroserverApp( EmbeddedModule.tagInterfaceModule(LinkedListX.of(TestAppRestResource.class),"test-app"), EmbeddedModule.tagInterfaceModule(LinkedListX.of(AltAppRestResource.class),"alternative-app")).start(); } }
public SpringContextFactory(Config config, Class<?> c, Set<Class<?>> classes) { PersistentSet<Class> s = config.getClasses() .plusAll(classes); s= s.plus(c); Microserver microserver = c.getAnnotation(Microserver.class); final PersistentSet<Class> immutableS = s; s = Optional.ofNullable(microserver) .flatMap(ms -> Optional.ofNullable(ms.blacklistedClasses())) .map(bl -> { Set<Class> blacklistedClasses = Arrays.stream(bl) .collect(Collectors.toSet()); return (PersistentSet<Class>)immutableS.stream() .filter(clazz -> !blacklistedClasses.contains(clazz)).hashSet(); }) .orElse(immutableS); this.classes = s; this.config = config; springBuilder = ReactiveSeq.fromStream(PluginLoader.INSTANCE.plugins.get() .stream()) .filter(m -> m.springBuilder() != null) .map(Plugin::springBuilder) .findFirst() .orElse(new SpringApplicationConfigurator()); }
/** * Any new classes shoud be added into blackListedClasses for test to pass until proper solution with * matching varargs will be found */ @Microserver(blacklistedClasses = {Integer.class, SpringContextFactoryTest.class}) public class SpringContextFactoryTest { @Test public void blacklisting() { SpringBuilder springBuilder = mock(SpringBuilder.class); Set<Class<?>> classes = new HashSet<>(); classes.add(Integer.class); classes.add(String.class); Config config = Config.instance().withBasePackages(new String[] {"com.aol.micro.server.spring"}).set(); new SpringContextFactory(config ,this.getClass(), classes).withSpringBuilder(springBuilder).createSpringContext(); ArgumentCaptor<Class> varArgs = ArgumentCaptor.forClass(Class.class); verify(springBuilder).createSpringApp(anyObject(), varArgs.capture()); Assert.assertTrue(varArgs.getAllValues().contains(String.class)); Assert.assertFalse(varArgs.getAllValues().contains(Integer.class)); } }
@Microserver public class DistLockRunnerTest { RestAgent rest = new RestAgent(); MicroserverApp server; @Before public void startServer() { server = new MicroserverApp( () -> "test-app"); server.start(); } @After public void stopServer() { server.stop(); } @Test public void testOwnLock() { assertThat(rest.getJson("http://localhost:8080/test-app/lock-owner/dummy-key"), is("true")); assertThat(rest.getJson("http://localhost:8080/test-app/lock-owner/dummyKeyProvider2"), is("false")); } }
@Microserver(properties={"access.log.output", "${user.home}"}) public class AccessLogConfigTest {
@Microserver public class CustomRunnerTest {
@Microserver public class ListenerRunnerTest {
@Microserver public class CustomRunnerTest {
@Microserver public class SimpleRunnerTest {
@Microserver(properties={"jackson.serialization","ALWAYS"}) public class IncludesRunnerTest {
@Microserver public class ErrorDetailsRunnerTest {