I created this group and hope, that it allows us to collaborate more
closely on creation of good bindings to Apache Camel library.
I thought about creation DSL-only for Camel, but now I think, that we could
create some basic bindings first, and then build DSL on the base of them.
What do you think? Are any ideas, how DSL could look like?
--
With best wishes, Alex Ott, MBA
http://alexott.blogspot.com/ http://alexott.net/
http://alexott-ru.blogspot.com/
Skype: alex.ott
glad to join this group, as Apache Camel is a great tool and having it
as a good Clojure citizen would be great as well.
So hope I'll find the time to actually contribute.
In order to make Camel more Clojure-friendly, possibly building a nice
DSL around it, I think we have two options:
1) Building Clojure macros/functions to wrap the whole Camel Java DSL
into a custom Clojure DSL.
2) Building only a thin Clojure DSL layer on top of the Java DSL,
trying to reuse it as much as possible.
Option #1 is appealing, but given how rich the Java DSL is,
reproducing it in Clojure may take lot of time.
Option #2 may be a good compromise: I also took a look at Tim's code,
and it seems to go in such a direction (Tim correct me if I'm wrong).
So, I think we may go with option #2, and proceed as follows:
1) Thin layer over Camel Context (Tim already started this).
2) Thin layer over Camel RouteBuilder (Tim already started this).
3) Facilities for creating/using Camel Processors (Tim already started this).
4) Facilities for creating/using Camel Components.
5) Facilities for related stuff such as body/headers checking,
exception management and so on.
Thoughts?
Cheers,
Sergio B.
--
Sergio Bossa
http://www.linkedin.com/in/sergiob
On Sat, Jan 22, 2011 at 1:14 PM, Sergio Bossa <sergio...@gmail.com> wrote:
> In order to make Camel more Clojure-friendly, possibly building a nice
> DSL around it, I think we have two options:
> 1) Building Clojure macros/functions to wrap the whole Camel Java DSL
> into a custom Clojure DSL.
> 2) Building only a thin Clojure DSL layer on top of the Java DSL,
> trying to reuse it as much as possible.
>
> Option #1 is appealing, but given how rich the Java DSL is,
> reproducing it in Clojure may take lot of time.
> Option #2 may be a good compromise: I also took a look at Tim's code,
> and it seems to go in such a direction (Tim correct me if I'm wrong).
Please, look onto my try to wrap Camel - https://github.com/alexott/clj-camel
> So, I think we may go with option #2, and proceed as follows:
> 1) Thin layer over Camel Context (Tim already started this).
> 2) Thin layer over Camel RouteBuilder (Tim already started this).
Route builder can configure not only routes themself, but also provide
global configuration option, so we need to find a way to wrap several
expressions into one configure RouteBuilder/configure function
> 3) Facilities for creating/using Camel Processors (Tim already started this).
I wanted to provide 2 ways to make processors - passing a function,
that will invoked (as Tim did), and passing blocks of code, that will
construct body of process function
> 4) Facilities for creating/using Camel Components.
> 5) Facilities for related stuff such as body/headers checking,
> exception management and so on.
--
With best wishes, Alex Ott, MBA
http://alexott.net/
Tiwtter: alexott_en (English), alexott (Russian)
Skype: alex.ott