Grokbase Groups Camel dev March 2016
FAQ
Hi

Just though I wanted to do a status update on those initial tasks we
set out to do.
On Wed, Mar 23, 2016 at 11:07 AM, Claus Ibsen wrote:
Hi

So Camel 2.17 was the last release supporting Java 1.7.
The next Camel 2.18 is requiring Java 1.8.

Here is some thoughts of mine about this release up for discussion.



a)
I see the overall goal of Camel 2.18 as a stepping stone towards Java
1.8 and Camel 3.0.

By that I mean the release should be a way of moving our existing
users from Java 1.7 and the current Camel APIs and the likes gradually
towards Java 1.8 and eventually Camel 3.0.

In other words we should not get carried away to change/break APIs and
whatnot just because Java 1.8 lambdas and functions.

There are too many current users that rely on the current Camel API
and we cannot go around change processor / expression / predicate /
aggregation strategy and other interfaces to be java 8 functional if
that means current code cannot compile. And certainly not adding
Optional<X> as return types all over.

The following releases (Camel 2.19 or 3.0) can pick up that torch and
be more Java 1.8 aggressive. For example Camel 3.0 can expect API
changes that are Java 8 lambda / functional based. And as well changes
in the DSL to go with that.

There are some minor code changes needed to make the source compile as
source 1.8 to go in this Camel 2.18 let alone.


b)
Drop components that do not support and run on Java 1.8
And potentially remove some deprecated components
Outstanding.
c)
Drop karaf 2.x.
And move to karaf 4.x for all our testing. Done
d)
Drop Jetty 8.x.

This also requires to upgrade at least two components that currently
rely on Jetty 8 to use Jetty 9. Done
e)
Upgrade to latest Jetty 9.
Jetty 9.3 (or is it 9.4) requires Java 1.8
Outstanding. There is some API breakings in jetty 9.2 to 9.3 (surprise
surprise).


f)
Drop support for older versions of Spring. We have a number of
camel-test-spring3 etc modules that can be dropped. And maybe even
spring 4.0. as its also EOL. Done
g)
Potentially move spring-dm out of camel-spring into a camel-spring-dm
module. So camel-spring can use latest version of Spring safely. This
also makes it easier to deprecated spring-dm and remove it eventually.
The Karaf team is working on a sping -> blueprint layer so you can use
spring xml files but Karaf will "convert" that under the hood to
blueprint and run it as blueprint. When that is ready we no longer
need spring-dm. Done
h)
Continue adding components docs in the source, eg src/main/doc files.
So we eventually have as many/all of them. This is an ongoing effort,
as we need to do this for the EIPs and the other parts of the docs.

However I see this as a great step for a new documentation and
website, that IMHO is a big goal for Camel 3.0. To make the project
website fresh and modern. And make the documentation easier for end
users to use and view.
A lot has been done, thanks a lot to Andrea who have done most of the migration.

What is outstanding is to generate/update the EIP documentation for
all their options in a table, just as we do for components.
This should not be hard to do, as we just do similar eg add some code
in the the mvn plugin, and add some markers in the .adoc file where it
should insert/update the table.


i)
Add camel-hysterix component and integrate camel's circuit breaker
into turbine/hysterix so you can see metrics from camel in the
dashboard. Eg to integrate with the popular Netflix OSS stack. Done
j)
Split camel-cxf into modules so we can separate WS and RS and also
spring vs blueprint. Today its big ball of dependencies that is a bit
hard to slice and dice. Specially for MSA style with REST and you dont
want to add in a bunch of extra not needed JARs.
Outstanding. I think this is somewhat big work but would be good if
some of the CXF guys would pickup this task.
The CXF with RS is "hurt" when its dragging in a old WS dependencies.


k)
Continue as usual by adding new components, data formats, fix bugs, and so on.
Yep this is ongoing and we got 8 new components already.

l)
Timeline. This release do not need to have 6-8 months timeframe. We
could try to get this "stepping stone" release done sooner, so it can
be released during/shortly after summer.
I think after the summer vacation would be good time. We usually do a
release around september/early october.
So lets try to aim for that.

There is plenty of "first work" that we must do with the java 8
upgrade and dropping older techs etc, that we have our hands full for
a while.

Doing a release with these changes allows our end users to migrate
along in a easy way, than a big bang - breaking apis - release would
do. And the latter would be more appropriate to be released as Camel
3.0.

Then towards the end of this year, we can see where we are and plan
for a Camel 3.0 with a new website and documentation that such a
release deserve. For example if we release Camel 3.0 in start of 2017
then its also Camel's 10 year birthday year.

And doing such a release with a rewamped website with fresh looking
documentation and content, is what helps the project a lot.

The current website looks the same as it did when it was created:
https://web.archive.org/web/20070701184530/http://activemq.apache.org/camel/

PS: We surely also need a better "what is Camel" story on the front
page. Its still that very first one with all the tech jumble that was
initially created.

PPS: I would also love to see a new Camel logo. The current one is a
bit dull and boring.




--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2


--
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Search Discussions

Discussion Posts

Previous

Related Discussions

People

Translate

site design / logo © 2017 Grokbase