## ------------------------------------------------------------------------
## 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.
## ------------------------------------------------------------------------
AggregateDefinition
AOPDefinition
BeanDefinition
CatchDefinition
ChoiceDefinition
ConvertBodyDefinition
ContextScanDefinition
DataFormatDefinition
DelayDefinition
DescriptionDefinition
DynamicRouterDefinition
EnrichDefinition
ExpressionSubElementDefinition
FilterDefinition
FinallyDefinition
FromDefinition
IdempotentConsumerDefinition
InOnlyDefinition
InOutDefinition
InterceptDefinition
InterceptFromDefinition
InterceptSendToEndpointDefinition
LoadBalanceDefinition
LoadBalancerDefinition
LogDefinition
LoopDefinition
MarshalDefinition
MulticastDefinition
OnCompletionDefinition
OnExceptionDefinition
OptionalIdentifiedDefinition
OtherwiseDefinition
PackageScanDefinition
PipelineDefinition
PolicyDefinition
PollEnrichDefinition
ProcessDefinition
RecipientListDefinition
RedeliveryPolicyDefinition
RemoveHeaderDefinition
RemoveHeadersDefinition
RemovePropertyDefinition
ResequenceDefinition
RollbackDefinition
RouteBuilderDefinition
RouteDefinition
RouteContextRefDefinition
RoutesDefinition
RoutingSlipDefinition
SamplingDefinition
SetBodyDefinition
SetExchangePatternDefinition
SetFaultBodyDefinition
SetHeaderDefinition
SetOutHeaderDefinition
SetPropertyDefinition
SortDefinition
SplitDefinition
StopDefinition
ThreadPoolProfileDefinition
ThreadsDefinition
ThrottleDefinition
ThrowExceptionDefinition
ToDefinition
TransactedDefinition
TransformDefinition
TryDefinition
UnmarshalDefinition
ValidateDefinition
WhenDefinition
WireTapDefinition
