You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by unmarshall <un...@gmail.com> on 2011/07/11 10:21:50 UTC

Camel metamodel

Hi All,

Is there any effort being put in developing a camel metamodel which can then
be used to create camel routes during design time using a graphical editor?

I have seen the graphical editor from fuse source, but it is not based on
any meta-model. In fact it is not even a generator and it still requires
users to know all possible properties for any endpoint. It is just a
graphical representation of a Spring XML based camel routes.

What we are looking for is to allow users to graphically create camel routes
and then depending on the user choice generate Spring XML representation of
the camel context or DSL of choice.

Best Regards,
Madhav

--
View this message in context: http://camel.465427.n5.nabble.com/Camel-metamodel-tp4574253p4574253.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Camel metamodel

Posted by unmarshall <un...@gmail.com>.
Hi Charles,

The metamodel that you are pointing at only contains the element definitions
for a camel context. The endpoints which are specified via a URI and the
parameters that can be set on a particular endpoint do not have any meta
model.

The properties that can be set on an endpoint are essentially getter/setter
on the component/endpoint and have not been defined as a metamodel. When
graphically designing routes if a user selects say a JMS endpoint or a File
endpoint then all properties that are possible on the File/JMS endpoint
should be visible to the user. As of now it is a URI based configuration via
XML.

Best Regards,
Madhav

On Mon, Jul 11, 2011 at 2:15 PM, Charles Moulliard [via Camel] <
ml-node+4574323-1746428816-141347@n5.nabble.com> wrote:

> Hi Mahdav,
>
> What you call the metamodel is the Camel Schema that you can read it
> or import it in Eclipse/IntelliJ IDE tools -->
> http://camel.apache.org/schema/spring/camel-spring.xsd. This document
> represents the DSL language, words to be used, their values and
> grammar rules.
>
> Regards,
>
> Charles Moulliard
>
> Apache Committer
>
> Blog : http://cmoulliard.blogspot.com
> Twitter : http://twitter.com/cmoulliard
> Linkedin : http://www.linkedin.com/in/charlesmoulliard
> Skype: cmoulliard
>
>
>
> On Mon, Jul 11, 2011 at 10:21 AM, unmarshall <[hidden email]<http://user/SendEmail.jtp?type=node&node=4574323&i=0>>
> wrote:
>
> > Hi All,
> >
> > Is there any effort being put in developing a camel metamodel which can
> then
> > be used to create camel routes during design time using a graphical
> editor?
> >
> > I have seen the graphical editor from fuse source, but it is not based on
>
> > any meta-model. In fact it is not even a generator and it still requires
> > users to know all possible properties for any endpoint. It is just a
> > graphical representation of a Spring XML based camel routes.
> >
> > What we are looking for is to allow users to graphically create camel
> routes
> > and then depending on the user choice generate Spring XML representation
> of
> > the camel context or DSL of choice.
> >
> > Best Regards,
> > Madhav
> >
> > --
> > View this message in context:
> http://camel.465427.n5.nabble.com/Camel-metamodel-tp4574253p4574253.html
> > Sent from the Camel - Users mailing list archive at Nabble.com.
> >
>
>
> ------------------------------
>  If you reply to this email, your message will be added to the discussion
> below:
> http://camel.465427.n5.nabble.com/Camel-metamodel-tp4574253p4574323.html
>  To unsubscribe from Camel metamodel, click here<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4574253&code=dW5tYXJzaGFsbEBnbWFpbC5jb218NDU3NDI1M3wtMTc2MDU2OTg4NA==>.
>
>



-- 
When I tell the truth, it is not for the sake of convincing those who do not
know it, but for the sake of defending those that do


--
View this message in context: http://camel.465427.n5.nabble.com/Camel-metamodel-tp4574253p4574359.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Camel metamodel

Posted by Charles Moulliard <cm...@gmail.com>.
Hi Mahdav,

What you call the metamodel is the Camel Schema that you can read it
or import it in Eclipse/IntelliJ IDE tools -->
http://camel.apache.org/schema/spring/camel-spring.xsd. This document
represents the DSL language, words to be used, their values and
grammar rules.

Regards,

Charles Moulliard

Apache Committer

