diff --git a/core/pom.xml b/core/pom.xml index b4ff9d432b..4edb59ad58 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -397,6 +397,12 @@ log4j-slf4j2-impl provided + + jakarta.annotation + jakarta.annotation-api + 2.1.1 + compile + diff --git a/core/src/main/java/com/predic8/membrane/core/router/DefaultMainComponents.java b/core/src/main/java/com/predic8/membrane/core/router/DefaultMainComponents.java index ac88013f69..75c15473bb 100644 --- a/core/src/main/java/com/predic8/membrane/core/router/DefaultMainComponents.java +++ b/core/src/main/java/com/predic8/membrane/core/router/DefaultMainComponents.java @@ -47,7 +47,10 @@ public class DefaultMainComponents implements MainComponents { private final TimerManager timerManager = new TimerManager(); private final HttpClientFactory httpClientFactory = new HttpClientFactory(timerManager); private final KubernetesClientFactory kubernetesClientFactory = new KubernetesClientFactory(httpClientFactory); - protected ResolverMap resolverMap; + private final ResolverMap resolverMap; + + private final FlowController flowController; + private final RuleManager ruleManager; protected final Statistics statistics = new Statistics(); @@ -57,6 +60,9 @@ public DefaultMainComponents(DefaultRouter router) { this.router = router; resolverMap = new ResolverMap(httpClientFactory, kubernetesClientFactory); resolverMap.addRuleResolver(router); + flowController = new FlowController(router); + ruleManager= new RuleManager(); + ruleManager.setRouter(router); } public void init() { @@ -67,19 +73,7 @@ public void init() { } registry.registerIfAbsent(HttpClientConfiguration.class, HttpClientConfiguration::new); - - registry.registerIfAbsent(ResolverMap.class, () -> { - ResolverMap rs = new ResolverMap(httpClientFactory, kubernetesClientFactory); - rs.addRuleResolver(router); - return rs; - }); - registry.registerIfAbsent(ExchangeStore.class, LimitedMemoryExchangeStore::new); - registry.registerIfAbsent(RuleManager.class, () -> { - RuleManager rm = new RuleManager(); - rm.setRouter(router); - return rm; - }); registry.registerIfAbsent(DNSCache.class, DNSCache::new); // Transport last @@ -98,11 +92,7 @@ public void setRules(Collection proxies) { @Override public RuleManager getRuleManager() { - return getRegistry().registerIfAbsent(RuleManager.class, () -> { - RuleManager rm = new RuleManager(); - rm.setRouter(router); - return rm; - }); + return ruleManager; } public void setApplicationContext(ApplicationContext ctx) throws BeansException { @@ -177,7 +167,7 @@ public HttpClientFactory getHttpClientFactory() { } public FlowController getFlowController() { - return getRegistry().registerIfAbsent(FlowController.class, () -> new FlowController(router)); + return flowController; } public void setRegistry(BeanRegistry registry) { diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 8d6057456e..4a174ff3b2 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -22,9 +22,14 @@ - Documentation - See JmxExporter - Synchronization of BeanRegistry +- BalancerHealthMonitor: + - @PostConstruct instead of InitializingBean, DisposableBean +- Scripting: expose beanRegistry + - IfInterceptor: - Add "else" + # 7.1.0 - reverseDNS