Christian, Claus, others...
could you please have a look at the following commit:
https://github.com/muellerc/camel/commit/fd9bb64586c1d082e4169cf08831da9c2b6afccb

This is my understanding of bridging the existing code to the new one. Do
we have the same understanding?
Of course I have to change the reference in Camel itself from
org.apache.camel.VetoCamelContextStartException to
org.apache.camel.api.exception.VetoCamelContextStartException...

Best,
Christian

On Tue, Feb 19, 2013 at 9:57 PM, Christian Müller <
christian.muel...@gmail.com> wrote:

> This was the today's discussion on IRC (irc://irc.codehaus.org/camel).
> Feel free to join the next time and/or comment on the today's discussed
> items.
> The next one is scheduled for 02/26/2013 7:00PM - 8:00PM CET. Feel free to
> join and express your ideas/needs/wishes/...
>
> [19:00:14] <cmueller>     let's DISCUSS THE CAMEL 3.0 ROAD MAP for the
> next hour. Feel free to join and express your ideas/needs/wishes/...
> [19:00:56] <cmueller>     you can find our ideas here:
> http://camel.apache.org/camel-30-ideas.html
> [19:01:20] <cmueller>     and our road map here:
> http://camel.apache.org/camel-30-roadmap.html
> [19:04:51] <cschneid1>     I would like to bring up the routing engine
> idea like discussed on the dev list recently
> [19:05:12] <cmueller>     ok, go ahead...
> [19:05:15] <splatch>     hey :-)
> [19:05:23] <cmueller>     welcome
> [19:05:33] <cschneid1>     Do you guys think we can change the core to
> implement such an engine? Or do we need some extra precautions like I
> mentioned
> [19:06:31] <splatch>     I think making core really thin have 1st priority
> it will speed up all other tasks including this discussed today
> [19:06:33] <cschneid1>     I see the risk that bigger changes in the core
> may lead to a branch that is only released after a year .. if we are lucky
> [19:06:49] <cmueller>     One of Claus goals is to be 99% backwards
> compatible
> [19:07:15] <cschneid1>     Yes .. that would  mean we can do no bigger
> changes
> [19:07:25] <splatch>     IMO Camel 3.0 don't have to be backward
> compatible at all, if we will continue this path there is no reason to work
> on 3.0
> [19:07:31] <cmueller>     Because of this, I think we need some Adapter
> classes
> [19:07:37] <cschneid1>     +1
> [19:07:48] <cmueller>     to provide a transition from Camel 2.x to 3.x
> [19:08:10] <cschneid1>     This is why we came up with the idea of
> creating a new api that is really small
> [19:08:14] <cmueller>     And if we reach 95%, that would be great
> [19:08:32] <cmueller>     I like this idea
> [19:08:40] <cschneid1>     Then move all components to the new api and
> bridge to the old core
> [19:08:59] <splatch>     user code will require dependency updates any
> way, so having core depending on separate api is not problem, it will be
> bringed by maven as transient dependency, right?
> [19:09:01] <cschneid1>     After that we can quite freely change the core
> and break no components
> [19:09:15] <cschneid1>     yes
> [19:09:55] <cschneid1>     I think simply refactoring the core right away
> is much more difficult. I tried and did not get very far
> [19:10:26] <cmueller>     I can imagine this...
> [19:10:57] <cschneid1>     Even when we do not try to be compatible it
> will be a long time till the core is stable again
> [19:11:01]      szhem (~
> mira...@broadband-178-140-61-178.nationalcablenetworks.ru) joined the
> channel.
> [19:11:33] <cmueller>     I think it would be great to start with
> something in a sandbox
> [19:11:38] <cschneid1>     So I think one of the most important goals
> should be to make sure we can release 3.0 quite soon after we start
> [19:11:55] <cmueller>     so that others get a better idea about we plan
> here
> [19:12:04] <cmueller>     +1
> [19:12:29] <splatch>     cmueller: what's about component releases - will
> they be released together as now?
> [19:12:53] <cmueller>     that's another topic we have to discuss
> [19:13:02] <cmueller>     there are pros and cons
> [19:13:22] <cschneid1>     yes
> [19:13:22] <cschneid1>     How about creating the new api in sandbox with
> either a small standalone engine or a bridge to core
> [19:13:32] <cschneid1>     I propose with to stay with the current common
> release to not change too much at the same time
> [19:13:40] <cmueller>     managing 100, 200 components with different
> version numbers could be end up in a versioning hell
> [19:13:51] <cschneid1>     I agree
> [19:14:07] <cschneid1>     Perhaps we can do that when we have a small and
> stable api
> [19:14:12] <davsclaus>     okay i am actually online today - just send
> some mails
> [19:14:21] <cmueller>     cool!
> [19:14:23] <splatch>     cmueller: pushing 200+ modules release where 150+
> are same as before doesn't sound like proper versioning too
> [19:14:41] <cmueller>     agree, but simpler ;-)
> [19:14:44] davsclaus     i guess you talk about the release each component
> individually
> [19:14:47] <cmueller>     for us...
> [19:14:51] <cmueller>     yes
> [19:14:58] <splatch>     I am scarred by numer of components too
> [19:14:59] <davsclaus>     i don't like that, keep it as is, elease
> patches every 6-8 weeks or thereabouts
> [19:15:04] <davsclaus>     we just need more ppl cutting releases
> [19:15:07] <cschneid1>     splatch: Yes .. but as of now each component
> depends on camel-core .. so any change in core potentially breaks a
> component
> [19:15:09] <cmueller>     and the other topic is the new Camel API
> [19:15:17] <cmueller>     we are multi threaded… ;-=
> [19:15:24] <davsclaus>     apache aries with the gazillion different
> version numbers scares me
> [19:15:39] <davsclaus>     i rather like that 2.10.3 all components has
> tested and works together
> [19:15:42] <splatch>     ok, lets back to api, component releases is
> organization thing, not critical
> [19:15:49] <davsclaus>     and don't mind 2.10.4 has a component with the
> code base unchanged since 2.10.3
> [19:15:51] <cschneid1>     davsclaus: Yes .. and it almost stopped
> releases at aries as they did not even manage it themselves
> [19:15:52] <davsclaus>     but its also released
> [19:16:11]      olamy (~ol...@52.255.88.79.rev.sfr.net) joined the
> channel.
> [19:16:17] <davsclaus>     cschneid1 yeah i had to choose between
> aries-proxy 1.1 aries-util 1.x? aries-xxx ?
> [19:16:27] <davsclaus>     don't really know what works together etc
> [19:16:28]      gnodet (~gno...@ven14-2-82-235-193-35.fbx.proxad.net)
> left IRC. (gnodet)
> [19:17:13]      iocanel (~text...@athedsl-88751.home.otenet.gr) joined
> the channel.
> [19:17:18] <cmueller>     I think the versioning topic has not to be done
> in Camel 3.0
> [19:17:19] <cschneid1>     So about the api .. what should a small api for
> camel contain?
> [19:17:25] <davsclaus>     cschneid1 about the routing engine, it goes a
> bit hand-in-hand with the error handlers + interceptors + cross cutting
> concerns being woven into each of the routes
> [19:17:36] <cschneid1>     yes
> [19:17:38] <davsclaus>     we need to take that out, so we have a 1:1
> model vs runtime
> [19:17:45] <cschneid1>     +1
> [19:17:46] <cmueller>     let's move it to Camel 3.x and MAY discuss it
> later again after we have Camel 3.0
> [19:17:50] <davsclaus>     then the routing engine can decide at runtime
> to trigger onException or .to in the route
> [19:17:53] <davsclaus>     e.g. what to call next
> [19:18:06] <davsclaus>     there is sort of ready for doing that - the
> DefaultChannel
> [19:18:18] <davsclaus>     was intended back years ago for the place to
> decide that
> [19:18:42] <cschneid1>     davsclaus: The only thing is that I think we
> first need to create a simpler api before we can start the routing engine
> changes
> [19:18:44] <davsclaus>     but due that model not 1:1 it was not possible
> to do in due time back then
> [19:18:58]      szhem (~
> mira...@broadband-178-140-61-178.nationalcablenetworks.ru) left IRC.
> (szhem)
> [19:19:19] <davsclaus>     simpler api from which pov ? end-users /
> component developers / camel itself?
> [19:19:35] <davsclaus>     the routing engine basically just has
> org.apache.camel.Processor
> [19:19:38] <davsclaus>     and AsyncProcessor
> [19:19:42] <cschneid1>     from my pov mainly component designers
> [19:19:46] <cmueller>     first of all, we need an API
> [19:19:47] <davsclaus>     e.g. the latter is a bit more complicated
> [19:20:01] <cschneid1>     will be off as I have to exit train
> [19:20:04]      cschneid1 (~cschneid@88.128.80.12) left IRC. (cschneid1)
> [19:20:05] <davsclaus>     the api is the root package + spi
> [19:20:19] <davsclaus>     but yeah it now has many exception classes / etc
> [19:20:31] <splatch>     davsclaus: yes, however API should have minimal
> set of classes
> [19:20:36] <davsclaus>     so i guess you want a component developer api
> that has the 10-20 interfaces needed?
> [19:20:47] <cmueller>     yes
> [19:20:47]      szhem (~
> mira...@broadband-178-140-61-178.nationalcablenetworks.ru) joined the
> channel.
> [19:20:49] <splatch>     davsclaus: for me DefaultErrorHandler is not part
> of API, it's part of core or default implementation
> [19:20:58]      cschneid3 (~cschn...@tmo-110-215.customers.d1-online.com)
> joined the channel.
> [19:21:04] <davsclaus>     yeah there is a spi.ErrorHandler AFAIR
> [19:21:19] <cschneid3>     Back on phone
> [19:21:24] <davsclaus>     and you can chose to use which error handler in
> the DSL
> [19:21:36] <davsclaus>     so that has an API
> [19:21:52] <splatch>     davsclaus: but API is not aware of DSL
> [19:22:01] <splatch>     at least it shouldn't be, component has nothing
> to do with DSL
> [19:22:23] <davsclaus>     the error handler is part of camel routing
> [19:22:32] <davsclaus>     and you normally would use the DSL to define
> routes
> [19:22:41] <cschneid3>     But what would the smallest camel api contain
> [19:22:46] <davsclaus>     component developers do not use the error
> handler api when writing components
> [19:22:47] <davsclaus>     they use
> [19:22:48] <davsclaus>     Exchange
> [19:22:50] <davsclaus>     Consumer
> [19:22:51] <davsclaus>     Producer
> [19:22:53] <davsclaus>     etc
> [19:23:05] <splatch>     davsclaus: agreed!
> [19:23:12] <cschneid3>     Message
> [19:23:13] <cschneid3>     Yes
> [19:23:33] <davsclaus>     the root package (we could possible move some
> classes or have a sub package for exceptions or what makes sense)
> [19:23:41]      dottyo (~webc...@irc.codehaus.org) joined the channel.
> [19:23:41] <davsclaus>     and some common classes from spi
> [19:24:14] <cschneid3>     I tried to refactor like this
> [19:24:16] <davsclaus>
> http://camel.apache.org/maven/current/camel-core/apidocs/index.html
> [19:25:03] <cschneid3>     The problem is that at some point the api
> references half the core
> [19:25:50] <davsclaus>     as osgi don't like splitter packages we can't
> cut a camel-component-api that has a selected number of apis ?
> [19:25:51] <cschneid3>     That is why i propose to create a new
> independent small api
> [19:26:18] <cschneid3>     Completely separated from core
> [19:26:33] <cschneid3>     And then a bridge to core
> [19:27:13] <cschneid3>     Basically the idea came from guillaume at
> apachecon
> [19:27:33] <davsclaus>     though we have 130+ components now and keep
> growing, so our end users can fairly easy figure out to create components
> [19:27:44] <davsclaus>     so the current api works
> [19:28:02] <splatch>     at least for component developers ;-)
> [19:28:04] <davsclaus>     but if we can rewind 5 years then for sure it
> may have been nice to create a small api
> [19:28:14] <davsclaus>     yeah and thats the main "customers"
> [19:29:02] <cschneid3>     Not really
> [19:29:02] <cschneid3>     There is no real api
> [19:29:14] <davsclaus>     there is an api
> [19:29:22] <davsclaus>     its just that there is 30 exceptions in the
> root package also
> [19:29:29] <davsclaus>     and you may only need occaptuonally to use one
> of them
> [19:29:37]      mr_smith (~mr_smith@69.80.98.133) joined the channel.
> [19:29:42] <cschneid3>     And references to impls
> [19:29:45] <davsclaus>     or the api package have X other interfaces you
> most likely not need to use for normal components
> [19:30:05]      olamy (~ol...@52.255.88.79.rev.sfr.net) left IRC. (olamy)
> [19:30:21] <cschneid3>     Yes that is why i think we hce to start clean
> [19:30:36] <cmueller>     I think it's easy to agree that the exceptions
> should go into "org.apache.camel.exception"?
> [19:30:51] <davsclaus>     well if we can create a independent module as
> you say and "bridge" it or what it takes
> [19:31:04] <davsclaus>     then that seems like a gentle and non
> disruptive way
> [19:31:10] <cmueller>     of course
> [19:31:25] <davsclaus>     and people can ad-hoc use the new api for new
> components
> [19:31:31] <davsclaus>     and use the old for existing etc
> [19:31:35] <cschneid3>     Yea
> [19:31:54] <davsclaus>     it would be a disaster for camel if 3.0 cannot
> use existing 2.x components etc
> [19:31:55] <cmueller>     And I would like to have a
> "org.apache.camel.api" package which makes clear THIS IS OUR API
> [19:32:02] <cschneid3>     The idea is to bridge to the mainly unchanged
> core
> [19:32:08] <davsclaus>     yes there may be a few changes that may require
> changes but for the overall majority it should just works
> [19:32:34] <cschneid3>     Then we move all components to the new api
> [19:32:46] <cschneid3>     After that we are free to change core
> [19:33:07] <davsclaus>     yeah sure a separate camel-api would be nice,
> and a camel-core etc - if we can rewind 5 years then James most likely
> would have created Camel that way
> [19:33:09] <cschneid3>     And not break components
> [19:33:48] <davsclaus>     if we don't have to worry about osgi split
> packages
> [19:33:56] <davsclaus>     then we could have an api with the same package
> names as today
> [19:34:13] <davsclaus>     we can't really move the root package and move
> Processor / Exchange / Message to another package
> [19:34:17] <splatch>     davsclaus: from other hand a breaking changes in
> 3.0 will definitelly clean up number of unsupported components in 2.x
> [19:34:20] <cmueller>     Yes, I think we have now the possibility to lern
> from our misstakes and build a better - not new - Camel
> [19:34:55] <davsclaus>     yeah better NOT new - e.g. ppl expect this to
> still lbe Camel and use as is
> [19:35:59] <davsclaus>     splatch if the breaking is compile breaking
> then we need to fix it ourselves, but yeah we should also look into
> [19:36:02] <cschneid3>     I think we can move to .api
> [19:36:09] <davsclaus>     at components which we should drtop
> [19:36:40] <cschneid3>     And then move one component after the other
> [19:36:57] <davsclaus>     its not just the components we offer out of the
> box, they can all be changed by us
> [19:36:57] <splatch>     davsclaus: there are terrible holes which was
> discussed as part of 2.x duscussions, like lack of URI/configuration
> verification before running component, however it may be done after
> cleaning up API module
> [19:37:00] <davsclaus>     its END USERs
> [19:37:16] <davsclaus>     if they must migrate all their stuff that is
> hard
> [19:37:39] <cschneid3>     We will not be able to avoid that in the end
> [19:37:51] <davsclaus>     then its maybe not a good idea
> [19:38:00] <cschneid3>     But we cam provide a transition
> [19:38:04] <davsclaus>     the end users is not screaming for api changes
> and whatnot
> [19:38:13] <splatch>     I don't live in perfect world, when I change
> Jackson version I am aware that I will have to spend some time to align my
> code
> [19:38:13] <davsclaus>     they can build camel apps + custom components
> easily
> [19:38:18] <cschneid3>     The end user wants features
> [19:38:31] <davsclaus>     stability = they want more
> [19:38:45] <cschneid3>     And we already loose the ability to provide new
> features
> [19:38:45] <davsclaus>     they can always hack up new camel components to
> integrate with X new stuff
> [19:38:59] <splatch>     the same should be true for camel, not every
> release, but major releases are introduced to have beaking changes as
> semver says
> [19:39:02] <davsclaus>     camel has added a ton of functionality over the
> years
> [19:39:08] <davsclaus>     more than mule / SI / and all the others
> [19:39:09] <cschneid3>     Almost no one touches core andmore
> [19:39:10] <cmueller>     yes, but @Deprecated the old code in core
> [19:39:13] <cschneid3>     Anymore
> [19:39:19] <cmueller>     link to .api
> [19:39:29] <davsclaus>     stability in the core is a VERY good thing
> [19:39:38] <cschneid3>     Yes
> [19:39:42] <cmueller>     should be easy for components developers to
> migrate
> [19:39:51] <cschneid3>     But it leads to many quirks
> [19:39:52] <cmueller>     in one or two releases
> [19:39:59] <splatch>     davsclaus: none from contributors can touch core
> without loosing his hands! thats bad!
> [19:40:19] <cschneid3>     Yes
> [19:40:21] <davsclaus>     what camel does is not easy
> [19:40:44] <splatch>     it is easy, it's sometimes just done in
> overcomplicated way
> [19:40:52] <cschneid3>     And current core maked it even more difficult
> [19:42:29] <cmueller>     May be I can try someting in a sanbox what I
> think we could/should do
> [19:42:50] <cschneid3>     sounds good
> [19:42:54] <cmueller>     than it's easier to discuss something concrete
> [19:43:18] <cmueller>     and we get an idea whether it works in the way
> we think it will work
> [19:43:42] <cmueller>     only moving classes/interfaces around
> [19:43:51] <cmueller>     nothing special
> [19:44:17] <cmueller>     next week is ApacheCon
> [19:44:33] <cmueller>     Not sure I will find some time
> [19:44:44] <cmueller>     but I will try my best
> [19:45:28] <cschneid3>     Will you create a new api or refactor core?
> [19:45:59] <cmueller>     I will start with small steps :-)
> [19:46:05]      gnodet (~gno...@ven14-2-82-235-193-35.fbx.proxad.net)
> joined the channel.
> [19:46:16] <cmueller>     moving exceptions to a sub package
> [19:46:27] <cschneid3>     Ok
> [19:46:28] <cmueller>     moving interfaces from core to api
> [19:46:40] <cmueller>     provide a bridge in core
> [19:47:00] <cschneid3>     Can you try to make the api standalone?
> [19:47:02] <cmueller>     and annotate it with @Deprecated
> [19:47:25] <cmueller>     do you mean in a separate bundle?
> [19:47:31] <cschneid3>     Dont care for the bridge at the start . It is a
> lot of work
> [19:47:59] <cschneid3>     I mean the api may not reference anything
> outside api
> [19:48:17] <cmueller>     yes, of course
> [19:48:27] <cmueller>     may execptions
> [19:48:28] <cschneid3>     You can check with s101
> [19:48:35] <cmueller>     ???
> [19:48:45] <cschneid3>     Structure 101
> [19:48:58] <cschneid3>     We can get free licenses for camel
> [19:49:44] <cmueller>     for all the stupits guys like me:
> http://structure101.com/products/
> [19:49:44] <cschneid3>     I can organize this if anyone needs a license
> [19:49:47] <davsclaus>     have fun in portland
> [19:49:48] <cmueller>     ;-)
> [19:50:22] <cschneid3>     I will not be at apachecon
> [19:50:23] <cmueller>     thanks, somebody else in Portland?
> [19:51:04] <cschneid3>     Some from talend like dan and hadrian
> [19:51:34] <cmueller>     ok, cool...
> [19:51:43] <cmueller>     some RedHat guys too?
> [19:52:38] <davsclaus>     some of us are going to devconf later this week
> [19:52:40] <splatch>     not me :-)
> [19:52:57] <davsclaus>     not sure if any/who goes to portland
> [19:52:58] <splatch>     yup, will be in Czech on Friday
> [19:53:03] <davsclaus>     its a long travel for EMEA guys
> [19:53:12] <davsclaus>     and even for US too
> [19:53:22] <davsclaus>     e.g. most of our fuse eng is easy cost
> [19:53:38] <cmueller>     yes, but I like too meet you guys
> [19:54:01] <davsclaus>     well new company, and more ppl to fight for the
> travel budget :(
> [19:54:16] <splatch>     cmueller: come to Brno and meet us, then go to
> Portland :D
> [19:54:32] <davsclaus>     the beers should be cheap in CZ
> [19:54:39] <cmueller>     :-)
> [19:54:43] <davsclaus>     was there 15+ years ago or there abouts
> [19:54:58] <davsclaus>     0.5 euro for a beer back then at the bars
> [19:55:13] <cmueller>     sounds good
> [19:55:26] <cmueller>     but too late for the invitation
> [19:55:32] <cmueller>     may be the next time
> [19:56:21] <cmueller>     Ok, something else guys we should discuss today?
> [19:56:37] <davsclaus>     yeah hopefully i find my way to apache con EU
> some day - especially if its at a football statium
> [19:56:51] <cmueller>     otherwise I will prepare something on GitHub for
> the next IRC session
> [19:57:10] <davsclaus>     well camel 2.11 needs to get out of the door
> [19:57:11] <cmueller>     like last year
> [19:57:25]      gnodet (~gno...@ven14-2-82-235-193-35.fbx.proxad.net)
> left IRC. (gnodet)
> [19:57:25] <cmueller>     what's about Karaf 2.3.1?
> [19:57:26] <davsclaus>     to pave the way for trunk being 3.0
> [19:57:40] <davsclaus>     yeah didn't hear news about 2.3.1 recently
> [19:57:45] <davsclaus>     something about an aries release
> [19:57:46] <cmueller>     do the still wait for Aries
> [19:57:51] <davsclaus>     but the #karaf guys knows
> [19:57:52] <cmueller>     ok
> [19:58:13] <davsclaus>     and most of us will be traveling so i guess
> camel 2.11 is in march
> [19:58:26] <davsclaus>     and maybe we can get a new bundle release as
> some of the features requires that
> [19:59:13] <cmueller>     ok, will check the Karaf mailing list later
> today...
> [19:59:14] <davsclaus>     of for camel 3.0 we may consider a jmx naming
> change
> [19:59:29] <davsclaus>     i was told the mmx name for camel context has "
> " as the only mbean
> [19:59:32] <davsclaus>     would be nice to avoid that
> [19:59:38] <davsclaus>     just a tiny issue
> [19:59:51] <davsclaus>     but 3rd party mmx tooling kinda dislike that
> "diff"
> [19:59:59] <cmueller>     ahh, ok
> [20:00:08] <davsclaus>     and did we talk about dropping java6 for camel
> 3 ?
> [20:00:12] <davsclaus>     i kinda think its a no brainer
> [20:00:23] <davsclaus>     e.g. require 1.7 as the minimum version
> [20:00:37] <cmueller>     yes we talked about this
> [20:00:41]      iocanel (~text...@athedsl-88751.home.otenet.gr) left IRC.
> ("Computer has gone to sleep.")
> [20:00:53] <davsclaus>     and there is the "view" code in camel-core that
> can be moved out of the core into camel-view
> [20:00:56] <davsclaus>     or dropped all together
> [20:00:59] <cmueller>     if I remember right, nobody complains
> [20:01:04] <davsclaus>     i think i put that up on the ideas page
> [20:01:44] <cmueller>     than we cannot forget it...
> [20:01:53] <cmueller>     I think we can remove it
> [20:02:06] <cmueller>     it's about the dot thing?
> [20:02:23] <davsclaus>     yeah its not maintained  + used anymore
> [20:02:40] <davsclaus>     and not needed to be in the core
> [20:02:44] <cmueller>     yes, +1 to remove it
> [20:03:00] <davsclaus>     there is plenty of code to maintain already
> [20:03:08] <cmueller>     yes
> [20:03:17] <cmueller>     I like to remove code ;-)
> [20:03:48]      cschneid3 (~cschn...@tmo-110-215.customers.d1-online.com)
> left IRC. (Ping timeout: 20 seconds)
> [20:03:54] <cmueller>     ok, I have to leave
> [20:04:07] <cmueller>     have a nice evening
> [20:04:25] <cmueller>     bye bye
>
> --
>
>


--

Reply via email to