Blog : http://cmoulliard.blogspot.com
Twitter : http://twitter.com/cmoulliard
Linkedin : http://www.linkedin.com/in/charlesmoulliard
Skype: cmoulliard



On Mon, Jul 11, 2011 at 10:21 AM, unmarshall <un...@gmail.com> wrote:
> Hi All,
>
> Is there any effort being put in developing a camel metamodel which can then
> be used to create camel routes during design time using a graphical editor?
>
> I have seen the graphical editor from fuse source, but it is not based on
> any meta-model. In fact it is not even a generator and it still requires
> users to know all possible properties for any endpoint. It is just a
> graphical representation of a Spring XML based camel routes.
>
> What we are looking for is to allow users to graphically create camel routes
> and then depending on the user choice generate Spring XML representation of
> the camel context or DSL of choice.
>
> Best Regards,
> Madhav
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Camel-metamodel-tp4574253p4574253.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>

Re: Camel metamodel

Posted by unmarshall <un...@gmail.com>.
Hi Claus,

I understand that the java beans is the current metamodel. Creating meta
model any other way is not that difficult. For instance i have created a
custom component for which i did declare a schema and that is also backed by
a bean as well. So if any tool would want to use my custom component then
the tool can very easily use the schema to then probably convert it into an
EMF model which improves the usability of the component from a graphical
visualization stand point.

Similar thing can be done for other components as well. Having annotations
to do this would be tricky as i agree with you that the optional/mandatory
attributes are dependent on the enclosing context.

IMO it is important to develop tooling around Camel so that it can be used
in a much easier manner using a design tool probably based out of eclipse or
any other technology. This also makes sense as in bigger organizations the
flows are first designed as BPMN flows representing business processes and
then detailed routing and messaging flows are designed using EIP exposed by
camel. It would then be imperative that camel exposes metamodel other than
the bean metamodel for individual components so that an EMF model for
instance can easily be created.

Best Regards,
Madhav

On Mon, Jul 11, 2011 at 4:55 PM, Claus Ibsen-2 [via Camel] <
ml-node+4574711-1010498474-141347@n5.nabble.com> wrote:

