You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@camel.apache.org by Christopher Piggott <cp...@gmail.com> on 2015/04/07 15:12:56 UTC

@UriPath and @UriSyntax

Hi,

According to
https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.15.0+Release


   - Custom components using @UriEndpoint must now include a syntax
   attribute to document the uri syntax of the endpoint, when using the apt
   compiler plugin to generate documentation.


I'm looking for documentation on this and not really finding how to use it
or simple examples:


   - http://camel.apache.org/endpoint-annotations.html  says what it is,
   but not how to use it
   -
   https://github.com/sigrist/camel-rxtx/blob/master/src/main/java/org/apache/camel/rxtx/RxTxEndpoint.java
   is an example soembody wrote that uses @UriParam ... that works fine, but
   when I try to add a @UriPath parameter it silently ends up  null
   - Tons of examples in git but most of them don't have a 'syntax=' so I
   must be looking at old source


Trying to piece all this together from scarce examples and documentation:


   - It doesn't seem like I really need to extend UriComponentConfiguration
   at all, do I?  If I declare my component a @ManagedResource it seems to
   bind all the @UriParam just fine.  It doesn't bind the @UriPath parameters,
   though, and fails to do so silently, despite the fact that they are marked
   @Meadata(required = "true").
   - Are there any simple examples out there using
   @UriComponentConfiguration ?


--Chris

Re: @UriPath and @UriSyntax

Posted by Claus Ibsen <cl...@gmail.com>.
For any values in the path you need to set them from the component
class in the createEndpoint method. The values are from the remaining
parameter.

Though in the future we may be able to let Camel do this mapping a bit
more automatic since we now have the syntax option. But that was just
recently introduced in 2.15.0. But historically this mapping is done
manually in the component.







