This is an automated email from the ASF dual-hosted git repository. gnodet pushed a commit to branch camel-3.x in repository https://gitbox.apache.org/repos/asf/camel.git
commit d8c8123fbc3e14528a776ce8c4eb179d7445cc5e Author: Guillaume Nodet <gno...@gmail.com> AuthorDate: Thu Oct 4 16:02:12 2018 +0200 Extract org.apache.camel.api.management packages --- bom/camel-bom/pom.xml | 5 + camel-api/pom.xml | 7 + .../java/org/apache/camel/spi/RouteContext.java | 2 +- .../java/org/apache/camel/spi/RouteController.java | 3 - camel-core/pom.xml | 17 + .../apache/camel/impl/DefaultRouteController.java | 2 +- .../camel/impl/SupervisingRouteController.java | 2 +- .../impl/cluster/ClusteredRouteController.java | 2 +- .../camel/management/mbean/ManagedComponent.java | 174 +++++++- .../camel/management/mbean/ManagedRoute.java | 30 +- .../mbean/ManagedStreamCachingStrategy.java | 39 +- .../camel/management/ManagedComponentTest.java | 14 +- .../camel/management/ManagementTestSupport.java | 11 +- {camel-api => camel-management-api}/pom.xml | 13 +- .../JmxNotificationBroadcasterAware.java | 0 .../camel/api/management/ManagedAttribute.java | 0 .../camel/api/management/ManagedInstance.java | 0 .../camel/api/management/ManagedNotification.java | 0 .../camel/api/management/ManagedNotifications.java | 0 .../camel/api/management/ManagedOperation.java | 0 .../camel/api/management/ManagedResource.java | 0 .../camel/api/management/NotificationSender.java | 0 .../api/management/NotificationSenderAware.java | 0 .../mbean/BacklogTracerEventMessage.java | 0 .../api/management/mbean/CamelOpenMBeanTypes.java | 0 .../mbean/ComponentVerifierExtension.java | 471 +++++++++++++++++++++ .../mbean/ManagedAggregateProcessorMBean.java | 0 .../ManagedAsyncProcessorAwaitManagerMBean.java | 0 .../mbean/ManagedBacklogDebuggerMBean.java | 0 .../mbean/ManagedBacklogTracerMBean.java | 0 .../api/management/mbean/ManagedBeanMBean.java | 0 .../mbean/ManagedBrowsableEndpointMBean.java | 0 .../management/mbean/ManagedCamelContextMBean.java | 0 .../management/mbean/ManagedCamelHealthMBean.java | 0 .../api/management/mbean/ManagedChoiceMBean.java | 0 .../management/mbean/ManagedClaimCheckMBean.java | 0 .../mbean/ManagedClusterServiceMBean.java | 0 .../management/mbean/ManagedComponentMBean.java | 1 - .../mbean/ManagedConsumerCacheMBean.java | 0 .../api/management/mbean/ManagedConsumerMBean.java | 0 .../management/mbean/ManagedConvertBodyMBean.java | 0 .../api/management/mbean/ManagedCounterMBean.java | 0 .../mbean/ManagedCustomLoadBalancerMBean.java | 0 .../management/mbean/ManagedDataFormatMBean.java | 0 .../api/management/mbean/ManagedDelayerMBean.java | 0 .../mbean/ManagedDynamicRouterMBean.java | 0 .../api/management/mbean/ManagedEndpointMBean.java | 0 .../mbean/ManagedEndpointRegistryMBean.java | 0 .../api/management/mbean/ManagedEnricherMBean.java | 0 .../management/mbean/ManagedErrorHandlerMBean.java | 0 .../mbean/ManagedExtendedInformation.java | 0 .../mbean/ManagedFailoverLoadBalancerMBean.java | 0 .../api/management/mbean/ManagedFilterMBean.java | 0 .../mbean/ManagedIdempotentConsumerMBean.java | 0 .../mbean/ManagedInflightRepositoryMBean.java | 0 .../api/management/mbean/ManagedLogMBean.java | 0 .../api/management/mbean/ManagedLoopMBean.java | 0 .../api/management/mbean/ManagedMarshalMBean.java | 0 .../management/mbean/ManagedMulticastMBean.java | 0 .../mbean/ManagedPerformanceCounterMBean.java | 0 .../management/mbean/ManagedPollEnricherMBean.java | 0 .../api/management/mbean/ManagedProcessMBean.java | 0 .../management/mbean/ManagedProcessorMBean.java | 0 .../mbean/ManagedProducerCacheMBean.java | 0 .../api/management/mbean/ManagedProducerMBean.java | 0 .../mbean/ManagedRandomLoadBalancerMBean.java | 0 .../mbean/ManagedRecipientListMBean.java | 0 .../management/mbean/ManagedRemoveHeaderMBean.java | 0 .../mbean/ManagedRemoveHeadersMBean.java | 0 .../mbean/ManagedRemovePropertiesMBean.java | 0 .../mbean/ManagedRemovePropertyMBean.java | 0 .../management/mbean/ManagedResequencerMBean.java | 0 .../mbean/ManagedResourceEndpointMBean.java | 0 .../management/mbean/ManagedRestRegistryMBean.java | 0 .../api/management/mbean/ManagedRollbackMBean.java | 0 .../mbean/ManagedRoundRobinLoadBalancerMBean.java | 0 .../mbean/ManagedRouteControllerMBean.java | 0 .../api/management/mbean/ManagedRouteMBean.java | 3 +- .../management/mbean/ManagedRoutingSlipMBean.java | 0 .../mbean/ManagedRuntimeCamelCatalogMBean.java | 0 .../mbean/ManagedRuntimeEndpointRegistryMBean.java | 0 .../mbean/ManagedSamplingThrottlerMBean.java | 0 .../mbean/ManagedSchedulePollConsumerMBean.java | 0 .../api/management/mbean/ManagedScriptMBean.java | 0 .../mbean/ManagedSendDynamicProcessorMBean.java | 0 .../mbean/ManagedSendProcessorMBean.java | 0 .../api/management/mbean/ManagedServiceMBean.java | 0 .../api/management/mbean/ManagedSetBodyMBean.java | 0 .../mbean/ManagedSetExchangePatternMBean.java | 0 .../management/mbean/ManagedSetHeaderMBean.java | 0 .../management/mbean/ManagedSetPropertyMBean.java | 0 .../api/management/mbean/ManagedSplitterMBean.java | 0 .../mbean/ManagedStickyLoadBalancerMBean.java | 0 .../api/management/mbean/ManagedStopMBean.java | 0 .../mbean/ManagedStreamCachingStrategyMBean.java | 12 +- .../mbean/ManagedSuspendableRouteMBean.java | 0 .../management/mbean/ManagedThreadPoolMBean.java | 0 .../api/management/mbean/ManagedThreadsMBean.java | 0 .../management/mbean/ManagedThrottlerMBean.java | 0 ...ManagedThrottlingExceptionRoutePolicyMBean.java | 0 .../ManagedThrottlingInflightRoutePolicyMBean.java | 0 .../mbean/ManagedThroughputLoggerMBean.java | 0 .../mbean/ManagedThrowExceptionMBean.java | 0 .../mbean/ManagedTopicLoadBalancerMBean.java | 0 .../management/mbean/ManagedTransformMBean.java | 0 .../mbean/ManagedTransformerRegistryMBean.java | 0 .../mbean/ManagedTypeConverterRegistryMBean.java | 0 .../management/mbean/ManagedUnmarshalMBean.java | 0 .../api/management/mbean/ManagedValidateMBean.java | 0 .../mbean/ManagedValidatorRegistryMBean.java | 0 .../mbean/ManagedWeightedBalancerMBean.java | 0 .../api/management/mbean/ManagedWireTapMBean.java | 0 .../camel/api/management/mbean/RouteError.java | 30 +- .../apache/camel/api/management/mbean/package.html | 0 .../org/apache/camel/api/management/package.html | 0 parent/pom.xml | 5 + .../camel-spring-boot-dependencies/pom.xml | 5 + pom.xml | 1 + .../meta-annotations/pom.xml | 30 +- .../java/org/apache/camel/meta}/Experimental.java | 2 +- tooling/pom.xml | 1 + 121 files changed, 824 insertions(+), 58 deletions(-) diff --git a/bom/camel-bom/pom.xml b/bom/camel-bom/pom.xml index 612af60..f8ea547 100644 --- a/bom/camel-bom/pom.xml +++ b/bom/camel-bom/pom.xml @@ -1610,6 +1610,11 @@ </dependency> <dependency> <groupId>org.apache.camel</groupId> + <artifactId>camel-management-api</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> <artifactId>camel-manual</artifactId> <version>${project.version}</version> </dependency> diff --git a/camel-api/pom.xml b/camel-api/pom.xml index 87d6aa0..6875740 100644 --- a/camel-api/pom.xml +++ b/camel-api/pom.xml @@ -45,6 +45,13 @@ <dependency> <groupId>org.apache.camel</groupId> + <artifactId>meta-annotations</artifactId> + <version>${project.version}</version> + <optional>true</optional> + </dependency> + + <dependency> + <groupId>org.apache.camel</groupId> <artifactId>camel-util</artifactId> <version>${project.version}</version> </dependency> diff --git a/camel-api/src/main/java/org/apache/camel/spi/RouteContext.java b/camel-api/src/main/java/org/apache/camel/spi/RouteContext.java index 7124450..10b7eac 100644 --- a/camel-api/src/main/java/org/apache/camel/spi/RouteContext.java +++ b/camel-api/src/main/java/org/apache/camel/spi/RouteContext.java @@ -22,7 +22,7 @@ import java.util.Map; import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; import org.apache.camel.EndpointAware; -import org.apache.camel.Experimental; +import org.apache.camel.meta.Experimental; import org.apache.camel.NamedNode; import org.apache.camel.Processor; import org.apache.camel.RuntimeConfiguration; diff --git a/camel-api/src/main/java/org/apache/camel/spi/RouteController.java b/camel-api/src/main/java/org/apache/camel/spi/RouteController.java index 5cb8600..b6f39b5 100644 --- a/camel-api/src/main/java/org/apache/camel/spi/RouteController.java +++ b/camel-api/src/main/java/org/apache/camel/spi/RouteController.java @@ -19,11 +19,8 @@ package org.apache.camel.spi; import java.util.Collection; import java.util.concurrent.TimeUnit; -import org.apache.camel.CamelContext; import org.apache.camel.CamelContextAware; -import org.apache.camel.Experimental; import org.apache.camel.Route; -import org.apache.camel.Service; import org.apache.camel.ServiceStatus; import org.apache.camel.StaticService; diff --git a/camel-core/pom.xml b/camel-core/pom.xml index 936dd22..8864537 100644 --- a/camel-core/pom.xml +++ b/camel-core/pom.xml @@ -134,6 +134,15 @@ <!-- it will be shade into camel-core by bnd plugin --> <dependency> <groupId>org.apache.camel</groupId> + <artifactId>meta-annotations</artifactId> + <version>${project.version}</version> + <optional>true</optional> + </dependency> + + <!-- required dependencies by camel-core --> + <!-- it will be shade into camel-core by bnd plugin --> + <dependency> + <groupId>org.apache.camel</groupId> <artifactId>camel-util</artifactId> <version>${project.version}</version> </dependency> @@ -147,6 +156,14 @@ </dependency> <!-- required dependencies by camel-core --> + <!-- it will be shade into camel-core by bnd plugin --> + <dependency> + <groupId>org.apache.camel</groupId> + <artifactId>camel-management-api</artifactId> + <version>${project.version}</version> + </dependency> + + <!-- required dependencies by camel-core --> <!-- which we shade into camel-core so its available for everybody out of the box --> <dependency> <groupId>com.github.ben-manes.caffeine</groupId> diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteController.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteController.java index 766423a..e98d019 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteController.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultRouteController.java @@ -21,9 +21,9 @@ import java.util.Collections; import java.util.concurrent.TimeUnit; import org.apache.camel.CamelContext; -import org.apache.camel.Experimental; import org.apache.camel.Route; import org.apache.camel.ServiceStatus; +import org.apache.camel.meta.Experimental; import org.apache.camel.spi.RouteController; import org.apache.camel.support.ServiceSupport; diff --git a/camel-core/src/main/java/org/apache/camel/impl/SupervisingRouteController.java b/camel-core/src/main/java/org/apache/camel/impl/SupervisingRouteController.java index b832239..a607c0a 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/SupervisingRouteController.java +++ b/camel-core/src/main/java/org/apache/camel/impl/SupervisingRouteController.java @@ -38,13 +38,13 @@ import java.util.stream.Collectors; import org.apache.camel.CamelContext; import org.apache.camel.Exchange; -import org.apache.camel.Experimental; import org.apache.camel.NamedNode; import org.apache.camel.Route; import org.apache.camel.RuntimeCamelException; import org.apache.camel.ServiceStatus; import org.apache.camel.StartupListener; import org.apache.camel.management.event.CamelContextStartedEvent; +import org.apache.camel.meta.Experimental; import org.apache.camel.model.RouteDefinition; import org.apache.camel.spi.HasId; import org.apache.camel.spi.RouteContext; diff --git a/camel-core/src/main/java/org/apache/camel/impl/cluster/ClusteredRouteController.java b/camel-core/src/main/java/org/apache/camel/impl/cluster/ClusteredRouteController.java index cc8921f..aae4459 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/cluster/ClusteredRouteController.java +++ b/camel-core/src/main/java/org/apache/camel/impl/cluster/ClusteredRouteController.java @@ -31,12 +31,12 @@ import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import org.apache.camel.CamelContext; -import org.apache.camel.Experimental; import org.apache.camel.NamedNode; import org.apache.camel.Route; import org.apache.camel.RuntimeCamelException; import org.apache.camel.cluster.CamelClusterService; import org.apache.camel.impl.DefaultRouteController; +import org.apache.camel.meta.Experimental; import org.apache.camel.model.RouteDefinition; import org.apache.camel.spi.RoutePolicy; import org.apache.camel.spi.RoutePolicyFactory; diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java index fe12abb..770f9b7 100644 --- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java +++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedComponent.java @@ -17,9 +17,19 @@ package org.apache.camel.management.mbean; import java.io.IOException; +import java.util.AbstractList; +import java.util.AbstractMap; +import java.util.AbstractSet; +import java.util.Collections; +import java.util.Iterator; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.Optional; +import java.util.Set; +import java.util.function.Function; +import java.util.stream.Collectors; import javax.management.openmbean.CompositeData; import javax.management.openmbean.CompositeDataSupport; @@ -34,8 +44,17 @@ import org.apache.camel.StatefulService; import org.apache.camel.api.management.ManagedInstance; import org.apache.camel.api.management.ManagedResource; import org.apache.camel.api.management.mbean.CamelOpenMBeanTypes; +import org.apache.camel.api.management.mbean.ComponentVerifierExtension.Result; +import org.apache.camel.api.management.mbean.ComponentVerifierExtension.Result.Status; +import org.apache.camel.api.management.mbean.ComponentVerifierExtension.Scope; +import org.apache.camel.api.management.mbean.ComponentVerifierExtension.VerificationError; +import org.apache.camel.api.management.mbean.ComponentVerifierExtension.VerificationError.ExceptionAttribute; +import org.apache.camel.api.management.mbean.ComponentVerifierExtension.VerificationError.GroupAttribute; +import org.apache.camel.api.management.mbean.ComponentVerifierExtension.VerificationError.HttpAttribute; +import org.apache.camel.api.management.mbean.ComponentVerifierExtension.VerificationError.StandardCode; import org.apache.camel.api.management.mbean.ManagedComponentMBean; -import org.apache.camel.component.extension.ComponentVerifierExtension; +import org.apache.camel.api.management.mbean.ComponentVerifierExtension; +import org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.Attribute; import org.apache.camel.component.extension.verifier.ResultBuilder; import org.apache.camel.component.extension.verifier.ResultErrorBuilder; import org.apache.camel.spi.ManagementStrategy; @@ -139,23 +158,160 @@ public class ManagedComponent implements ManagedInstance, ManagedComponentMBean @Override public boolean isVerifySupported() { - return component.getExtension(ComponentVerifierExtension.class).isPresent(); + return component.getExtension(org.apache.camel.component.extension.ComponentVerifierExtension.class).isPresent(); } @Override public ComponentVerifierExtension.Result verify(String scope, Map<String, String> options) { try { - ComponentVerifierExtension.Scope scopeEnum = ComponentVerifierExtension.Scope.fromString(scope); - Optional<ComponentVerifierExtension> verifier = component.getExtension(ComponentVerifierExtension.class); + org.apache.camel.component.extension.ComponentVerifierExtension.Scope scopeEnum = org.apache.camel.component.extension.ComponentVerifierExtension.Scope.fromString(scope); + Optional<org.apache.camel.component.extension.ComponentVerifierExtension> verifier = component.getExtension(org.apache.camel.component.extension.ComponentVerifierExtension.class); if (verifier.isPresent()) { - return verifier.get().verify(scopeEnum, CastUtils.cast(options)); + org.apache.camel.component.extension.ComponentVerifierExtension.Result result = verifier.get().verify(scopeEnum, CastUtils.cast(options)); + String rstatus = result.getStatus().toString(); + String rscope = result.getScope().toString(); + return new ResultImpl(Scope.valueOf(rscope), Status.valueOf(rstatus), + result.getErrors().stream().map(this::translate).collect(Collectors.toList())); + } else { - return ResultBuilder.unsupported().build(); + return new ResultImpl(Scope.PARAMETERS, Status.UNSUPPORTED, Collections.emptyList()); } } catch (IllegalArgumentException e) { - return ResultBuilder.withStatus(ComponentVerifierExtension.Result.Status.UNSUPPORTED) - .error(ResultErrorBuilder.withUnsupportedScope(scope).build()) - .build(); + return new ResultImpl(Scope.PARAMETERS, Status.UNSUPPORTED, Collections.singletonList( + new VerificationErrorImpl(StandardCode.UNSUPPORTED_SCOPE, "Unsupported scope: " + scope))); + } + } + + private VerificationError translate(org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError error) { + return new VerificationErrorImpl(translate(error.getCode()), error.getDescription(), + error.getParameterKeys(), translate(error.getDetails())); + } + + private Map<VerificationError.Attribute, Object> translate(Map<org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.Attribute, Object> details) { + return details.entrySet().stream().collect(Collectors.toMap(e -> translate(e.getKey()), Entry::getValue)); + } + + private VerificationError.Attribute translate(org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.Attribute attribute) { + if (attribute == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.GroupAttribute.GROUP_NAME) { + return GroupAttribute.GROUP_NAME; + } else if (attribute == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.GroupAttribute.GROUP_OPTIONS) { + return GroupAttribute.GROUP_OPTIONS; + } else if (attribute == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.HttpAttribute.HTTP_CODE) { + return HttpAttribute.HTTP_CODE; + } else if (attribute == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.HttpAttribute.HTTP_REDIRECT) { + return HttpAttribute.HTTP_REDIRECT; + } else if (attribute == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.HttpAttribute.HTTP_TEXT) { + return HttpAttribute.HTTP_TEXT; + } else if (attribute == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.ExceptionAttribute.EXCEPTION_CLASS) { + return ExceptionAttribute.EXCEPTION_CLASS; + } else if (attribute == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.ExceptionAttribute.EXCEPTION_INSTANCE) { + return ExceptionAttribute.EXCEPTION_INSTANCE; + } else if (attribute != null) { + return VerificationError.asAttribute(attribute.getName()); + } else { + return null; + } + } + + private VerificationError.Code translate(org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.Code code) { + if (code == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.StandardCode.AUTHENTICATION) { + return StandardCode.AUTHENTICATION; + } else if (code == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.StandardCode.EXCEPTION) { + return StandardCode.EXCEPTION; + } else if (code == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.StandardCode.INTERNAL) { + return StandardCode.INTERNAL; + } else if (code == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.StandardCode.MISSING_PARAMETER) { + return StandardCode.MISSING_PARAMETER; + } else if (code == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.StandardCode.UNKNOWN_PARAMETER) { + return StandardCode.UNKNOWN_PARAMETER; + } else if (code == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.StandardCode.ILLEGAL_PARAMETER) { + return StandardCode.ILLEGAL_PARAMETER; + } else if (code == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.StandardCode.ILLEGAL_PARAMETER_GROUP_COMBINATION) { + return StandardCode.ILLEGAL_PARAMETER_GROUP_COMBINATION; + } else if (code == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.StandardCode.ILLEGAL_PARAMETER_VALUE) { + return StandardCode.ILLEGAL_PARAMETER_VALUE; + } else if (code == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.StandardCode.INCOMPLETE_PARAMETER_GROUP) { + return StandardCode.ILLEGAL_PARAMETER_GROUP_COMBINATION; + } else if (code == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.StandardCode.UNSUPPORTED) { + return StandardCode.UNSUPPORTED; + } else if (code == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.StandardCode.UNSUPPORTED_SCOPE) { + return StandardCode.UNSUPPORTED_SCOPE; + } else if (code == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.StandardCode.UNSUPPORTED_COMPONENT) { + return StandardCode.UNSUPPORTED_COMPONENT; + } else if (code == org.apache.camel.component.extension.ComponentVerifierExtension.VerificationError.StandardCode.GENERIC) { + return StandardCode.GENERIC; + } else if (code != null) { + return VerificationError.asCode(code.getName()); + } else { + return null; + } + } + + public static class VerificationErrorImpl implements VerificationError { + private final Code code; + private final String description; + private final Set<String> parameterKeys; + private final Map<Attribute, Object> details; + + public VerificationErrorImpl(Code code, String description) { + this.code = code; + this.description = description; + this.parameterKeys = Collections.emptySet(); + this.details = Collections.emptyMap(); + } + + public VerificationErrorImpl(Code code, String description, Set<String> parameterKeys, Map<Attribute, Object> details) { + this.code = code; + this.description = description; + this.parameterKeys = parameterKeys; + this.details = details; + } + + @Override + public Code getCode() { + return code; + } + + @Override + public String getDescription() { + return description; + } + + @Override + public Set<String> getParameterKeys() { + return parameterKeys; + } + + @Override + public Map<Attribute, Object> getDetails() { + return details; + } + } + + public static class ResultImpl implements Result { + private final Scope scope; + private final Status status; + private final List<VerificationError> errors; + + public ResultImpl(Scope scope, Status status, List<VerificationError> errors) { + this.scope = scope; + this.status = status; + this.errors = errors; + } + + @Override + public Scope getScope() { + return scope; + } + + @Override + public Status getStatus() { + return status; + } + + @Override + public List<VerificationError> getErrors() { + return errors; } } } diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java index 322f524..c124945 100644 --- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java +++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java @@ -52,12 +52,12 @@ import org.apache.camel.api.management.ManagedResource; import org.apache.camel.api.management.mbean.CamelOpenMBeanTypes; import org.apache.camel.api.management.mbean.ManagedProcessorMBean; import org.apache.camel.api.management.mbean.ManagedRouteMBean; +import org.apache.camel.api.management.mbean.RouteError; import org.apache.camel.model.ModelCamelContext; import org.apache.camel.model.ModelHelper; import org.apache.camel.model.RouteDefinition; import org.apache.camel.spi.InflightRepository; import org.apache.camel.spi.ManagementStrategy; -import org.apache.camel.spi.RouteError; import org.apache.camel.spi.RoutePolicy; import org.apache.camel.util.ObjectHelper; import org.apache.camel.util.XmlLineNumberParser; @@ -546,7 +546,33 @@ public class ManagedRoute extends ManagedPerformanceCounter implements TimerList @Override public RouteError getLastError() { - return route.getRouteContext().getLastError(); + org.apache.camel.spi.RouteError error = route.getRouteContext().getLastError(); + if (error == null) { + return null; + } else { + return new RouteError() { + @Override + public Phase getPhase() { + if (error.getPhase() != null) { + switch (error.getPhase()) { + case START: return Phase.START; + case STOP: return Phase.STOP; + case SUSPEND: return Phase.SUSPEND; + case RESUME: return Phase.RESUME; + case SHUTDOWN: return Phase.SHUTDOWN; + case REMOVE: return Phase.REMOVE; + default: throw new IllegalStateException(); + } + } + return null; + } + + @Override + public Throwable getException() { + return error.getException(); + } + }; + } } /** diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedStreamCachingStrategy.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedStreamCachingStrategy.java index cf8c371..4cb5efc 100644 --- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedStreamCachingStrategy.java +++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedStreamCachingStrategy.java @@ -69,12 +69,39 @@ public class ManagedStreamCachingStrategy extends ManagedService implements Mana return streamCachingStrategy.getSpoolUsedHeapMemoryThreshold(); } - public void setSpoolUsedHeapMemoryLimit(StreamCachingStrategy.SpoolUsedHeapMemoryLimit limit) { - streamCachingStrategy.setSpoolUsedHeapMemoryLimit(limit); - } - - public StreamCachingStrategy.SpoolUsedHeapMemoryLimit getSpoolUsedHeapMemoryLimit() { - return streamCachingStrategy.getSpoolUsedHeapMemoryLimit(); + public void setSpoolUsedHeapMemoryLimit(SpoolUsedHeapMemoryLimit limit) { + StreamCachingStrategy.SpoolUsedHeapMemoryLimit l; + if (limit == null) { + l = null; + } else { + switch (limit) { + case Committed: + l = StreamCachingStrategy.SpoolUsedHeapMemoryLimit.Committed; + break; + case Max: + l = StreamCachingStrategy.SpoolUsedHeapMemoryLimit.Max; + break; + default: + throw new IllegalStateException(); + } + } + streamCachingStrategy.setSpoolUsedHeapMemoryLimit(l); + } + + public SpoolUsedHeapMemoryLimit getSpoolUsedHeapMemoryLimit() { + StreamCachingStrategy.SpoolUsedHeapMemoryLimit l = streamCachingStrategy.getSpoolUsedHeapMemoryLimit(); + if (l == null) { + return null; + } else { + switch (l) { + case Committed: + return SpoolUsedHeapMemoryLimit.Committed; + case Max: + return SpoolUsedHeapMemoryLimit.Max; + default: + throw new IllegalStateException(); + } + } } public void setBufferSize(int bufferSize) { diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedComponentTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedComponentTest.java index 45d611a..a4c4523 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagedComponentTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagedComponentTest.java @@ -20,14 +20,18 @@ import java.util.Collections; import java.util.Map; import javax.management.MBeanServer; +import javax.management.MBeanServerConnection; import javax.management.ObjectName; +import javax.management.remote.JMXConnector; +import javax.management.remote.JMXConnectorFactory; +import javax.management.remote.JMXServiceURL; import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; import org.apache.camel.component.direct.DirectComponent; -import org.apache.camel.component.extension.ComponentVerifierExtension; -import org.apache.camel.component.extension.ComponentVerifierExtension.Result; -import org.apache.camel.component.extension.ComponentVerifierExtension.Scope; +import org.apache.camel.api.management.mbean.ComponentVerifierExtension; +import org.apache.camel.api.management.mbean.ComponentVerifierExtension.Result; +import org.apache.camel.api.management.mbean.ComponentVerifierExtension.Scope; import org.apache.camel.component.extension.verifier.DefaultComponentVerifierExtension; import org.apache.camel.component.extension.verifier.ResultBuilder; import org.apache.camel.support.DefaultComponent; @@ -41,6 +45,7 @@ public class ManagedComponentTest extends ManagementTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); + context.getManagementStrategy().getManagementAgent().setCreateConnector(true); context.addComponent("my-verifiable-component", new MyVerifiableComponent()); context.addComponent("direct", new DirectComponent()); @@ -74,7 +79,8 @@ public class ManagedComponentTest extends ManagementTestSupport { return; } - MBeanServer mbeanServer = getMBeanServer(); + JMXConnector connector = JMXConnectorFactory.connect(new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi/camel")); + MBeanServerConnection mbeanServer = connector.getMBeanServerConnection(); ObjectName on = ObjectName.getInstance("org.apache.camel:context=camel-1,type=components,name=\"my-verifiable-component\""); assertTrue(mbeanServer.isRegistered(on)); diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagementTestSupport.java b/camel-core/src/test/java/org/apache/camel/management/ManagementTestSupport.java index 6bae86d..e61f41a 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagementTestSupport.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagementTestSupport.java @@ -16,9 +16,12 @@ */ package org.apache.camel.management; +import java.io.IOException; + import javax.management.InstanceNotFoundException; import javax.management.MBeanException; import javax.management.MBeanServer; +import javax.management.MBeanServerConnection; import javax.management.ObjectName; import javax.management.ReflectionException; @@ -39,14 +42,14 @@ public abstract class ManagementTestSupport extends ContextTestSupport { } @SuppressWarnings("unchecked") - protected <T> T invoke(MBeanServer server, ObjectName name, String operationName) - throws InstanceNotFoundException, MBeanException, ReflectionException { + protected <T> T invoke(MBeanServerConnection server, ObjectName name, String operationName) + throws InstanceNotFoundException, MBeanException, ReflectionException, IOException { return (T)server.invoke(name, operationName, null, null); } @SuppressWarnings("unchecked") - protected <T> T invoke(MBeanServer server, ObjectName name, String operationName, Object params[], String signature[]) - throws InstanceNotFoundException, MBeanException, ReflectionException { + protected <T> T invoke(MBeanServerConnection server, ObjectName name, String operationName, Object params[], String signature[]) + throws InstanceNotFoundException, MBeanException, ReflectionException, IOException { return (T)server.invoke(name, operationName, params, signature); } } diff --git a/camel-api/pom.xml b/camel-management-api/pom.xml similarity index 97% copy from camel-api/pom.xml copy to camel-management-api/pom.xml index 87d6aa0..67f61c3 100644 --- a/camel-api/pom.xml +++ b/camel-management-api/pom.xml @@ -29,10 +29,10 @@ <relativePath>../parent</relativePath> </parent> - <artifactId>camel-api</artifactId> + <artifactId>camel-management-api</artifactId> <packaging>jar</packaging> - <name>Camel :: API</name> - <description>The Camel API</description> + <name>Camel :: Management API</name> + <description>The Camel Management API</description> <dependencies> @@ -45,6 +45,13 @@ <dependency> <groupId>org.apache.camel</groupId> + <artifactId>meta-annotations</artifactId> + <version>${project.version}</version> + <optional>true</optional> + </dependency> + + <dependency> + <groupId>org.apache.camel</groupId> <artifactId>camel-util</artifactId> <version>${project.version}</version> </dependency> diff --git a/camel-core/src/main/java/org/apache/camel/api/management/JmxNotificationBroadcasterAware.java b/camel-management-api/src/main/java/org/apache/camel/api/management/JmxNotificationBroadcasterAware.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/JmxNotificationBroadcasterAware.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/JmxNotificationBroadcasterAware.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/ManagedAttribute.java b/camel-management-api/src/main/java/org/apache/camel/api/management/ManagedAttribute.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/ManagedAttribute.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/ManagedAttribute.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/ManagedInstance.java b/camel-management-api/src/main/java/org/apache/camel/api/management/ManagedInstance.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/ManagedInstance.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/ManagedInstance.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/ManagedNotification.java b/camel-management-api/src/main/java/org/apache/camel/api/management/ManagedNotification.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/ManagedNotification.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/ManagedNotification.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/ManagedNotifications.java b/camel-management-api/src/main/java/org/apache/camel/api/management/ManagedNotifications.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/ManagedNotifications.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/ManagedNotifications.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/ManagedOperation.java b/camel-management-api/src/main/java/org/apache/camel/api/management/ManagedOperation.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/ManagedOperation.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/ManagedOperation.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/ManagedResource.java b/camel-management-api/src/main/java/org/apache/camel/api/management/ManagedResource.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/ManagedResource.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/ManagedResource.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/NotificationSender.java b/camel-management-api/src/main/java/org/apache/camel/api/management/NotificationSender.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/NotificationSender.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/NotificationSender.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/NotificationSenderAware.java b/camel-management-api/src/main/java/org/apache/camel/api/management/NotificationSenderAware.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/NotificationSenderAware.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/NotificationSenderAware.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/BacklogTracerEventMessage.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/BacklogTracerEventMessage.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/BacklogTracerEventMessage.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/BacklogTracerEventMessage.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/CamelOpenMBeanTypes.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/CamelOpenMBeanTypes.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/CamelOpenMBeanTypes.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/CamelOpenMBeanTypes.java diff --git a/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ComponentVerifierExtension.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ComponentVerifierExtension.java new file mode 100644 index 0000000..e65f2ca --- /dev/null +++ b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ComponentVerifierExtension.java @@ -0,0 +1,471 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.api.management.mbean; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; +import java.util.Set; + +import org.apache.camel.api.management.mbean.ComponentVerifierExtension.VerificationError.Attribute; +import org.apache.camel.api.management.mbean.ComponentVerifierExtension.VerificationError.Code; +import org.apache.camel.api.management.mbean.ComponentVerifierExtension.VerificationError.ExceptionAttribute; +import org.apache.camel.api.management.mbean.ComponentVerifierExtension.VerificationError.GroupAttribute; +import org.apache.camel.api.management.mbean.ComponentVerifierExtension.VerificationError.HttpAttribute; +import org.apache.camel.api.management.mbean.ComponentVerifierExtension.VerificationError.StandardCode; + +/** + * Defines the interface used for validating component/endpoint parameters. The central method of this + * interface is {@link ManagedComponentMBean#verify(String, Map)} which takes a scope and a set of parameters which should be verified. + * <p/> + * The return value is a {@link ComponentVerifierExtension.Result} of the verification + * + */ +public final class ComponentVerifierExtension { + + /** + * The result of a verification + */ + public interface Result extends Serializable { + + /** + * Status of the verification + */ + enum Status { + /** + * Verification succeeded + */ + OK, + /** + * Error occurred during the verification + */ + ERROR, + /** + * Verification is not supported. This can depend on the given scope. + */ + UNSUPPORTED + } + + /** + * Scope of the verification. This is the scope given to the call to {@link ManagedComponentMBean#verify(String, Map)} and + * can be used for correlation. + * + * @return the scope against which the parameters have been validated. + */ + Scope getScope(); + + /** + * Result of the validation as status. This should be the first datum to check after a verification + * happened. + * + * @return the status + */ + Status getStatus(); + + /** + * Collection of errors happened for the verification. This list is empty (but non null) if the verification + * succeeded. + * + * @return a list of errors. Can be empty when verification was successful + */ + List<VerificationError> getErrors(); + } + + /** + * The scope defines how the parameters should be verified. + */ + public enum Scope { + /** + * Only validate the parameters for their <em>syntactic</em> soundness. Verifications in this scope should + * be as fast as possible + */ + PARAMETERS, + + /** + * Reach out to the backend and verify that a connection can be established. This means, if the verification + * in this scope succeeds, then it can safely be assumed that the component can be used. + */ + CONNECTIVITY; + + /** + * Get an instance of this scope from a string representation + * + * @param scope the scope as string, which can be in any case + * @return the scope enum represented by this string + */ + public static Scope fromString(String scope) { + return Scope.valueOf(scope != null ? scope.toUpperCase() : null); + } + } + + // ============================================================================================= + + /** + * This interface represents a detailed error in case when the verification fails. + */ + public interface VerificationError extends Serializable { + + /** + * The overall error code, which can be either a {@link StandardCode} or a custom code. It is + * recommended to stick to the predefined standard codes + * + * @return the general error code. + */ + Code getCode(); + + /** + * A human readable description of the error in plain english + * + * @return the error description (if available) + */ + String getDescription(); + + /** + * A set of input parameter names which fails the verification. These are keys to the parameter provided + * to {@link ManagedComponentMBean#verify(String, Map)}. + * + * @return the parameter names which are malformed and caused the failure of the validation + */ + Set<String> getParameterKeys(); + + /** + * Details about the failed verification. The keys can be either predefined values + * ({@link ExceptionAttribute}, {@link HttpAttribute}, {@link GroupAttribute}) or it can be free-form + * custom keys specific to a component. The standard attributes are defined as enums in all uppercase (with + * underscore as separator), custom attributes are supposed to be in all lower case (also with underscores + * as separators) + * + * @return a number of key/value pair with additional information related to the verification. + */ + Map<Attribute, Object> getDetails(); + + /** + * Get a single detail for a given attribute + * + * @param attribute the attribute to lookup + * @return the detail value or null if no such attribute exists + */ + default Object getDetail(Attribute attribute) { + Map<Attribute, Object> details = getDetails(); + if (details != null) { + return details.get(attribute); + } + return null; + } + + /** + * Get a single detail for a given attribute + * + * @param attribute the attribute to lookup + * @return the detail value or null if no such attribute exists + */ + default Object getDetail(String attribute) { + return getDetail(asAttribute(attribute)); + } + + /** + * Convert a string to an {@link Code} + * + * @param code the code to convert. It should be in all lower case (with + * underscore as a separator) to avoid overlap with {@link StandardCode} + * @return error code + */ + static Code asCode(String code) { + return new ErrorCode(code); + } + + /** + * Convert a string to an {@link Attribute} + * + * @param attribute the string representation of an attribute to convert. It should be in all lower case (with + * underscore as a separator) to avoid overlap with standard attributes like {@link ExceptionAttribute}, + * {@link HttpAttribute} or {@link GroupAttribute} + * @return generated attribute + */ + static Attribute asAttribute(String attribute) { + return new ErrorAttribute(attribute); + } + + /** + * Interface defining an error code. This is implemented by the {@link StandardCode} but also + * own code can be generated by implementing this interface. This is best done via {@link #asCode(String)} + * If possible, the standard codes should be reused + */ + interface Code extends Serializable { + /** + * Name of the code. All uppercase for standard codes, all lower case for custom codes. + * Separator between two words is an underscore. + * + * @return code name + */ + String name(); + + /** + * Bean style accessor to name. + * This is required for framework like Jackson using bean convention for object serialization. + * + * @return code name + */ + default String getName() { + return name(); + } + } + + /** + * Standard set of error codes + */ + interface StandardCode extends Code { + /** + * Authentication failed + */ + StandardCode AUTHENTICATION = new StandardErrorCode("AUTHENTICATION"); + /** + * An exception occurred + */ + StandardCode EXCEPTION = new StandardErrorCode("EXCEPTION"); + /** + * Internal error while performing the verification + */ + StandardCode INTERNAL = new StandardErrorCode("INTERNAL"); + /** + * A mandatory parameter is missing + */ + StandardCode MISSING_PARAMETER = new StandardErrorCode("MISSING_PARAMETER"); + /** + * A given parameter is not known to the component + */ + StandardCode UNKNOWN_PARAMETER = new StandardErrorCode("UNKNOWN_PARAMETER"); + /** + * A given parameter is illegal + */ + StandardCode ILLEGAL_PARAMETER = new StandardErrorCode("ILLEGAL_PARAMETER"); + /** + * A combination of parameters is illegal. See {@link VerificationError#getParameterKeys()} for the set + * of affected parameters + */ + StandardCode ILLEGAL_PARAMETER_GROUP_COMBINATION = new StandardErrorCode("ILLEGAL_PARAMETER_GROUP_COMBINATION"); + /** + * A parameter <em>value</em> is not valid + */ + StandardCode ILLEGAL_PARAMETER_VALUE = new StandardErrorCode("ILLEGAL_PARAMETER_VALUE"); + /** + * A group of parameters is not complete in order to be valid + */ + StandardCode INCOMPLETE_PARAMETER_GROUP = new StandardErrorCode("INCOMPLETE_PARAMETER_GROUP"); + /** + * The verification is not supported + */ + StandardCode UNSUPPORTED = new StandardErrorCode("UNSUPPORTED"); + /** + * The requested {@link Scope} is not supported + */ + StandardCode UNSUPPORTED_SCOPE = new StandardErrorCode("UNSUPPORTED_SCOPE"); + /** + * The requested {@link Component} is not supported + */ + StandardCode UNSUPPORTED_COMPONENT = new StandardErrorCode("UNSUPPORTED_COMPONENT"); + /** + * Generic error which is explained in more details with {@link VerificationError#getDetails()} + */ + StandardCode GENERIC = new StandardErrorCode("GENERIC"); + } + + /** + * Interface defining an attribute which is a key for the detailed error messages. + */ + interface Attribute extends Serializable { + /** + * Name of the attribute. All uppercase for standard attributes and all lower case for custom attributes. + * Separator between words is an underscore. + * + * @return attribute name + */ + String name(); + + /** + * Bean style accessor to name; + * This is required for framework like Jackson using bean convention for object serialization. + * + * @return attribute name + */ + default String getName() { + return name(); + } + } + + /** + * Attributes for details about an exception that was raised + */ + interface ExceptionAttribute extends Attribute { + /** + * The exception object that has been thrown. Note that this can be a complex + * object and can cause large content when e.g. serialized as JSON + */ + ExceptionAttribute EXCEPTION_INSTANCE = new ExceptionErrorAttribute("EXCEPTION_INSTANCE"); + /** + * The exception class + */ + ExceptionAttribute EXCEPTION_CLASS = new ExceptionErrorAttribute("EXCEPTION_CLASS"); + } + + /** + * HTTP related error details + */ + interface HttpAttribute extends Attribute { + /** + * The erroneous HTTP code that occurred + */ + HttpAttribute HTTP_CODE = new HttpErrorAttribute("HTTP_CODE"); + /** + * HTTP response's body + */ + HttpAttribute HTTP_TEXT = new HttpErrorAttribute("HTTP_TEXT"); + /** + * If given as details, specifies that a redirect happened and the + * content of this detail is the redirect URL + */ + HttpAttribute HTTP_REDIRECT = new HttpErrorAttribute("HTTP_REDIRECT"); + } + + /** + * Group related details + */ + interface GroupAttribute extends Attribute { + /** + * Group name + */ + GroupAttribute GROUP_NAME = new GroupErrorAttribute("GROUP_NAME"); + /** + * Options for the group + */ + GroupAttribute GROUP_OPTIONS = new GroupErrorAttribute("GROUP_OPTIONS"); + } + } + + /** + * Custom class for error codes + */ + static class ErrorCode implements Code { + + private final String name; + + ErrorCode(String name) { + if (name == null) { + throw new IllegalArgumentException("Name of an error code must not be null"); + } + this.name = name; + } + + @Override + public String name() { + return name; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof Code)) { + return false; + } + + Code errorCode = (Code) o; + + return name.equals(errorCode.name()); + } + + @Override + public int hashCode() { + return name.hashCode(); + } + + @Override + public String toString() { + return name(); + } + } + + static class ErrorAttribute implements Attribute { + + private final String name; + + ErrorAttribute(String name) { + if (name == null) { + throw new IllegalArgumentException("Name of an error attribute must not be null"); + } + this.name = name; + } + + @Override + public String name() { + return name; + } + + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (!(o instanceof Attribute)) { + return false; + } + + Attribute that = (Attribute) o; + + return name.equals(that.name()); + } + + @Override + public int hashCode() { + return name.hashCode(); + } + + @Override + public String toString() { + return name(); + } + } + + // =========================================================================================================== + // Helper classes for implementing the constants in ComponentVerifier: + + static class StandardErrorCode extends ErrorCode implements StandardCode { + StandardErrorCode(String name) { + super(name); + } + } + + static class ExceptionErrorAttribute extends ErrorAttribute implements ExceptionAttribute { + ExceptionErrorAttribute(String name) { + super(name); + } + } + + static class HttpErrorAttribute extends ErrorAttribute implements HttpAttribute { + HttpErrorAttribute(String name) { + super(name); + } + } + + static class GroupErrorAttribute extends ErrorAttribute implements GroupAttribute { + GroupErrorAttribute(String name) { + super(name); + } + } +} \ No newline at end of file diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedAggregateProcessorMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedAggregateProcessorMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedAggregateProcessorMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedAggregateProcessorMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedAsyncProcessorAwaitManagerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedAsyncProcessorAwaitManagerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedAsyncProcessorAwaitManagerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedAsyncProcessorAwaitManagerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedBacklogDebuggerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedBacklogDebuggerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedBacklogDebuggerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedBacklogDebuggerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedBacklogTracerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedBacklogTracerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedBacklogTracerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedBacklogTracerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedBeanMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedBeanMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedBeanMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedBeanMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedBrowsableEndpointMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedBrowsableEndpointMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedBrowsableEndpointMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedBrowsableEndpointMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelContextMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelHealthMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelHealthMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelHealthMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedCamelHealthMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedChoiceMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedChoiceMBean.java similarity index 100% copy from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedChoiceMBean.java copy to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedChoiceMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedClaimCheckMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedClaimCheckMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedClaimCheckMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedClaimCheckMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedClusterServiceMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedClusterServiceMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedClusterServiceMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedClusterServiceMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java similarity index 96% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java index ad4ee9b..1eb3503 100644 --- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java +++ b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedComponentMBean.java @@ -22,7 +22,6 @@ import javax.management.openmbean.TabularData; import org.apache.camel.api.management.ManagedAttribute; import org.apache.camel.api.management.ManagedOperation; -import org.apache.camel.component.extension.ComponentVerifierExtension; public interface ManagedComponentMBean { diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerCacheMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerCacheMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerCacheMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerCacheMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedConsumerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedConvertBodyMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedConvertBodyMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedConvertBodyMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedConvertBodyMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCounterMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedCounterMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCounterMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedCounterMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCustomLoadBalancerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedCustomLoadBalancerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedCustomLoadBalancerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedCustomLoadBalancerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedDataFormatMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedDataFormatMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedDataFormatMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedDataFormatMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedDelayerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedDelayerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedDelayerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedDelayerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedDynamicRouterMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedDynamicRouterMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedDynamicRouterMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedDynamicRouterMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointRegistryMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointRegistryMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointRegistryMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedEndpointRegistryMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedEnricherMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedEnricherMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedEnricherMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedEnricherMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedErrorHandlerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedExtendedInformation.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedExtendedInformation.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedExtendedInformation.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedExtendedInformation.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedFailoverLoadBalancerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedFailoverLoadBalancerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedFailoverLoadBalancerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedFailoverLoadBalancerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedFilterMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedFilterMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedFilterMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedFilterMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedIdempotentConsumerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedIdempotentConsumerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedIdempotentConsumerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedIdempotentConsumerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedInflightRepositoryMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedInflightRepositoryMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedInflightRepositoryMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedInflightRepositoryMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedLogMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedLogMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedLogMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedLogMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedLoopMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedLoopMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedLoopMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedLoopMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedMarshalMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedMarshalMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedMarshalMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedMarshalMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedMulticastMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedMulticastMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedMulticastMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedMulticastMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedPerformanceCounterMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedPerformanceCounterMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedPerformanceCounterMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedPerformanceCounterMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedPollEnricherMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedPollEnricherMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedPollEnricherMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedPollEnricherMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessorMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessorMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessorMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProcessorMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerCacheMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerCacheMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerCacheMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerCacheMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedProducerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRandomLoadBalancerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRandomLoadBalancerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRandomLoadBalancerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRandomLoadBalancerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRecipientListMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRecipientListMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRecipientListMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRecipientListMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRemoveHeaderMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRemoveHeaderMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRemoveHeaderMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRemoveHeaderMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRemoveHeadersMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRemoveHeadersMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRemoveHeadersMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRemoveHeadersMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRemovePropertiesMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRemovePropertiesMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRemovePropertiesMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRemovePropertiesMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRemovePropertyMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRemovePropertyMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRemovePropertyMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRemovePropertyMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedResequencerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedResequencerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedResequencerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedResequencerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedResourceEndpointMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedResourceEndpointMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedResourceEndpointMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedResourceEndpointMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRestRegistryMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRestRegistryMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRestRegistryMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRestRegistryMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRollbackMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRollbackMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRollbackMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRollbackMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRoundRobinLoadBalancerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRoundRobinLoadBalancerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRoundRobinLoadBalancerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRoundRobinLoadBalancerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteControllerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteControllerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteControllerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteControllerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java similarity index 98% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java index b17b15e..ede4f95 100644 --- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java +++ b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRouteMBean.java @@ -18,10 +18,9 @@ package org.apache.camel.api.management.mbean; import javax.management.openmbean.TabularData; -import org.apache.camel.Experimental; +import org.apache.camel.meta.Experimental; import org.apache.camel.api.management.ManagedAttribute; import org.apache.camel.api.management.ManagedOperation; -import org.apache.camel.spi.RouteError; public interface ManagedRouteMBean extends ManagedPerformanceCounterMBean { diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRoutingSlipMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRoutingSlipMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRoutingSlipMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRoutingSlipMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRuntimeCamelCatalogMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRuntimeCamelCatalogMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRuntimeCamelCatalogMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRuntimeCamelCatalogMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRuntimeEndpointRegistryMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRuntimeEndpointRegistryMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedRuntimeEndpointRegistryMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedRuntimeEndpointRegistryMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSamplingThrottlerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSamplingThrottlerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSamplingThrottlerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSamplingThrottlerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSchedulePollConsumerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSchedulePollConsumerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSchedulePollConsumerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSchedulePollConsumerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedScriptMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedScriptMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedScriptMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedScriptMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSendDynamicProcessorMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSendDynamicProcessorMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSendDynamicProcessorMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSendDynamicProcessorMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSendProcessorMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSendProcessorMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSendProcessorMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSendProcessorMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedServiceMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedServiceMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedServiceMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedServiceMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSetBodyMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSetBodyMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSetBodyMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSetBodyMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSetExchangePatternMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSetExchangePatternMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSetExchangePatternMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSetExchangePatternMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSetHeaderMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSetHeaderMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSetHeaderMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSetHeaderMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSetPropertyMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSetPropertyMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSetPropertyMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSetPropertyMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSplitterMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSplitterMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSplitterMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSplitterMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedStickyLoadBalancerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedStickyLoadBalancerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedStickyLoadBalancerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedStickyLoadBalancerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedStopMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedStopMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedStopMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedStopMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedStreamCachingStrategyMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedStreamCachingStrategyMBean.java similarity index 92% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedStreamCachingStrategyMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedStreamCachingStrategyMBean.java index 5af8674..00b690a 100644 --- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedStreamCachingStrategyMBean.java +++ b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedStreamCachingStrategyMBean.java @@ -18,10 +18,16 @@ package org.apache.camel.api.management.mbean; import org.apache.camel.api.management.ManagedAttribute; import org.apache.camel.api.management.ManagedOperation; -import org.apache.camel.spi.StreamCachingStrategy; public interface ManagedStreamCachingStrategyMBean extends ManagedServiceMBean { + /** + * Used for selecting if the memory limit is <tt>committed</tt> or <tt>maximum</tt> heap memory setting. + */ + enum SpoolUsedHeapMemoryLimit { + Committed, Max + } + @ManagedAttribute(description = "Whether stream caching is enabled") boolean isEnabled(); @@ -44,10 +50,10 @@ public interface ManagedStreamCachingStrategyMBean extends ManagedServiceMBean { int getSpoolUsedHeapMemoryThreshold(); @ManagedAttribute(description = "Whether used heap memory limit is committed or maximum") - void setSpoolUsedHeapMemoryLimit(StreamCachingStrategy.SpoolUsedHeapMemoryLimit limit); + void setSpoolUsedHeapMemoryLimit(SpoolUsedHeapMemoryLimit limit); @ManagedAttribute(description = "Whether used heap memory limit is committed or maximum") - StreamCachingStrategy.SpoolUsedHeapMemoryLimit getSpoolUsedHeapMemoryLimit(); + SpoolUsedHeapMemoryLimit getSpoolUsedHeapMemoryLimit(); @ManagedAttribute(description = "Buffer size in bytes to use when coping between buffers") void setBufferSize(int bufferSize); diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSuspendableRouteMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSuspendableRouteMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedSuspendableRouteMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedSuspendableRouteMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThreadPoolMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedThreadPoolMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThreadPoolMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedThreadPoolMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThreadsMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedThreadsMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThreadsMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedThreadsMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThrottlerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedThrottlerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThrottlerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedThrottlerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThrottlingExceptionRoutePolicyMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedThrottlingExceptionRoutePolicyMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThrottlingExceptionRoutePolicyMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedThrottlingExceptionRoutePolicyMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThrottlingInflightRoutePolicyMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedThrottlingInflightRoutePolicyMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThrottlingInflightRoutePolicyMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedThrottlingInflightRoutePolicyMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThroughputLoggerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedThroughputLoggerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThroughputLoggerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedThroughputLoggerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThrowExceptionMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedThrowExceptionMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedThrowExceptionMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedThrowExceptionMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedTopicLoadBalancerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTopicLoadBalancerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedTopicLoadBalancerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTopicLoadBalancerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformerRegistryMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformerRegistryMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformerRegistryMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTransformerRegistryMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedTypeConverterRegistryMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTypeConverterRegistryMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedTypeConverterRegistryMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedTypeConverterRegistryMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedUnmarshalMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedUnmarshalMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedUnmarshalMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedUnmarshalMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedValidateMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedValidateMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedValidateMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedValidateMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedValidatorRegistryMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedValidatorRegistryMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedValidatorRegistryMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedValidatorRegistryMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedWeightedBalancerMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedWeightedBalancerMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedWeightedBalancerMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedWeightedBalancerMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedWireTapMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedWireTapMBean.java similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedWireTapMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/ManagedWireTapMBean.java diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedChoiceMBean.java b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/RouteError.java similarity index 69% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedChoiceMBean.java rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/RouteError.java index 32c2bf8..d63ac8b 100644 --- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedChoiceMBean.java +++ b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/RouteError.java @@ -16,13 +16,27 @@ */ package org.apache.camel.api.management.mbean; -import javax.management.openmbean.TabularData; +public interface RouteError { + enum Phase { + START, + STOP, + SUSPEND, + RESUME, + SHUTDOWN, + REMOVE + } -import org.apache.camel.api.management.ManagedOperation; + /** + * Gets the phase associated with the error. + * + * @return the phase. + */ + Phase getPhase(); -public interface ManagedChoiceMBean extends ManagedProcessorMBean { - - @ManagedOperation(description = "Statistics of the content based router for each predicate") - TabularData choiceStatistics(); - -} \ No newline at end of file + /** + * Gets the error. + * + * @return the error. + */ + Throwable getException(); +} diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/package.html b/camel-management-api/src/main/java/org/apache/camel/api/management/mbean/package.html similarity index 100% rename from camel-core/src/main/java/org/apache/camel/api/management/mbean/package.html rename to camel-management-api/src/main/java/org/apache/camel/api/management/mbean/package.html diff --git a/camel-core/src/main/java/org/apache/camel/api/management/package.html b/camel-management-api/src/main/java/org/apache/camel/api/management/package.html similarity index 100% copy from camel-core/src/main/java/org/apache/camel/api/management/package.html copy to camel-management-api/src/main/java/org/apache/camel/api/management/package.html diff --git a/parent/pom.xml b/parent/pom.xml index f231348..06d2524 100644 --- a/parent/pom.xml +++ b/parent/pom.xml @@ -827,6 +827,11 @@ </dependency> <dependency> <groupId>org.apache.camel</groupId> + <artifactId>camel-management-api</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> <artifactId>camel-core</artifactId> <version>${project.version}</version> </dependency> diff --git a/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml b/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml index dadf55a..4514be3 100644 --- a/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml +++ b/platforms/spring-boot/spring-boot-dm/camel-spring-boot-dependencies/pom.xml @@ -1811,6 +1811,11 @@ </dependency> <dependency> <groupId>org.apache.camel</groupId> + <artifactId>camel-management-api</artifactId> + <version>${project.version}</version> + </dependency> + <dependency> + <groupId>org.apache.camel</groupId> <artifactId>camel-manual</artifactId> <version>${project.version}</version> </dependency> diff --git a/pom.xml b/pom.xml index 3b6723c..182f871 100644 --- a/pom.xml +++ b/pom.xml @@ -147,6 +147,7 @@ <module>buildingtools</module> <module>camel-util</module> <module>camel-api</module> + <module>camel-management-api</module> <module>camel-core</module> <module>components</module> <module>archetypes</module> diff --git a/camel-core/src/main/java/org/apache/camel/api/management/package.html b/tooling/meta-annotations/pom.xml similarity index 53% rename from camel-core/src/main/java/org/apache/camel/api/management/package.html rename to tooling/meta-annotations/pom.xml index 73b0183..fbfb381 100644 --- a/camel-core/src/main/java/org/apache/camel/api/management/package.html +++ b/tooling/meta-annotations/pom.xml @@ -1,3 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more @@ -16,13 +17,26 @@ limitations under the License. --> -<html> -<head> -</head> -<body> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> -Service provider interfaces for management. These help make components management-aware and -also allow components to implement their own management strategies. + <modelVersion>4.0.0</modelVersion> -</body> -</html> + <parent> + <groupId>org.apache.camel</groupId> + <artifactId>tooling</artifactId> + <version>3.0.0-SNAPSHOT</version> + </parent> + + <!-- should not be OSGi bundle as we shade this component into camel-core --> + + <artifactId>meta-annotations</artifactId> + <name>Camel :: Meta Annotations</name> + <description>Annotations for Camel code</description> + + <properties> + </properties> + + <dependencies> + </dependencies> + +</project> diff --git a/camel-api/src/main/java/org/apache/camel/Experimental.java b/tooling/meta-annotations/src/main/java/org/apache/camel/meta/Experimental.java similarity index 97% rename from camel-api/src/main/java/org/apache/camel/Experimental.java rename to tooling/meta-annotations/src/main/java/org/apache/camel/meta/Experimental.java index 6ea6c1f..d7179c5 100644 --- a/camel-api/src/main/java/org/apache/camel/Experimental.java +++ b/tooling/meta-annotations/src/main/java/org/apache/camel/meta/Experimental.java @@ -14,7 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.camel; +package org.apache.camel.meta; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/tooling/pom.xml b/tooling/pom.xml index 138ba57..f4d218e 100644 --- a/tooling/pom.xml +++ b/tooling/pom.xml @@ -39,6 +39,7 @@ <modules> <module>parent</module> + <module>meta-annotations</module> <module>spi-annotations</module> <module>json-simple-ordered</module> <module>apt</module>