> On Mon, Jul 11, 2011 at 11:16 AM, unmarshall <[hidden email]<http://user/SendEmail.jtp?type=node&node=4574711&i=0>>
> wrote:
>
> > Hi Claus,
> >
> > I have already seen the model package in camel-core. I still do not see
> any
> > metamodel for components. Endpoint configurations are based on URI
> > configurations which can very easily change from one release to another
> and
> > pretty hard to track.
> >
> > IMO Camel still lacks the definition of metamodels for components (like
> > File, JMS, Cxf, etc..). It should define a standard way to expose the
> > metamodel for any custom component so that all optional/required
> properties
> > can then be easily tracked.
> >
>
> The components and endpoints uses java beans as their meta model.
>
> Its frankly not easy to setup a meta model where options can be marked
> as mandatory. As often options is dependent on other options etc.
>
> Also we want it to be dead easy for end users to create custom
> components / endpoints how they like it.
>
> That said I think there is an old JIRA about if we should add some
> annotations or some restlet representation of the endpoints so tooling
> can use that.
>
> There is a @Required annotation end users can use to add to the java
> beans on the endpoints to mark that option as mandatory.
>
>
> > Best Regards,
> > Madhav
> >
> > On Mon, Jul 11, 2011 at 2:31 PM, Claus Ibsen-2 [via Camel] <
> > [hidden email] <http://user/SendEmail.jtp?type=node&node=4574711&i=1>>
> wrote:
> >
> >> On Mon, Jul 11, 2011 at 10:21 AM, unmarshall <[hidden email]<
> http://user/SendEmail.jtp?type=node&node=4574360&i=0>>
> >> wrote:
> >> > Hi All,
> >> >
> >> > Is there any effort being put in developing a camel metamodel which
> can
> >> then
> >> > be used to create camel routes during design time using a graphical
> >> editor?
> >> >
> >>
> >> There is already a metamodel, its in the model package of camel-core
> >> (eg all the xxxDefinition classes).
> >>
> >> Thats what the Java DSL, XML DSLs, Groovy DSL, Scala DSL, uses the
> >> build the camel routes.
> >>
> >>
> >> > I have seen the graphical editor from fuse source, but it is not based
> on
> >>
> >> > any meta-model. In fact it is not even a generator and it still
> requires
> >> > users to know all possible properties for any endpoint. It is just a
> >> > graphical representation of a Spring XML based camel routes.
> >> >
> >>
> >> Fuse IDE uses the Camel metamodel from the model package. Its just
> >> that the 1st release supports the XML DSLs at first.
> >> The other DSLs will be supported in future releases. Well in fact at
> >> runtime the Fuse IDE can visualize any kind of Camel runtime,
> >> regardless which DSL you used to create the model. Its just the
> >> current design editor in Fuse IDE is targeted to support XML DSLs at
> >> first.
> >>
> >>
> >> > What we are looking for is to allow users to graphically create camel
> >> routes
> >> > and then depending on the user choice generate Spring XML
> representation
> >> of
> >> > the camel context or DSL of choice.
> >> >
> >>
> >> There is two vendors doing this already, where FuseSource is one of
> >> them. So its definitely possible.
> >>
> >>
> >> > Best Regards,
> >> > Madhav
> >> >
> >> > --
> >> > View this message in context:
> >>
> http://camel.465427.n5.nabble.com/Camel-metamodel-tp4574253p4574253.html
> >> > Sent from the Camel - Users mailing list archive at Nabble.com.
> >> >
> >>
> >>
> >>
> >> --
> >> Claus Ibsen
> >> -----------------
> >> FuseSource
> >> Email: [hidden email]<
> http://user/SendEmail.jtp?type=node&node=4574360&i=1>
> >> Web: http://fusesource.com
> >> Twitter: davsclaus, fusenews
> >> Blog: http://davsclaus.blogspot.com/
> >> Author of Camel in Action: http://www.manning.com/ibsen/
> >>
> >>
> >> ------------------------------
> >>  If you reply to this email, your message will be added to the
> discussion
> >> below:
> >>
>
> >>
> >>
> >
> >
> >
> > --
> > When I tell the truth, it is not for the sake of convincing those who do
> not
> > know it, but for the sake of defending those that do
> >
> >
> > --
> > View this message in context:
> http://camel.465427.n5.nabble.com/Camel-metamodel-tp4574253p4574396.html
>
> > Sent from the Camel - Users mailing list archive at Nabble.com.
>
>
>
> --
> Claus Ibsen
> -----------------
> FuseSource
> Email: [hidden email]<http://user/SendEmail.jtp?type=node&node=4574711&i=2>
> Web: http://fusesource.com
> Twitter: davsclaus, fusenews
> Blog: http://davsclaus.blogspot.com/
> Author of Camel in Action: http://www.manning.com/ibsen/
>
>
> ------------------------------
>  If you reply to this email, your message will be added to the discussion
> below:
> http://camel.465427.n5.nabble.com/Camel-metamodel-tp4574253p4574711.html
>  To unsubscribe from Camel metamodel, click here<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4574253&code=dW5tYXJzaGFsbEBnbWFpbC5jb218NDU3NDI1M3wtMTc2MDU2OTg4NA==>.
>
>



-- 
When I tell the truth, it is not for the sake of convincing those who do not
know it, but for the sake of defending those that do


--
View this message in context: http://camel.465427.n5.nabble.com/Camel-metamodel-tp4574253p4574760.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Camel metamodel

Posted by Claus Ibsen <cl...@gmail.com>.
On Mon, Jul 11, 2011 at 11:16 AM, unmarshall <un...@gmail.com> wrote:
> Hi Claus,
>
> I have already seen the model package in camel-core. I still do not see any
> metamodel for components. Endpoint configurations are based on URI
> configurations which can very easily change from one release to another and
> pretty hard to track.
>
> IMO Camel still lacks the definition of metamodels for components (like
> File, JMS, Cxf, etc..). It should define a standard way to expose the
> metamodel for any custom component so that all optional/required properties
> can then be easily tracked.
>

The components and endpoints uses java beans as their meta model.

Its frankly not easy to setup a meta model where options can be marked
as mandatory. As often options is dependent on other options etc.

Also we want it to be dead easy for end users to create custom
components / endpoints how they like it.

That said I think there is an old JIRA about if we should add some
annotations or some restlet representation of the endpoints so tooling
can use that.

