Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Adrian Soria
    @adrianSoria
    with for example StreamingResponseBody and jackson streaming API https://www.baeldung.com/jackson-streaming-api
    Dinesh Shetye
    @dineshshetye
    Hello, Can someone point me a link to CAMEL API? I tried https://camel.apache.org/maven/current/camel-core/apidocs/index.html but it says Page Not Found. Also the same message with https://camel.apache.org/file2.html
    Roman Vottner
    @RovoMe

    Does the RAW(…) function work for recipientList EIP? We have currently an issue with an S/FTP server we have to connect to to which we have been assigned a password that contains a couple of special characters.

    According to RFC 3986 the user information part of the URI defines the rule-set which characters need to be percent-encoded and which don’t. We utilize Springs UriUtils class to encode the password according to the RFC 3986 ruleset and generate the Camel endpoint configuration string based on that result. This URI is furthermore altered by adding the above-mentioned RAW(…) function to it to tell Camel to not encode the already encoded user information.

    In a test we end up with a Camel endpoint configuration string similar to

    String connectionString = „ftp://RAW(user:se+re$%3Ft&23)@127.0.0.1:1101/?throwExceptionOnConnectFailed=true&stepwise=false

    for a raw password of se+re$?t&23 though when we feed the recipientList EIP with such a configuration string the actual server is invoked, however the credentials within the authentication routine are as such:

    username = "RAW(user"
    password = "se+re$?t&23)"

    where the password seems to correctly be decoded by that server though the leading RAW(and the trailing ) characters from the RAW(…) function are not removed for some reason before sending the request.

    If we omit the RAW(…) function and use the raw URI (ftp://user:se+re$%3Ft&23@127.0.0.1:1101/?throwExceptionOnConnectFailed=true&stepwise=false), Camel can’t even invoke the server and fails with the following reason:

    Caused by: java.lang.IllegalArgumentException: host must be specified and not empty
        at org.apache.camel.util.StringHelper.notEmpty(StringHelper.java:323)
        at org.apache.camel.util.ObjectHelper.notEmpty(ObjectHelper.java:357)
        at org.apache.camel.component.file.remote.RemoteFileEndpoint.afterPropertiesSet(RemoteFileEndpoint.java:154)
        at org.apache.camel.component.file.remote.RemoteFileEndpoint.createProducer(RemoteFileEndpoint.java:88)
        at org.apache.camel.component.file.remote.RemoteFileEndpoint.createProducer(RemoteFileEndpoint.java:36)
    Roman Vottner
    @RovoMe
    @dineshshetye The whole source code is available at https://github.com/apache/camel/. If you are looking for some human friendly documentation poke arround the recently launched web-page: https://camel.apache.org/ Certain links that used to work in the past might now be broken as the new page uses a bit different URI layout.
    Dinesh Shetye
    @dineshshetye
    Thanks for the response @RovoMe I specifically wanted the javadocs link. I tried to find it in the new website but couldn't find it anywhere. On this page: https://camel.apache.org/manual/latest/#_developers the Javadoc section has no URL associated to it.
    Roman Vottner
    @RovoMe
    @oscerd @zregvart A full-text search ability would be really convenient IMO, especially with all of the components and EIPs Camel supports. Currently I’m way faster going on Github and pressing T end enter what I’m more or less looking for, such as recipientList or the like. Finding the same „page“ in the current layout is not that user-friendly IMO. Not sure though if there is already a JIIRA ticket available for that
    Jose Montoya
    @jam01
    Hey yall, just wanted to say... all the work on camel 3 looks pretty damn awesome
    can't wait to take it for a spin
    Roman Vottner
    @RovoMe

    OK, I think I understand where the issue is at. There are actually 2 issues IMO. One of them being that when the FtpComponent receives the String uri within buildFileEndpoint(…) it still has the RAW(…) stuff included. This RAW(…) function is used within UnsafeUriCharactersEncoder to not encode characters defined within that function. This is mentioned in the docs, though I’d expected that this will remove the RAW( and ) parts in the actual target URI also. This issue could be fixed by customizing the FtpComponent and remove that parts from the uri-string manually.

    The other one seems to be related with how URIs are generated and encoded internally. What I find strange is, that Camel generates a URI object in URISupport.normalizeUri(String uri) by encoding it using an obsolete URL spec (RFC 1738) intead of the actual current URI spec RFC 3986, which obviously defines other reserved and admissible characters. This way, not adding RAW(…) at all will strip away the host information for an already encoded password such as se+re$%3Ft&23 and also decode that encoded password back to se+re$?t23 which is not in line with the actual URI spec IMO.

    Andrea Cosentino
    @oscerd
    @RovoMe there is an issue for search feature. But not for a full text one I believe. You're welcome to log an issue about it
    Roman Vottner
    @RovoMe
    I have to revert some of my objections made yesterday O:) If the RAW(…) function is used within a FTP component configuration string using a password property, i.e. something along the line of ftp://user@host:port/path/to/dir?stepwise=false&password=RAW(se+re$?t23)&... everything seems to work as expected. As the password included in the user info section of the URI is deprecated anyway this is probably the clean and correct way to specify passwords to start with.
    Zoran Regvart
    @zregvart
    @RovoMe we have website search in the works, the JIRA issue for it is https://issues.apache.org/jira/browse/CAMEL-11503 and there is a work in progress pull request for it using Algolia DocSearch apache/camel-website#81
    Zoran Regvart
    @zregvart
    @dineshshetye we don't publish the JavaDoc on the new site, I think the JavaDoc on the old site was out of date anyhow, can you create a JIRA issue for adding javadoc, I think there was a site that could do that for us automatically so perhaps we could just link to it
    Claus Ibsen
    @davsclaus
    @zregvart yeah there is an external site that hosts javadoc, then lets just use that
    its more the user guide docs that we need/want to improve
    the javadoc are already possible to see from your IDE editors etc
    Luca Burgazzoli
    @lburgazzoli
    I think it is javadoc.io
    you just need to browse according to the artifact name and the javadoc will then be hosted
    Zoran Regvart
    @zregvart
    What do folk wan't to see from the javadoc, just the Camel API or component API? It gets complicated a bit when we have a cartesian product of components x versions to keep an index of all of those. Where on the site you would like the API documentation to be?
    Omar Al-Safi
    @omarsmak
    Hey guys, I was wondering about the Metadata annotation, when I set the annotation to @Metadata(required = true), does Camel endpoint aware of the required param, like throwing an exception in case of the configuration is not present?
    Claus Ibsen
    @davsclaus
    @zregvart just camel-api, camel-support, camel-util as end-user facing javadoc
    camel-core is more of an implementation engine of those APIs, and users should prefer to use what they find above
    but we may have slipped not moving some things out of camel-core into -support etc when its end-user relevant
    Zoran Regvart
    @zregvart
    I've created https://issues.apache.org/jira/browse/CAMEL-13902 comment with ideas there
    Claus Ibsen
    @davsclaus
    +1
    Hariprasad R
    @hari87
    Guys, not regarding the camel itself but a question on best practice. Is it appropriate to edit rest-dsl generated code from swagger?
    Zoran Regvart
    @zregvart
    That depends, if the OpenAPI (ex Swagger) is the contract you're fulfilling then you might diverge from that contract, and that leads to supprises when clients rely on that contract, otherwise if you're using OpenAPI to jumpstart and then the contract is whatever service implements you're free to change it to whatever you need...
    Omar Al-Safi
    @omarsmak
    @davsclaus another question regarding your Heads up email in the mailing list, in regards to CAMEL-13870, you mentioned we could generate endpoint configure classes using camel-apt, however I can't find any documentation on how to use it, can you please elaborate here?
    Zoran Regvart
    @zregvart
    I just found a nifty way of copying changes we made to component reference from master to 2.x, I might be able to add 2.x component reference to the website quite easily...
    Michele Mauro
    @mimatn
    Hi everyone. The new site is very, very good: a great improvement from the previous one.
    Congratulations.
    However, the missing javadocs really burns.
    I'm in the middle of a project: what are my options? cloning the correct tag and try to generate them locally?
    Zoran Regvart
    @zregvart
    Hi @mimatn you can access the javadoc via javadoc.io like: https://www.javadoc.io/doc/org.apache.camel/camel-api/3.0.0-M4 the issue above (https://issues.apache.org/jira/browse/CAMEL-13902) welcomes your comments
    Michele Mauro
    @mimatn
    that's great, we should get the word out about that. I tried javadoc.io but looks like I missed the correct component name
    thank you very very much
    are the 2.x docs there, too? let me check the component name...
    of course they are! great! thank you
    Dinesh Shetye
    @dineshshetye
    @mimatn Can you share the link for 2.x docs?
    just look at your dependency file, identify your component and version and you'll find what you need
    Dinesh Shetye
    @dineshshetye
    @mimatn Thank you Sir!!
    Claus Ibsen
    @davsclaus
    @omarsmak its apt compiler plugin which is a java standard
    see the tooling/apt directory
    we use it for the Camel annotations to generate component metadata etc
    and for camel 3, java source code for fast type converters, and now configuration of eips and endpoints/components etc
    Omar Al-Safi
    @omarsmak
    Thanks @davsclaus for the info
    But actually I saw what is the purpose of it when I looked at the source code, my question is on how to use it to generate the Java source code for the configurations from a component POV
    Omar Al-Safi
    @omarsmak
    What I mean here for testing of course