The need for Salesforce support was obvious, and to be fair to Camel, it did have the fundamental SOAP/REST, CometD support needed to integrate with Salesforce from scratch. But that requires a considerable amount of work by the developer to setup the low level protocol details, and mapping to and from domain objects to Salesforce message format.
So, the primary goals when designing the Salesforce component were:
- Easy Salesforce connection setup (OAuth 2.0 authentication) and management (session re-establishment on expiry, etc.)
- Support for Salesforce domain object (SObjects in Salesforce terminology) generation and mapping
- Support for all or majority of Salesforce integration APIs (SOAP, REST, Bulk, Streaming)