There is a @Required annotation end users can use to add to the java
beans on the endpoints to mark that option as mandatory.


> Best Regards,
> Madhav
>
> On Mon, Jul 11, 2011 at 2:31 PM, Claus Ibsen-2 [via Camel] <
> ml-node+4574360-1196803385-141347@n5.nabble.com> wrote:
>
>> On Mon, Jul 11, 2011 at 10:21 AM, unmarshall <[hidden email]<http://user/SendEmail.jtp?type=node&node=4574360&i=0>>
>> wrote:
>> > Hi All,
>> >
>> > Is there any effort being put in developing a camel metamodel which can
>> then
>> > be used to create camel routes during design time using a graphical
>> editor?
>> >
>>
>> There is already a metamodel, its in the model package of camel-core
>> (eg all the xxxDefinition classes).
>>
>> Thats what the Java DSL, XML DSLs, Groovy DSL, Scala DSL, uses the
>> build the camel routes.
>>
>>
>> > I have seen the graphical editor from fuse source, but it is not based on
>>
>> > any meta-model. In fact it is not even a generator and it still requires
>> > users to know all possible properties for any endpoint. It is just a
>> > graphical representation of a Spring XML based camel routes.
>> >
>>
>> Fuse IDE uses the Camel metamodel from the model package. Its just
>> that the 1st release supports the XML DSLs at first.
>> The other DSLs will be supported in future releases. Well in fact at
>> runtime the Fuse IDE can visualize any kind of Camel runtime,
>> regardless which DSL you used to create the model. Its just the
>> current design editor in Fuse IDE is targeted to support XML DSLs at
>> first.
>>
>>
>> > What we are looking for is to allow users to graphically create camel
>> routes
>> > and then depending on the user choice generate Spring XML representation
>> of
>> > the camel context or DSL of choice.
>> >
>>
>> There is two vendors doing this already, where FuseSource is one of
>> them. So its definitely possible.
>>
>>
>> > Best Regards,
>> > Madhav
>> >
>> > --
>> > View this message in context:
>> http://camel.465427.n5.nabble.com/Camel-metamodel-tp4574253p4574253.html
>> > Sent from the Camel - Users mailing list archive at Nabble.com.
>> >
>>
>>
>>
>> --
>> Claus Ibsen
>> -----------------
>> FuseSource
>> Email: [hidden email]<http://user/SendEmail.jtp?type=node&node=4574360&i=1>
>> Web: http://fusesource.com
>> Twitter: davsclaus, fusenews
>> Blog: http://davsclaus.blogspot.com/
>> Author of Camel in Action: http://www.manning.com/ibsen/
>>
>>
>> ------------------------------
>>  If you reply to this email, your message will be added to the discussion
>> below:
>> http://camel.465427.n5.nabble.com/Camel-metamodel-tp4574253p4574360.html
>>  To unsubscribe from Camel metamodel, click here<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4574253&code=dW5tYXJzaGFsbEBnbWFpbC5jb218NDU3NDI1M3wtMTc2MDU2OTg4NA==>.
>>
>>
>
>
>
> --
> When I tell the truth, it is not for the sake of convincing those who do not
> know it, but for the sake of defending those that do
>
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Camel-metamodel-tp4574253p4574396.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
FuseSource
Email: cibsen@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus, fusenews
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Re: Camel metamodel

Posted by unmarshall <un...@gmail.com>.
Hi Claus,

I have already seen the model package in camel-core. I still do not see any
metamodel for components. Endpoint configurations are based on URI
configurations which can very easily change from one release to another and
pretty hard to track.

IMO Camel still lacks the definition of metamodels for components (like
File, JMS, Cxf, etc..). It should define a standard way to expose the
metamodel for any custom component so that all optional/required properties
can then be easily tracked.

Best Regards,
Madhav

On Mon, Jul 11, 2011 at 2:31 PM, Claus Ibsen-2 [via Camel] <
ml-node+4574360-1196803385-141347@n5.nabble.com> wrote:

