You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ff...@apache.org on 2022/04/14 19:02:53 UTC
[camel-spring-boot] branch main updated: [CAMEL-17936]add tests in camel-salesforce-starter (#528)
This is an automated email from the ASF dual-hosted git repository.
ffang pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-spring-boot.git
The following commit(s) were added to refs/heads/main by this push:
new 08c2190e6af [CAMEL-17936]add tests in camel-salesforce-starter (#528)
08c2190e6af is described below
commit 08c2190e6af10c88449b7299616dcf8a8536828a
Author: Freeman(Yue) Fang <fr...@gmail.com>
AuthorDate: Thu Apr 14 15:02:49 2022 -0400
[CAMEL-17936]add tests in camel-salesforce-starter (#528)
---
.../camel-salesforce-starter/pom.xml | 6 +
.../springboot/AbstractSalesforceTestBase.java | 59 ++
.../salesforce/springboot/LoginConfigHelper.java | 150 ++++
.../salesforce/springboot/RawPayloadTest.java | 315 +++++++++
.../springboot/dto/generated/Account.java | 777 +++++++++++++++++++++
.../dto/generated/Account_IndustryEnum.java | 119 ++++
.../salesforce/springboot/dto/generated/Asset.java | 176 +++++
.../springboot/dto/generated/Contact.java | 738 +++++++++++++++++++
.../springboot/dto/generated/Document.java | 286 ++++++++
.../springboot/dto/generated/Line_Item__c.java | 166 +++++
.../springboot/dto/generated/MSPTest.java | 87 +++
.../springboot/dto/generated/Merchandise__c.java | 150 ++++
.../dto/generated/QueryRecordsAccount.java | 22 +
.../dto/generated/QueryRecordsContact.java | 22 +
.../dto/generated/QueryRecordsLine_Item__c.java | 24 +
.../springboot/dto/generated/RecordType.java | 188 +++++
.../springboot/dto/generated/StringMSPTest.java | 50 ++
.../salesforce/springboot/dto/generated/Task.java | 70 ++
.../salesforce/springboot/dto/generated/User.java | 24 +
19 files changed, 3429 insertions(+)
diff --git a/components-starter/camel-salesforce-starter/pom.xml b/components-starter/camel-salesforce-starter/pom.xml
index ce851c1a064..ef82cf3ee96 100644
--- a/components-starter/camel-salesforce-starter/pom.xml
+++ b/components-starter/camel-salesforce-starter/pom.xml
@@ -39,6 +39,12 @@
<artifactId>camel-salesforce</artifactId>
<version>${camel-version}</version>
</dependency>
+ <dependency>
+ <groupId>com.squareup.okhttp3</groupId>
+ <artifactId>mockwebserver</artifactId>
+ <version>${okclient-version}</version>
+ <scope>test</scope>
+ </dependency>
<!--START OF GENERATED CODE-->
<dependency>
<groupId>org.apache.camel.springboot</groupId>
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/AbstractSalesforceTestBase.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/AbstractSalesforceTestBase.java
new file mode 100644
index 00000000000..7c722b45cc8
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/AbstractSalesforceTestBase.java
@@ -0,0 +1,59 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot;
+
+import java.util.HashMap;
+
+import org.apache.camel.component.salesforce.SalesforceComponent;
+import org.apache.camel.component.salesforce.SalesforceEndpointConfig;
+import org.apache.camel.component.salesforce.springboot.dto.generated.Merchandise__c;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.context.annotation.Bean;
+
+public abstract class AbstractSalesforceTestBase {
+
+ protected final Logger log = LoggerFactory.getLogger(getClass());
+
+
+ @Bean("salesforce")
+ protected SalesforceComponent createComponent() throws Exception {
+ // create the component
+ SalesforceComponent component = new SalesforceComponent();
+ final SalesforceEndpointConfig config = new SalesforceEndpointConfig();
+ config.setApiVersion(System.getProperty("apiVersion", salesforceApiVersionToUse()));
+ component.setConfig(config);
+ component.setLoginConfig(LoginConfigHelper.getLoginConfig());
+
+ HashMap<String, Object> clientProperties = new HashMap<>();
+ clientProperties.put("timeout", "60000");
+ clientProperties.put("maxRetries", "3");
+ // 4MB for RestApiIntegrationTest.testGetBlobField()
+ clientProperties.put("maxContentLength", String.valueOf(4 * 1024 * 1024));
+ component.setHttpClientProperties(clientProperties);
+
+ // set DTO package
+ component.setPackages(Merchandise__c.class.getPackage().getName());
+
+ return component;
+ }
+
+ protected String salesforceApiVersionToUse() {
+ return SalesforceEndpointConfig.DEFAULT_VERSION;
+ }
+
+}
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/LoginConfigHelper.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/LoginConfigHelper.java
new file mode 100644
index 00000000000..ef7de2be99a
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/LoginConfigHelper.java
@@ -0,0 +1,150 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.MissingResourceException;
+import java.util.ResourceBundle;
+
+import org.apache.camel.component.salesforce.AuthenticationType;
+import org.apache.camel.component.salesforce.SalesforceLoginConfig;
+import org.apache.camel.support.jsse.KeyStoreParameters;
+import org.apache.camel.util.ObjectHelper;
+
+import static org.apache.camel.util.ObjectHelper.isNotEmpty;
+
+public final class LoginConfigHelper {
+
+ private static final LoginConfigHelper INSTANCE = new LoginConfigHelper();
+
+ private final Map<String, String> configuration;
+
+ private LoginConfigHelper() {
+ configuration = new HashMap<>();
+ try {
+ final ResourceBundle properties = ResourceBundle.getBundle("test-salesforce-login");
+ properties.keySet().forEach(k -> configuration.put(k, properties.getString(k)));
+ } catch (final MissingResourceException ignored) {
+ // ignoring if missing
+ }
+
+ System.getenv().keySet().stream()//
+ .filter(k -> k.startsWith("SALESFORCE_") && isNotEmpty(System.getenv(k)))
+ .forEach(k -> configuration.put(fromEnvName(k), System.getenv(k)));
+ System.getProperties().keySet().stream().map(String.class::cast)
+ .filter(k -> k.startsWith("salesforce.") && isNotEmpty(System.getProperty(k)))
+ .forEach(k -> configuration.put(k, System.getProperty(k)));
+ }
+
+ private String fromEnvName(final String envVariable) {
+ return envVariable.replace('_', '.').toLowerCase();
+ }
+
+ SalesforceLoginConfig createLoginConfig() {
+ final SalesforceLoginConfig loginConfig = new SalesforceLoginConfig();
+
+ final String explicitType = configuration.get("salesforce.auth.type");
+ if (ObjectHelper.isNotEmpty(explicitType)) {
+ loginConfig.setType(AuthenticationType.valueOf(explicitType));
+ }
+ final String loginUrl = configuration.get("salesforce.login.url");
+ if (ObjectHelper.isNotEmpty(loginUrl)) {
+ loginConfig.setLoginUrl(loginUrl);
+ }
+ loginConfig.setClientId(configuration.get("salesforce.client.id"));
+ loginConfig.setClientSecret(configuration.get("salesforce.client.secret"));
+ loginConfig.setUserName(configuration.get("salesforce.username"));
+ loginConfig.setPassword(configuration.get("salesforce.password"));
+
+ final KeyStoreParameters keystore = new KeyStoreParameters();
+ keystore.setResource(configuration.get("salesforce.keystore.resource"));
+ keystore.setPassword(configuration.get("salesforce.keystore.password"));
+ keystore.setType(configuration.get("salesforce.keystore.type"));
+ keystore.setProvider(configuration.get("salesforce.keystore.provider"));
+ loginConfig.setKeystore(keystore);
+
+ validate(loginConfig);
+
+ return loginConfig;
+ }
+
+ void validate(final SalesforceLoginConfig loginConfig) {
+ try {
+ loginConfig.validate();
+ } catch (final IllegalArgumentException e) {
+ System.out.println("To run integration tests Salesforce Authentication information is");
+ System.out.println("needed.");
+ System.out.println("You need to specify the configuration for running tests by either");
+ System.out.println("specifying environment variables, Maven properties or create a Java");
+ System.out.println("properties file at:");
+ System.out.println();
+ System.out.println("camel/components/camel-salesforce/test-salesforce-login.properties");
+ System.out.println();
+ System.out.println("With authentication information to access a Salesforce instance.");
+ System.out.println("You can use:");
+ System.out.println();
+ System.out.println("camel/components/camel-salesforce/test-salesforce-login.properties.sample");
+ System.out.println();
+ System.out.println("as reference. A free Salesforce developer account can be obtained at:");
+ System.out.println();
+ System.out.println("https://developer.salesforce.com");
+ System.out.println();
+ System.out.println("Properties that you need to set:");
+ System.out.println();
+ System.out.println("| Maven or properties file | Environment variable | Use |");
+ System.out.println("|------------------------------+------------------------------+--------|");
+ System.out.println("| salesforce.client.id | SALESFORCE_CLIENT_ID | ALL |");
+ System.out.println("| salesforce.client.secret | SALESFORCE_CLIENT_SECRET | UP, RT |");
+ System.out.println("| salesforce.username | SALESFORCE_USERNAME | UP, JWT|");
+ System.out.println("| salesforce.password | SALESFORCE_PASSWORD | UP |");
+ System.out.println("| salesforce.refreshToken | SALESFORCE_REFRESH_TOKEN | RT |");
+ System.out.println("| salesforce.keystore.path | SALESFORCE_KEYSTORE_PATH | JWT |");
+ System.out.println("| salesforce.keystore.type | SALESFORCE_KEYSTORE_TYPE | JWT |");
+ System.out.println("| salesforce.keystore.password | SALESFORCE_KEYSTORE_PASSWORD | JWT |");
+ System.out.println("| salesforce.login.url | SALESFORCE_LOGIN_URL | ALL |");
+ System.out.println();
+ System.out.println("* ALL - required always");
+ System.out.println("* UP - when using username and password authentication");
+ System.out.println("* RT - when using refresh token flow");
+ System.out.println("* JWT - when using JWT flow");
+ System.out.println();
+ System.out.println("You can force authentication type to be one of USERNAME_PASSWORD,");
+ System.out.println("REFRESH_TOKEN or JWT by setting `salesforce.auth.type` (or ");
+ System.out.println("`SALESFORCE_AUTH_TYPE` for environment variables).");
+ System.out.println();
+ System.out.println("Examples:");
+ System.out.println();
+ System.out.println("Using environment:");
+ System.out.println();
+ System.out.println("$ export SALESFORCE_CLIENT_ID=...");
+ System.out.println("$ export SALESFORCE_CLIENT_SECRET=...");
+ System.out.println("$ export ...others...");
+ System.out.println();
+ System.out.println("or using Maven properties:");
+ System.out.println();
+ System.out.println("$ mvn -Pintegration -Dsalesforce.client.id=... \\");
+ System.out.println(" -Dsalesforce.client.secret=... ...");
+ System.out.println();
+ }
+ }
+
+ public static SalesforceLoginConfig getLoginConfig() {
+ return INSTANCE.createLoginConfig();
+ }
+
+}
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/RawPayloadTest.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/RawPayloadTest.java
new file mode 100644
index 00000000000..16b1c231bdc
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/RawPayloadTest.java
@@ -0,0 +1,315 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot;
+
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import org.apache.camel.CamelContext;
+import org.apache.camel.ProducerTemplate;
+import org.apache.camel.Route;
+import org.apache.camel.builder.RouteBuilder;
+import org.apache.camel.component.salesforce.SalesforceComponent;
+import org.apache.camel.component.salesforce.SalesforceEndpointConfig;
+import org.apache.camel.component.salesforce.SalesforceLoginConfig;
+import org.apache.camel.spring.boot.CamelAutoConfiguration;
+
+import org.junit.jupiter.api.AfterAll;
+import org.junit.jupiter.api.BeforeAll;
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.MethodSource;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+
+import okhttp3.HttpUrl;
+import okhttp3.mockwebserver.Dispatcher;
+import okhttp3.mockwebserver.MockResponse;
+import okhttp3.mockwebserver.MockWebServer;
+import okhttp3.mockwebserver.RecordedRequest;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.context.annotation.Bean;
+import org.springframework.test.annotation.DirtiesContext;
+import org.apache.camel.test.junit5.params.Parameters;
+import org.apache.camel.test.spring.junit5.CamelSpringBootTest;
+import org.eclipse.jetty.http.HttpHeader;
+
+
+@DirtiesContext
+@CamelSpringBootTest
+@SpringBootTest(
+ classes = {
+ CamelAutoConfiguration.class,
+ RawPayloadTest.class,
+ }
+)
+
+
+public class RawPayloadTest extends AbstractSalesforceTestBase {
+
+ @Autowired
+ ProducerTemplate template;
+
+ @Autowired
+ CamelContext camelContext;
+
+ public static String format;
+
+ public static String endpointUri;
+
+ private static final String OAUTH2_TOKEN_PATH = "/services/oauth2/token";
+ private static final String XML_RESPONSE = "<response/>";
+ private static final String JSON_RESPONSE = "{ \"response\" : \"mock\" }";
+
+ private static HttpUrl loginUrl;
+ private static MockWebServer server;
+
+ private static String lastFormat;
+ private static String expectedResponse;
+ private static String requestBody;
+ private static Map<String, Object> headers;
+
+ @Override
+ @Bean("salesforce")
+ protected SalesforceComponent createComponent() throws Exception {
+
+ // create the component
+ SalesforceComponent component = new SalesforceComponent();
+ final SalesforceEndpointConfig config = new SalesforceEndpointConfig();
+ config.setApiVersion(System.getProperty("apiVersion", salesforceApiVersionToUse()));
+ component.setConfig(config);
+
+ SalesforceLoginConfig dummyLoginConfig = new SalesforceLoginConfig();
+ dummyLoginConfig.setClientId("ignored");
+ dummyLoginConfig.setClientSecret("ignored");
+ dummyLoginConfig.setRefreshToken("ignored");
+ dummyLoginConfig.setLoginUrl(loginUrl.toString());
+ component.setLoginConfig(dummyLoginConfig);
+
+ return component;
+ }
+
+ @AfterAll
+ public static void shutDownServer() throws IOException {
+ // shutdown mock server
+ if (server != null) {
+ server.shutdown();
+ }
+ }
+
+ @BeforeAll
+ public static void startServer() throws IOException {
+ //format = _format;
+ //endpointUri = _endpointUri;
+
+ // create mock server
+ server = new MockWebServer();
+
+ server.setDispatcher(new Dispatcher() {
+ @Override
+ public MockResponse dispatch(RecordedRequest recordedRequest) throws InterruptedException {
+ if (recordedRequest.getPath().equals(OAUTH2_TOKEN_PATH)) {
+ return new MockResponse().setResponseCode(200)
+ .setBody("{ \"access_token\": \"mock_token\", \"instance_url\": \"" + loginUrl + "\"}");
+ } else {
+ return new MockResponse().setResponseCode(200)
+ .setHeader(HttpHeader.CONTENT_TYPE.toString(),
+ recordedRequest.getHeader(HttpHeader.CONTENT_TYPE.toString()))
+ .setBody("XML".equals(format) ? XML_RESPONSE : JSON_RESPONSE);
+ }
+ }
+ });
+
+ // start the server
+ server.start();
+ loginUrl = server.url("");
+ }
+
+
+ private void setupRequestResponse(String format, String endpointUri) {
+ if (!format.equals(lastFormat)) {
+ // expected response and test request
+ final boolean isXml = "XML".equals(format);
+ expectedResponse = isXml ? XML_RESPONSE : JSON_RESPONSE;
+ if (isXml) {
+ requestBody = "<request/>";
+ } else {
+ requestBody = "{ \"request\" : \"mock\" }";
+ }
+ headers = new HashMap<>();
+ headers.put("sObjectId", "mockId");
+ headers.put("sObjectIdValue", "mockIdValue");
+ headers.put("id", "mockId");
+ headers.put(SalesforceEndpointConfig.APEX_QUERY_PARAM_PREFIX + "id", "mockId");
+
+ lastFormat = format;
+ }
+ }
+
+ private void stopRoutes() throws Exception {
+ List<Route> routes = camelContext.getRoutes();
+ for (Route route : routes) {
+ camelContext.getRouteController().stopRoute(route.getId());
+ }
+ }
+
+ @ParameterizedTest
+ @MethodSource("parameters")
+
+ public void testRestApi(String format, String endpointUri) throws Exception {
+ RawPayloadTest.format = format;
+ RawPayloadTest.endpointUri = endpointUri;
+ setupRequestResponse(format, endpointUri);
+ stopRoutes();
+ camelContext.addRoutes(new TestConfiguration(format, endpointUri).routeBuilder());
+ final String responseBody = template.requestBodyAndHeaders(endpointUri, requestBody, headers, String.class);
+ assertNotNull(responseBody, "Null response for endpoint " + endpointUri);
+ assertEquals(expectedResponse, responseBody, "Unexpected response for endpoint " + endpointUri);
+ }
+
+ // *************************************
+ // Config
+ // *************************************
+
+ public class TestConfiguration {
+ String format;
+ String endpointUri;
+
+ public TestConfiguration(String format, String endpointUri) {
+ this.format = format;
+ this.endpointUri = endpointUri;
+ }
+
+ @Bean
+ public RouteBuilder routeBuilder() {
+ return new RouteBuilder() {
+ @Override
+ public void configure() {
+
+ // testGetVersion
+ from("direct:getVersions").to("salesforce:getVersions?rawPayload=true&format=" + format);
+
+ // testGetResources
+ from("direct:getResources").to("salesforce:getResources?rawPayload=true&format=" + format);
+
+ // testGetGlobalObjects
+ from("direct:getGlobalObjects").to("salesforce:getGlobalObjects?rawPayload=true&format=" + format);
+
+ // testGetBasicInfo
+ from("direct:getBasicInfo")
+ .to("salesforce:getBasicInfo?sObjectName=Merchandise__c&rawPayload=true&format=" + format);
+
+ // testGetDescription
+ from("direct:getDescription")
+ .to("salesforce:getDescription?sObjectName=Merchandise__c&rawPayload=true&format=" + format);
+
+ // testGetSObject
+ from("direct:getSObject").to(
+ "salesforce:getSObject?sObjectName=Merchandise__c&sObjectFields=Description__c,Price__c&rawPayload=true&format="
+ + format);
+
+ // testCreateSObject
+ from("direct:createSObject")
+ .to("salesforce:createSObject?sObjectName=Merchandise__c&rawPayload=true&format=" + format);
+
+ // testUpdateSObject
+ from("direct:updateSObject")
+ .to("salesforce:updateSObject?sObjectName=Merchandise__c&rawPayload=true&format=" + format);
+
+ // testDeleteSObject
+ from("direct:deleteSObject")
+ .to("salesforce:deleteSObject?sObjectName=Merchandise__c&rawPayload=true&format=" + format);
+
+ // testGetSObjectWithId
+ from("direct:getSObjectWithId")
+ .to("salesforce:getSObjectWithId?sObjectName=Line_Item__c&sObjectIdName=Name&rawPayload=true&format="
+ + format);
+
+ // testUpsertSObject
+ from("direct:upsertSObject")
+ .to("salesforce:upsertSObject?sObjectName=Line_Item__c&sObjectIdName=Name&rawPayload=true&format="
+ + format);
+
+ // testDeleteSObjectWithId
+ from("direct:deleteSObjectWithId")
+ .to("salesforce:deleteSObjectWithId?sObjectName=Line_Item__c&sObjectIdName=Name&rawPayload=true&format="
+ + format);
+
+ // testGetBlobField
+ from("direct:getBlobField")
+ .to("salesforce:getBlobField?sObjectName=Document&sObjectBlobFieldName=Body&rawPayload=true&format="
+ + format);
+
+ // testQuery
+ from("direct:query")
+ .to("salesforce:query?sObjectQuery=SELECT name from Line_Item__c&rawPayload=true&format=" + format);
+
+ // testQueryAll
+ from("direct:queryAll")
+ .to("salesforce:queryAll?sObjectQuery=SELECT name from Line_Item__c&rawPayload=true&format=" + format);
+
+ // testSearch
+ from("direct:search").to("salesforce:search?sObjectSearch=FIND {Wee}&rawPayload=true&format=" + format);
+
+ // testApexCall
+ from("direct:apexCallGet").to(
+ "salesforce:apexCall?apexMethod=GET&apexUrl=Merchandise/{id}&sObjectName=Merchandise__c&rawPayload=true&format="
+ + format);
+
+ from("direct:apexCallGetWithId")
+ .to("salesforce:apexCall/Merchandise/?apexMethod=GET&id=dummyId&rawPayload=true&format=" + format);
+
+ from("direct:apexCallPatch")
+ .to("salesforce:apexCall/Merchandise/?rawPayload=true&format=" + format + "&apexMethod=PATCH");
+
+ // testComposite (only JSON format is supported)
+ if (format.equalsIgnoreCase("json")) {
+ from("direct:composite").to(
+ "salesforce:composite?rawPayload=true&format=" + format
+ + "&sObjectName=foo&sObjectIdName=bar&compositeMethod=PATCH");
+ }
+ }
+ };
+ }
+ }
+
+
+ @Parameters(name = "format = {0}, endpoint = {1}")
+ public static List<String[]> parameters() {
+ final String[] endpoints = {
+ "direct:getVersions", "direct:getResources", "direct:getGlobalObjects", "direct:getBasicInfo",
+ "direct:getDescription", "direct:getSObject",
+ "direct:createSObject", "direct:updateSObject", "direct:deleteSObject", "direct:getSObjectWithId",
+ "direct:upsertSObject",
+ "direct:deleteSObjectWithId", "direct:getBlobField", "direct:query", "direct:queryAll", "direct:search",
+ "direct:apexCallGet", "direct:apexCallGetWithId", "direct:apexCallPatch",
+ "direct:composite" };
+
+ final String[] formats = { "XML", "JSON" };
+
+ return Stream.of(formats).flatMap(f -> Stream.of(endpoints)
+ .map(e -> new String[] { f, e }))
+ .filter(strings -> !(strings[0].equals("XML") && strings[1].equals("direct:composite")))
+ .collect(Collectors.toList());
+ }
+}
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Account.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Account.java
new file mode 100644
index 00000000000..30e03fe20c5
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Account.java
@@ -0,0 +1,777 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot.dto.generated;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.camel.component.salesforce.api.dto.AbstractDescribedSObjectBase;
+import org.apache.camel.component.salesforce.api.dto.SObjectDescription;
+import org.apache.camel.component.salesforce.api.dto.SObjectDescriptionUrls;
+import org.apache.camel.component.salesforce.api.dto.SObjectField;
+
+//CHECKSTYLE:OFF
+/**
+ * Salesforce DTO for SObject Account
+ */
+public class Account extends AbstractDescribedSObjectBase {
+
+ public Account() {
+ getAttributes().setType("Account");
+ }
+
+ private static final SObjectDescription DESCRIPTION = createSObjectDescription();
+
+ private String MasterRecordId;
+
+ @JsonProperty("MasterRecordId")
+ public String getMasterRecordId() {
+ return this.MasterRecordId;
+ }
+
+ @JsonProperty("MasterRecordId")
+ public void setMasterRecordId(String MasterRecordId) {
+ this.MasterRecordId = MasterRecordId;
+ }
+
+ private Account MasterRecord;
+
+ @JsonProperty("MasterRecord")
+ public Account getMasterRecord() {
+ return this.MasterRecord;
+ }
+
+ private String ParentId;
+
+ @JsonProperty("ParentId")
+ public String getParentId() {
+ return this.ParentId;
+ }
+
+ @JsonProperty("ParentId")
+ public void setParentId(String ParentId) {
+ this.ParentId = ParentId;
+ }
+
+ private Account Parent;
+
+ @JsonProperty("Parent")
+ public Account getParent() {
+ return this.Parent;
+ }
+
+ @JsonProperty("Parent")
+ public void setParent(Account Parent) {
+ this.Parent = Parent;
+ }
+
+ private String BillingStreet;
+
+ @JsonProperty("BillingStreet")
+ public String getBillingStreet() {
+ return this.BillingStreet;
+ }
+
+ @JsonProperty("BillingStreet")
+ public void setBillingStreet(String BillingStreet) {
+ this.BillingStreet = BillingStreet;
+ }
+
+ private String BillingCity;
+
+ @JsonProperty("BillingCity")
+ public String getBillingCity() {
+ return this.BillingCity;
+ }
+
+ @JsonProperty("BillingCity")
+ public void setBillingCity(String BillingCity) {
+ this.BillingCity = BillingCity;
+ }
+
+ private String BillingState;
+
+ @JsonProperty("BillingState")
+ public String getBillingState() {
+ return this.BillingState;
+ }
+
+ @JsonProperty("BillingState")
+ public void setBillingState(String BillingState) {
+ this.BillingState = BillingState;
+ }
+
+ private String BillingPostalCode;
+
+ @JsonProperty("BillingPostalCode")
+ public String getBillingPostalCode() {
+ return this.BillingPostalCode;
+ }
+
+ @JsonProperty("BillingPostalCode")
+ public void setBillingPostalCode(String BillingPostalCode) {
+ this.BillingPostalCode = BillingPostalCode;
+ }
+
+ private String BillingCountry;
+
+ @JsonProperty("BillingCountry")
+ public String getBillingCountry() {
+ return this.BillingCountry;
+ }
+
+ @JsonProperty("BillingCountry")
+ public void setBillingCountry(String BillingCountry) {
+ this.BillingCountry = BillingCountry;
+ }
+
+ private Double BillingLatitude;
+
+ @JsonProperty("BillingLatitude")
+ public Double getBillingLatitude() {
+ return this.BillingLatitude;
+ }
+
+ @JsonProperty("BillingLatitude")
+ public void setBillingLatitude(Double BillingLatitude) {
+ this.BillingLatitude = BillingLatitude;
+ }
+
+ private Double BillingLongitude;
+
+ @JsonProperty("BillingLongitude")
+ public Double getBillingLongitude() {
+ return this.BillingLongitude;
+ }
+
+ @JsonProperty("BillingLongitude")
+ public void setBillingLongitude(Double BillingLongitude) {
+ this.BillingLongitude = BillingLongitude;
+ }
+
+ private org.apache.camel.component.salesforce.api.dto.Address BillingAddress;
+
+ @JsonProperty("BillingAddress")
+ public org.apache.camel.component.salesforce.api.dto.Address getBillingAddress() {
+ return this.BillingAddress;
+ }
+
+ @JsonProperty("BillingAddress")
+ public void setBillingAddress(org.apache.camel.component.salesforce.api.dto.Address BillingAddress) {
+ this.BillingAddress = BillingAddress;
+ }
+
+ private String ShippingStreet;
+
+ @JsonProperty("ShippingStreet")
+ public String getShippingStreet() {
+ return this.ShippingStreet;
+ }
+
+ @JsonProperty("ShippingStreet")
+ public void setShippingStreet(String ShippingStreet) {
+ this.ShippingStreet = ShippingStreet;
+ }
+
+ private String ShippingCity;
+
+ @JsonProperty("ShippingCity")
+ public String getShippingCity() {
+ return this.ShippingCity;
+ }
+
+ @JsonProperty("ShippingCity")
+ public void setShippingCity(String ShippingCity) {
+ this.ShippingCity = ShippingCity;
+ }
+
+ private String ShippingState;
+
+ @JsonProperty("ShippingState")
+ public String getShippingState() {
+ return this.ShippingState;
+ }
+
+ @JsonProperty("ShippingState")
+ public void setShippingState(String ShippingState) {
+ this.ShippingState = ShippingState;
+ }
+
+ private String ShippingPostalCode;
+
+ @JsonProperty("ShippingPostalCode")
+ public String getShippingPostalCode() {
+ return this.ShippingPostalCode;
+ }
+
+ @JsonProperty("ShippingPostalCode")
+ public void setShippingPostalCode(String ShippingPostalCode) {
+ this.ShippingPostalCode = ShippingPostalCode;
+ }
+
+ private String ShippingCountry;
+
+ @JsonProperty("ShippingCountry")
+ public String getShippingCountry() {
+ return this.ShippingCountry;
+ }
+
+ @JsonProperty("ShippingCountry")
+ public void setShippingCountry(String ShippingCountry) {
+ this.ShippingCountry = ShippingCountry;
+ }
+
+ private Double ShippingLatitude;
+
+ @JsonProperty("ShippingLatitude")
+ public Double getShippingLatitude() {
+ return this.ShippingLatitude;
+ }
+
+ @JsonProperty("ShippingLatitude")
+ public void setShippingLatitude(Double ShippingLatitude) {
+ this.ShippingLatitude = ShippingLatitude;
+ }
+
+ private Double ShippingLongitude;
+
+ @JsonProperty("ShippingLongitude")
+ public Double getShippingLongitude() {
+ return this.ShippingLongitude;
+ }
+
+ @JsonProperty("ShippingLongitude")
+ public void setShippingLongitude(Double ShippingLongitude) {
+ this.ShippingLongitude = ShippingLongitude;
+ }
+
+ private org.apache.camel.component.salesforce.api.dto.Address ShippingAddress;
+
+ @JsonProperty("ShippingAddress")
+ public org.apache.camel.component.salesforce.api.dto.Address getShippingAddress() {
+ return this.ShippingAddress;
+ }
+
+ @JsonProperty("ShippingAddress")
+ public void setShippingAddress(org.apache.camel.component.salesforce.api.dto.Address ShippingAddress) {
+ this.ShippingAddress = ShippingAddress;
+ }
+
+ private String Phone;
+
+ @JsonProperty("Phone")
+ public String getPhone() {
+ return this.Phone;
+ }
+
+ @JsonProperty("Phone")
+ public void setPhone(String Phone) {
+ this.Phone = Phone;
+ }
+
+ private String Fax;
+
+ @JsonProperty("Fax")
+ public String getFax() {
+ return this.Fax;
+ }
+
+ @JsonProperty("Fax")
+ public void setFax(String Fax) {
+ this.Fax = Fax;
+ }
+
+ private String AccountNumber;
+
+ @JsonProperty("AccountNumber")
+ public String getAccountNumber() {
+ return this.AccountNumber;
+ }
+
+ @JsonProperty("AccountNumber")
+ public void setAccountNumber(String AccountNumber) {
+ this.AccountNumber = AccountNumber;
+ }
+
+ private String Website;
+
+ @JsonProperty("Website")
+ public String getWebsite() {
+ return this.Website;
+ }
+
+ @JsonProperty("Website")
+ public void setWebsite(String Website) {
+ this.Website = Website;
+ }
+
+ private String PhotoUrl;
+
+ @JsonProperty("PhotoUrl")
+ public String getPhotoUrl() {
+ return this.PhotoUrl;
+ }
+
+ @JsonProperty("PhotoUrl")
+ public void setPhotoUrl(String PhotoUrl) {
+ this.PhotoUrl = PhotoUrl;
+ }
+
+ private String Sic;
+
+ @JsonProperty("Sic")
+ public String getSic() {
+ return this.Sic;
+ }
+
+ @JsonProperty("Sic")
+ public void setSic(String Sic) {
+ this.Sic = Sic;
+ }
+
+ private Account_IndustryEnum Industry;
+
+ @JsonProperty("Industry")
+ public Account_IndustryEnum getIndustry() {
+ return this.Industry;
+ }
+
+ @JsonProperty("Industry")
+ public void setIndustry(Account_IndustryEnum Industry) {
+ this.Industry = Industry;
+ }
+
+ private Double AnnualRevenue;
+
+ @JsonProperty("AnnualRevenue")
+ public Double getAnnualRevenue() {
+ return this.AnnualRevenue;
+ }
+
+ @JsonProperty("AnnualRevenue")
+ public void setAnnualRevenue(Double AnnualRevenue) {
+ this.AnnualRevenue = AnnualRevenue;
+ }
+
+ private Integer NumberOfEmployees;
+
+ @JsonProperty("NumberOfEmployees")
+ public Integer getNumberOfEmployees() {
+ return this.NumberOfEmployees;
+ }
+
+ @JsonProperty("NumberOfEmployees")
+ public void setNumberOfEmployees(Integer NumberOfEmployees) {
+ this.NumberOfEmployees = NumberOfEmployees;
+ }
+
+ private String TickerSymbol;
+
+ @JsonProperty("TickerSymbol")
+ public String getTickerSymbol() {
+ return this.TickerSymbol;
+ }
+
+ @JsonProperty("TickerSymbol")
+ public void setTickerSymbol(String TickerSymbol) {
+ this.TickerSymbol = TickerSymbol;
+ }
+
+ private String Description;
+
+ @JsonProperty("Description")
+ public String getDescription() {
+ return this.Description;
+ }
+
+ @JsonProperty("Description")
+ public void setDescription(String Description) {
+ this.Description = Description;
+ }
+
+ private String Site;
+
+ @JsonProperty("Site")
+ public String getSite() {
+ return this.Site;
+ }
+
+ @JsonProperty("Site")
+ public void setSite(String Site) {
+ this.Site = Site;
+ }
+
+ private String Jigsaw;
+
+ @JsonProperty("Jigsaw")
+ public String getJigsaw() {
+ return this.Jigsaw;
+ }
+
+ @JsonProperty("Jigsaw")
+ public void setJigsaw(String Jigsaw) {
+ this.Jigsaw = Jigsaw;
+ }
+
+ private String JigsawCompanyId;
+
+ @JsonProperty("JigsawCompanyId")
+ public String getJigsawCompanyId() {
+ return this.JigsawCompanyId;
+ }
+
+ @JsonProperty("JigsawCompanyId")
+ public void setJigsawCompanyId(String JigsawCompanyId) {
+ this.JigsawCompanyId = JigsawCompanyId;
+ }
+
+ private String DunsNumber;
+
+ @JsonProperty("DunsNumber")
+ public String getDunsNumber() {
+ return this.DunsNumber;
+ }
+
+ @JsonProperty("DunsNumber")
+ public void setDunsNumber(String DunsNumber) {
+ this.DunsNumber = DunsNumber;
+ }
+
+ private String Tradestyle;
+
+ @JsonProperty("Tradestyle")
+ public String getTradestyle() {
+ return this.Tradestyle;
+ }
+
+ @JsonProperty("Tradestyle")
+ public void setTradestyle(String Tradestyle) {
+ this.Tradestyle = Tradestyle;
+ }
+
+ private String NaicsCode;
+
+ @JsonProperty("NaicsCode")
+ public String getNaicsCode() {
+ return this.NaicsCode;
+ }
+
+ @JsonProperty("NaicsCode")
+ public void setNaicsCode(String NaicsCode) {
+ this.NaicsCode = NaicsCode;
+ }
+
+ private String NaicsDesc;
+
+ @JsonProperty("NaicsDesc")
+ public String getNaicsDesc() {
+ return this.NaicsDesc;
+ }
+
+ @JsonProperty("NaicsDesc")
+ public void setNaicsDesc(String NaicsDesc) {
+ this.NaicsDesc = NaicsDesc;
+ }
+
+ private String YearStarted;
+
+ @JsonProperty("YearStarted")
+ public String getYearStarted() {
+ return this.YearStarted;
+ }
+
+ @JsonProperty("YearStarted")
+ public void setYearStarted(String YearStarted) {
+ this.YearStarted = YearStarted;
+ }
+
+ private String SicDesc;
+
+ @JsonProperty("SicDesc")
+ public String getSicDesc() {
+ return this.SicDesc;
+ }
+
+ @JsonProperty("SicDesc")
+ public void setSicDesc(String SicDesc) {
+ this.SicDesc = SicDesc;
+ }
+
+ private String DandbCompanyId;
+
+ @JsonProperty("DandbCompanyId")
+ public String getDandbCompanyId() {
+ return this.DandbCompanyId;
+ }
+
+ @JsonProperty("DandbCompanyId")
+ public void setDandbCompanyId(String DandbCompanyId) {
+ this.DandbCompanyId = DandbCompanyId;
+ }
+
+ private String OperatingHoursId;
+
+ @JsonProperty("OperatingHoursId")
+ public String getOperatingHoursId() {
+ return this.OperatingHoursId;
+ }
+
+ @JsonProperty("OperatingHoursId")
+ public void setOperatingHoursId(String OperatingHoursId) {
+ this.OperatingHoursId = OperatingHoursId;
+ }
+
+ private Double Shipping_Location__Latitude__s;
+
+ @JsonProperty("Shipping_Location__Latitude__s")
+ public Double getShipping_Location__Latitude__s() {
+ return this.Shipping_Location__Latitude__s;
+ }
+
+ @JsonProperty("Shipping_Location__Latitude__s")
+ public void setShipping_Location__Latitude__s(Double Shipping_Location__Latitude__s) {
+ this.Shipping_Location__Latitude__s = Shipping_Location__Latitude__s;
+ }
+
+ private Double Shipping_Location__Longitude__s;
+
+ @JsonProperty("Shipping_Location__Longitude__s")
+ public Double getShipping_Location__Longitude__s() {
+ return this.Shipping_Location__Longitude__s;
+ }
+
+ @JsonProperty("Shipping_Location__Longitude__s")
+ public void setShipping_Location__Longitude__s(Double Shipping_Location__Longitude__s) {
+ this.Shipping_Location__Longitude__s = Shipping_Location__Longitude__s;
+ }
+
+ private org.apache.camel.component.salesforce.api.dto.GeoLocation Shipping_Location__c;
+
+ @JsonProperty("Shipping_Location__c")
+ public org.apache.camel.component.salesforce.api.dto.GeoLocation getShipping_Location__c() {
+ return this.Shipping_Location__c;
+ }
+
+ @JsonProperty("Shipping_Location__c")
+ public void setShipping_Location__c(org.apache.camel.component.salesforce.api.dto.GeoLocation Shipping_Location__c) {
+ this.Shipping_Location__c = Shipping_Location__c;
+ }
+
+ private String External_Id__c;
+
+ @JsonProperty("External_Id__c")
+ public String getExternal_Id__c() {
+ return this.External_Id__c;
+ }
+
+ @JsonProperty("External_Id__c")
+ public void setExternal_Id__c(String External_Id__c) {
+ this.External_Id__c = External_Id__c;
+ }
+
+ private QueryRecordsAccount ChildAccounts;
+
+ @JsonProperty("ChildAccounts")
+ public QueryRecordsAccount getChildAccounts() {
+ return ChildAccounts;
+ }
+
+ @JsonProperty("ChildAccounts")
+ public void setChildAccounts(QueryRecordsAccount ChildAccounts) {
+ this.ChildAccounts = ChildAccounts;
+ }
+
+ private QueryRecordsContact Contacts;
+
+ @JsonProperty("Contacts")
+ public QueryRecordsContact getContacts() {
+ return Contacts;
+ }
+
+ @JsonProperty("Contacts")
+ public void setContacts(QueryRecordsContact Contacts) {
+ this.Contacts = Contacts;
+ }
+
+ @Override
+ public final SObjectDescription description() {
+ return DESCRIPTION;
+ }
+
+ private static SObjectDescription createSObjectDescription() {
+ final SObjectDescription description = new SObjectDescription();
+
+ final List<SObjectField> fields1 = new ArrayList<>();
+ description.setFields(fields1);
+
+ final SObjectField sObjectField1 = createField("Id", "Account ID", "id", "tns:ID", 18, false, false, false, false, false, false, true);
+ fields1.add(sObjectField1);
+ final SObjectField sObjectField2 = createField("IsDeleted", "Deleted", "boolean", "xsd:boolean", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField2);
+ final SObjectField sObjectField3 = createField("MasterRecordId", "Master Record ID", "reference", "tns:ID", 18, false, true, false, false, false, false, false);
+ fields1.add(sObjectField3);
+ final SObjectField sObjectField4 = createField("Name", "Account Name", "string", "xsd:string", 255, false, false, true, false, false, false, false);
+ fields1.add(sObjectField4);
+ final SObjectField sObjectField5 = createField("Type", "Account Type", "picklist", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField5);
+ final SObjectField sObjectField6 = createField("ParentId", "Parent Account ID", "reference", "tns:ID", 18, false, true, false, false, false, false, false);
+ fields1.add(sObjectField6);
+ final SObjectField sObjectField7 = createField("BillingStreet", "Billing Street", "textarea", "xsd:string", 255, false, true, false, false, false, false, false);
+ fields1.add(sObjectField7);
+ final SObjectField sObjectField8 = createField("BillingCity", "Billing City", "string", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField8);
+ final SObjectField sObjectField9 = createField("BillingState", "Billing State/Province", "string", "xsd:string", 80, false, true, false, false, false, false, false);
+ fields1.add(sObjectField9);
+ final SObjectField sObjectField10 = createField("BillingPostalCode", "Billing Zip/Postal Code", "string", "xsd:string", 20, false, true, false, false, false, false, false);
+ fields1.add(sObjectField10);
+ final SObjectField sObjectField11 = createField("BillingCountry", "Billing Country", "string", "xsd:string", 80, false, true, false, false, false, false, false);
+ fields1.add(sObjectField11);
+ final SObjectField sObjectField12 = createField("BillingLatitude", "Billing Latitude", "double", "xsd:double", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField12);
+ final SObjectField sObjectField13 = createField("BillingLongitude", "Billing Longitude", "double", "xsd:double", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField13);
+ final SObjectField sObjectField14 = createField("BillingGeocodeAccuracy", "Billing Geocode Accuracy", "picklist", "xsd:string", 40, false, true, false, false, false, false,
+ false);
+ fields1.add(sObjectField14);
+ final SObjectField sObjectField15 = createField("BillingAddress", "Billing Address", "address", "urn:address", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField15);
+ final SObjectField sObjectField16 = createField("ShippingStreet", "Shipping Street", "textarea", "xsd:string", 255, false, true, false, false, false, false, false);
+ fields1.add(sObjectField16);
+ final SObjectField sObjectField17 = createField("ShippingCity", "Shipping City", "string", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField17);
+ final SObjectField sObjectField18 = createField("ShippingState", "Shipping State/Province", "string", "xsd:string", 80, false, true, false, false, false, false, false);
+ fields1.add(sObjectField18);
+ final SObjectField sObjectField19 = createField("ShippingPostalCode", "Shipping Zip/Postal Code", "string", "xsd:string", 20, false, true, false, false, false, false,
+ false);
+ fields1.add(sObjectField19);
+ final SObjectField sObjectField20 = createField("ShippingCountry", "Shipping Country", "string", "xsd:string", 80, false, true, false, false, false, false, false);
+ fields1.add(sObjectField20);
+ final SObjectField sObjectField21 = createField("ShippingLatitude", "Shipping Latitude", "double", "xsd:double", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField21);
+ final SObjectField sObjectField22 = createField("ShippingLongitude", "Shipping Longitude", "double", "xsd:double", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField22);
+ final SObjectField sObjectField23 = createField("ShippingGeocodeAccuracy", "Shipping Geocode Accuracy", "picklist", "xsd:string", 40, false, true, false, false, false,
+ false, false);
+ fields1.add(sObjectField23);
+ final SObjectField sObjectField24 = createField("ShippingAddress", "Shipping Address", "address", "urn:address", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField24);
+ final SObjectField sObjectField25 = createField("Phone", "Account Phone", "phone", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField25);
+ final SObjectField sObjectField26 = createField("Fax", "Account Fax", "phone", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField26);
+ final SObjectField sObjectField27 = createField("AccountNumber", "Account Number", "string", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField27);
+ final SObjectField sObjectField28 = createField("Website", "Website", "url", "xsd:string", 255, false, true, false, false, false, false, false);
+ fields1.add(sObjectField28);
+ final SObjectField sObjectField29 = createField("PhotoUrl", "Photo URL", "url", "xsd:string", 255, false, true, false, false, false, false, false);
+ fields1.add(sObjectField29);
+ final SObjectField sObjectField30 = createField("Sic", "SIC Code", "string", "xsd:string", 20, false, true, false, false, false, false, false);
+ fields1.add(sObjectField30);
+ final SObjectField sObjectField31 = createField("Industry", "Industry", "picklist", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField31);
+ final SObjectField sObjectField32 = createField("AnnualRevenue", "Annual Revenue", "currency", "xsd:double", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField32);
+ final SObjectField sObjectField33 = createField("NumberOfEmployees", "Employees", "int", "xsd:int", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField33);
+ final SObjectField sObjectField34 = createField("Ownership", "Ownership", "picklist", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField34);
+ final SObjectField sObjectField35 = createField("TickerSymbol", "Ticker Symbol", "string", "xsd:string", 20, false, true, false, false, false, false, false);
+ fields1.add(sObjectField35);
+ final SObjectField sObjectField36 = createField("Description", "Account Description", "textarea", "xsd:string", 32000, false, true, false, false, false, false, false);
+ fields1.add(sObjectField36);
+ final SObjectField sObjectField37 = createField("Rating", "Account Rating", "picklist", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField37);
+ final SObjectField sObjectField38 = createField("Site", "Account Site", "string", "xsd:string", 80, false, true, false, false, false, false, false);
+ fields1.add(sObjectField38);
+ final SObjectField sObjectField39 = createField("OwnerId", "Owner ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
+ fields1.add(sObjectField39);
+ final SObjectField sObjectField40 = createField("CreatedDate", "Created Date", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField40);
+ final SObjectField sObjectField41 = createField("CreatedById", "Created By ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
+ fields1.add(sObjectField41);
+ final SObjectField sObjectField42 = createField("LastModifiedDate", "Last Modified Date", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField42);
+ final SObjectField sObjectField43 = createField("LastModifiedById", "Last Modified By ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
+ fields1.add(sObjectField43);
+ final SObjectField sObjectField44 = createField("SystemModstamp", "System Modstamp", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField44);
+ final SObjectField sObjectField45 = createField("LastActivityDate", "Last Activity", "date", "xsd:date", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField45);
+ final SObjectField sObjectField46 = createField("LastViewedDate", "Last Viewed Date", "datetime", "xsd:dateTime", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField46);
+ final SObjectField sObjectField47 = createField("LastReferencedDate", "Last Referenced Date", "datetime", "xsd:dateTime", 0, false, true, false, false, false, false,
+ false);
+ fields1.add(sObjectField47);
+ final SObjectField sObjectField48 = createField("Jigsaw", "Data.com Key", "string", "xsd:string", 20, false, true, false, false, false, false, false);
+ fields1.add(sObjectField48);
+ final SObjectField sObjectField49 = createField("JigsawCompanyId", "Jigsaw Company ID", "string", "xsd:string", 20, false, true, false, false, false, false, false);
+ fields1.add(sObjectField49);
+ final SObjectField sObjectField50 = createField("CleanStatus", "Clean Status", "picklist", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField50);
+ final SObjectField sObjectField51 = createField("AccountSource", "Account Source", "picklist", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField51);
+ final SObjectField sObjectField52 = createField("DunsNumber", "D-U-N-S Number", "string", "xsd:string", 9, false, true, false, false, false, false, false);
+ fields1.add(sObjectField52);
+ final SObjectField sObjectField53 = createField("Tradestyle", "Tradestyle", "string", "xsd:string", 255, false, true, false, false, false, false, false);
+ fields1.add(sObjectField53);
+ final SObjectField sObjectField54 = createField("NaicsCode", "NAICS Code", "string", "xsd:string", 8, false, true, false, false, false, false, false);
+ fields1.add(sObjectField54);
+ final SObjectField sObjectField55 = createField("NaicsDesc", "NAICS Description", "string", "xsd:string", 120, false, true, false, false, false, false, false);
+ fields1.add(sObjectField55);
+ final SObjectField sObjectField56 = createField("YearStarted", "Year Started", "string", "xsd:string", 4, false, true, false, false, false, false, false);
+ fields1.add(sObjectField56);
+ final SObjectField sObjectField57 = createField("SicDesc", "SIC Description", "string", "xsd:string", 80, false, true, false, false, false, false, false);
+ fields1.add(sObjectField57);
+ final SObjectField sObjectField58 = createField("DandbCompanyId", "D&B Company ID", "reference", "tns:ID", 18, false, true, false, false, false, false, false);
+ fields1.add(sObjectField58);
+ final SObjectField sObjectField59 = createField("OperatingHoursId", "Operating Hour ID", "reference", "tns:ID", 18, false, true, false, false, false, false, false);
+ fields1.add(sObjectField59);
+ final SObjectField sObjectField60 = createField("Shipping_Location__Latitude__s", "Shipping_Location (Latitude)", "double", "xsd:double", 0, false, true, false, false,
+ true, false, false);
+ fields1.add(sObjectField60);
+ final SObjectField sObjectField61 = createField("Shipping_Location__Longitude__s", "Shipping_Location (Longitude)", "double", "xsd:double", 0, false, true, false, false,
+ true, false, false);
+ fields1.add(sObjectField61);
+ final SObjectField sObjectField62 = createField("Shipping_Location__c", "Shipping_Location", "location", "urn:location", 0, false, true, false, false, true, false, false);
+ fields1.add(sObjectField62);
+ final SObjectField sObjectField63 = createField("External_Id__c", "External Id", "string", "xsd:string", 255, true, true, false, true, true, false, true);
+ fields1.add(sObjectField63);
+
+ description.setLabel("Account");
+ description.setLabelPlural("Accounts");
+ description.setName("Account");
+
+ final SObjectDescriptionUrls sObjectDescriptionUrls1 = new SObjectDescriptionUrls();
+ sObjectDescriptionUrls1.setApprovalLayouts("/services/data/v45.0/sobjects/Account/describe/approvalLayouts");
+ sObjectDescriptionUrls1.setCompactLayouts("/services/data/v45.0/sobjects/Account/describe/compactLayouts");
+ sObjectDescriptionUrls1.setDefaultValues("/services/data/v45.0/sobjects/Account/defaultValues?recordTypeId&fields");
+ sObjectDescriptionUrls1.setDescribe("/services/data/v45.0/sobjects/Account/describe");
+ sObjectDescriptionUrls1.setLayouts("/services/data/v45.0/sobjects/Account/describe/layouts");
+ sObjectDescriptionUrls1.setListviews("/services/data/v45.0/sobjects/Account/listviews");
+ sObjectDescriptionUrls1.setQuickActions("/services/data/v45.0/sobjects/Account/quickActions");
+ sObjectDescriptionUrls1.setRowTemplate("/services/data/v45.0/sobjects/Account/{ID}");
+ sObjectDescriptionUrls1.setSobject("/services/data/v45.0/sobjects/Account");
+ sObjectDescriptionUrls1.setUiDetailTemplate("https://customer-flow-8168-dev-ed.cs42.my.salesforce.com/{ID}");
+ sObjectDescriptionUrls1.setUiEditTemplate("https://customer-flow-8168-dev-ed.cs42.my.salesforce.com/{ID}/e");
+ sObjectDescriptionUrls1.setUiNewRecord("https://customer-flow-8168-dev-ed.cs42.my.salesforce.com/001/e");
+ description.setUrls(sObjectDescriptionUrls1);
+
+ return description;
+ }
+}
+//CHECKSTYLE:ON
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Account_IndustryEnum.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Account_IndustryEnum.java
new file mode 100644
index 00000000000..4f4eeb1c96b
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Account_IndustryEnum.java
@@ -0,0 +1,119 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+/*
+ * Salesforce DTO generated by camel-salesforce-maven-plugin
+ * Generated on: Thu Dec 08 10:54:02 CET 2016
+ */
+package org.apache.camel.component.salesforce.springboot.dto.generated;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonValue;
+
+//CHECKSTYLE:OFF
+/**
+ * Salesforce Enumeration DTO for picklist Industry
+ */
+public enum Account_IndustryEnum {
+
+ // Agriculture
+ AGRICULTURE("Agriculture"),
+ // Apparel
+ APPAREL("Apparel"),
+ // Banking
+ BANKING("Banking"),
+ // Biotechnology
+ BIOTECHNOLOGY("Biotechnology"),
+ // Chemicals
+ CHEMICALS("Chemicals"),
+ // Communications
+ COMMUNICATIONS("Communications"),
+ // Construction
+ CONSTRUCTION("Construction"),
+ // Consulting
+ CONSULTING("Consulting"),
+ // Education
+ EDUCATION("Education"),
+ // Electronics
+ ELECTRONICS("Electronics"),
+ // Energy
+ ENERGY("Energy"),
+ // Engineering
+ ENGINEERING("Engineering"),
+ // Entertainment
+ ENTERTAINMENT("Entertainment"),
+ // Environmental
+ ENVIRONMENTAL("Environmental"),
+ // Finance
+ FINANCE("Finance"),
+ // Food & Beverage
+ FOOD___BEVERAGE("Food & Beverage"),
+ // Government
+ GOVERNMENT("Government"),
+ // Healthcare
+ HEALTHCARE("Healthcare"),
+ // Hospitality
+ HOSPITALITY("Hospitality"),
+ // Insurance
+ INSURANCE("Insurance"),
+ // Machinery
+ MACHINERY("Machinery"),
+ // Manufacturing
+ MANUFACTURING("Manufacturing"),
+ // Media
+ MEDIA("Media"),
+ // Not For Profit
+ NOT_FOR_PROFIT("Not For Profit"),
+ // Other
+ OTHER("Other"),
+ // Recreation
+ RECREATION("Recreation"),
+ // Retail
+ RETAIL("Retail"),
+ // Shipping
+ SHIPPING("Shipping"),
+ // Technology
+ TECHNOLOGY("Technology"),
+ // Telecommunications
+ TELECOMMUNICATIONS("Telecommunications"),
+ // Transportation
+ TRANSPORTATION("Transportation"),
+ // Utilities
+ UTILITIES("Utilities");
+
+ final String value;
+
+ private Account_IndustryEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String value() {
+ return this.value;
+ }
+
+ @JsonCreator
+ public static Account_IndustryEnum fromValue(String value) {
+ for (Account_IndustryEnum e : Account_IndustryEnum.values()) {
+ if (e.value.equals(value)) {
+ return e;
+ }
+ }
+ throw new IllegalArgumentException(value);
+ }
+
+}
+//CHECKSTYLE:ON
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Asset.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Asset.java
new file mode 100644
index 00000000000..f4838652971
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Asset.java
@@ -0,0 +1,176 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot.dto.generated;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.camel.component.salesforce.api.dto.AbstractSObjectBase;
+
+//CHECKSTYLE:OFF
+/**
+ * Salesforce DTO for SObject Asset
+ */
+public class Asset extends AbstractSObjectBase {
+
+ public Asset() {
+ getAttributes().setType("Asset");
+ }
+
+ // ContactId
+ private String ContactId;
+
+ @JsonProperty("ContactId")
+ public String getContactId() {
+ return this.ContactId;
+ }
+
+ @JsonProperty("ContactId")
+ public void setContactId(String ContactId) {
+ this.ContactId = ContactId;
+ }
+
+ // AccountId
+ private String AccountId;
+
+ @JsonProperty("AccountId")
+ public String getAccountId() {
+ return this.AccountId;
+ }
+
+ @JsonProperty("AccountId")
+ public void setAccountId(String AccountId) {
+ this.AccountId = AccountId;
+ }
+
+ // Product2Id
+ private String Product2Id;
+
+ @JsonProperty("Product2Id")
+ public String getProduct2Id() {
+ return this.Product2Id;
+ }
+
+ @JsonProperty("Product2Id")
+ public void setProduct2Id(String Product2Id) {
+ this.Product2Id = Product2Id;
+ }
+
+ // IsCompetitorProduct
+ private Boolean IsCompetitorProduct;
+
+ @JsonProperty("IsCompetitorProduct")
+ public Boolean getIsCompetitorProduct() {
+ return this.IsCompetitorProduct;
+ }
+
+ @JsonProperty("IsCompetitorProduct")
+ public void setIsCompetitorProduct(Boolean IsCompetitorProduct) {
+ this.IsCompetitorProduct = IsCompetitorProduct;
+ }
+
+ // SerialNumber
+ private String SerialNumber;
+
+ @JsonProperty("SerialNumber")
+ public String getSerialNumber() {
+ return this.SerialNumber;
+ }
+
+ @JsonProperty("SerialNumber")
+ public void setSerialNumber(String SerialNumber) {
+ this.SerialNumber = SerialNumber;
+ }
+
+ // InstallDate
+ private java.time.ZonedDateTime InstallDate;
+
+ @JsonProperty("InstallDate")
+ public java.time.ZonedDateTime getInstallDate() {
+ return this.InstallDate;
+ }
+
+ @JsonProperty("InstallDate")
+ public void setInstallDate(java.time.ZonedDateTime InstallDate) {
+ this.InstallDate = InstallDate;
+ }
+
+ // PurchaseDate
+ private java.time.ZonedDateTime PurchaseDate;
+
+ @JsonProperty("PurchaseDate")
+ public java.time.ZonedDateTime getPurchaseDate() {
+ return this.PurchaseDate;
+ }
+
+ @JsonProperty("PurchaseDate")
+ public void setPurchaseDate(java.time.ZonedDateTime PurchaseDate) {
+ this.PurchaseDate = PurchaseDate;
+ }
+
+ // UsageEndDate
+ private java.time.ZonedDateTime UsageEndDate;
+
+ @JsonProperty("UsageEndDate")
+ public java.time.ZonedDateTime getUsageEndDate() {
+ return this.UsageEndDate;
+ }
+
+ @JsonProperty("UsageEndDate")
+ public void setUsageEndDate(java.time.ZonedDateTime UsageEndDate) {
+ this.UsageEndDate = UsageEndDate;
+ }
+
+ // Price
+ private Double Price;
+
+ @JsonProperty("Price")
+ public Double getPrice() {
+ return this.Price;
+ }
+
+ @JsonProperty("Price")
+ public void setPrice(Double Price) {
+ this.Price = Price;
+ }
+
+ // Quantity
+ private Double Quantity;
+
+ @JsonProperty("Quantity")
+ public Double getQuantity() {
+ return this.Quantity;
+ }
+
+ @JsonProperty("Quantity")
+ public void setQuantity(Double Quantity) {
+ this.Quantity = Quantity;
+ }
+
+ // Description
+ private String Description;
+
+ @JsonProperty("Description")
+ public String getDescription() {
+ return this.Description;
+ }
+
+ @JsonProperty("Description")
+ public void setDescription(String Description) {
+ this.Description = Description;
+ }
+
+}
+//CHECKSTYLE:ON
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Contact.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Contact.java
new file mode 100644
index 00000000000..b0b71a18c53
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Contact.java
@@ -0,0 +1,738 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot.dto.generated;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.camel.component.salesforce.api.dto.AbstractDescribedSObjectBase;
+import org.apache.camel.component.salesforce.api.dto.SObjectDescription;
+import org.apache.camel.component.salesforce.api.dto.SObjectDescriptionUrls;
+import org.apache.camel.component.salesforce.api.dto.SObjectField;
+
+// CHECKSTYLE:OFF
+/**
+ * Salesforce DTO for SObject Contact
+ */
+public class Contact extends AbstractDescribedSObjectBase {
+
+ public Contact() {
+ getAttributes().setType("Contact");
+ }
+
+ private static final SObjectDescription DESCRIPTION = createSObjectDescription();
+
+ private String MasterRecordId;
+
+ @JsonProperty("MasterRecordId")
+ public String getMasterRecordId() {
+ return this.MasterRecordId;
+ }
+
+ @JsonProperty("MasterRecordId")
+ public void setMasterRecordId(String MasterRecordId) {
+ this.MasterRecordId = MasterRecordId;
+ }
+
+ private Contact MasterRecord;
+
+ @JsonProperty("MasterRecord")
+ public Contact getMasterRecord() {
+ return this.MasterRecord;
+ }
+
+ @JsonProperty("MasterRecord")
+ public void setMasterRecord(Contact MasterRecord) {
+ this.MasterRecord = MasterRecord;
+ }
+
+ private String AccountId;
+
+ @JsonProperty("AccountId")
+ public String getAccountId() {
+ return this.AccountId;
+ }
+
+ @JsonProperty("AccountId")
+ public void setAccountId(String AccountId) {
+ this.AccountId = AccountId;
+ }
+
+ private Account Account;
+
+ @JsonProperty("Account")
+ public Account getAccount() {
+ return this.Account;
+ }
+
+ @JsonProperty("Account")
+ public void setAccount(Account Account) {
+ this.Account = Account;
+ }
+
+ private String LastName;
+
+ @JsonProperty("LastName")
+ public String getLastName() {
+ return this.LastName;
+ }
+
+ @JsonProperty("LastName")
+ public void setLastName(String LastName) {
+ this.LastName = LastName;
+ }
+
+ private String FirstName;
+
+ @JsonProperty("FirstName")
+ public String getFirstName() {
+ return this.FirstName;
+ }
+
+ @JsonProperty("FirstName")
+ public void setFirstName(String FirstName) {
+ this.FirstName = FirstName;
+ }
+
+ private String OtherStreet;
+
+ @JsonProperty("OtherStreet")
+ public String getOtherStreet() {
+ return this.OtherStreet;
+ }
+
+ @JsonProperty("OtherStreet")
+ public void setOtherStreet(String OtherStreet) {
+ this.OtherStreet = OtherStreet;
+ }
+
+ private String OtherCity;
+
+ @JsonProperty("OtherCity")
+ public String getOtherCity() {
+ return this.OtherCity;
+ }
+
+ @JsonProperty("OtherCity")
+ public void setOtherCity(String OtherCity) {
+ this.OtherCity = OtherCity;
+ }
+
+ private String OtherState;
+
+ @JsonProperty("OtherState")
+ public String getOtherState() {
+ return this.OtherState;
+ }
+
+ @JsonProperty("OtherState")
+ public void setOtherState(String OtherState) {
+ this.OtherState = OtherState;
+ }
+
+ private String OtherPostalCode;
+
+ @JsonProperty("OtherPostalCode")
+ public String getOtherPostalCode() {
+ return this.OtherPostalCode;
+ }
+
+ @JsonProperty("OtherPostalCode")
+ public void setOtherPostalCode(String OtherPostalCode) {
+ this.OtherPostalCode = OtherPostalCode;
+ }
+
+ private String OtherCountry;
+
+ @JsonProperty("OtherCountry")
+ public String getOtherCountry() {
+ return this.OtherCountry;
+ }
+
+ @JsonProperty("OtherCountry")
+ public void setOtherCountry(String OtherCountry) {
+ this.OtherCountry = OtherCountry;
+ }
+
+ private Double OtherLatitude;
+
+ @JsonProperty("OtherLatitude")
+ public Double getOtherLatitude() {
+ return this.OtherLatitude;
+ }
+
+ @JsonProperty("OtherLatitude")
+ public void setOtherLatitude(Double OtherLatitude) {
+ this.OtherLatitude = OtherLatitude;
+ }
+
+ private Double OtherLongitude;
+
+ @JsonProperty("OtherLongitude")
+ public Double getOtherLongitude() {
+ return this.OtherLongitude;
+ }
+
+ @JsonProperty("OtherLongitude")
+ public void setOtherLongitude(Double OtherLongitude) {
+ this.OtherLongitude = OtherLongitude;
+ }
+
+ private org.apache.camel.component.salesforce.api.dto.Address OtherAddress;
+
+ @JsonProperty("OtherAddress")
+ public org.apache.camel.component.salesforce.api.dto.Address getOtherAddress() {
+ return this.OtherAddress;
+ }
+
+ @JsonProperty("OtherAddress")
+ public void setOtherAddress(org.apache.camel.component.salesforce.api.dto.Address OtherAddress) {
+ this.OtherAddress = OtherAddress;
+ }
+
+ private String MailingStreet;
+
+ @JsonProperty("MailingStreet")
+ public String getMailingStreet() {
+ return this.MailingStreet;
+ }
+
+ @JsonProperty("MailingStreet")
+ public void setMailingStreet(String MailingStreet) {
+ this.MailingStreet = MailingStreet;
+ }
+
+ private String MailingCity;
+
+ @JsonProperty("MailingCity")
+ public String getMailingCity() {
+ return this.MailingCity;
+ }
+
+ @JsonProperty("MailingCity")
+ public void setMailingCity(String MailingCity) {
+ this.MailingCity = MailingCity;
+ }
+
+ private String MailingState;
+
+ @JsonProperty("MailingState")
+ public String getMailingState() {
+ return this.MailingState;
+ }
+
+ @JsonProperty("MailingState")
+ public void setMailingState(String MailingState) {
+ this.MailingState = MailingState;
+ }
+
+ private String MailingPostalCode;
+
+ @JsonProperty("MailingPostalCode")
+ public String getMailingPostalCode() {
+ return this.MailingPostalCode;
+ }
+
+ @JsonProperty("MailingPostalCode")
+ public void setMailingPostalCode(String MailingPostalCode) {
+ this.MailingPostalCode = MailingPostalCode;
+ }
+
+ private String MailingCountry;
+
+ @JsonProperty("MailingCountry")
+ public String getMailingCountry() {
+ return this.MailingCountry;
+ }
+
+ @JsonProperty("MailingCountry")
+ public void setMailingCountry(String MailingCountry) {
+ this.MailingCountry = MailingCountry;
+ }
+
+ private Double MailingLatitude;
+
+ @JsonProperty("MailingLatitude")
+ public Double getMailingLatitude() {
+ return this.MailingLatitude;
+ }
+
+ @JsonProperty("MailingLatitude")
+ public void setMailingLatitude(Double MailingLatitude) {
+ this.MailingLatitude = MailingLatitude;
+ }
+
+ private Double MailingLongitude;
+
+ @JsonProperty("MailingLongitude")
+ public Double getMailingLongitude() {
+ return this.MailingLongitude;
+ }
+
+ @JsonProperty("MailingLongitude")
+ public void setMailingLongitude(Double MailingLongitude) {
+ this.MailingLongitude = MailingLongitude;
+ }
+
+ private org.apache.camel.component.salesforce.api.dto.Address MailingAddress;
+
+ @JsonProperty("MailingAddress")
+ public org.apache.camel.component.salesforce.api.dto.Address getMailingAddress() {
+ return this.MailingAddress;
+ }
+
+ @JsonProperty("MailingAddress")
+ public void setMailingAddress(org.apache.camel.component.salesforce.api.dto.Address MailingAddress) {
+ this.MailingAddress = MailingAddress;
+ }
+
+ private String Phone;
+
+ @JsonProperty("Phone")
+ public String getPhone() {
+ return this.Phone;
+ }
+
+ @JsonProperty("Phone")
+ public void setPhone(String Phone) {
+ this.Phone = Phone;
+ }
+
+ private String Fax;
+
+ @JsonProperty("Fax")
+ public String getFax() {
+ return this.Fax;
+ }
+
+ @JsonProperty("Fax")
+ public void setFax(String Fax) {
+ this.Fax = Fax;
+ }
+
+ private String MobilePhone;
+
+ @JsonProperty("MobilePhone")
+ public String getMobilePhone() {
+ return this.MobilePhone;
+ }
+
+ @JsonProperty("MobilePhone")
+ public void setMobilePhone(String MobilePhone) {
+ this.MobilePhone = MobilePhone;
+ }
+
+ private String HomePhone;
+
+ @JsonProperty("HomePhone")
+ public String getHomePhone() {
+ return this.HomePhone;
+ }
+
+ @JsonProperty("HomePhone")
+ public void setHomePhone(String HomePhone) {
+ this.HomePhone = HomePhone;
+ }
+
+ private String OtherPhone;
+
+ @JsonProperty("OtherPhone")
+ public String getOtherPhone() {
+ return this.OtherPhone;
+ }
+
+ @JsonProperty("OtherPhone")
+ public void setOtherPhone(String OtherPhone) {
+ this.OtherPhone = OtherPhone;
+ }
+
+ private String AssistantPhone;
+
+ @JsonProperty("AssistantPhone")
+ public String getAssistantPhone() {
+ return this.AssistantPhone;
+ }
+
+ @JsonProperty("AssistantPhone")
+ public void setAssistantPhone(String AssistantPhone) {
+ this.AssistantPhone = AssistantPhone;
+ }
+
+ private String ReportsToId;
+
+ @JsonProperty("ReportsToId")
+ public String getReportsToId() {
+ return this.ReportsToId;
+ }
+
+ @JsonProperty("ReportsToId")
+ public void setReportsToId(String ReportsToId) {
+ this.ReportsToId = ReportsToId;
+ }
+
+ private Contact ReportsTo;
+
+ @JsonProperty("ReportsTo")
+ public Contact getReportsTo() {
+ return this.ReportsTo;
+ }
+
+ @JsonProperty("ReportsTo")
+ public void setReportsTo(Contact ReportsTo) {
+ this.ReportsTo = ReportsTo;
+ }
+
+ private String Email;
+
+ @JsonProperty("Email")
+ public String getEmail() {
+ return this.Email;
+ }
+
+ @JsonProperty("Email")
+ public void setEmail(String Email) {
+ this.Email = Email;
+ }
+
+ private String Title;
+
+ @JsonProperty("Title")
+ public String getTitle() {
+ return this.Title;
+ }
+
+ @JsonProperty("Title")
+ public void setTitle(String Title) {
+ this.Title = Title;
+ }
+
+ private String Department;
+
+ @JsonProperty("Department")
+ public String getDepartment() {
+ return this.Department;
+ }
+
+ @JsonProperty("Department")
+ public void setDepartment(String Department) {
+ this.Department = Department;
+ }
+
+ private String AssistantName;
+
+ @JsonProperty("AssistantName")
+ public String getAssistantName() {
+ return this.AssistantName;
+ }
+
+ @JsonProperty("AssistantName")
+ public void setAssistantName(String AssistantName) {
+ this.AssistantName = AssistantName;
+ }
+
+ private java.time.LocalDate Birthdate;
+
+ @JsonProperty("Birthdate")
+ public java.time.LocalDate getBirthdate() {
+ return this.Birthdate;
+ }
+
+ @JsonProperty("Birthdate")
+ public void setBirthdate(java.time.LocalDate Birthdate) {
+ this.Birthdate = Birthdate;
+ }
+
+ private String Description;
+
+ @JsonProperty("Description")
+ public String getDescription() {
+ return this.Description;
+ }
+
+ @JsonProperty("Description")
+ public void setDescription(String Description) {
+ this.Description = Description;
+ }
+
+ private java.time.ZonedDateTime LastCURequestDate;
+
+ @JsonProperty("LastCURequestDate")
+ public java.time.ZonedDateTime getLastCURequestDate() {
+ return this.LastCURequestDate;
+ }
+
+ @JsonProperty("LastCURequestDate")
+ public void setLastCURequestDate(java.time.ZonedDateTime LastCURequestDate) {
+ this.LastCURequestDate = LastCURequestDate;
+ }
+
+ private java.time.ZonedDateTime LastCUUpdateDate;
+
+ @JsonProperty("LastCUUpdateDate")
+ public java.time.ZonedDateTime getLastCUUpdateDate() {
+ return this.LastCUUpdateDate;
+ }
+
+ @JsonProperty("LastCUUpdateDate")
+ public void setLastCUUpdateDate(java.time.ZonedDateTime LastCUUpdateDate) {
+ this.LastCUUpdateDate = LastCUUpdateDate;
+ }
+
+ private String EmailBouncedReason;
+
+ @JsonProperty("EmailBouncedReason")
+ public String getEmailBouncedReason() {
+ return this.EmailBouncedReason;
+ }
+
+ @JsonProperty("EmailBouncedReason")
+ public void setEmailBouncedReason(String EmailBouncedReason) {
+ this.EmailBouncedReason = EmailBouncedReason;
+ }
+
+ private java.time.ZonedDateTime EmailBouncedDate;
+
+ @JsonProperty("EmailBouncedDate")
+ public java.time.ZonedDateTime getEmailBouncedDate() {
+ return this.EmailBouncedDate;
+ }
+
+ @JsonProperty("EmailBouncedDate")
+ public void setEmailBouncedDate(java.time.ZonedDateTime EmailBouncedDate) {
+ this.EmailBouncedDate = EmailBouncedDate;
+ }
+
+ private Boolean IsEmailBounced;
+
+ @JsonProperty("IsEmailBounced")
+ public Boolean getIsEmailBounced() {
+ return this.IsEmailBounced;
+ }
+
+ @JsonProperty("IsEmailBounced")
+ public void setIsEmailBounced(Boolean IsEmailBounced) {
+ this.IsEmailBounced = IsEmailBounced;
+ }
+
+ private String PhotoUrl;
+
+ @JsonProperty("PhotoUrl")
+ public String getPhotoUrl() {
+ return this.PhotoUrl;
+ }
+
+ @JsonProperty("PhotoUrl")
+ public void setPhotoUrl(String PhotoUrl) {
+ this.PhotoUrl = PhotoUrl;
+ }
+
+ private String Jigsaw;
+
+ @JsonProperty("Jigsaw")
+ public String getJigsaw() {
+ return this.Jigsaw;
+ }
+
+ @JsonProperty("Jigsaw")
+ public void setJigsaw(String Jigsaw) {
+ this.Jigsaw = Jigsaw;
+ }
+
+ private String JigsawContactId;
+
+ @JsonProperty("JigsawContactId")
+ public String getJigsawContactId() {
+ return this.JigsawContactId;
+ }
+
+ @JsonProperty("JigsawContactId")
+ public void setJigsawContactId(String JigsawContactId) {
+ this.JigsawContactId = JigsawContactId;
+ }
+
+ private String External_Id__c;
+
+ @JsonProperty("External_Id__c")
+ public String getExternal_Id__c() {
+ return this.External_Id__c;
+ }
+
+ @JsonProperty("External_Id__c")
+ public void setExternal_Id__c(String External_Id__c) {
+ this.External_Id__c = External_Id__c;
+ }
+
+ @Override
+ public final SObjectDescription description() {
+ return DESCRIPTION;
+ }
+
+ private static SObjectDescription createSObjectDescription() {
+ final SObjectDescription description = new SObjectDescription();
+
+ final List<SObjectField> fields1 = new ArrayList<>();
+ description.setFields(fields1);
+
+ final SObjectField sObjectField1 = createField("Id", "Contact ID", "id", "tns:ID", 18, false, false, false, false, false, false, true);
+ fields1.add(sObjectField1);
+ final SObjectField sObjectField2 = createField("IsDeleted", "Deleted", "boolean", "xsd:boolean", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField2);
+ final SObjectField sObjectField3 = createField("MasterRecordId", "Master Record ID", "reference", "tns:ID", 18, false, true, false, false, false, false, false);
+ fields1.add(sObjectField3);
+ final SObjectField sObjectField4 = createField("AccountId", "Account ID", "reference", "tns:ID", 18, false, true, false, false, false, false, false);
+ fields1.add(sObjectField4);
+ final SObjectField sObjectField5 = createField("LastName", "Last Name", "string", "xsd:string", 80, false, false, false, false, false, false, false);
+ fields1.add(sObjectField5);
+ final SObjectField sObjectField6 = createField("FirstName", "First Name", "string", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField6);
+ final SObjectField sObjectField7 = createField("Salutation", "Salutation", "picklist", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField7);
+ final SObjectField sObjectField8 = createField("Name", "Full Name", "string", "xsd:string", 121, false, false, true, false, false, false, false);
+ fields1.add(sObjectField8);
+ final SObjectField sObjectField9 = createField("OtherStreet", "Other Street", "textarea", "xsd:string", 255, false, true, false, false, false, false, false);
+ fields1.add(sObjectField9);
+ final SObjectField sObjectField10 = createField("OtherCity", "Other City", "string", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField10);
+ final SObjectField sObjectField11 = createField("OtherState", "Other State/Province", "string", "xsd:string", 80, false, true, false, false, false, false, false);
+ fields1.add(sObjectField11);
+ final SObjectField sObjectField12 = createField("OtherPostalCode", "Other Zip/Postal Code", "string", "xsd:string", 20, false, true, false, false, false, false, false);
+ fields1.add(sObjectField12);
+ final SObjectField sObjectField13 = createField("OtherCountry", "Other Country", "string", "xsd:string", 80, false, true, false, false, false, false, false);
+ fields1.add(sObjectField13);
+ final SObjectField sObjectField14 = createField("OtherLatitude", "Other Latitude", "double", "xsd:double", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField14);
+ final SObjectField sObjectField15 = createField("OtherLongitude", "Other Longitude", "double", "xsd:double", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField15);
+ final SObjectField sObjectField16 = createField("OtherGeocodeAccuracy", "Other Geocode Accuracy", "picklist", "xsd:string", 40, false, true, false, false, false, false,
+ false);
+ fields1.add(sObjectField16);
+ final SObjectField sObjectField17 = createField("OtherAddress", "Other Address", "address", "urn:address", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField17);
+ final SObjectField sObjectField18 = createField("MailingStreet", "Mailing Street", "textarea", "xsd:string", 255, false, true, false, false, false, false, false);
+ fields1.add(sObjectField18);
+ final SObjectField sObjectField19 = createField("MailingCity", "Mailing City", "string", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField19);
+ final SObjectField sObjectField20 = createField("MailingState", "Mailing State/Province", "string", "xsd:string", 80, false, true, false, false, false, false, false);
+ fields1.add(sObjectField20);
+ final SObjectField sObjectField21 = createField("MailingPostalCode", "Mailing Zip/Postal Code", "string", "xsd:string", 20, false, true, false, false, false, false, false);
+ fields1.add(sObjectField21);
+ final SObjectField sObjectField22 = createField("MailingCountry", "Mailing Country", "string", "xsd:string", 80, false, true, false, false, false, false, false);
+ fields1.add(sObjectField22);
+ final SObjectField sObjectField23 = createField("MailingLatitude", "Mailing Latitude", "double", "xsd:double", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField23);
+ final SObjectField sObjectField24 = createField("MailingLongitude", "Mailing Longitude", "double", "xsd:double", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField24);
+ final SObjectField sObjectField25 = createField("MailingGeocodeAccuracy", "Mailing Geocode Accuracy", "picklist", "xsd:string", 40, false, true, false, false, false, false,
+ false);
+ fields1.add(sObjectField25);
+ final SObjectField sObjectField26 = createField("MailingAddress", "Mailing Address", "address", "urn:address", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField26);
+ final SObjectField sObjectField27 = createField("Phone", "Business Phone", "phone", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField27);
+ final SObjectField sObjectField28 = createField("Fax", "Business Fax", "phone", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField28);
+ final SObjectField sObjectField29 = createField("MobilePhone", "Mobile Phone", "phone", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField29);
+ final SObjectField sObjectField30 = createField("HomePhone", "Home Phone", "phone", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField30);
+ final SObjectField sObjectField31 = createField("OtherPhone", "Other Phone", "phone", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField31);
+ final SObjectField sObjectField32 = createField("AssistantPhone", "Asst. Phone", "phone", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField32);
+ final SObjectField sObjectField33 = createField("ReportsToId", "Reports To ID", "reference", "tns:ID", 18, false, true, false, false, false, false, false);
+ fields1.add(sObjectField33);
+ final SObjectField sObjectField34 = createField("Email", "Email", "email", "xsd:string", 80, false, true, false, false, false, false, true);
+ fields1.add(sObjectField34);
+ final SObjectField sObjectField35 = createField("Title", "Title", "string", "xsd:string", 128, false, true, false, false, false, false, false);
+ fields1.add(sObjectField35);
+ final SObjectField sObjectField36 = createField("Department", "Department", "string", "xsd:string", 80, false, true, false, false, false, false, false);
+ fields1.add(sObjectField36);
+ final SObjectField sObjectField37 = createField("AssistantName", "Assistant's Name", "string", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField37);
+ final SObjectField sObjectField38 = createField("LeadSource", "Lead Source", "picklist", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField38);
+ final SObjectField sObjectField39 = createField("Birthdate", "Birthdate", "date", "xsd:date", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField39);
+ final SObjectField sObjectField40 = createField("Description", "Contact Description", "textarea", "xsd:string", 32000, false, true, false, false, false, false, false);
+ fields1.add(sObjectField40);
+ final SObjectField sObjectField41 = createField("OwnerId", "Owner ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
+ fields1.add(sObjectField41);
+ final SObjectField sObjectField42 = createField("CreatedDate", "Created Date", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField42);
+ final SObjectField sObjectField43 = createField("CreatedById", "Created By ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
+ fields1.add(sObjectField43);
+ final SObjectField sObjectField44 = createField("LastModifiedDate", "Last Modified Date", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField44);
+ final SObjectField sObjectField45 = createField("LastModifiedById", "Last Modified By ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
+ fields1.add(sObjectField45);
+ final SObjectField sObjectField46 = createField("SystemModstamp", "System Modstamp", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField46);
+ final SObjectField sObjectField47 = createField("LastActivityDate", "Last Activity", "date", "xsd:date", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField47);
+ final SObjectField sObjectField48 = createField("LastCURequestDate", "Last Stay-in-Touch Request Date", "datetime", "xsd:dateTime", 0, false, true, false, false, false,
+ false, false);
+ fields1.add(sObjectField48);
+ final SObjectField sObjectField49 = createField("LastCUUpdateDate", "Last Stay-in-Touch Save Date", "datetime", "xsd:dateTime", 0, false, true, false, false, false, false,
+ false);
+ fields1.add(sObjectField49);
+ final SObjectField sObjectField50 = createField("LastViewedDate", "Last Viewed Date", "datetime", "xsd:dateTime", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField50);
+ final SObjectField sObjectField51 = createField("LastReferencedDate", "Last Referenced Date", "datetime", "xsd:dateTime", 0, false, true, false, false, false, false,
+ false);
+ fields1.add(sObjectField51);
+ final SObjectField sObjectField52 = createField("EmailBouncedReason", "Email Bounced Reason", "string", "xsd:string", 255, false, true, false, false, false, false, false);
+ fields1.add(sObjectField52);
+ final SObjectField sObjectField53 = createField("EmailBouncedDate", "Email Bounced Date", "datetime", "xsd:dateTime", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField53);
+ final SObjectField sObjectField54 = createField("IsEmailBounced", "Is Email Bounced", "boolean", "xsd:boolean", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField54);
+ final SObjectField sObjectField55 = createField("PhotoUrl", "Photo URL", "url", "xsd:string", 255, false, true, false, false, false, false, false);
+ fields1.add(sObjectField55);
+ final SObjectField sObjectField56 = createField("Jigsaw", "Data.com Key", "string", "xsd:string", 20, false, true, false, false, false, false, false);
+ fields1.add(sObjectField56);
+ final SObjectField sObjectField57 = createField("JigsawContactId", "Jigsaw Contact ID", "string", "xsd:string", 20, false, true, false, false, false, false, false);
+ fields1.add(sObjectField57);
+ final SObjectField sObjectField58 = createField("CleanStatus", "Clean Status", "picklist", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField58);
+ final SObjectField sObjectField59 = createField("External_Id__c", "External Id", "string", "xsd:string", 255, true, true, false, true, true, false, true);
+ fields1.add(sObjectField59);
+
+ description.setLabel("Contact");
+ description.setLabelPlural("Contacts");
+ description.setName("Contact");
+
+ final SObjectDescriptionUrls sObjectDescriptionUrls1 = new SObjectDescriptionUrls();
+ sObjectDescriptionUrls1.setApprovalLayouts("/services/data/v45.0/sobjects/Contact/describe/approvalLayouts");
+ sObjectDescriptionUrls1.setCompactLayouts("/services/data/v45.0/sobjects/Contact/describe/compactLayouts");
+ sObjectDescriptionUrls1.setDefaultValues("/services/data/v45.0/sobjects/Contact/defaultValues?recordTypeId&fields");
+ sObjectDescriptionUrls1.setDescribe("/services/data/v45.0/sobjects/Contact/describe");
+ sObjectDescriptionUrls1.setLayouts("/services/data/v45.0/sobjects/Contact/describe/layouts");
+ sObjectDescriptionUrls1.setListviews("/services/data/v45.0/sobjects/Contact/listviews");
+ sObjectDescriptionUrls1.setQuickActions("/services/data/v45.0/sobjects/Contact/quickActions");
+ sObjectDescriptionUrls1.setRowTemplate("/services/data/v45.0/sobjects/Contact/{ID}");
+ sObjectDescriptionUrls1.setSobject("/services/data/v45.0/sobjects/Contact");
+ sObjectDescriptionUrls1.setUiDetailTemplate("https://customer-flow-8168-dev-ed.cs42.my.salesforce.com/{ID}");
+ sObjectDescriptionUrls1.setUiEditTemplate("https://customer-flow-8168-dev-ed.cs42.my.salesforce.com/{ID}/e");
+ sObjectDescriptionUrls1.setUiNewRecord("https://customer-flow-8168-dev-ed.cs42.my.salesforce.com/003/e");
+ description.setUrls(sObjectDescriptionUrls1);
+
+ return description;
+ }
+}
+
+// CHECKSTYLE:ON
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Document.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Document.java
new file mode 100644
index 00000000000..38239403b66
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Document.java
@@ -0,0 +1,286 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot.dto.generated;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.camel.component.salesforce.api.dto.AbstractDescribedSObjectBase;
+import org.apache.camel.component.salesforce.api.dto.SObjectDescription;
+import org.apache.camel.component.salesforce.api.dto.SObjectDescriptionUrls;
+import org.apache.camel.component.salesforce.api.dto.SObjectField;
+
+//CHECKSTYLE:OFF
+/**
+ * Salesforce DTO for SObject Document
+ */
+public class Document extends AbstractDescribedSObjectBase {
+
+ public Document() {
+ getAttributes().setType("Document");
+ }
+
+ private static final SObjectDescription DESCRIPTION = createSObjectDescription();
+
+ private String FolderId;
+
+ @JsonProperty("FolderId")
+ public String getFolderId() {
+ return this.FolderId;
+ }
+
+ @JsonProperty("FolderId")
+ public void setFolderId(String FolderId) {
+ this.FolderId = FolderId;
+ }
+
+ private String DeveloperName;
+
+ @JsonProperty("DeveloperName")
+ public String getDeveloperName() {
+ return this.DeveloperName;
+ }
+
+ @JsonProperty("DeveloperName")
+ public void setDeveloperName(String DeveloperName) {
+ this.DeveloperName = DeveloperName;
+ }
+
+ private String NamespacePrefix;
+
+ @JsonProperty("NamespacePrefix")
+ public String getNamespacePrefix() {
+ return this.NamespacePrefix;
+ }
+
+ @JsonProperty("NamespacePrefix")
+ public void setNamespacePrefix(String NamespacePrefix) {
+ this.NamespacePrefix = NamespacePrefix;
+ }
+
+ private String ContentType;
+
+ @JsonProperty("ContentType")
+ public String getContentType() {
+ return this.ContentType;
+ }
+
+ @JsonProperty("ContentType")
+ public void setContentType(String ContentType) {
+ this.ContentType = ContentType;
+ }
+
+ private String Type;
+
+ @JsonProperty("Type")
+ public String getType() {
+ return this.Type;
+ }
+
+ @JsonProperty("Type")
+ public void setType(String Type) {
+ this.Type = Type;
+ }
+
+ private Boolean IsPublic;
+
+ @JsonProperty("IsPublic")
+ public Boolean getIsPublic() {
+ return this.IsPublic;
+ }
+
+ @JsonProperty("IsPublic")
+ public void setIsPublic(Boolean IsPublic) {
+ this.IsPublic = IsPublic;
+ }
+
+ private Integer BodyLength;
+
+ @JsonProperty("BodyLength")
+ public Integer getBodyLength() {
+ return this.BodyLength;
+ }
+
+ @JsonProperty("BodyLength")
+ public void setBodyLength(Integer BodyLength) {
+ this.BodyLength = BodyLength;
+ }
+
+ // blob field url, use getBlobField to get the content
+ private String BodyUrl;
+
+ @JsonProperty("Body")
+ public String getBodyUrl() {
+ return this.BodyUrl;
+ }
+
+ @JsonProperty("Body")
+ public void setBodyUrl(String BodyUrl) {
+ this.BodyUrl = BodyUrl;
+ }
+
+ private String Url;
+
+ @JsonProperty("Url")
+ public String getUrl() {
+ return this.Url;
+ }
+
+ @JsonProperty("Url")
+ public void setUrl(String Url) {
+ this.Url = Url;
+ }
+
+ private String Description;
+
+ @JsonProperty("Description")
+ public String getDescription() {
+ return this.Description;
+ }
+
+ @JsonProperty("Description")
+ public void setDescription(String Description) {
+ this.Description = Description;
+ }
+
+ private String Keywords;
+
+ @JsonProperty("Keywords")
+ public String getKeywords() {
+ return this.Keywords;
+ }
+
+ @JsonProperty("Keywords")
+ public void setKeywords(String Keywords) {
+ this.Keywords = Keywords;
+ }
+
+ private Boolean IsInternalUseOnly;
+
+ @JsonProperty("IsInternalUseOnly")
+ public Boolean getIsInternalUseOnly() {
+ return this.IsInternalUseOnly;
+ }
+
+ @JsonProperty("IsInternalUseOnly")
+ public void setIsInternalUseOnly(Boolean IsInternalUseOnly) {
+ this.IsInternalUseOnly = IsInternalUseOnly;
+ }
+
+ private String AuthorId;
+
+ @JsonProperty("AuthorId")
+ public String getAuthorId() {
+ return this.AuthorId;
+ }
+
+ @JsonProperty("AuthorId")
+ public void setAuthorId(String AuthorId) {
+ this.AuthorId = AuthorId;
+ }
+
+ private Boolean IsBodySearchable;
+
+ @JsonProperty("IsBodySearchable")
+ public Boolean getIsBodySearchable() {
+ return this.IsBodySearchable;
+ }
+
+ @JsonProperty("IsBodySearchable")
+ public void setIsBodySearchable(Boolean IsBodySearchable) {
+ this.IsBodySearchable = IsBodySearchable;
+ }
+
+ @Override
+ public final SObjectDescription description() {
+ return DESCRIPTION;
+ }
+
+ private static SObjectDescription createSObjectDescription() {
+ final SObjectDescription description = new SObjectDescription();
+
+ final List<SObjectField> fields1 = new ArrayList<>();
+ description.setFields(fields1);
+
+ final SObjectField sObjectField1 = createField("Id", "Document ID", "id", "tns:ID", 18, false, false, false, false, false, false, true);
+ fields1.add(sObjectField1);
+ final SObjectField sObjectField2 = createField("FolderId", "Folder ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
+ fields1.add(sObjectField2);
+ final SObjectField sObjectField3 = createField("IsDeleted", "Deleted", "boolean", "xsd:boolean", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField3);
+ final SObjectField sObjectField4 = createField("Name", "Document Name", "string", "xsd:string", 255, false, false, true, false, false, false, true);
+ fields1.add(sObjectField4);
+ final SObjectField sObjectField5 = createField("DeveloperName", "Document Unique Name", "string", "xsd:string", 80, false, false, false, false, false, false, false);
+ fields1.add(sObjectField5);
+ final SObjectField sObjectField6 = createField("NamespacePrefix", "Namespace Prefix", "string", "xsd:string", 15, false, true, false, false, false, false, false);
+ fields1.add(sObjectField6);
+ final SObjectField sObjectField7 = createField("ContentType", "MIME Type", "string", "xsd:string", 120, false, true, false, false, false, false, false);
+ fields1.add(sObjectField7);
+ final SObjectField sObjectField8 = createField("Type", "File Extension", "string", "xsd:string", 40, false, true, false, false, false, false, false);
+ fields1.add(sObjectField8);
+ final SObjectField sObjectField9 = createField("IsPublic", "Externally Available", "boolean", "xsd:boolean", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField9);
+ final SObjectField sObjectField10 = createField("BodyLength", "Body Length", "int", "xsd:int", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField10);
+ final SObjectField sObjectField11 = createField("Body", "Body", "base64", "xsd:base64Binary", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField11);
+ final SObjectField sObjectField12 = createField("Url", "Url", "string", "xsd:string", 255, false, true, false, false, false, false, false);
+ fields1.add(sObjectField12);
+ final SObjectField sObjectField13 = createField("Description", "Description", "textarea", "xsd:string", 255, false, true, false, false, false, false, false);
+ fields1.add(sObjectField13);
+ final SObjectField sObjectField14 = createField("Keywords", "Keywords", "string", "xsd:string", 255, false, true, false, false, false, false, false);
+ fields1.add(sObjectField14);
+ final SObjectField sObjectField15 = createField("IsInternalUseOnly", "Internal Use Only", "boolean", "xsd:boolean", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField15);
+ final SObjectField sObjectField16 = createField("AuthorId", "Author ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
+ fields1.add(sObjectField16);
+ final SObjectField sObjectField17 = createField("CreatedDate", "Created Date", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField17);
+ final SObjectField sObjectField18 = createField("CreatedById", "Created By ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
+ fields1.add(sObjectField18);
+ final SObjectField sObjectField19 = createField("LastModifiedDate", "Last Modified Date", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField19);
+ final SObjectField sObjectField20 = createField("LastModifiedById", "Last Modified By ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
+ fields1.add(sObjectField20);
+ final SObjectField sObjectField21 = createField("SystemModstamp", "System Modstamp", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField21);
+ final SObjectField sObjectField22 = createField("IsBodySearchable", "Document Content Searchable", "boolean", "xsd:boolean", 0, false, false, false, false, false, false,
+ false);
+ fields1.add(sObjectField22);
+ final SObjectField sObjectField23 = createField("LastViewedDate", "Last Viewed Date", "datetime", "xsd:dateTime", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField23);
+ final SObjectField sObjectField24 = createField("LastReferencedDate", "Last Referenced Date", "datetime", "xsd:dateTime", 0, false, true, false, false, false, false,
+ false);
+ fields1.add(sObjectField24);
+
+ description.setLabel("Document");
+ description.setLabelPlural("Documents");
+ description.setName("Document");
+
+ final SObjectDescriptionUrls sObjectDescriptionUrls1 = new SObjectDescriptionUrls();
+ sObjectDescriptionUrls1.setDefaultValues("/services/data/v45.0/sobjects/Document/defaultValues?recordTypeId&fields");
+ sObjectDescriptionUrls1.setDescribe("/services/data/v45.0/sobjects/Document/describe");
+ sObjectDescriptionUrls1.setRowTemplate("/services/data/v45.0/sobjects/Document/{ID}");
+ sObjectDescriptionUrls1.setSobject("/services/data/v45.0/sobjects/Document");
+ description.setUrls(sObjectDescriptionUrls1);
+
+ return description;
+ }
+}
+
+//CHECKSTYLE:ON
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Line_Item__c.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Line_Item__c.java
new file mode 100644
index 00000000000..42d23820af4
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Line_Item__c.java
@@ -0,0 +1,166 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot.dto.generated;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonSubTypes;
+import com.fasterxml.jackson.annotation.JsonTypeInfo;
+import com.fasterxml.jackson.databind.annotation.JsonTypeResolver;
+import org.apache.camel.component.salesforce.api.dto.AbstractDescribedSObjectBase;
+import org.apache.camel.component.salesforce.api.dto.AbstractSObjectBase;
+import org.apache.camel.component.salesforce.api.dto.SObjectDescription;
+import org.apache.camel.component.salesforce.api.dto.SObjectDescriptionUrls;
+import org.apache.camel.component.salesforce.api.dto.SObjectField;
+import org.apache.camel.component.salesforce.api.utils.AsNestedPropertyResolver;
+
+//CHECKSTYLE:OFF
+public class Line_Item__c extends AbstractDescribedSObjectBase {
+
+ @JsonTypeResolver(AsNestedPropertyResolver.class)
+ @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY, property = "attributes.type",
+ defaultImpl = AbstractDescribedSObjectBase.class)
+ @JsonSubTypes({
+ @JsonSubTypes.Type(value = User.class, name = "User")
+ })
+ private AbstractSObjectBase Owner;
+
+ @JsonProperty("Owner")
+ public AbstractSObjectBase getOwner() {
+ return Owner;
+ }
+
+ @JsonProperty("Owner")
+ public void setOwner(AbstractSObjectBase owner) {
+ Owner = owner;
+ }
+
+ public Line_Item__c() {
+ getAttributes().setType("Line_Item__c");
+ }
+
+ private static final SObjectDescription DESCRIPTION = createSObjectDescription();
+
+ private String Merchandise__c;
+
+ @JsonProperty("Merchandise__c")
+ public String getMerchandise__c() {
+ return this.Merchandise__c;
+ }
+
+ @JsonProperty("Merchandise__c")
+ public void setMerchandise__c(String Merchandise__c) {
+ this.Merchandise__c = Merchandise__c;
+ }
+
+ private Double Unit_Price__c;
+
+ @JsonProperty("Unit_Price__c")
+ public Double getUnit_Price__c() {
+ return this.Unit_Price__c;
+ }
+
+ @JsonProperty("Unit_Price__c")
+ public void setUnit_Price__c(Double Unit_Price__c) {
+ this.Unit_Price__c = Unit_Price__c;
+ }
+
+ private Double Units_Sold__c;
+
+ @JsonProperty("Units_Sold__c")
+ public Double getUnits_Sold__c() {
+ return this.Units_Sold__c;
+ }
+
+ @JsonProperty("Units_Sold__c")
+ public void setUnits_Sold__c(Double Units_Sold__c) {
+ this.Units_Sold__c = Units_Sold__c;
+ }
+
+ private RecordType RecordType;
+
+ @JsonProperty("RecordType")
+ public RecordType getRecordType() {
+ return this.RecordType;
+ }
+
+ @JsonProperty("RecordType")
+ public void setRecordType(RecordType RecordType) {
+ this.RecordType = RecordType;
+ }
+
+
+ @Override
+ public final SObjectDescription description() {
+ return DESCRIPTION;
+ }
+
+ private static SObjectDescription createSObjectDescription() {
+ final SObjectDescription description = new SObjectDescription();
+
+ final List<SObjectField> fields1 = new ArrayList<>();
+ description.setFields(fields1);
+
+ final SObjectField sObjectField1 = createField("Id", "Record ID", "id", "tns:ID", 18, false, false, false, false, false, false, true);
+ fields1.add(sObjectField1);
+ final SObjectField sObjectField2 = createField("OwnerId", "Owner ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
+ fields1.add(sObjectField2);
+ final SObjectField sObjectField3 = createField("IsDeleted", "Deleted", "boolean", "xsd:boolean", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField3);
+ final SObjectField sObjectField4 = createField("Name", "Line Item Number", "string", "xsd:string", 80, false, true, true, false, false, false, true);
+ fields1.add(sObjectField4);
+ final SObjectField sObjectField5 = createField("CreatedDate", "Created Date", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField5);
+ final SObjectField sObjectField6 = createField("CreatedById", "Created By ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
+ fields1.add(sObjectField6);
+ final SObjectField sObjectField7 = createField("LastModifiedDate", "Last Modified Date", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField7);
+ final SObjectField sObjectField8 = createField("LastModifiedById", "Last Modified By ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
+ fields1.add(sObjectField8);
+ final SObjectField sObjectField9 = createField("SystemModstamp", "System Modstamp", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField9);
+ final SObjectField sObjectField10 = createField("Merchandise__c", "Merchandise", "reference", "tns:ID", 18, false, true, false, false, true, false, false);
+ fields1.add(sObjectField10);
+ final SObjectField sObjectField11 = createField("Unit_Price__c", "Unit Price", "currency", "xsd:double", 0, false, true, false, false, true, false, false);
+ fields1.add(sObjectField11);
+ final SObjectField sObjectField12 = createField("Units_Sold__c", "Units Sold", "double", "xsd:double", 0, false, true, false, false, true, false, false);
+ fields1.add(sObjectField12);
+
+ description.setLabel("Line Item");
+ description.setLabelPlural("Line Items");
+ description.setName("Line_Item__c");
+
+ final SObjectDescriptionUrls sObjectDescriptionUrls1 = new SObjectDescriptionUrls();
+ sObjectDescriptionUrls1.setApprovalLayouts("/services/data/v45.0/sobjects/Line_Item__c/describe/approvalLayouts");
+ sObjectDescriptionUrls1.setCompactLayouts("/services/data/v45.0/sobjects/Line_Item__c/describe/compactLayouts");
+ sObjectDescriptionUrls1.setDefaultValues("/services/data/v45.0/sobjects/Line_Item__c/defaultValues?recordTypeId&fields");
+ sObjectDescriptionUrls1.setDescribe("/services/data/v45.0/sobjects/Line_Item__c/describe");
+ sObjectDescriptionUrls1.setLayouts("/services/data/v45.0/sobjects/Line_Item__c/describe/layouts");
+ sObjectDescriptionUrls1.setQuickActions("/services/data/v45.0/sobjects/Line_Item__c/quickActions");
+ sObjectDescriptionUrls1.setRowTemplate("/services/data/v45.0/sobjects/Line_Item__c/{ID}");
+ sObjectDescriptionUrls1.setSobject("/services/data/v45.0/sobjects/Line_Item__c");
+ sObjectDescriptionUrls1.setUiDetailTemplate("https://customer-flow-8168-dev-ed.cs42.my.salesforce.com/{ID}");
+ sObjectDescriptionUrls1.setUiEditTemplate("https://customer-flow-8168-dev-ed.cs42.my.salesforce.com/{ID}/e");
+ sObjectDescriptionUrls1.setUiNewRecord("https://customer-flow-8168-dev-ed.cs42.my.salesforce.com/a01/e");
+ description.setUrls(sObjectDescriptionUrls1);
+
+ return description;
+ }
+}
+//CHECKSTYLE:ON
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/MSPTest.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/MSPTest.java
new file mode 100644
index 00000000000..d4966234b09
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/MSPTest.java
@@ -0,0 +1,87 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot.dto.generated;
+
+import com.fasterxml.jackson.annotation.JsonCreator;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.annotation.JsonValue;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import org.apache.camel.component.salesforce.api.MultiSelectPicklistDeserializer;
+import org.apache.camel.component.salesforce.api.MultiSelectPicklistSerializer;
+import org.apache.camel.component.salesforce.api.dto.AbstractSObjectBase;
+
+/**
+ * Sample POJO for MSP tests.
+ */
+//CHECKSTYLE:OFF
+public class MSPTest extends AbstractSObjectBase {
+
+ public MSPTest() {
+ getAttributes().setType("MSPTest");
+ }
+
+ private MSPEnum[] MspField;
+
+ @JsonProperty("MspField")
+ @JsonSerialize(using = MultiSelectPicklistSerializer.class)
+ @JsonInclude(value = Include.ALWAYS)
+ public MSPEnum[] getMspField() {
+ return MspField;
+ }
+
+ @JsonProperty("MspField")
+ @JsonDeserialize(using = MultiSelectPicklistDeserializer.class)
+ public void setMspField(MSPEnum[] mspField) {
+ this.MspField = mspField;
+ }
+
+ @JsonDeserialize
+ public enum MSPEnum {
+
+ // Value1
+ VALUE1("Value1"),
+ // Value1
+ VALUE2("Value2"),
+ // Value1
+ VALUE3("Value3");
+
+ final String value;
+
+ private MSPEnum(String value) {
+ this.value = value;
+ }
+
+ @JsonValue
+ public String value() {
+ return this.value;
+ }
+
+ @JsonCreator
+ public static MSPEnum fromValue(String value) {
+ for (MSPEnum e : MSPEnum.values()) {
+ if (e.value.equals(value)) {
+ return e;
+ }
+ }
+ throw new IllegalArgumentException(value);
+ }
+ }
+}
+//CHECKSTYLE:ON
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Merchandise__c.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Merchandise__c.java
new file mode 100644
index 00000000000..68190a7d98b
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Merchandise__c.java
@@ -0,0 +1,150 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot.dto.generated;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.camel.component.salesforce.api.dto.AbstractDescribedSObjectBase;
+import org.apache.camel.component.salesforce.api.dto.SObjectDescription;
+import org.apache.camel.component.salesforce.api.dto.SObjectDescriptionUrls;
+import org.apache.camel.component.salesforce.api.dto.SObjectField;
+
+//CHECKSTYLE:OFF
+public class Merchandise__c extends AbstractDescribedSObjectBase {
+
+ public Merchandise__c() {
+ getAttributes().setType("Merchandise__c");
+ }
+
+ private static final SObjectDescription DESCRIPTION = createSObjectDescription();
+
+ private String Description__c;
+
+ @JsonProperty("Description__c")
+ public String getDescription__c() {
+ return this.Description__c;
+ }
+
+ @JsonProperty("Description__c")
+ public void setDescription__c(String Description__c) {
+ this.Description__c = Description__c;
+ }
+
+ private Double Price__c;
+
+ @JsonProperty("Price__c")
+ public Double getPrice__c() {
+ return this.Price__c;
+ }
+
+ @JsonProperty("Price__c")
+ public void setPrice__c(Double Price__c) {
+ this.Price__c = Price__c;
+ }
+
+ private Double Total_Inventory__c;
+
+ @JsonProperty("Total_Inventory__c")
+ public Double getTotal_Inventory__c() {
+ return this.Total_Inventory__c;
+ }
+
+ @JsonProperty("Total_Inventory__c")
+ public void setTotal_Inventory__c(Double Total_Inventory__c) {
+ this.Total_Inventory__c = Total_Inventory__c;
+ }
+
+ private QueryRecordsLine_Item__c Line_Items__r;
+
+ @JsonProperty("Line_Items__r")
+ public QueryRecordsLine_Item__c getLine_Items__r() {
+ return Line_Items__r;
+ }
+
+ @JsonProperty("Line_Items__r")
+ public void setLine_Items__r(QueryRecordsLine_Item__c Line_Items__r) {
+ this.Line_Items__r = Line_Items__r;
+ }
+
+ @Override
+ public final SObjectDescription description() {
+ return DESCRIPTION;
+ }
+
+ private static SObjectDescription createSObjectDescription() {
+ final SObjectDescription description = new SObjectDescription();
+
+ final List<SObjectField> fields1 = new ArrayList<>();
+ description.setFields(fields1);
+
+ final SObjectField sObjectField1 = createField("Id", "Record ID", "id", "tns:ID", 18, false, false, false, false, false, false, true);
+ fields1.add(sObjectField1);
+ final SObjectField sObjectField2 = createField("OwnerId", "Owner ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
+ fields1.add(sObjectField2);
+ final SObjectField sObjectField3 = createField("IsDeleted", "Deleted", "boolean", "xsd:boolean", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField3);
+ final SObjectField sObjectField4 = createField("Name", "Merchandise Name", "string", "xsd:string", 80, false, true, true, false, false, false, true);
+ fields1.add(sObjectField4);
+ final SObjectField sObjectField5 = createField("CreatedDate", "Created Date", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField5);
+ final SObjectField sObjectField6 = createField("CreatedById", "Created By ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
+ fields1.add(sObjectField6);
+ final SObjectField sObjectField7 = createField("LastModifiedDate", "Last Modified Date", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField7);
+ final SObjectField sObjectField8 = createField("LastModifiedById", "Last Modified By ID", "reference", "tns:ID", 18, false, false, false, false, false, false, false);
+ fields1.add(sObjectField8);
+ final SObjectField sObjectField9 = createField("SystemModstamp", "System Modstamp", "datetime", "xsd:dateTime", 0, false, false, false, false, false, false, false);
+ fields1.add(sObjectField9);
+ final SObjectField sObjectField10 = createField("LastActivityDate", "Last Activity Date", "date", "xsd:date", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField10);
+ final SObjectField sObjectField11 = createField("LastViewedDate", "Last Viewed Date", "datetime", "xsd:dateTime", 0, false, true, false, false, false, false, false);
+ fields1.add(sObjectField11);
+ final SObjectField sObjectField12 = createField("LastReferencedDate", "Last Referenced Date", "datetime", "xsd:dateTime", 0, false, true, false, false, false, false,
+ false);
+ fields1.add(sObjectField12);
+ final SObjectField sObjectField13 = createField("Description__c", "Description", "string", "xsd:string", 100, false, true, false, false, true, false, false);
+ fields1.add(sObjectField13);
+ final SObjectField sObjectField14 = createField("Price__c", "Price", "currency", "xsd:double", 0, false, false, false, false, true, false, false);
+ fields1.add(sObjectField14);
+ final SObjectField sObjectField15 = createField("Total_Inventory__c", "Total_Inventory", "double", "xsd:double", 0, false, false, false, false, true, false, false);
+ fields1.add(sObjectField15);
+
+ description.setLabel("Merchandise");
+ description.setLabelPlural("Merchandise");
+ description.setName("Merchandise__c");
+
+ final SObjectDescriptionUrls sObjectDescriptionUrls1 = new SObjectDescriptionUrls();
+ sObjectDescriptionUrls1.setApprovalLayouts("/services/data/v45.0/sobjects/Merchandise__c/describe/approvalLayouts");
+ sObjectDescriptionUrls1.setCompactLayouts("/services/data/v45.0/sobjects/Merchandise__c/describe/compactLayouts");
+ sObjectDescriptionUrls1.setDefaultValues("/services/data/v45.0/sobjects/Merchandise__c/defaultValues?recordTypeId&fields");
+ sObjectDescriptionUrls1.setDescribe("/services/data/v45.0/sobjects/Merchandise__c/describe");
+ sObjectDescriptionUrls1.setLayouts("/services/data/v45.0/sobjects/Merchandise__c/describe/layouts");
+ sObjectDescriptionUrls1.setQuickActions("/services/data/v45.0/sobjects/Merchandise__c/quickActions");
+ sObjectDescriptionUrls1.setRowTemplate("/services/data/v45.0/sobjects/Merchandise__c/{ID}");
+ sObjectDescriptionUrls1.setSobject("/services/data/v45.0/sobjects/Merchandise__c");
+ sObjectDescriptionUrls1.setUiDetailTemplate("https://customer-flow-8168-dev-ed.cs42.my.salesforce.com/{ID}");
+ sObjectDescriptionUrls1.setUiEditTemplate("https://customer-flow-8168-dev-ed.cs42.my.salesforce.com/{ID}/e");
+ sObjectDescriptionUrls1.setUiNewRecord("https://customer-flow-8168-dev-ed.cs42.my.salesforce.com/a02/e");
+ description.setUrls(sObjectDescriptionUrls1);
+
+ return description;
+ }
+}
+
+//CHECKSTYLE:ON
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/QueryRecordsAccount.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/QueryRecordsAccount.java
new file mode 100644
index 00000000000..da270b4dd49
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/QueryRecordsAccount.java
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot.dto.generated;
+
+import org.apache.camel.component.salesforce.api.dto.AbstractQueryRecordsBase;
+
+public class QueryRecordsAccount extends AbstractQueryRecordsBase<Account> {
+}
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/QueryRecordsContact.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/QueryRecordsContact.java
new file mode 100644
index 00000000000..4ecdebd08e1
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/QueryRecordsContact.java
@@ -0,0 +1,22 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot.dto.generated;
+
+import org.apache.camel.component.salesforce.api.dto.AbstractQueryRecordsBase;
+
+public class QueryRecordsContact extends AbstractQueryRecordsBase<Contact> {
+}
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/QueryRecordsLine_Item__c.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/QueryRecordsLine_Item__c.java
new file mode 100644
index 00000000000..d4584a9afd0
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/QueryRecordsLine_Item__c.java
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot.dto.generated;
+
+import org.apache.camel.component.salesforce.api.dto.AbstractQueryRecordsBase;
+
+//CHECKSTYLE:OFF
+public class QueryRecordsLine_Item__c extends AbstractQueryRecordsBase<Line_Item__c> {
+}
+//CHECKSTYLE:ON
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/RecordType.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/RecordType.java
new file mode 100644
index 00000000000..d8a66e2d573
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/RecordType.java
@@ -0,0 +1,188 @@
+/*
+ * Salesforce DTO generated by camel-salesforce-maven-plugin.
+ */
+package org.apache.camel.component.salesforce.springboot.dto.generated;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.annotation.Generated;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.camel.component.salesforce.api.dto.AbstractDescribedSObjectBase;
+import org.apache.camel.component.salesforce.api.dto.SObjectDescription;
+import org.apache.camel.component.salesforce.api.dto.SObjectDescriptionUrls;
+import org.apache.camel.component.salesforce.api.dto.SObjectField;
+
+/**
+ * Salesforce DTO for SObject RecordType
+ */
+@Generated("org.apache.camel.maven.CamelSalesforceMojo")
+public class RecordType extends AbstractDescribedSObjectBase {
+
+ public RecordType() {
+ getAttributes().setType("RecordType");
+ }
+
+ private static final SObjectDescription DESCRIPTION = createSObjectDescription();
+
+ private String DeveloperName;
+
+ @JsonProperty("DeveloperName")
+ public String getDeveloperName() {
+ return this.DeveloperName;
+ }
+
+ @JsonProperty("DeveloperName")
+ public void setDeveloperName(String DeveloperName) {
+ this.DeveloperName = DeveloperName;
+ }
+
+ private String NamespacePrefix;
+
+ @JsonProperty("NamespacePrefix")
+ public String getNamespacePrefix() {
+ return this.NamespacePrefix;
+ }
+
+ @JsonProperty("NamespacePrefix")
+ public void setNamespacePrefix(String NamespacePrefix) {
+ this.NamespacePrefix = NamespacePrefix;
+ }
+
+ private String Description;
+
+ @JsonProperty("Description")
+ public String getDescription() {
+ return this.Description;
+ }
+
+ @JsonProperty("Description")
+ public void setDescription(String Description) {
+ this.Description = Description;
+ }
+
+ private String BusinessProcessId;
+
+ @JsonProperty("BusinessProcessId")
+ public String getBusinessProcessId() {
+ return this.BusinessProcessId;
+ }
+
+ @JsonProperty("BusinessProcessId")
+ public void setBusinessProcessId(String BusinessProcessId) {
+ this.BusinessProcessId = BusinessProcessId;
+ }
+
+ private String SobjectType;
+
+ @JsonProperty("SobjectType")
+ public String getSobjectType() {
+ return this.SobjectType;
+ }
+
+ @JsonProperty("SobjectType")
+ public void setSobjectType(String SobjectType) {
+ this.SobjectType = SobjectType;
+ }
+
+ private Boolean IsActive;
+
+ @JsonProperty("IsActive")
+ public Boolean getIsActive() {
+ return this.IsActive;
+ }
+
+ @JsonProperty("IsActive")
+ public void setIsActive(Boolean IsActive) {
+ this.IsActive = IsActive;
+ }
+
+ private User CreatedBy;
+
+ @JsonProperty("CreatedBy")
+ public User getCreatedBy() {
+ return this.CreatedBy;
+ }
+
+ @JsonProperty("CreatedBy")
+ public void setCreatedBy(User CreatedBy) {
+ this.CreatedBy = CreatedBy;
+ }
+
+ private User LastModifiedBy;
+
+ @JsonProperty("LastModifiedBy")
+ public User getLastModifiedBy() {
+ return this.LastModifiedBy;
+ }
+
+ @JsonProperty("LastModifiedBy")
+ public void setLastModifiedBy(User LastModifiedBy) {
+ this.LastModifiedBy = LastModifiedBy;
+ }
+
+ @Override
+ public final SObjectDescription description() {
+ return DESCRIPTION;
+ }
+
+ private static SObjectDescription createSObjectDescription() {
+ final SObjectDescription description = new SObjectDescription();
+
+ final List<SObjectField> fields1 = new ArrayList<>();
+ description.setFields(fields1);
+
+ final SObjectField sObjectField1
+ = createField("Id", "Record Type ID", "id", "tns:ID", 18, false, false, false, false, false, false, true);
+ fields1.add(sObjectField1);
+ final SObjectField sObjectField2
+ = createField("Name", "Name", "string", "xsd:string", 80, false, false, true, false, false, false, true);
+ fields1.add(sObjectField2);
+ final SObjectField sObjectField3 = createField("DeveloperName", "Record Type Name", "string", "xsd:string", 80, false,
+ false, false, false, false, false, false);
+ fields1.add(sObjectField3);
+ final SObjectField sObjectField4 = createField("NamespacePrefix", "Namespace Prefix", "string", "xsd:string", 15, false,
+ true, false, false, false, false, false);
+ fields1.add(sObjectField4);
+ final SObjectField sObjectField5 = createField("Description", "Description", "string", "xsd:string", 255, false, true,
+ false, false, false, false, false);
+ fields1.add(sObjectField5);
+ final SObjectField sObjectField6 = createField("BusinessProcessId", "Business Process ID", "reference", "tns:ID", 18,
+ false, true, false, false, false, false, false);
+ fields1.add(sObjectField6);
+ final SObjectField sObjectField7 = createField("SobjectType", "SObject Type Name", "picklist", "xsd:string", 40, false,
+ false, false, false, false, false, false);
+ fields1.add(sObjectField7);
+ final SObjectField sObjectField8 = createField("IsActive", "Active", "boolean", "xsd:boolean", 0, false, false, false,
+ false, false, false, false);
+ fields1.add(sObjectField8);
+ final SObjectField sObjectField9 = createField("CreatedById", "Created By ID", "reference", "tns:ID", 18, false, false,
+ false, false, false, false, false);
+ fields1.add(sObjectField9);
+ final SObjectField sObjectField10 = createField("CreatedDate", "Created Date", "datetime", "xsd:dateTime", 0, false,
+ false, false, false, false, false, false);
+ fields1.add(sObjectField10);
+ final SObjectField sObjectField11 = createField("LastModifiedById", "Last Modified By ID", "reference", "tns:ID", 18,
+ false, false, false, false, false, false, false);
+ fields1.add(sObjectField11);
+ final SObjectField sObjectField12 = createField("LastModifiedDate", "Last Modified Date", "datetime", "xsd:dateTime", 0,
+ false, false, false, false, false, false, false);
+ fields1.add(sObjectField12);
+ final SObjectField sObjectField13 = createField("SystemModstamp", "System Modstamp", "datetime", "xsd:dateTime", 0,
+ false, false, false, false, false, false, false);
+ fields1.add(sObjectField13);
+
+ description.setLabel("Record Type");
+ description.setLabelPlural("Record Types");
+ description.setName("RecordType");
+
+ final SObjectDescriptionUrls sObjectDescriptionUrls1 = new SObjectDescriptionUrls();
+ sObjectDescriptionUrls1.setDescribe("/services/data/v50.0/sobjects/RecordType/describe");
+ sObjectDescriptionUrls1.setRowTemplate("/services/data/v50.0/sobjects/RecordType/{ID}");
+ sObjectDescriptionUrls1.setSobject("/services/data/v50.0/sobjects/RecordType");
+ description.setUrls(sObjectDescriptionUrls1);
+
+ return description;
+ }
+}
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/StringMSPTest.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/StringMSPTest.java
new file mode 100644
index 00000000000..7e2bf442754
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/StringMSPTest.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot.dto.generated;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import org.apache.camel.component.salesforce.api.StringMultiSelectPicklistDeserializer;
+import org.apache.camel.component.salesforce.api.StringMultiSelectPicklistSerializer;
+import org.apache.camel.component.salesforce.api.dto.AbstractSObjectBase;
+
+/**
+ * Sample POJO for MSP tests using Strings instead of Constants.
+ */
+//CHECKSTYLE:OFF
+public class StringMSPTest extends AbstractSObjectBase {
+
+ public StringMSPTest() {
+ getAttributes().setType("MSPTest");
+ }
+
+ private java.lang.String[] MspField;
+
+ @JsonProperty("MspField")
+ @JsonSerialize(using = StringMultiSelectPicklistSerializer.class)
+ public java.lang.String[] getMspField() {
+ return MspField;
+ }
+
+ @JsonProperty("MspField")
+ @JsonDeserialize(using = StringMultiSelectPicklistDeserializer.class)
+ public void setMspField(java.lang.String[] mspField) {
+ this.MspField = mspField;
+ }
+}
+//CHECKSTYLE:ON
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Task.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Task.java
new file mode 100644
index 00000000000..4e7868ac909
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/Task.java
@@ -0,0 +1,70 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.salesforce.springboot.dto.generated;
+
+import java.time.ZonedDateTime;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.camel.component.salesforce.api.dto.AbstractSObjectBase;
+
+/**
+ * Salesforce DTO for SObject Task
+ */
+//CHECKSTYLE:OFF
+public class Task extends AbstractSObjectBase {
+
+ public Task() {
+ getAttributes().setType("Task");
+ }
+
+ private ZonedDateTime ActivityDate;
+
+ private String Description;
+
+ @JsonProperty("ActivityDate")
+ public ZonedDateTime getActivityDate() {
+ return ActivityDate;
+ }
+
+ @JsonProperty("Description")
+ public String getDescription() {
+ return Description;
+ }
+
+ @JsonProperty("ActivityDate")
+ public void setActivityDate(final ZonedDateTime given) {
+ ActivityDate = given;
+ }
+
+ @JsonProperty("Description")
+ public void setDescription(final String description) {
+ Description = description;
+ }
+
+ private AbstractSObjectBase What;
+
+ @JsonProperty("What")
+ public AbstractSObjectBase getWhat() {
+ return this.What;
+ }
+
+ @JsonProperty("What")
+ public void setWhat(AbstractSObjectBase What) {
+ this.What = What;
+ }
+}
+//CHECKSTYLE:ON
diff --git a/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/User.java b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/User.java
new file mode 100644
index 00000000000..70fe50c26a8
--- /dev/null
+++ b/components-starter/camel-salesforce-starter/src/test/java/org/apache/camel/component/salesforce/springboot/dto/generated/User.java
@@ -0,0 +1,24 @@
+package org.apache.camel.component.salesforce.springboot.dto.generated;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+import org.apache.camel.component.salesforce.api.dto.AbstractDescribedSObjectBase;
+import org.apache.camel.component.salesforce.api.dto.SObjectDescription;
+
+public class User extends AbstractDescribedSObjectBase {
+
+ private String Username;
+
+ @JsonProperty("Username")
+ public String getUsername() {
+ return Username;
+ }
+
+ public void setUsername(String username) {
+ Username = username;
+ }
+
+ @Override
+ public final SObjectDescription description() {
+ return null;
+ }
+}