## ------------------------------------------------------------------------
## 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
DataFormatDefinition
DelayDefinition
DescriptionDefinition
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
SetHeaderDefinition
SetOutHeaderDefinition
SetPropertyDefinition
SortDefinition
SplitDefinition
StopDefinition
ThreadPoolProfileDefinition
ThreadsDefinition
ThrottleDefinition
ThrowExceptionDefinition
ToDefinition
TransactedDefinition
TransformDefinition
TryDefinition
UnmarshalDefinition
ValidateDefinition
WhenDefinition
WireTapDefinition
