This is an automated email from the ASF dual-hosted git repository. gnodet pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push: new 8334ef23444 Make EndpointRegistry extends Map<NormalizedEndpointUri, Endpoint> (#14066) 8334ef23444 is described below commit 8334ef23444edb7a25ba62cad6998c5e096dca3b Author: Guillaume Nodet <gno...@gmail.com> AuthorDate: Wed May 15 07:44:05 2024 +0200 Make EndpointRegistry extends Map<NormalizedEndpointUri, Endpoint> (#14066) --- .../camel/component/rest/DefaultRestRegistry.java | 6 ++-- .../main/java/org/apache/camel/CamelContext.java | 2 +- .../org/apache/camel/spi/EndpointRegistry.java | 4 +-- .../camel/impl/engine/AbstractCamelContext.java | 35 ++++++++++------------ .../camel/impl/engine/DefaultEndpointRegistry.java | 7 +++-- .../impl/engine/ProvisionalEndpointRegistry.java | 7 +++-- .../camel/impl/engine/SimpleCamelContext.java | 4 +-- .../camel/impl/console/EndpointDevConsole.java | 4 +-- .../camel/impl/DefaultEndpointRegistryTest.java | 3 +- .../camel/impl/engine/DefaultCamelContextTest.java | 3 +- .../management/JmxManagementLifecycleStrategy.java | 2 +- .../management/mbean/ManagedEndpointRegistry.java | 6 ++-- .../mbean/ManagedRuntimeEndpointRegistry.java | 2 +- 13 files changed, 39 insertions(+), 46 deletions(-) diff --git a/components/camel-rest/src/main/java/org/apache/camel/component/rest/DefaultRestRegistry.java b/components/camel-rest/src/main/java/org/apache/camel/component/rest/DefaultRestRegistry.java index 0e2f28d12bb..b4071655d07 100644 --- a/components/camel-rest/src/main/java/org/apache/camel/component/rest/DefaultRestRegistry.java +++ b/components/camel-rest/src/main/java/org/apache/camel/component/rest/DefaultRestRegistry.java @@ -33,7 +33,7 @@ import org.apache.camel.Service; import org.apache.camel.ServiceStatus; import org.apache.camel.StatefulService; import org.apache.camel.StaticService; -import org.apache.camel.ValueHolder; +import org.apache.camel.spi.NormalizedEndpointUri; import org.apache.camel.spi.RestConfiguration; import org.apache.camel.spi.RestRegistry; import org.apache.camel.support.LifecycleStrategySupport; @@ -76,8 +76,8 @@ public class DefaultRestRegistry extends ServiceSupport implements StaticService if (apiProducer == null) { Endpoint restApiEndpoint = null; Endpoint restEndpoint = null; - for (Map.Entry<? extends ValueHolder<String>, Endpoint> entry : camelContext.getEndpointRegistry().entrySet()) { - String uri = entry.getKey().get(); + for (Map.Entry<NormalizedEndpointUri, Endpoint> entry : camelContext.getEndpointRegistry().entrySet()) { + String uri = entry.getKey().getUri(); if (uri.startsWith("rest-api:")) { restApiEndpoint = entry.getValue(); break; diff --git a/core/camel-api/src/main/java/org/apache/camel/CamelContext.java b/core/camel-api/src/main/java/org/apache/camel/CamelContext.java index 8132380eef0..4a0812fbe25 100644 --- a/core/camel-api/src/main/java/org/apache/camel/CamelContext.java +++ b/core/camel-api/src/main/java/org/apache/camel/CamelContext.java @@ -395,7 +395,7 @@ public interface CamelContext extends CamelContextLifecycle, RuntimeConfiguratio /** * Gets the {@link org.apache.camel.spi.EndpointRegistry} */ - EndpointRegistry<? extends ValueHolder<String>> getEndpointRegistry(); + EndpointRegistry getEndpointRegistry(); /** * Resolves the given name to an {@link Endpoint} of the specified type. If the name has a singleton endpoint diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/EndpointRegistry.java b/core/camel-api/src/main/java/org/apache/camel/spi/EndpointRegistry.java index de1a26c263c..a4b844f2e99 100644 --- a/core/camel-api/src/main/java/org/apache/camel/spi/EndpointRegistry.java +++ b/core/camel-api/src/main/java/org/apache/camel/spi/EndpointRegistry.java @@ -36,10 +36,8 @@ import org.apache.camel.StaticService; * <p/> * The dynamic cache stores the endpoints that are created and used ad-hoc, such as from custom Java code that creates * new endpoints etc. The dynamic cache has an upper limit, that by default is 1000 entries. - * - * @param <K> endpoint key */ -public interface EndpointRegistry<K> extends Map<K, Endpoint>, StaticService { +public interface EndpointRegistry extends Map<NormalizedEndpointUri, Endpoint>, StaticService { /** * Number of endpoints in the static registry. diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java index e4a8196fb38..55445d737fd 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java @@ -133,6 +133,7 @@ import org.apache.camel.spi.ModelToXMLDumper; import org.apache.camel.spi.ModelToYAMLDumper; import org.apache.camel.spi.ModelineFactory; import org.apache.camel.spi.NodeIdFactory; +import org.apache.camel.spi.NormalizedEndpointUri; import org.apache.camel.spi.PackageScanClassResolver; import org.apache.camel.spi.PackageScanResourceResolver; import org.apache.camel.spi.PeriodTaskResolver; @@ -266,7 +267,7 @@ public abstract class AbstractCamelContext extends BaseService private Boolean autowiredEnabled = Boolean.TRUE; private Long delay; private Map<String, String> globalOptions = new HashMap<>(); - private EndpointRegistry<NormalizedUri> endpoints; + private EndpointRegistry endpoints; private RuntimeEndpointRegistry runtimeEndpointRegistry; private ShutdownRoute shutdownRoute = ShutdownRoute.Default; private ShutdownRunningTask shutdownRunningTask = ShutdownRunningTask.CompleteCurrentTaskOnly; @@ -611,7 +612,7 @@ public abstract class AbstractCamelContext extends BaseService } @Override - public EndpointRegistry<NormalizedUri> getEndpointRegistry() { + public EndpointRegistry getEndpointRegistry() { return endpoints; } @@ -648,8 +649,8 @@ public abstract class AbstractCamelContext extends BaseService @Override public void removeEndpoint(Endpoint endpoint) { Endpoint oldEndpoint = null; - NormalizedUri oldKey = null; - for (Map.Entry<NormalizedUri, Endpoint> entry : endpoints.entrySet()) { + NormalizedEndpointUri oldKey = null; + for (Map.Entry<NormalizedEndpointUri, Endpoint> entry : endpoints.entrySet()) { if (endpoint == entry.getValue()) { oldKey = entry.getKey(); oldEndpoint = endpoint; @@ -701,8 +702,8 @@ public abstract class AbstractCamelContext extends BaseService private void tryMatchingEndpoints(String uri, Collection<Endpoint> answer) { Endpoint oldEndpoint; - List<NormalizedUri> toRemove = new ArrayList<>(); - for (Map.Entry<NormalizedUri, Endpoint> entry : endpoints.entrySet()) { + List<NormalizedEndpointUri> toRemove = new ArrayList<>(); + for (Map.Entry<NormalizedEndpointUri, Endpoint> entry : endpoints.entrySet()) { oldEndpoint = entry.getValue(); if (EndpointHelper.matchEndpoint(this, oldEndpoint.getEndpointUri(), uri)) { try { @@ -714,7 +715,7 @@ public abstract class AbstractCamelContext extends BaseService toRemove.add(entry.getKey()); } } - for (NormalizedUri key : toRemove) { + for (NormalizedEndpointUri key : toRemove) { endpoints.remove(key); } } @@ -1389,14 +1390,11 @@ public abstract class AbstractCamelContext extends BaseService private String doLoadResource(String resourceName, String path, String resourceType) throws IOException { final ClassResolver resolver = getClassResolver(); - InputStream inputStream = resolver.loadResourceAsStream(path); - LOG.debug("Loading {} JSON Schema for: {} using class resolver: {} -> {}", resourceType, resourceName, resolver, - inputStream); - if (inputStream != null) { - try { + try (InputStream inputStream = resolver.loadResourceAsStream(path)) { + LOG.debug("Loading {} JSON Schema for: {} using class resolver: {} -> {}", resourceType, resourceName, resolver, + inputStream); + if (inputStream != null) { return IOHelper.loadText(inputStream); - } finally { - IOHelper.close(inputStream); } } return null; @@ -1495,11 +1493,7 @@ public abstract class AbstractCamelContext extends BaseService public String getPojoBeanParameterJsonSchema(String beanName) throws IOException { String name = sanitizeFileName(beanName) + ".json"; String path = "META-INF/services/org/apache/camel/bean/" + name; - String inputStream = doLoadResource(beanName, path, "bean"); - if (inputStream != null) { - return inputStream; - } - return null; + return doLoadResource(beanName, path, "bean"); } // Helper methods @@ -4066,7 +4060,8 @@ public abstract class AbstractCamelContext extends BaseService protected abstract RestRegistryFactory createRestRegistryFactory(); - protected abstract EndpointRegistry<NormalizedUri> createEndpointRegistry(Map<NormalizedUri, Endpoint> endpoints); + protected abstract EndpointRegistry createEndpointRegistry( + Map<NormalizedEndpointUri, Endpoint> endpoints); protected abstract TransformerRegistry<TransformerKey> createTransformerRegistry(); diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultEndpointRegistry.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultEndpointRegistry.java index a7cce0d7702..09f3d7858ac 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultEndpointRegistry.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/DefaultEndpointRegistry.java @@ -21,20 +21,21 @@ import java.util.Map; import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; import org.apache.camel.spi.EndpointRegistry; +import org.apache.camel.spi.NormalizedEndpointUri; import org.apache.camel.support.CamelContextHelper; import org.apache.camel.support.NormalizedUri; /** * Default implementation of {@link org.apache.camel.spi.EndpointRegistry} */ -public class DefaultEndpointRegistry extends AbstractDynamicRegistry<NormalizedUri, Endpoint> - implements EndpointRegistry<NormalizedUri> { +public class DefaultEndpointRegistry extends AbstractDynamicRegistry<NormalizedEndpointUri, Endpoint> + implements EndpointRegistry { public DefaultEndpointRegistry(CamelContext context) { super(context, CamelContextHelper.getMaximumEndpointCacheSize(context)); } - public DefaultEndpointRegistry(CamelContext context, Map<NormalizedUri, Endpoint> endpoints) { + public DefaultEndpointRegistry(CamelContext context, Map<NormalizedEndpointUri, Endpoint> endpoints) { this(context); if (!context.isStarted()) { // optimize to put all into the static map as we are not started diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/ProvisionalEndpointRegistry.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/ProvisionalEndpointRegistry.java index da9613034fc..5bc5beed205 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/ProvisionalEndpointRegistry.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/ProvisionalEndpointRegistry.java @@ -26,14 +26,15 @@ import java.util.Map; import org.apache.camel.Endpoint; import org.apache.camel.spi.EndpointRegistry; +import org.apache.camel.spi.NormalizedEndpointUri; import org.apache.camel.support.LRUCacheFactory; -import org.apache.camel.support.NormalizedUri; /** * A provisional (temporary) {@link EndpointRegistry} that is only used during startup of Apache Camel to make starting * Camel faster while {@link LRUCacheFactory} is warming up etc. */ -class ProvisionalEndpointRegistry extends HashMap<NormalizedUri, Endpoint> implements EndpointRegistry<NormalizedUri> { +class ProvisionalEndpointRegistry extends HashMap<NormalizedEndpointUri, Endpoint> + implements EndpointRegistry { @Override public void start() { @@ -118,7 +119,7 @@ class ProvisionalEndpointRegistry extends HashMap<NormalizedUri, Endpoint> imple boolean done = false; while (!done) { try { - for (Entry<NormalizedUri, Endpoint> entry : entrySet()) { + for (Entry<NormalizedEndpointUri, Endpoint> entry : entrySet()) { String k = entry.getKey().toString(); answer.put(k, entry.getValue()); } diff --git a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java index 425b3004ba1..c55c1591aa1 100644 --- a/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java +++ b/core/camel-base-engine/src/main/java/org/apache/camel/impl/engine/SimpleCamelContext.java @@ -67,6 +67,7 @@ import org.apache.camel.spi.ModelToXMLDumper; import org.apache.camel.spi.ModelToYAMLDumper; import org.apache.camel.spi.ModelineFactory; import org.apache.camel.spi.NodeIdFactory; +import org.apache.camel.spi.NormalizedEndpointUri; import org.apache.camel.spi.PackageScanClassResolver; import org.apache.camel.spi.PackageScanResourceResolver; import org.apache.camel.spi.PeriodTaskResolver; @@ -94,7 +95,6 @@ import org.apache.camel.spi.ValidatorRegistry; import org.apache.camel.spi.VariableRepositoryFactory; import org.apache.camel.support.DefaultRegistry; import org.apache.camel.support.DefaultUuidGenerator; -import org.apache.camel.support.NormalizedUri; import org.apache.camel.support.PluginHelper; import org.apache.camel.support.ResolverHelper; import org.slf4j.Logger; @@ -669,7 +669,7 @@ public class SimpleCamelContext extends AbstractCamelContext { } @Override - protected EndpointRegistry<NormalizedUri> createEndpointRegistry(Map<NormalizedUri, Endpoint> endpoints) { + protected EndpointRegistry createEndpointRegistry(Map<NormalizedEndpointUri, Endpoint> endpoints) { return new DefaultEndpointRegistry(getCamelContextReference(), endpoints); } diff --git a/core/camel-console/src/main/java/org/apache/camel/impl/console/EndpointDevConsole.java b/core/camel-console/src/main/java/org/apache/camel/impl/console/EndpointDevConsole.java index a6343a7070a..71bc9b899ce 100644 --- a/core/camel-console/src/main/java/org/apache/camel/impl/console/EndpointDevConsole.java +++ b/core/camel-console/src/main/java/org/apache/camel/impl/console/EndpointDevConsole.java @@ -46,7 +46,7 @@ public class EndpointDevConsole extends AbstractDevConsole { if (runtimeReg != null) { stats = runtimeReg.getEndpointStatistics(); } - EndpointRegistry<?> reg = getCamelContext().getEndpointRegistry(); + EndpointRegistry reg = getCamelContext().getEndpointRegistry(); sb.append( String.format(" Endpoints: %s (static: %s dynamic: %s)\n", reg.size(), reg.staticSize(), reg.dynamicSize())); sb.append(String.format(" Maximum Cache Size: %s\n", reg.getMaximumCacheSize())); @@ -83,7 +83,7 @@ public class EndpointDevConsole extends AbstractDevConsole { if (runtimeReg != null) { stats = runtimeReg.getEndpointStatistics(); } - EndpointRegistry<?> reg = getCamelContext().getEndpointRegistry(); + EndpointRegistry reg = getCamelContext().getEndpointRegistry(); root.put("size", reg.size()); root.put("staticSize", reg.staticSize()); root.put("dynamicSize", reg.dynamicSize()); diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultEndpointRegistryTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/DefaultEndpointRegistryTest.java index 239d6999c4b..cd07fbfdb9b 100644 --- a/core/camel-core/src/test/java/org/apache/camel/impl/DefaultEndpointRegistryTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/impl/DefaultEndpointRegistryTest.java @@ -29,7 +29,6 @@ import org.apache.camel.builder.RouteBuilder; import org.apache.camel.impl.engine.DefaultEndpointRegistry; import org.apache.camel.impl.engine.SimpleCamelContext; import org.apache.camel.spi.EndpointRegistry; -import org.apache.camel.support.NormalizedUri; import org.awaitility.Awaitility; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; @@ -154,7 +153,7 @@ public class DefaultEndpointRegistryTest { context.start(); ProducerTemplate producerTemplate = context.createProducerTemplate(); - EndpointRegistry<NormalizedUri> endpointRegistry = context.getEndpointRegistry(); + EndpointRegistry endpointRegistry = context.getEndpointRegistry(); int nThreads = 4; ExecutorService executorService = Executors.newFixedThreadPool(nThreads); diff --git a/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultCamelContextTest.java b/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultCamelContextTest.java index a18335f5e9d..4948839ab6e 100644 --- a/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultCamelContextTest.java +++ b/core/camel-core/src/test/java/org/apache/camel/impl/engine/DefaultCamelContextTest.java @@ -38,7 +38,6 @@ import org.apache.camel.spi.EndpointRegistry; import org.apache.camel.spi.UuidGenerator; import org.apache.camel.support.CamelContextHelper; import org.apache.camel.support.DefaultUuidGenerator; -import org.apache.camel.support.NormalizedUri; import org.apache.camel.support.service.ServiceSupport; import org.apache.camel.util.URISupport; import org.junit.jupiter.api.Test; @@ -425,7 +424,7 @@ public class DefaultCamelContextTest extends TestSupport { }); ctx.start(); - EndpointRegistry<NormalizedUri> endpoints = ctx.getEndpointRegistry(); + EndpointRegistry endpoints = ctx.getEndpointRegistry(); Map<String, RouteService> routeServices = ctx.getRouteServices(); Set<Endpoint> routeEndpoints = routeServices.get("rawRoute").gatherEndpoints(); diff --git a/core/camel-management/src/main/java/org/apache/camel/management/JmxManagementLifecycleStrategy.java b/core/camel-management/src/main/java/org/apache/camel/management/JmxManagementLifecycleStrategy.java index c648b8cc3ff..7b15fc8b930 100644 --- a/core/camel-management/src/main/java/org/apache/camel/management/JmxManagementLifecycleStrategy.java +++ b/core/camel-management/src/main/java/org/apache/camel/management/JmxManagementLifecycleStrategy.java @@ -545,7 +545,7 @@ public class JmxManagementLifecycleStrategy extends ServiceSupport implements Li answer = new ManagedProducerCache(context, (ProducerCache) service); } else if (service instanceof ExchangeFactoryManager) { answer = new ManagedExchangeFactoryManager(context, (ExchangeFactoryManager) service); - } else if (service instanceof EndpointRegistry<?> endpointRegistry) { + } else if (service instanceof EndpointRegistry endpointRegistry) { answer = new ManagedEndpointRegistry(context, endpointRegistry); } else if (service instanceof BeanIntrospection) { answer = new ManagedBeanIntrospection(context, (BeanIntrospection) service); diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedEndpointRegistry.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedEndpointRegistry.java index 7b1d093c51c..e08a3cc659f 100644 --- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedEndpointRegistry.java +++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedEndpointRegistry.java @@ -36,10 +36,10 @@ import org.apache.camel.util.URISupport; @ManagedResource(description = "Managed EndpointRegistry") public class ManagedEndpointRegistry extends ManagedService implements ManagedEndpointRegistryMBean { - private final EndpointRegistry<?> endpointRegistry; + private final EndpointRegistry endpointRegistry; private boolean sanitize; - public ManagedEndpointRegistry(CamelContext context, EndpointRegistry<?> endpointRegistry) { + public ManagedEndpointRegistry(CamelContext context, EndpointRegistry endpointRegistry) { super(context, endpointRegistry); this.endpointRegistry = endpointRegistry; } @@ -50,7 +50,7 @@ public class ManagedEndpointRegistry extends ManagedService implements ManagedEn sanitize = strategy.getManagementAgent().getMask() != null ? strategy.getManagementAgent().getMask() : false; } - public EndpointRegistry<?> getEndpointRegistry() { + public EndpointRegistry getEndpointRegistry() { return endpointRegistry; } diff --git a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRuntimeEndpointRegistry.java b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRuntimeEndpointRegistry.java index 7b4aef19ed0..b34600ea741 100644 --- a/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRuntimeEndpointRegistry.java +++ b/core/camel-management/src/main/java/org/apache/camel/management/mbean/ManagedRuntimeEndpointRegistry.java @@ -96,7 +96,7 @@ public class ManagedRuntimeEndpointRegistry extends ManagedService implements Ma try { TabularData answer = new TabularDataSupport(CamelOpenMBeanTypes.listRuntimeEndpointsTabularType()); - EndpointRegistry<?> staticRegistry = getContext().getEndpointRegistry(); + EndpointRegistry staticRegistry = getContext().getEndpointRegistry(); int index = 0; for (RuntimeEndpointRegistry.Statistic stat : registry.getEndpointStatistics()) {