[ 
https://issues.apache.org/jira/browse/CAMEL-4417?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Christian Schneider updated CAMEL-4417:
---------------------------------------

    Attachment: CAMEL-4417-1.patch

Patch moving all support classes from impl to support.

I moved the following classes and placed compatibility classes in their impl 
location:
DefaultAsyncProducer,
DefaultComponent,
DefaultConsumer,
DefaultEndpoint,
DefaultExchange,
DefaultMessage,
DefaultPollingEndpoint,
DefaultProducer,
DefaultUnitOfWork, 
ExpressionSupport,
HeaderFilterStrategyComponent,
InterceptSendToMockEndpointStrategy,
LoggingExceptionHandler,
PollingConsumerSupport,
ProcessorEndpoint,
ProducerCache,
ScheduledPollConsumer,
ScheduledPollEndpoint,

I moved the following classes without compat stubs as they were not needed 
outside camel-core:
DefaultPollingConsumerPollStrategy, DefaultRouteNode, 
DefaultScheduledPollConsumer, DefaultSubUnitOfWork, DefaultTracedRouteNodes,
EventDrivenPollingConsumer, ExpressionAdapter,
InterceptSendToEndpoint,
MDCUnitOfWork,
MessageSupport,
ProcessorPollingConsumer,
SimpleUuidGenerator

I moved AsyncProcessorConverterHelper from processor to util as it is needed 
from support.

The only problematic class I moved was DefaultConsumer as it needed 
AsyncProcessorConverterHelper. So the above including the inner class 
ProcessorToAsyncProcessorBridge had to move to util. The problem here was that 
the Bridge had to extend DelegateProcessor which of course is in processor. As 
util should not depend on processor I had to introduce an interface 
DelegateProcessor in camel that could be used to abstract from 
ProcessorToAsyncProcessorBridge, DelegateProcessor and DelegateAsyncProcessor. 
This is a good thing anyway and I will open a jira to do this first.

I also had to move PipelineHelper and SimpleUuidGeneratopr to util as they were 
used from support classes.

This is a fairly large patch. So I am not sure if it is good for 2.9. On the 
other hand if we wait with this till 3.0 we are either really incompatible or 
we can not remove the deprecated classes







> Move base classes used by components from impl to support
> ---------------------------------------------------------
>
>                 Key: CAMEL-4417
>                 URL: https://issues.apache.org/jira/browse/CAMEL-4417
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-core
>    Affects Versions: 2.8.0
>            Reporter: Christian Schneider
>            Assignee: Christian Schneider
>             Fix For: 3.0.0
>
>         Attachments: CAMEL-4417-1.patch
>
>
> Several classes in impl are used or extended by components. We should avoid 
> this.
> The base classes should be moved to support. Examples are DefaultComponent, 
> DefaultEndpoint, DefaultProducer.
> Another case is the AsyncProcessorTypeConverter. The typeconverter is well 
> placed in impl but the class also has a public static convert method that is 
> used from many components. So this functionality should be moved to processor 
> so it is available to components.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to