On Wed, Apr 8, 2015 at 2:49 AM, Christopher Piggott <cp...@gmail.com> wrote:
> OK that hellped.  What I ended up doing was:
>
> * Component extends UriEndpointComponent
> * Endpoint extends DefaultEndpoint and is marked @ManagedResource and
> @UriEndpoint.  It also has a @UriParam for 'baud' and another one for
> 'path' -- that last one is a problem (will explain in a second)
> * Consumer extends DefaultConsumer and uses a processor to launch events
>
> The endpoint is marked like this:
>
> @UriEndpoint(scheme = "jssc",
>         syntax = "jssc:path",
>         consumerClass = JsscConsumer.class,
>         title = "JSSC Component")
>
>
> I would like to be able to do this:
>
>
>         from("jssc:com10?baud=19200")
>
>
> but THIS still does not work:
>
>
> @UriPath
> @Metadata(required="true")
> private String path
>
>
> so I end up having to do this:
>
>       from("jssc:com10?path=com10&baud=19200")
>
>
> What is wrong with specifying it as a path parameter whose name
> matches the 'syntax' in the @UriEndpoint annotation - shouldn't that
> work?
>
>
> *https://github.com/wz2b/camel-jssc/blob/master/src/main/java/com/autofrog/camel/JsscEndpoint.java
> <https://github.com/wz2b/camel-jssc/blob/master/src/main/java/com/autofrog/camel/JsscEndpoint.java>*
>
>
> --Chris
>
>
>
>
>
>
>
>
> On Tue, Apr 7, 2015 at 10:59 AM, Claus Ibsen <cl...@gmail.com> wrote:
>
>> A component must have a default no-arg constructor.
>>
>> So add that, and call super(JsscEndpoint.class) and remove the other
>> constructors as they are not really needed.
>>
>> On Tue, Apr 7, 2015 at 4:55 PM, Christopher Piggott <cp...@gmail.com>
>> wrote:
>> > I will try that, thanks.
>> >
>> > For a test, I just tried getting back to basics, and getting rid of all
>> the
>> > Uri configuration entirely - just to see what happens.  I still have
>> > META-INF/services/org/apache/camel/component/jssc (a text file) which
>> > allows me to do:
>> >
>> >     from("jssc:com10?baud=19200") ...
>> >
>> > and it locates the component just fine.  The next thing I did was change
>> > the Component to extend UriEndpointComponent rather than
>> DefaultComponent.
>> > That broke it as follows:
>> >
>> > 2015-04-07 10:15:41,550 [main] ERROR app.tasks.CamelTask - Failed to
>> start
>> > camel
>> > org.apache.camel.FailedToCreateRouteException: Failed to create route
>> > route1: Route(route1)[[From[jssc:com10?baud=19200]] -> [To[xmpp://cl...
>> > because of Failed to resolve endpoint: jssc://com10?baud=19200 due to:
>> > Cannot auto create component: jssc
>> >
>> > So something, by doing that, just broke its ability to locate the
>> endpoint
>> > by name using the entry in META-INF.  The stack trace it gives me is not
>> > exceptionally helpful; what it's really telling me is that it can't
>> locate
>> > my component.  What's especially confusing is that a UriEndpointComponent
>> > extends DefaultComponent so it seems like, as far as camel is concerned,
>> > they should be the same thing.
>> >
>> >
>> > I checked in what I have so far ...
>> >
>> >
>> https://github.com/wz2b/camel-jssc/tree/master/src/main/java/com/autofrog/camel
>> >
>> >
>> >
>> >
>> > On Tue, Apr 7, 2015 at 9:36 AM, Claus Ibsen <cl...@gmail.com>
>> wrote:
>> >
>> >> Hi
>> >>
>> >> Oh if you have this as a component outside Camel, then you need to add
>> >> the apt plugin
>> >>
>> https://github.com/apache/activemq/blob/master/activemq-camel/pom.xml#L63
>> >>
>> >> And this plugin if you want to include a .properties file in the JAR
>> >> with a list of components it contains
>> >>
>> https://github.com/apache/activemq/blob/master/activemq-camel/pom.xml#L217
>> >>
>> >> Then you do the same as all the components in Apache Camel.
>> >>
>> >> On Tue, Apr 7, 2015 at 3:34 PM, Claus Ibsen <cl...@gmail.com>
>> wrote:
>> >> > Hi
>> >> >
>> >> > All the 150+ components is an example of this. Just pick a similar /
>> >> > simple component and see its source code.
>> >> >
>> >> > On Tue, Apr 7, 2015 at 3:12 PM, Christopher Piggott <
>> cpiggott@gmail.com>
>> >> wrote:
>> >> >> Hi,
>> >> >>
>> >> >> According to
>> >> >>
>> https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.15.0+Release
>> >> >>
>> >> >>
>> >> >>    - Custom components using @UriEndpoint must now include a syntax
>> >> >>    attribute to document the uri syntax of the endpoint, when using
>> the
>> >> apt
>> >> >>    compiler plugin to generate documentation.
>> >> >>
>> >> >>
>> >> >> I'm looking for documentation on this and not really finding how to
>> use
>> >> it
>> >> >> or simple examples:
>> >> >>
>> >> >>
>> >> >>    - http://camel.apache.org/endpoint-annotations.html  says what it
>> >> is,
>> >> >>    but not how to use it
>> >> >>    -
>> >> >>
>> >>
>> https://github.com/sigrist/camel-rxtx/blob/master/src/main/java/org/apache/camel/rxtx/RxTxEndpoint.java
>> >> >>    is an example soembody wrote that uses @UriParam ... that works
>> >> fine, but
>> >> >>    when I try to add a @UriPath parameter it silently ends up  null
>> >> >>    - Tons of examples in git but most of them don't have a 'syntax='
>> so
>> >> I
>> >> >>    must be looking at old source
>> >> >>
>> >> >>
>> >> >> Trying to piece all this together from scarce examples and
>> >> documentation:
>> >> >>
>> >> >>
>> >> >>    - It doesn't seem like I really need to extend
>> >> UriComponentConfiguration
>> >> >>    at all, do I?  If I declare my component a @ManagedResource it
>> seems
>> >> to
>> >> >>    bind all the @UriParam just fine.  It doesn't bind the @UriPath
>> >> parameters,
>> >> >>    though, and fails to do so silently, despite the fact that they
>> are
>> >> marked
>> >> >>    @Meadata(required = "true").
>> >> >>    - Are there any simple examples out there using
>> >> >>    @UriComponentConfiguration ?
>> >> >>
>> >> >>
>> >> >> --Chris
>> >> >
>> >> >
>> >> >
>> >> > --
>> >> > Claus Ibsen
>> >> > -----------------
>> >> > Red Hat, Inc.
>> >> > Email: cibsen@redhat.com
>> >> > Twitter: davsclaus
>> >> > Blog: http://davsclaus.com
>> >> > Author of Camel in Action: http://www.manning.com/ibsen
>> >> > hawtio: http://hawt.io/
>> >> > fabric8: http://fabric8.io/
>> >>
>> >>
>> >>
>> >> --
>> >> Claus Ibsen
>> >> -----------------
>> >> Red Hat, Inc.
>> >> Email: cibsen@redhat.com
>> >> Twitter: davsclaus
>> >> Blog: http://davsclaus.com
>> >> Author of Camel in Action: http://www.manning.com/ibsen
>> >> hawtio: http://hawt.io/
>> >> fabric8: http://fabric8.io/
>> >>
>>
>>
>>
>> --
>> Claus Ibsen
>> -----------------
>> Red Hat, Inc.
>> Email: cibsen@redhat.com
>> Twitter: davsclaus
>> Blog: http://davsclaus.com
>> Author of Camel in Action: http://www.manning.com/ibsen
>> hawtio: http://hawt.io/
>> fabric8: http://fabric8.io/
>>



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
hawtio: http://hawt.io/
fabric8: http://fabric8.io/

Re: @UriPath and @UriSyntax

Posted by Christopher Piggott <cp...@gmail.com>.
OK that hellped.  What I ended up doing was:

* Component extends UriEndpointComponent
* Endpoint extends DefaultEndpoint and is marked @ManagedResource and
@UriEndpoint.  It also has a @UriParam for 'baud' and another one for
'path' -- that last one is a problem (will explain in a second)
* Consumer extends DefaultConsumer and uses a processor to launch events

The endpoint is marked like this:

@UriEndpoint(scheme = "jssc",
        syntax = "jssc:path",
        consumerClass = JsscConsumer.class,
        title = "JSSC Component")


I would like to be able to do this:


        from("jssc:com10?baud=19200")


but THIS still does not work:


@UriPath
@Metadata(required="true")
private String path


so I end up having to do this:

      from("jssc:com10?path=com10&baud=19200")


What is wrong with specifying it as a path parameter whose name
matches the 'syntax' in the @UriEndpoint annotation - shouldn't that
work?


*https://github.com/wz2b/camel-jssc/blob/master/src/main/java/com/autofrog/camel/JsscEndpoint.java
<https://github.com/wz2b/camel-jssc/blob/master/src/main/java/com/autofrog/camel/JsscEndpoint.java>*


--Chris








On Tue, Apr 7, 2015 at 10:59 AM, Claus Ibsen <cl...@gmail.com> wrote:

> A component must have a default no-arg constructor.
>
> So add that, and call super(JsscEndpoint.class) and remove the other
> constructors as they are not really needed.
>
> On Tue, Apr 7, 2015 at 4:55 PM, Christopher Piggott <cp...@gmail.com>
> wrote:
> > I will try that, thanks.
> >
> > For a test, I just tried getting back to basics, and getting rid of all
> the
> > Uri configuration entirely - just to see what happens.  I still have
> > META-INF/services/org/apache/camel/component/jssc (a text file) which
> > allows me to do:
> >
> >     from("jssc:com10?baud=19200") ...
> >
> > and it locates the component just fine.  The next thing I did was change
> > the Component to extend UriEndpointComponent rather than
> DefaultComponent.
> > That broke it as follows:
> >
> > 2015-04-07 10:15:41,550 [main] ERROR app.tasks.CamelTask - Failed to
> start
> > camel
> > org.apache.camel.FailedToCreateRouteException: Failed to create route
> > route1: Route(route1)[[From[jssc:com10?baud=19200]] -> [To[xmpp://cl...
> > because of Failed to resolve endpoint: jssc://com10?baud=19200 due to:
> > Cannot auto create component: jssc
> >
> > So something, by doing that, just broke its ability to locate the
> endpoint
> > by name using the entry in META-INF.  The stack trace it gives me is not
> > exceptionally helpful; what it's really telling me is that it can't
> locate
> > my component.  What's especially confusing is that a UriEndpointComponent
> > extends DefaultComponent so it seems like, as far as camel is concerned,
> > they should be the same thing.
> >
> >
> > I checked in what I have so far ...
> >
> >
> https://github.com/wz2b/camel-jssc/tree/master/src/main/java/com/autofrog/camel
> >
> >
> >
> >
> > On Tue, Apr 7, 2015 at 9:36 AM, Claus Ibsen <cl...@gmail.com>
> wrote:
> >
> >> Hi
> >>
> >> Oh if you have this as a component outside Camel, then you need to add
> >> the apt plugin
> >>
> https://github.com/apache/activemq/blob/master/activemq-camel/pom.xml#L63
> >>
> >> And this plugin if you want to include a .properties file in the JAR
> >> with a list of components it contains
> >>
> https://github.com/apache/activemq/blob/master/activemq-camel/pom.xml#L217
> >>
> >> Then you do the same as all the components in Apache Camel.
> >>
> >> On Tue, Apr 7, 2015 at 3:34 PM, Claus Ibsen <cl...@gmail.com>
> wrote:
> >> > Hi
> >> >
> >> > All the 150+ components is an example of this. Just pick a similar /
> >> > simple component and see its source code.
> >> >
> >> > On Tue, Apr 7, 2015 at 3:12 PM, Christopher Piggott <
> cpiggott@gmail.com>
> >> wrote:
> >> >> Hi,
> >> >>
> >> >> According to
> >> >>
> https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.15.0+Release
> >> >>
> >> >>
> >> >>    - Custom components using @UriEndpoint must now include a syntax
> >> >>    attribute to document the uri syntax of the endpoint, when using
> the
> >> apt
> >> >>    compiler plugin to generate documentation.
> >> >>
> >> >>
> >> >> I'm looking for documentation on this and not really finding how to
> use
> >> it
> >> >> or simple examples:
> >> >>
> >> >>
> >> >>    - http://camel.apache.org/endpoint-annotations.html  says what it
> >> is,
> >> >>    but not how to use it
> >> >>    -
> >> >>
> >>
> https://github.com/sigrist/camel-rxtx/blob/master/src/main/java/org/apache/camel/rxtx/RxTxEndpoint.java
> >> >>    is an example soembody wrote that uses @UriParam ... that works
> >> fine, but
> >> >>    when I try to add a @UriPath parameter it silently ends up  null
> >> >>    - Tons of examples in git but most of them don't have a 'syntax='
> so
> >> I
> >> >>    must be looking at old source
> >> >>
> >> >>
> >> >> Trying to piece all this together from scarce examples and
> >> documentation:
> >> >>
> >> >>
> >> >>    - It doesn't seem like I really need to extend
> >> UriComponentConfiguration
> >> >>    at all, do I?  If I declare my component a @ManagedResource it
> seems
> >> to
> >> >>    bind all the @UriParam just fine.  It doesn't bind the @UriPath
> >> parameters,
> >> >>    though, and fails to do so silently, despite the fact that they
> are
> >> marked
> >> >>    @Meadata(required = "true").
> >> >>    - Are there any simple examples out there using
> >> >>    @UriComponentConfiguration ?
> >> >>
> >> >>
> >> >> --Chris
> >> >
> >> >
> >> >
> >> > --
> >> > Claus Ibsen
> >> > -----------------
> >> > Red Hat, Inc.
> >> > Email: cibsen@redhat.com
> >> > Twitter: davsclaus
> >> > Blog: http://davsclaus.com
> >> > Author of Camel in Action: http://www.manning.com/ibsen
> >> > hawtio: http://hawt.io/
> >> > fabric8: http://fabric8.io/
> >>
> >>
> >>
> >> --
> >> Claus Ibsen
> >> -----------------
> >> Red Hat, Inc.
> >> Email: cibsen@redhat.com
> >> Twitter: davsclaus
> >> Blog: http://davsclaus.com
> >> Author of Camel in Action: http://www.manning.com/ibsen
> >> hawtio: http://hawt.io/
> >> fabric8: http://fabric8.io/
> >>
>
>
>
> --
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> Email: cibsen@redhat.com
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
> hawtio: http://hawt.io/
> fabric8: http://fabric8.io/
>

Re: @UriPath and @UriSyntax

Posted by Claus Ibsen <cl...@gmail.com>.
A component must have a default no-arg constructor.

So add that, and call super(JsscEndpoint.class) and remove the other
constructors as they are not really needed.

On Tue, Apr 7, 2015 at 4:55 PM, Christopher Piggott <cp...@gmail.com> wrote:
> I will try that, thanks.
>
> For a test, I just tried getting back to basics, and getting rid of all the
> Uri configuration entirely - just to see what happens.  I still have
> META-INF/services/org/apache/camel/component/jssc (a text file) which
> allows me to do:
>
>     from("jssc:com10?baud=19200") ...
>
> and it locates the component just fine.  The next thing I did was change
> the Component to extend UriEndpointComponent rather than DefaultComponent.
> That broke it as follows:
>
> 2015-04-07 10:15:41,550 [main] ERROR app.tasks.CamelTask - Failed to start
> camel
> org.apache.camel.FailedToCreateRouteException: Failed to create route
> route1: Route(route1)[[From[jssc:com10?baud=19200]] -> [To[xmpp://cl...
> because of Failed to resolve endpoint: jssc://com10?baud=19200 due to:
> Cannot auto create component: jssc
>
> So something, by doing that, just broke its ability to locate the endpoint
> by name using the entry in META-INF.  The stack trace it gives me is not
> exceptionally helpful; what it's really telling me is that it can't locate
> my component.  What's especially confusing is that a UriEndpointComponent
> extends DefaultComponent so it seems like, as far as camel is concerned,
> they should be the same thing.
>
>
> I checked in what I have so far ...
>
> https://github.com/wz2b/camel-jssc/tree/master/src/main/java/com/autofrog/camel
>
>
>
>
> On Tue, Apr 7, 2015 at 9:36 AM, Claus Ibsen <cl...@gmail.com> wrote:
>
>> Hi
>>
>> Oh if you have this as a component outside Camel, then you need to add
>> the apt plugin
>> https://github.com/apache/activemq/blob/master/activemq-camel/pom.xml#L63
>>
>> And this plugin if you want to include a .properties file in the JAR
>> with a list of components it contains
>> https://github.com/apache/activemq/blob/master/activemq-camel/pom.xml#L217
>>
>> Then you do the same as all the components in Apache Camel.
>>
>> On Tue, Apr 7, 2015 at 3:34 PM, Claus Ibsen <cl...@gmail.com> wrote:
>> > Hi
>> >
>> > All the 150+ components is an example of this. Just pick a similar /
>> > simple component and see its source code.
>> >
>> > On Tue, Apr 7, 2015 at 3:12 PM, Christopher Piggott <cp...@gmail.com>
>> wrote:
>> >> Hi,
>> >>
>> >> According to
>> >> https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.15.0+Release
>> >>
>> >>
>> >>    - Custom components using @UriEndpoint must now include a syntax
>> >>    attribute to document the uri syntax of the endpoint, when using the
>> apt
>> >>    compiler plugin to generate documentation.
>> >>
>> >>
>> >> I'm looking for documentation on this and not really finding how to use
>> it
>> >> or simple examples:
>> >>
>> >>
>> >>    - http://camel.apache.org/endpoint-annotations.html  says what it
>> is,
>> >>    but not how to use it
>> >>    -
>> >>
>> https://github.com/sigrist/camel-rxtx/blob/master/src/main/java/org/apache/camel/rxtx/RxTxEndpoint.java
>> >>    is an example soembody wrote that uses @UriParam ... that works
>> fine, but
>> >>    when I try to add a @UriPath parameter it silently ends up  null
>> >>    - Tons of examples in git but most of them don't have a 'syntax=' so
>> I
>> >>    must be looking at old source
>> >>
>> >>
>> >> Trying to piece all this together from scarce examples and
>> documentation:
>> >>
>> >>
>> >>    - It doesn't seem like I really need to extend
>> UriComponentConfiguration
>> >>    at all, do I?  If I declare my component a @ManagedResource it seems
>> to
>> >>    bind all the @UriParam just fine.  It doesn't bind the @UriPath
>> parameters,
>> >>    though, and fails to do so silently, despite the fact that they are
>> marked
>> >>    @Meadata(required = "true").
>> >>    - Are there any simple examples out there using
>> >>    @UriComponentConfiguration ?
>> >>
>> >>
>> >> --Chris
>> >
>> >
>> >
>> > --
>> > Claus Ibsen
>> > -----------------
>> > Red Hat, Inc.
>> > Email: cibsen@redhat.com
>> > Twitter: davsclaus
>> > Blog: http://davsclaus.com
>> > Author of Camel in Action: http://www.manning.com/ibsen
>> > hawtio: http://hawt.io/
>> > fabric8: http://fabric8.io/
>>
>>
>>
>> --
>> Claus Ibsen
>> -----------------
>> Red Hat, Inc.
>> Email: cibsen@redhat.com
>> Twitter: davsclaus
>> Blog: http://davsclaus.com
>> Author of Camel in Action: http://www.manning.com/ibsen
>> hawtio: http://hawt.io/
>> fabric8: http://fabric8.io/
>>



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
hawtio: http://hawt.io/
fabric8: http://fabric8.io/

Re: @UriPath and @UriSyntax

Posted by Christopher Piggott <cp...@gmail.com>.
I will try that, thanks.

For a test, I just tried getting back to basics, and getting rid of all the
Uri configuration entirely - just to see what happens.  I still have
META-INF/services/org/apache/camel/component/jssc (a text file) which
allows me to do:

    from("jssc:com10?baud=19200") ...

and it locates the component just fine.  The next thing I did was change
the Component to extend UriEndpointComponent rather than DefaultComponent.
That broke it as follows:

2015-04-07 10:15:41,550 [main] ERROR app.tasks.CamelTask - Failed to start
camel
org.apache.camel.FailedToCreateRouteException: Failed to create route
route1: Route(route1)[[From[jssc:com10?baud=19200]] -> [To[xmpp://cl...
because of Failed to resolve endpoint: jssc://com10?baud=19200 due to:
Cannot auto create component: jssc

So something, by doing that, just broke its ability to locate the endpoint
by name using the entry in META-INF.  The stack trace it gives me is not
exceptionally helpful; what it's really telling me is that it can't locate
my component.  What's especially confusing is that a UriEndpointComponent
extends DefaultComponent so it seems like, as far as camel is concerned,
they should be the same thing.


I checked in what I have so far ...

https://github.com/wz2b/camel-jssc/tree/master/src/main/java/com/autofrog/camel




On Tue, Apr 7, 2015 at 9:36 AM, Claus Ibsen <cl...@gmail.com> wrote:

> Hi
>
> Oh if you have this as a component outside Camel, then you need to add
> the apt plugin
> https://github.com/apache/activemq/blob/master/activemq-camel/pom.xml#L63
>
> And this plugin if you want to include a .properties file in the JAR
> with a list of components it contains
> https://github.com/apache/activemq/blob/master/activemq-camel/pom.xml#L217
>
> Then you do the same as all the components in Apache Camel.
>
> On Tue, Apr 7, 2015 at 3:34 PM, Claus Ibsen <cl...@gmail.com> wrote:
> > Hi
> >
> > All the 150+ components is an example of this. Just pick a similar /
> > simple component and see its source code.
> >
> > On Tue, Apr 7, 2015 at 3:12 PM, Christopher Piggott <cp...@gmail.com>
> wrote:
> >> Hi,
> >>
> >> According to
> >> https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.15.0+Release
> >>
> >>
> >>    - Custom components using @UriEndpoint must now include a syntax
> >>    attribute to document the uri syntax of the endpoint, when using the
> apt
> >>    compiler plugin to generate documentation.
> >>
> >>
> >> I'm looking for documentation on this and not really finding how to use
> it
> >> or simple examples:
> >>
> >>
> >>    - http://camel.apache.org/endpoint-annotations.html  says what it
> is,
> >>    but not how to use it
> >>    -
> >>
> https://github.com/sigrist/camel-rxtx/blob/master/src/main/java/org/apache/camel/rxtx/RxTxEndpoint.java
> >>    is an example soembody wrote that uses @UriParam ... that works
> fine, but
> >>    when I try to add a @UriPath parameter it silently ends up  null
> >>    - Tons of examples in git but most of them don't have a 'syntax=' so
> I
> >>    must be looking at old source
> >>
> >>
> >> Trying to piece all this together from scarce examples and
> documentation:
> >>
> >>
> >>    - It doesn't seem like I really need to extend
> UriComponentConfiguration
> >>    at all, do I?  If I declare my component a @ManagedResource it seems
> to
> >>    bind all the @UriParam just fine.  It doesn't bind the @UriPath
> parameters,
> >>    though, and fails to do so silently, despite the fact that they are
> marked
> >>    @Meadata(required = "true").
> >>    - Are there any simple examples out there using
> >>    @UriComponentConfiguration ?
> >>
> >>
> >> --Chris
> >
> >
> >
> > --
> > Claus Ibsen
> > -----------------
> > Red Hat, Inc.
> > Email: cibsen@redhat.com
> > Twitter: davsclaus
> > Blog: http://davsclaus.com
> > Author of Camel in Action: http://www.manning.com/ibsen
> > hawtio: http://hawt.io/
> > fabric8: http://fabric8.io/
>
>
>
> --
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> Email: cibsen@redhat.com
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
> hawtio: http://hawt.io/
> fabric8: http://fabric8.io/
>

Re: @UriPath and @UriSyntax

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

Oh if you have this as a component outside Camel, then you need to add
the apt plugin
https://github.com/apache/activemq/blob/master/activemq-camel/pom.xml#L63

And this plugin if you want to include a .properties file in the JAR
with a list of components it contains
https://github.com/apache/activemq/blob/master/activemq-camel/pom.xml#L217

Then you do the same as all the components in Apache Camel.

On Tue, Apr 7, 2015 at 3:34 PM, Claus Ibsen <cl...@gmail.com> wrote:
> Hi
>
> All the 150+ components is an example of this. Just pick a similar /
> simple component and see its source code.
>
> On Tue, Apr 7, 2015 at 3:12 PM, Christopher Piggott <cp...@gmail.com> wrote:
>> Hi,
>>
>> According to
>> https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.15.0+Release
>>
>>
>>    - Custom components using @UriEndpoint must now include a syntax
>>    attribute to document the uri syntax of the endpoint, when using the apt
>>    compiler plugin to generate documentation.
>>
>>
>> I'm looking for documentation on this and not really finding how to use it
>> or simple examples:
>>
>>
>>    - http://camel.apache.org/endpoint-annotations.html  says what it is,
>>    but not how to use it
>>    -
>>    https://github.com/sigrist/camel-rxtx/blob/master/src/main/java/org/apache/camel/rxtx/RxTxEndpoint.java
>>    is an example soembody wrote that uses @UriParam ... that works fine, but
>>    when I try to add a @UriPath parameter it silently ends up  null
>>    - Tons of examples in git but most of them don't have a 'syntax=' so I
>>    must be looking at old source
>>
>>
>> Trying to piece all this together from scarce examples and documentation:
>>
>>
>>    - It doesn't seem like I really need to extend UriComponentConfiguration
>>    at all, do I?  If I declare my component a @ManagedResource it seems to
>>    bind all the @UriParam just fine.  It doesn't bind the @UriPath parameters,
>>    though, and fails to do so silently, despite the fact that they are marked
>>    @Meadata(required = "true").
>>    - Are there any simple examples out there using
>>    @UriComponentConfiguration ?
>>
>>
>> --Chris
>
>
>
> --
> Claus Ibsen
> -----------------
> Red Hat, Inc.
> Email: cibsen@redhat.com
> Twitter: davsclaus
> Blog: http://davsclaus.com
> Author of Camel in Action: http://www.manning.com/ibsen
> hawtio: http://hawt.io/
> fabric8: http://fabric8.io/



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
hawtio: http://hawt.io/
fabric8: http://fabric8.io/

Re: @UriPath and @UriSyntax

Posted by Claus Ibsen <cl...@gmail.com>.
Hi

All the 150+ components is an example of this. Just pick a similar /
simple component and see its source code.

On Tue, Apr 7, 2015 at 3:12 PM, Christopher Piggott <cp...@gmail.com> wrote:
> Hi,
>
> According to
> https://cwiki.apache.org/confluence/display/CAMEL/Camel+2.15.0+Release
>
>
>    - Custom components using @UriEndpoint must now include a syntax
>    attribute to document the uri syntax of the endpoint, when using the apt
>    compiler plugin to generate documentation.
>
>
> I'm looking for documentation on this and not really finding how to use it
> or simple examples:
>
>
>    - http://camel.apache.org/endpoint-annotations.html  says what it is,
>    but not how to use it
>    -
>    https://github.com/sigrist/camel-rxtx/blob/master/src/main/java/org/apache/camel/rxtx/RxTxEndpoint.java
>    is an example soembody wrote that uses @UriParam ... that works fine, but
>    when I try to add a @UriPath parameter it silently ends up  null
>    - Tons of examples in git but most of them don't have a 'syntax=' so I
>    must be looking at old source
>
>
> Trying to piece all this together from scarce examples and documentation:
>
>
>    - It doesn't seem like I really need to extend UriComponentConfiguration
>    at all, do I?  If I declare my component a @ManagedResource it seems to
>    bind all the @UriParam just fine.  It doesn't bind the @UriPath parameters,
>    though, and fails to do so silently, despite the fact that they are marked
>    @Meadata(required = "true").
>    - Are there any simple examples out there using
>    @UriComponentConfiguration ?
>
>
> --Chris



-- 
Claus Ibsen
-----------------
Red Hat, Inc.
Email: cibsen@redhat.com
Twitter: davsclaus
Blog: http://davsclaus.com
Author of Camel in Action: http://www.manning.com/ibsen
hawtio: http://hawt.io/
fabric8: http://fabric8.io/