> On Mon, Jul 11, 2011 at 10:21 AM, unmarshall <[hidden email]<http://user/SendEmail.jtp?type=node&node=4574360&i=0>>
> wrote:
> > Hi All,
> >
> > Is there any effort being put in developing a camel metamodel which can
> then
> > be used to create camel routes during design time using a graphical
> editor?
> >
>
> There is already a metamodel, its in the model package of camel-core
> (eg all the xxxDefinition classes).
>
> Thats what the Java DSL, XML DSLs, Groovy DSL, Scala DSL, uses the
> build the camel routes.
>
>
> > I have seen the graphical editor from fuse source, but it is not based on
>
> > any meta-model. In fact it is not even a generator and it still requires
> > users to know all possible properties for any endpoint. It is just a
> > graphical representation of a Spring XML based camel routes.
> >
>
> Fuse IDE uses the Camel metamodel from the model package. Its just
> that the 1st release supports the XML DSLs at first.
> The other DSLs will be supported in future releases. Well in fact at
> runtime the Fuse IDE can visualize any kind of Camel runtime,
> regardless which DSL you used to create the model. Its just the
> current design editor in Fuse IDE is targeted to support XML DSLs at
> first.
>
>
> > What we are looking for is to allow users to graphically create camel
> routes
> > and then depending on the user choice generate Spring XML representation
> of
> > the camel context or DSL of choice.
> >
>
> There is two vendors doing this already, where FuseSource is one of
> them. So its definitely possible.
>
>
> > Best Regards,
> > Madhav
> >
> > --
> > View this message in context:
> http://camel.465427.n5.nabble.com/Camel-metamodel-tp4574253p4574253.html
> > Sent from the Camel - Users mailing list archive at Nabble.com.
> >
>
>
>
> --
> Claus Ibsen
> -----------------
> FuseSource
> Email: [hidden email]<http://user/SendEmail.jtp?type=node&node=4574360&i=1>
> Web: http://fusesource.com
> Twitter: davsclaus, fusenews
> Blog: http://davsclaus.blogspot.com/
> Author of Camel in Action: http://www.manning.com/ibsen/
>
>
> ------------------------------
>  If you reply to this email, your message will be added to the discussion
> below:
> http://camel.465427.n5.nabble.com/Camel-metamodel-tp4574253p4574360.html
>  To unsubscribe from Camel metamodel, click here<http://camel.465427.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=4574253&code=dW5tYXJzaGFsbEBnbWFpbC5jb218NDU3NDI1M3wtMTc2MDU2OTg4NA==>.
>
>



-- 
When I tell the truth, it is not for the sake of convincing those who do not
know it, but for the sake of defending those that do


--
View this message in context: http://camel.465427.n5.nabble.com/Camel-metamodel-tp4574253p4574396.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Re: Camel metamodel

Posted by Claus Ibsen <cl...@gmail.com>.
On Mon, Jul 11, 2011 at 10:21 AM, unmarshall <un...@gmail.com> wrote:
> Hi All,
>
> Is there any effort being put in developing a camel metamodel which can then
> be used to create camel routes during design time using a graphical editor?
>

There is already a metamodel, its in the model package of camel-core
(eg all the xxxDefinition classes).

Thats what the Java DSL, XML DSLs, Groovy DSL, Scala DSL, uses the
build the camel routes.


> I have seen the graphical editor from fuse source, but it is not based on
> any meta-model. In fact it is not even a generator and it still requires
> users to know all possible properties for any endpoint. It is just a
> graphical representation of a Spring XML based camel routes.
>

Fuse IDE uses the Camel metamodel from the model package. Its just
that the 1st release supports the XML DSLs at first.
The other DSLs will be supported in future releases. Well in fact at
runtime the Fuse IDE can visualize any kind of Camel runtime,
regardless which DSL you used to create the model. Its just the
current design editor in Fuse IDE is targeted to support XML DSLs at
first.


> What we are looking for is to allow users to graphically create camel routes
> and then depending on the user choice generate Spring XML representation of
> the camel context or DSL of choice.
>

There is two vendors doing this already, where FuseSource is one of
them. So its definitely possible.


> Best Regards,
> Madhav
>
> --
> View this message in context: http://camel.465427.n5.nabble.com/Camel-metamodel-tp4574253p4574253.html
> Sent from the Camel - Users mailing list archive at Nabble.com.
>



-- 
Claus Ibsen
-----------------
FuseSource
Email: cibsen@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus, fusenews
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/