[ 
https://issues.apache.org/jira/browse/CAMEL-4358?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13089274#comment-13089274
 ] 

Claus Ibsen commented on CAMEL-4358:
------------------------------------

It looks like you removed JmxNotificationBroadcasterAware, is there a reason 
for that?

And whats the reason for moving the 3 ManagedXXX annotations to spi.management 
package?
As an end user, eg developing a custom processor/bean/component I would feel a 
bit odd to import spi.management to add a JMX annotation to my code. Those 
annotations are part of the "daily" development, and fells more natural in the 
org.apache.camel.management or org.apache.camel package.
The spi.management would be for 3rd party developing some custom integration 
with eg. a custom management software with Camel in general. A regular Camel 
end user shouldn't need to use the spi package.
Luckily those 3 ManagedXXX annotations is new in Camel 2.9 so we have the 
luxury of being able to place them where we like it the best.

Also it would be nice if the patch was smaller and you did this in more steps. 
So if you wanted to move the ServiceSupport and I think there was one other 
class, then doing that in a separate patch would have been nice. But I guess 
from this big patch its harder to split it into two now your working codebase 
has changed soo much.

Anyway you are on a good way here. Just the ManagedXXX annotations I would like 
to be kept in a non spi package.

> Refactoring of management code to remove cycles and clearly separate between 
> API and impl
> -----------------------------------------------------------------------------------------
>
>                 Key: CAMEL-4358
>                 URL: https://issues.apache.org/jira/browse/CAMEL-4358
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-core
>    Affects Versions: 2.8.0
>            Reporter: Christian Schneider
>            Assignee: Christian Schneider
>             Fix For: 2.9.0
>
>         Attachments: CAMEL-4358-1.patch
>
>
> Currently the management code (org.apache.camel.management.*) contains a mix 
> of implementation code and APIs. This leads to cycle in the management code 
> as well as to bigger cycles involving all of camel-core.
> So I propose to do several changes:
> - move interfaces and annotations that form the API to camel.spi.management. 
> As these are probably not used by external components or user code no 
> compatibility classes are created
> - create new package camel.suppport for classes that implement API or SPI 
> classes and are expected to be extended by many impl classes. classes in 
> support may only access the camel API and SPI
> - Move EventNotifierSupport and ServiceSupport to this package. Create 
> deprecate dummys in the old locations to avoid breaking older code
> - Move DefaultEventFactory from management to management.event
> I will post a patch shortly for review

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

        

Reply via email to