You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Yulia Buzlukova (Jira)" <ji...@apache.org> on 2020/07/24 23:28:00 UTC

[jira] [Updated] (CAMEL-15338) Salesforce - Wrong Channel Name for Standard Platform Events

     [ https://issues.apache.org/jira/browse/CAMEL-15338?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Yulia Buzlukova updated CAMEL-15338:
------------------------------------
    Description: 
For channels starting with "/event/" "__e" suffix is always added to the channel name in [SubscriptionHelper|https://github.com/apache/camel/blob/camel-3.4.x/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelper.java#L542].

 

However, according to salesforce documentation [_API names of standard platform events, such as AssetTokenEvent, don't include a suffix_|https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_define_ui.htm].

 

As a result, camel salesforce component cannot subscribe to Standard Event channels. 

*Suggestion*: not to add "__e" suffix to all events, but leave it to endpoint configuration.

 
|| ||EndPoint||Channel Name returned by SubscriptionHelper||Result||
|*Current Approach*|salesforce:/event/LoginEventStream?replayId=-1|/event/LoginEventStream__e|"subscription":"/event/LoginEventStream__e"
 "error":"{color:#de350b}403:denied_by_security_policy:create_denied{color}"
 "successful":false|
| |salesforce:/event/CustomEvent?replayId=-1|/event/CustomEvent__e|"subscription":"/event/CustomEvent__e",
 "successful":true|
| |salesforce:/event/CustomEvent__e?replayId=-1|/event/CustomEvent__e|"subscription":"/event/CustomEvent__e",
 "successful":true|
|*Suggested Approach*|salesforce:/event/LoginEventStream?replayId=-1|/event/LoginEventStream|"subscription":"/event/LoginEventStream"
 "successful":true|
| |salesforce:/event/CustomEvent__e?replayId=-1|/event/CustomEvent__e|"subscription":"/event/CustomEvent__e",
 "successful":true|

 

To receive the result described in the suggested approach, I removed channel suffix hardcoding from SubscriptionHelper.getChannelName
{noformat}
static String getChannelName(final String topicName) {
    final StringBuilder channelName = new StringBuilder();
    if (topicName.charAt(0) != '/') {
        channelName.append('/');
    }

    if (topicName.indexOf('/', 1) > 0) {
        channelName.append(topicName);
    } else {
        channelName.append("topic/");
        channelName.append(topicName);
    }
    
    /*
     * suffix hardcoding for event channels is removed
     */

    return channelName.toString();
}{noformat}
 

[Pull request|https://github.com/apache/camel/pull/4045]

  was:
For channels starting with "/event/" "__e" suffix is always added to the channel name in [SubscriptionHelper|https://github.com/apache/camel/blob/camel-3.4.x/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelper.java#L542].

 

However, according to salesforce documentation [_API names of standard platform events, such as AssetTokenEvent, don't include a suffix_|https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_define_ui.htm].

 

As a result, camel salesforce component cannot subscribe to Standard Event channels. 

*Suggestion*: not to add "__e" suffix to all events, but leave it to endpoint configuration.

 
|| ||EndPoint||Channel Name returned by SubscriptionHelper||Result||
|*Current Approach*|salesforce:/event/LoginEventStream?replayId=-1|/event/LoginEventStream__e|"subscription":"/event/LoginEventStream__e"
 "error":"{color:#de350b}403:denied_by_security_policy:create_denied{color}"
 "successful":false|
| |salesforce:/event/CustomEvent?replayId=-1|/event/CustomEvent__e|"subscription":"/event/CustomEvent__e",
 "successful":true|
| |salesforce:/event/CustomEvent__e?replayId=-1|/event/CustomEvent__e|"subscription":"/event/CustomEvent__e",
 "successful":true|
|*Suggested Approach*|salesforce:/event/LoginEventStream?replayId=-1|/event/LoginEventStream|"subscription":"/event/LoginEventStream"
 "successful":true|
| |salesforce:/event/CustomEvent__e?replayId=-1|/event/CustomEvent__e|"subscription":"/event/CustomEvent__e",
 "successful":true|

 

To receive the result described in the suggested approach, I removed channel suffix hardcoding from SubscriptionHelper.getChannelName
{noformat}
static String getChannelName(final String topicName) {
    final StringBuilder channelName = new StringBuilder();
    if (topicName.charAt(0) != '/') {
        channelName.append('/');
    }

    if (topicName.indexOf('/', 1) > 0) {
        channelName.append(topicName);
    } else {
        channelName.append("topic/");
        channelName.append(topicName);
    }
    
    /*
     * suffix hardcoding for event channels is removed
     */

    return channelName.toString();
}{noformat}
 


> Salesforce - Wrong Channel Name for Standard Platform Events
> ------------------------------------------------------------
>
>                 Key: CAMEL-15338
>                 URL: https://issues.apache.org/jira/browse/CAMEL-15338
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-salesforce
>    Affects Versions: 3.4.2
>            Reporter: Yulia Buzlukova
>            Priority: Major
>
> For channels starting with "/event/" "__e" suffix is always added to the channel name in [SubscriptionHelper|https://github.com/apache/camel/blob/camel-3.4.x/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelper.java#L542].
>  
> However, according to salesforce documentation [_API names of standard platform events, such as AssetTokenEvent, don't include a suffix_|https://developer.salesforce.com/docs/atlas.en-us.platform_events.meta/platform_events/platform_events_define_ui.htm].
>  
> As a result, camel salesforce component cannot subscribe to Standard Event channels. 
> *Suggestion*: not to add "__e" suffix to all events, but leave it to endpoint configuration.
>  
> || ||EndPoint||Channel Name returned by SubscriptionHelper||Result||
> |*Current Approach*|salesforce:/event/LoginEventStream?replayId=-1|/event/LoginEventStream__e|"subscription":"/event/LoginEventStream__e"
>  "error":"{color:#de350b}403:denied_by_security_policy:create_denied{color}"
>  "successful":false|
> | |salesforce:/event/CustomEvent?replayId=-1|/event/CustomEvent__e|"subscription":"/event/CustomEvent__e",
>  "successful":true|
> | |salesforce:/event/CustomEvent__e?replayId=-1|/event/CustomEvent__e|"subscription":"/event/CustomEvent__e",
>  "successful":true|
> |*Suggested Approach*|salesforce:/event/LoginEventStream?replayId=-1|/event/LoginEventStream|"subscription":"/event/LoginEventStream"
>  "successful":true|
> | |salesforce:/event/CustomEvent__e?replayId=-1|/event/CustomEvent__e|"subscription":"/event/CustomEvent__e",
>  "successful":true|
>  
> To receive the result described in the suggested approach, I removed channel suffix hardcoding from SubscriptionHelper.getChannelName
> {noformat}
> static String getChannelName(final String topicName) {
>     final StringBuilder channelName = new StringBuilder();
>     if (topicName.charAt(0) != '/') {
>         channelName.append('/');
>     }
>     if (topicName.indexOf('/', 1) > 0) {
>         channelName.append(topicName);
>     } else {
>         channelName.append("topic/");
>         channelName.append(topicName);
>     }
>     
>     /*
>      * suffix hardcoding for event channels is removed
>      */
>     return channelName.toString();
> }{noformat}
>  
> [Pull request|https://github.com/apache/camel/pull/4045]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)