This is an automated email from the ASF dual-hosted git repository. jamesnetherton pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git
The following commit(s) were added to refs/heads/master by this push: new b2e9f07 Unable to use Salesforce DTOs in native mode b2e9f07 is described below commit b2e9f077e4fb98baf271375d7ac11c9437639e97 Author: James Netherton <jamesnether...@gmail.com> AuthorDate: Thu Mar 4 10:21:52 2021 +0000 Unable to use Salesforce DTOs in native mode Fixes #2312 --- extensions/salesforce/deployment/pom.xml | 8 + .../salesforce/deployment/SalesforceProcessor.java | 53 +- extensions/salesforce/runtime/pom.xml | 8 + integration-tests/salesforce/README.adoc | 18 + integration-tests/salesforce/pom.xml | 35 + .../component/salesforce/SalesforceResource.java | 123 +++ .../component/salesforce/SalesforceRoutes.java} | 24 +- .../component/salesforce/generated/Account.java | 983 +++++++++++++++++++++ .../generated/Account_AccountSourceEnum.java | 65 ++ .../salesforce/generated/Account_ActiveEnum.java | 56 ++ .../Account_BillingGeocodeAccuracyEnum.java | 83 ++ .../generated/Account_CleanStatusEnum.java | 74 ++ .../generated/Account_CustomerPriorityEnum.java | 59 ++ .../salesforce/generated/Account_IndustryEnum.java | 146 +++ .../generated/Account_MyMultiselectEnum.java | 59 ++ .../generated/Account_OwnershipEnum.java | 62 ++ .../salesforce/generated/Account_RatingEnum.java | 59 ++ .../salesforce/generated/Account_SLAEnum.java | 62 ++ .../Account_ShippingGeocodeAccuracyEnum.java | 83 ++ .../salesforce/generated/Account_TypeEnum.java | 71 ++ .../generated/Account_UpsellOpportunityEnum.java | 59 ++ .../salesforce/generated/QueryRecordsAccount.java | 42 + .../component/salesforce/SalesforceTest.java | 94 +- poms/build-parent-it/pom.xml | 5 + 24 files changed, 2282 insertions(+), 49 deletions(-) diff --git a/extensions/salesforce/deployment/pom.xml b/extensions/salesforce/deployment/pom.xml index 2457d02..54df5a4 100644 --- a/extensions/salesforce/deployment/pom.xml +++ b/extensions/salesforce/deployment/pom.xml @@ -30,6 +30,14 @@ <dependencies> <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-jackson-deployment</artifactId> + </dependency> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-jaxb-deployment</artifactId> + </dependency> + <dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-core-deployment</artifactId> </dependency> diff --git a/extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/SalesforceProcessor.java b/extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/SalesforceProcessor.java index b266abc..5017515 100644 --- a/extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/SalesforceProcessor.java +++ b/extensions/salesforce/deployment/src/main/java/org/apache/camel/quarkus/component/salesforce/deployment/SalesforceProcessor.java @@ -16,37 +16,17 @@ */ package org.apache.camel.quarkus.component.salesforce.deployment; -import java.util.Arrays; -import java.util.List; - import io.quarkus.deployment.annotations.BuildProducer; import io.quarkus.deployment.annotations.BuildStep; +import io.quarkus.deployment.builditem.CombinedIndexBuildItem; import io.quarkus.deployment.builditem.ExtensionSslNativeSupportBuildItem; import io.quarkus.deployment.builditem.FeatureBuildItem; import io.quarkus.deployment.builditem.nativeimage.ReflectiveClassBuildItem; -import org.apache.camel.component.salesforce.internal.dto.LoginError; -import org.apache.camel.component.salesforce.internal.dto.LoginToken; -import org.apache.camel.component.salesforce.internal.dto.NotifyForFieldsEnum; -import org.apache.camel.component.salesforce.internal.dto.NotifyForOperationsEnum; -import org.apache.camel.component.salesforce.internal.dto.PushTopic; -import org.apache.camel.component.salesforce.internal.dto.QueryRecordsPushTopic; -import org.apache.camel.component.salesforce.internal.dto.RestChoices; -import org.apache.camel.component.salesforce.internal.dto.RestErrors; -import org.eclipse.jetty.client.HttpClient; -import org.eclipse.jetty.client.ProtocolHandlers; +import org.apache.camel.component.salesforce.api.dto.AbstractDTOBase; +import org.jboss.jandex.DotName; +import org.jboss.jandex.IndexView; class SalesforceProcessor { - private static final List<Class<?>> SALESFORCE_REFLECTIVE_CLASSES = Arrays.asList( - HttpClient.class, - LoginToken.class, - LoginError.class, - NotifyForFieldsEnum.class, - NotifyForOperationsEnum.class, - PushTopic.class, - QueryRecordsPushTopic.class, - RestChoices.class, - RestErrors.class, - ProtocolHandlers.class); private static final String FEATURE = "camel-salesforce"; @@ -61,10 +41,25 @@ class SalesforceProcessor { } @BuildStep - void registerForReflection(BuildProducer<ReflectiveClassBuildItem> reflectiveClass) { - for (Class<?> type : SALESFORCE_REFLECTIVE_CLASSES) { - reflectiveClass.produce( - new ReflectiveClassBuildItem(true, true, type)); - } + void registerForReflection(CombinedIndexBuildItem combinedIndex, BuildProducer<ReflectiveClassBuildItem> reflectiveClass) { + IndexView index = combinedIndex.getIndex(); + + // Register everything extending AbstractDTOBase for reflection + DotName dtoBaseName = DotName.createSimple(AbstractDTOBase.class.getName()); + String[] dtoClasses = index.getAllKnownSubclasses(dtoBaseName) + .stream() + .map(classInfo -> classInfo.name().toString()) + .toArray(String[]::new); + + reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, dtoClasses)); + + // Register internal DTO classes for reflection + String[] internalDtoClasses = index.getKnownClasses() + .stream() + .map(classInfo -> classInfo.name().toString()) + .filter(className -> className.startsWith("org.apache.camel.component.salesforce.internal.dto")) + .toArray(String[]::new); + + reflectiveClass.produce(new ReflectiveClassBuildItem(true, false, internalDtoClasses)); } } diff --git a/extensions/salesforce/runtime/pom.xml b/extensions/salesforce/runtime/pom.xml index 0998dec..89b6981 100644 --- a/extensions/salesforce/runtime/pom.xml +++ b/extensions/salesforce/runtime/pom.xml @@ -47,6 +47,14 @@ <dependencies> <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-jackson</artifactId> + </dependency> + <dependency> + <groupId>io.quarkus</groupId> + <artifactId>quarkus-jaxb</artifactId> + </dependency> + <dependency> <groupId>org.apache.camel.quarkus</groupId> <artifactId>camel-quarkus-core</artifactId> </dependency> diff --git a/integration-tests/salesforce/README.adoc b/integration-tests/salesforce/README.adoc new file mode 100644 index 0000000..69fb1d7 --- /dev/null +++ b/integration-tests/salesforce/README.adoc @@ -0,0 +1,18 @@ +== Camel Quarkus Salesforce Integration Tests + +To run the `camel-quarkus-salesforce` integration tests against the real API, you must first create a Salesforce developer account https://developer.salesforce.com/. + +Next create a new 'Connected App' from the app manager page. You may need to adjust the OAuth policy settings for +`Permitted Users` and also `IP Relaxation` rules, depending on your needs. Also enable Change Data Capture for the 'Account' entity by visiting the Integrations -> Change Data Capture page. + +You can find the app OAuth settings by choosing the 'view' option from the app manager page. Then set the following environment variables. + +[source,shell] +---- +export SALESFORCE_CLIENTID=your-salesforce-client-id +export SALESFORCE_CLIENTSECRET=your-salesforce-client-secret +export SALESFORCE_USERNAME=your-salesforce-username +export SALESFORCE_PASSWORD=your-salesforce-password +---- + +To regenerate the Salesforce DTO classes, run `mvn clean generate-sources -Pgenerate-salesforce-dtos`. \ No newline at end of file diff --git a/integration-tests/salesforce/pom.xml b/integration-tests/salesforce/pom.xml index 98b963d..0a627b7 100644 --- a/integration-tests/salesforce/pom.xml +++ b/integration-tests/salesforce/pom.xml @@ -39,6 +39,10 @@ <artifactId>camel-quarkus-salesforce</artifactId> </dependency> <dependency> + <groupId>org.apache.camel.quarkus</groupId> + <artifactId>camel-quarkus-seda-deployment</artifactId> + </dependency> + <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-resteasy-jsonb</artifactId> </dependency> @@ -55,6 +59,7 @@ <scope>test</scope> </dependency> + <!-- The following dependencies guarantee that this module is built after them. You can update them by running `mvn process-resources -Pformat -N` from the source tree root directory --> <dependency> <groupId>org.apache.camel.quarkus</groupId> @@ -113,6 +118,36 @@ </plugins> </build> </profile> + <profile> + <id>generate-salesforce-dtos</id> + <build> + <plugins> + <plugin> + <groupId>org.apache.camel.maven</groupId> + <artifactId>camel-salesforce-maven-plugin</artifactId> + <executions> + <execution> + <goals> + <goal>generate</goal> + </goals> + <configuration> + <clientId>${env.SALESFORCE_CLIENTID}</clientId> + <clientSecret>${env.SALESFORCE_CLIENTSECRET}</clientSecret> + <userName>${env.SALESFORCE_USERNAME}</userName> + <password>${env.SALESFORCE_PASSWORD}</password> + <loginUrl>https://login.salesforce.com</loginUrl> + <packageName>org.apache.camel.quarkus.component.salesforce.generated</packageName> + <outputDirectory>src/main/java</outputDirectory> + <includes> + <include>Account</include> + </includes> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> </profiles> </project> diff --git a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/SalesforceResource.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/SalesforceResource.java index 381074e..f20f1aa 100644 --- a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/SalesforceResource.java +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/SalesforceResource.java @@ -16,15 +16,35 @@ */ package org.apache.camel.quarkus.component.salesforce; +import java.util.Locale; +import java.util.Map; + import javax.inject.Inject; +import javax.json.Json; +import javax.json.JsonObject; +import javax.json.JsonObjectBuilder; +import javax.ws.rs.Consumes; +import javax.ws.rs.DELETE; import javax.ws.rs.GET; +import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.PathParam; import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import org.apache.camel.CamelContext; +import org.apache.camel.ConsumerTemplate; import org.apache.camel.FluentProducerTemplate; import org.apache.camel.component.salesforce.SalesforceEndpointConfig; +import org.apache.camel.component.salesforce.api.dto.CreateSObjectResult; +import org.apache.camel.component.salesforce.api.dto.bulk.ContentType; +import org.apache.camel.component.salesforce.api.dto.bulk.JobInfo; +import org.apache.camel.component.salesforce.api.dto.bulk.OperationEnum; +import org.apache.camel.quarkus.component.salesforce.generated.Account; +import org.apache.camel.quarkus.component.salesforce.generated.QueryRecordsAccount; +import org.apache.camel.spi.RouteController; @Path("/salesforce") public class SalesforceResource { @@ -32,6 +52,12 @@ public class SalesforceResource { @Inject FluentProducerTemplate template; + @Inject + ConsumerTemplate consumerTemplate; + + @Inject + CamelContext context; + @Path("/document/{id}") @GET @Produces(MediaType.APPLICATION_JSON) @@ -42,4 +68,101 @@ public class SalesforceResource { .to("salesforce:getSObjectWithId?rawPayload=true") .request(); } + + @Path("/account") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Account getAccount() { + QueryRecordsAccount request = template + .toF("salesforce:query?sObjectQuery=SELECT Id,AccountNumber from Account LIMIT 1&sObjectClass=%s", + QueryRecordsAccount.class.getName()) + .request(QueryRecordsAccount.class); + return request.getRecords().get(0); + } + + @Path("/account") + @POST + @Consumes(MediaType.TEXT_PLAIN) + @Produces(MediaType.APPLICATION_JSON) + public String createAccount(String accountName) { + final Account account = new Account(); + account.setName(accountName); + + CreateSObjectResult result = template.to("salesforce:createSObject?sObjectName=Account") + .withBody(account) + .request(CreateSObjectResult.class); + + return result.getId(); + } + + @Path("/account/{id}") + @DELETE + public Response deleteAccount(@PathParam("id") String accountId) { + final Account account = new Account(); + account.setId(accountId); + + template.to("salesforce:deleteSObject") + .withBody(account) + .send(); + + return Response.noContent().build(); + } + + @Path("/bulk") + @POST + @Produces(MediaType.APPLICATION_JSON) + public JsonObject createJob() { + JobInfo jobInfo = createJobInfo(); + jobInfo.setOperation(OperationEnum.INSERT); + + JobInfo result = template.to("salesforce:createJob").withBody(jobInfo).request(JobInfo.class); + return jobInfoToJsonObject(result); + } + + @Path("/bulk") + @DELETE + @Produces(MediaType.APPLICATION_JSON) + public JsonObject abortJob(@QueryParam("jobId") String jobId) { + JobInfo jobInfo = createJobInfo(); + jobInfo.setId(jobId); + + JobInfo result = template.to("salesforce:abortJob").withBody(jobInfo).request(JobInfo.class); + return jobInfoToJsonObject(result); + } + + @Path("/cdc/{action}") + @POST + public Response modifyCdcConsumerState(@PathParam("action") String action) throws Exception { + RouteController controller = context.getRouteController(); + if (action.equals("start")) { + controller.startRoute("cdc"); + } else if (action.equals("stop")) { + controller.stopRoute("cdc"); + } else { + throw new IllegalArgumentException("Unknown action: " + action); + } + return Response.ok().build(); + } + + @Path("/cdc") + @GET + @Produces(MediaType.APPLICATION_JSON) + public Map<String, Object> getCdcEvents() { + Map map = consumerTemplate.receiveBody("seda:events", 10000, Map.class); + return map; + } + + private JobInfo createJobInfo() { + JobInfo jobInfo = new JobInfo(); + jobInfo.setObject(Account.class.getSimpleName()); + jobInfo.setContentType(ContentType.CSV); + return jobInfo; + } + + private JsonObject jobInfoToJsonObject(JobInfo jobInfo) { + JsonObjectBuilder objectBuilder = Json.createObjectBuilder(); + objectBuilder.add("id", jobInfo.getId()); + objectBuilder.add("state", jobInfo.getState().value().toUpperCase(Locale.US)); + return objectBuilder.build(); + } } diff --git a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceTest.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/SalesforceRoutes.java similarity index 52% copy from integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceTest.java copy to integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/SalesforceRoutes.java index 5f5b086..016fbab 100644 --- a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceTest.java +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/SalesforceRoutes.java @@ -16,25 +16,13 @@ */ package org.apache.camel.quarkus.component.salesforce; -import io.quarkus.test.junit.QuarkusTest; -import io.restassured.RestAssured; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; +import org.apache.camel.builder.RouteBuilder; -import static org.hamcrest.core.Is.is; +public class SalesforceRoutes extends RouteBuilder { -@EnabledIfEnvironmentVariable(named = "SALESFORCE_USERNAME", matches = ".+") -@EnabledIfEnvironmentVariable(named = "SALESFORCE_PASSWORD", matches = ".+") -@EnabledIfEnvironmentVariable(named = "SALESFORCE_CLIENTID", matches = ".+") -@EnabledIfEnvironmentVariable(named = "SALESFORCE_CLIENTSECRET", matches = ".+") -@QuarkusTest -class SalesforceTest { - - @Test - public void testSalesforceComponent() { - RestAssured.get("/salesforce/document/test") - .then() - .statusCode(200) - .body("attributes.type", is("Document")); + @Override + public void configure() throws Exception { + from("salesforce:/data/AccountChangeEvent?replayId=-1").routeId("cdc").autoStartup(false) + .to("seda:events"); } } diff --git a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account.java new file mode 100644 index 0000000..8c4c7a7 --- /dev/null +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account.java @@ -0,0 +1,983 @@ +/* + * 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.quarkus.component.salesforce.generated; + +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.thoughtworks.xstream.annotations.XStreamAlias; +import com.thoughtworks.xstream.annotations.XStreamConverter; +import org.apache.camel.component.salesforce.api.MultiSelectPicklistConverter; +import org.apache.camel.component.salesforce.api.MultiSelectPicklistDeserializer; +import org.apache.camel.component.salesforce.api.MultiSelectPicklistSerializer; +import org.apache.camel.component.salesforce.api.PicklistEnumConverter; +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 Account + */ +@Generated("org.apache.camel.maven.CamelSalesforceMojo") +@XStreamAlias("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; + } + + @XStreamAlias("MasterRecord") + private Account MasterRecord; + + @JsonProperty("MasterRecord") + public Account getMasterRecord() { + return this.MasterRecord; + } + + @JsonProperty("MasterRecord") + public void setMasterRecord(Account MasterRecord) { + this.MasterRecord = MasterRecord; + } + + @XStreamConverter(PicklistEnumConverter.class) + private Account_TypeEnum Type; + + @JsonProperty("Type") + public Account_TypeEnum getType() { + return this.Type; + } + + @JsonProperty("Type") + public void setType(Account_TypeEnum Type) { + this.Type = Type; + } + + private String ParentId; + + @JsonProperty("ParentId") + public String getParentId() { + return this.ParentId; + } + + @JsonProperty("ParentId") + public void setParentId(String ParentId) { + this.ParentId = ParentId; + } + + @XStreamAlias("Parent") + 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; + } + + @XStreamConverter(PicklistEnumConverter.class) + private Account_BillingGeocodeAccuracyEnum BillingGeocodeAccuracy; + + @JsonProperty("BillingGeocodeAccuracy") + public Account_BillingGeocodeAccuracyEnum getBillingGeocodeAccuracy() { + return this.BillingGeocodeAccuracy; + } + + @JsonProperty("BillingGeocodeAccuracy") + public void setBillingGeocodeAccuracy(Account_BillingGeocodeAccuracyEnum BillingGeocodeAccuracy) { + this.BillingGeocodeAccuracy = BillingGeocodeAccuracy; + } + + 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; + } + + @XStreamConverter(PicklistEnumConverter.class) + private Account_ShippingGeocodeAccuracyEnum ShippingGeocodeAccuracy; + + @JsonProperty("ShippingGeocodeAccuracy") + public Account_ShippingGeocodeAccuracyEnum getShippingGeocodeAccuracy() { + return this.ShippingGeocodeAccuracy; + } + + @JsonProperty("ShippingGeocodeAccuracy") + public void setShippingGeocodeAccuracy(Account_ShippingGeocodeAccuracyEnum ShippingGeocodeAccuracy) { + this.ShippingGeocodeAccuracy = ShippingGeocodeAccuracy; + } + + 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; + } + + @XStreamConverter(PicklistEnumConverter.class) + 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; + } + + @XStreamConverter(PicklistEnumConverter.class) + private Account_OwnershipEnum Ownership; + + @JsonProperty("Ownership") + public Account_OwnershipEnum getOwnership() { + return this.Ownership; + } + + @JsonProperty("Ownership") + public void setOwnership(Account_OwnershipEnum Ownership) { + this.Ownership = Ownership; + } + + 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; + } + + @XStreamConverter(PicklistEnumConverter.class) + private Account_RatingEnum Rating; + + @JsonProperty("Rating") + public Account_RatingEnum getRating() { + return this.Rating; + } + + @JsonProperty("Rating") + public void setRating(Account_RatingEnum Rating) { + this.Rating = Rating; + } + + 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; + } + + @XStreamConverter(PicklistEnumConverter.class) + private Account_CleanStatusEnum CleanStatus; + + @JsonProperty("CleanStatus") + public Account_CleanStatusEnum getCleanStatus() { + return this.CleanStatus; + } + + @JsonProperty("CleanStatus") + public void setCleanStatus(Account_CleanStatusEnum CleanStatus) { + this.CleanStatus = CleanStatus; + } + + @XStreamConverter(PicklistEnumConverter.class) + private Account_AccountSourceEnum AccountSource; + + @JsonProperty("AccountSource") + public Account_AccountSourceEnum getAccountSource() { + return this.AccountSource; + } + + @JsonProperty("AccountSource") + public void setAccountSource(Account_AccountSourceEnum AccountSource) { + this.AccountSource = AccountSource; + } + + 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; + } + + @XStreamConverter(PicklistEnumConverter.class) + private Account_CustomerPriorityEnum CustomerPriority__c; + + @JsonProperty("CustomerPriority__c") + public Account_CustomerPriorityEnum getCustomerPriority__c() { + return this.CustomerPriority__c; + } + + @JsonProperty("CustomerPriority__c") + public void setCustomerPriority__c(Account_CustomerPriorityEnum CustomerPriority__c) { + this.CustomerPriority__c = CustomerPriority__c; + } + + @XStreamConverter(PicklistEnumConverter.class) + private Account_SLAEnum SLA__c; + + @JsonProperty("SLA__c") + public Account_SLAEnum getSLA__c() { + return this.SLA__c; + } + + @JsonProperty("SLA__c") + public void setSLA__c(Account_SLAEnum SLA__c) { + this.SLA__c = SLA__c; + } + + @XStreamConverter(PicklistEnumConverter.class) + private Account_ActiveEnum Active__c; + + @JsonProperty("Active__c") + public Account_ActiveEnum getActive__c() { + return this.Active__c; + } + + @JsonProperty("Active__c") + public void setActive__c(Account_ActiveEnum Active__c) { + this.Active__c = Active__c; + } + + private Double NumberofLocations__c; + + @JsonProperty("NumberofLocations__c") + public Double getNumberofLocations__c() { + return this.NumberofLocations__c; + } + + @JsonProperty("NumberofLocations__c") + public void setNumberofLocations__c(Double NumberofLocations__c) { + this.NumberofLocations__c = NumberofLocations__c; + } + + @XStreamConverter(PicklistEnumConverter.class) + private Account_UpsellOpportunityEnum UpsellOpportunity__c; + + @JsonProperty("UpsellOpportunity__c") + public Account_UpsellOpportunityEnum getUpsellOpportunity__c() { + return this.UpsellOpportunity__c; + } + + @JsonProperty("UpsellOpportunity__c") + public void setUpsellOpportunity__c(Account_UpsellOpportunityEnum UpsellOpportunity__c) { + this.UpsellOpportunity__c = UpsellOpportunity__c; + } + + private String SLASerialNumber__c; + + @JsonProperty("SLASerialNumber__c") + public String getSLASerialNumber__c() { + return this.SLASerialNumber__c; + } + + @JsonProperty("SLASerialNumber__c") + public void setSLASerialNumber__c(String SLASerialNumber__c) { + this.SLASerialNumber__c = SLASerialNumber__c; + } + + private java.time.LocalDate SLAExpirationDate__c; + + @JsonProperty("SLAExpirationDate__c") + public java.time.LocalDate getSLAExpirationDate__c() { + return this.SLAExpirationDate__c; + } + + @JsonProperty("SLAExpirationDate__c") + public void setSLAExpirationDate__c(java.time.LocalDate SLAExpirationDate__c) { + this.SLAExpirationDate__c = SLAExpirationDate__c; + } + + @XStreamConverter(MultiSelectPicklistConverter.class) + private Account_MyMultiselectEnum[] MyMultiselect__c; + + @JsonProperty("MyMultiselect__c") + @JsonSerialize(using = MultiSelectPicklistSerializer.class) + public Account_MyMultiselectEnum[] getMyMultiselect__c() { + return this.MyMultiselect__c; + } + + @JsonProperty("MyMultiselect__c") + @JsonDeserialize(using = MultiSelectPicklistDeserializer.class) + public void setMyMultiselect__c(Account_MyMultiselectEnum[] MyMultiselect__c) { + this.MyMultiselect__c = MyMultiselect__c; + } + + private QueryRecordsAccount ChildAccounts; + + @JsonProperty("ChildAccounts") + public QueryRecordsAccount getChildAccounts() { + return ChildAccounts; + } + + @JsonProperty("ChildAccounts") + public void setChildAccounts(QueryRecordsAccount ChildAccounts) { + this.ChildAccounts = ChildAccounts; + } + + @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", 255, 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", 255, 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", 255, 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", 255, 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", 255, 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("CustomerPriority__c", "Customer Priority", "picklist", "xsd:string", + 255, false, true, false, false, true, false, false); + fields1.add(sObjectField59); + final SObjectField sObjectField60 = createField("SLA__c", "SLA", "picklist", "xsd:string", 255, false, true, false, + false, true, false, false); + fields1.add(sObjectField60); + final SObjectField sObjectField61 = createField("Active__c", "Active", "picklist", "xsd:string", 255, false, true, + false, false, true, false, false); + fields1.add(sObjectField61); + final SObjectField sObjectField62 = createField("NumberofLocations__c", "Number of Locations", "double", "xsd:double", + 0, false, true, false, false, true, false, false); + fields1.add(sObjectField62); + final SObjectField sObjectField63 = createField("UpsellOpportunity__c", "Upsell Opportunity", "picklist", "xsd:string", + 255, false, true, false, false, true, false, false); + fields1.add(sObjectField63); + final SObjectField sObjectField64 = createField("SLASerialNumber__c", "SLA Serial Number", "string", "xsd:string", 10, + false, true, false, false, true, false, false); + fields1.add(sObjectField64); + final SObjectField sObjectField65 = createField("SLAExpirationDate__c", "SLA Expiration Date", "date", "xsd:date", 0, + false, true, false, false, true, false, false); + fields1.add(sObjectField65); + final SObjectField sObjectField66 = createField("MyMultiselect__c", "MyMultiselect", "multipicklist", "xsd:string", + 4099, false, true, false, false, true, false, false); + fields1.add(sObjectField66); + + description.setLabel("Account"); + description.setLabelPlural("Accounts"); + description.setName("Account"); + + final SObjectDescriptionUrls sObjectDescriptionUrls1 = new SObjectDescriptionUrls(); + sObjectDescriptionUrls1.setApprovalLayouts("/services/data/v50.0/sobjects/Account/describe/approvalLayouts"); + sObjectDescriptionUrls1.setCompactLayouts("/services/data/v50.0/sobjects/Account/describe/compactLayouts"); + sObjectDescriptionUrls1.setDefaultValues("/services/data/v50.0/sobjects/Account/defaultValues?recordTypeId&fields"); + sObjectDescriptionUrls1.setDescribe("/services/data/v50.0/sobjects/Account/describe"); + sObjectDescriptionUrls1.setLayouts("/services/data/v50.0/sobjects/Account/describe/layouts"); + sObjectDescriptionUrls1.setListviews("/services/data/v50.0/sobjects/Account/listviews"); + sObjectDescriptionUrls1.setQuickActions("/services/data/v50.0/sobjects/Account/quickActions"); + sObjectDescriptionUrls1.setRowTemplate("/services/data/v50.0/sobjects/Account/{ID}"); + sObjectDescriptionUrls1.setSobject("/services/data/v50.0/sobjects/Account"); + sObjectDescriptionUrls1.setUiDetailTemplate("https://eu37.salesforce.com/{ID}"); + sObjectDescriptionUrls1.setUiEditTemplate("https://eu37.salesforce.com/{ID}/e"); + sObjectDescriptionUrls1.setUiNewRecord("https://eu37.salesforce.com/001/e"); + description.setUrls(sObjectDescriptionUrls1); + + return description; + } +} diff --git a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_AccountSourceEnum.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_AccountSourceEnum.java new file mode 100644 index 0000000..e68db54 --- /dev/null +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_AccountSourceEnum.java @@ -0,0 +1,65 @@ +/* + * 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.quarkus.component.salesforce.generated; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Salesforce Enumeration DTO for picklist AccountSource + */ +@Generated("org.apache.camel.maven.CamelSalesforceMojo") +public enum Account_AccountSourceEnum { + + // Other + OTHER("Other"), + + // Partner Referral + PARTNER_REFERRAL("Partner Referral"), + + // Phone Inquiry + PHONE_INQUIRY("Phone Inquiry"), + + // Purchased List + PURCHASED_LIST("Purchased List"), + + // Web + WEB("Web"); + + final String value; + + private Account_AccountSourceEnum(String value) { + this.value = value; + } + + @JsonValue + public String value() { + return this.value; + } + + @JsonCreator + public static Account_AccountSourceEnum fromValue(String value) { + for (Account_AccountSourceEnum e : Account_AccountSourceEnum.values()) { + if (e.value.equals(value)) { + return e; + } + } + throw new IllegalArgumentException(value); + } +} diff --git a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_ActiveEnum.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_ActiveEnum.java new file mode 100644 index 0000000..b4b1a91 --- /dev/null +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_ActiveEnum.java @@ -0,0 +1,56 @@ +/* + * 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.quarkus.component.salesforce.generated; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Salesforce Enumeration DTO for picklist Active__c + */ +@Generated("org.apache.camel.maven.CamelSalesforceMojo") +public enum Account_ActiveEnum { + + // No + NO("No"), + + // Yes + YES("Yes"); + + final String value; + + private Account_ActiveEnum(String value) { + this.value = value; + } + + @JsonValue + public String value() { + return this.value; + } + + @JsonCreator + public static Account_ActiveEnum fromValue(String value) { + for (Account_ActiveEnum e : Account_ActiveEnum.values()) { + if (e.value.equals(value)) { + return e; + } + } + throw new IllegalArgumentException(value); + } +} diff --git a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_BillingGeocodeAccuracyEnum.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_BillingGeocodeAccuracyEnum.java new file mode 100644 index 0000000..377bd07 --- /dev/null +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_BillingGeocodeAccuracyEnum.java @@ -0,0 +1,83 @@ +/* + * 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.quarkus.component.salesforce.generated; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Salesforce Enumeration DTO for picklist BillingGeocodeAccuracy + */ +@Generated("org.apache.camel.maven.CamelSalesforceMojo") +public enum Account_BillingGeocodeAccuracyEnum { + + // Address + ADDRESS("Address"), + + // Block + BLOCK("Block"), + + // City + CITY("City"), + + // County + COUNTY("County"), + + // ExtendedZip + EXTENDEDZIP("ExtendedZip"), + + // NearAddress + NEARADDRESS("NearAddress"), + + // Neighborhood + NEIGHBORHOOD("Neighborhood"), + + // State + STATE("State"), + + // Street + STREET("Street"), + + // Unknown + UNKNOWN("Unknown"), + + // Zip + ZIP("Zip"); + + final String value; + + private Account_BillingGeocodeAccuracyEnum(String value) { + this.value = value; + } + + @JsonValue + public String value() { + return this.value; + } + + @JsonCreator + public static Account_BillingGeocodeAccuracyEnum fromValue(String value) { + for (Account_BillingGeocodeAccuracyEnum e : Account_BillingGeocodeAccuracyEnum.values()) { + if (e.value.equals(value)) { + return e; + } + } + throw new IllegalArgumentException(value); + } +} diff --git a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_CleanStatusEnum.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_CleanStatusEnum.java new file mode 100644 index 0000000..d4a6c11 --- /dev/null +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_CleanStatusEnum.java @@ -0,0 +1,74 @@ +/* + * 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.quarkus.component.salesforce.generated; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Salesforce Enumeration DTO for picklist CleanStatus + */ +@Generated("org.apache.camel.maven.CamelSalesforceMojo") +public enum Account_CleanStatusEnum { + + // Acknowledged + ACKNOWLEDGED("Acknowledged"), + + // Different + DIFFERENT("Different"), + + // Inactive + INACTIVE("Inactive"), + + // Matched + MATCHED("Matched"), + + // NotFound + NOTFOUND("NotFound"), + + // Pending + PENDING("Pending"), + + // SelectMatch + SELECTMATCH("SelectMatch"), + + // Skipped + SKIPPED("Skipped"); + + final String value; + + private Account_CleanStatusEnum(String value) { + this.value = value; + } + + @JsonValue + public String value() { + return this.value; + } + + @JsonCreator + public static Account_CleanStatusEnum fromValue(String value) { + for (Account_CleanStatusEnum e : Account_CleanStatusEnum.values()) { + if (e.value.equals(value)) { + return e; + } + } + throw new IllegalArgumentException(value); + } +} diff --git a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_CustomerPriorityEnum.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_CustomerPriorityEnum.java new file mode 100644 index 0000000..8eb1cae --- /dev/null +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_CustomerPriorityEnum.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.quarkus.component.salesforce.generated; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Salesforce Enumeration DTO for picklist CustomerPriority__c + */ +@Generated("org.apache.camel.maven.CamelSalesforceMojo") +public enum Account_CustomerPriorityEnum { + + // High + HIGH("High"), + + // Low + LOW("Low"), + + // Medium + MEDIUM("Medium"); + + final String value; + + private Account_CustomerPriorityEnum(String value) { + this.value = value; + } + + @JsonValue + public String value() { + return this.value; + } + + @JsonCreator + public static Account_CustomerPriorityEnum fromValue(String value) { + for (Account_CustomerPriorityEnum e : Account_CustomerPriorityEnum.values()) { + if (e.value.equals(value)) { + return e; + } + } + throw new IllegalArgumentException(value); + } +} diff --git a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_IndustryEnum.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_IndustryEnum.java new file mode 100644 index 0000000..f967fbd --- /dev/null +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_IndustryEnum.java @@ -0,0 +1,146 @@ +/* + * 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.quarkus.component.salesforce.generated; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Salesforce Enumeration DTO for picklist Industry + */ +@Generated("org.apache.camel.maven.CamelSalesforceMojo") +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); + } +} diff --git a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_MyMultiselectEnum.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_MyMultiselectEnum.java new file mode 100644 index 0000000..7eecfc9 --- /dev/null +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_MyMultiselectEnum.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.quarkus.component.salesforce.generated; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Salesforce Enumeration DTO for picklist MyMultiselect__c + */ +@Generated("org.apache.camel.maven.CamelSalesforceMojo") +public enum Account_MyMultiselectEnum { + + // bar + BAR("bar"), + + // cheese + CHEESE("cheese"), + + // foo + FOO("foo"); + + final String value; + + private Account_MyMultiselectEnum(String value) { + this.value = value; + } + + @JsonValue + public String value() { + return this.value; + } + + @JsonCreator + public static Account_MyMultiselectEnum fromValue(String value) { + for (Account_MyMultiselectEnum e : Account_MyMultiselectEnum.values()) { + if (e.value.equals(value)) { + return e; + } + } + throw new IllegalArgumentException(value); + } +} diff --git a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_OwnershipEnum.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_OwnershipEnum.java new file mode 100644 index 0000000..1a8ae3a --- /dev/null +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_OwnershipEnum.java @@ -0,0 +1,62 @@ +/* + * 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.quarkus.component.salesforce.generated; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Salesforce Enumeration DTO for picklist Ownership + */ +@Generated("org.apache.camel.maven.CamelSalesforceMojo") +public enum Account_OwnershipEnum { + + // Other + OTHER("Other"), + + // Private + PRIVATE("Private"), + + // Public + PUBLIC("Public"), + + // Subsidiary + SUBSIDIARY("Subsidiary"); + + final String value; + + private Account_OwnershipEnum(String value) { + this.value = value; + } + + @JsonValue + public String value() { + return this.value; + } + + @JsonCreator + public static Account_OwnershipEnum fromValue(String value) { + for (Account_OwnershipEnum e : Account_OwnershipEnum.values()) { + if (e.value.equals(value)) { + return e; + } + } + throw new IllegalArgumentException(value); + } +} diff --git a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_RatingEnum.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_RatingEnum.java new file mode 100644 index 0000000..aad7420 --- /dev/null +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_RatingEnum.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.quarkus.component.salesforce.generated; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Salesforce Enumeration DTO for picklist Rating + */ +@Generated("org.apache.camel.maven.CamelSalesforceMojo") +public enum Account_RatingEnum { + + // Cold + COLD("Cold"), + + // Hot + HOT("Hot"), + + // Warm + WARM("Warm"); + + final String value; + + private Account_RatingEnum(String value) { + this.value = value; + } + + @JsonValue + public String value() { + return this.value; + } + + @JsonCreator + public static Account_RatingEnum fromValue(String value) { + for (Account_RatingEnum e : Account_RatingEnum.values()) { + if (e.value.equals(value)) { + return e; + } + } + throw new IllegalArgumentException(value); + } +} diff --git a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_SLAEnum.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_SLAEnum.java new file mode 100644 index 0000000..fdcdebe --- /dev/null +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_SLAEnum.java @@ -0,0 +1,62 @@ +/* + * 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.quarkus.component.salesforce.generated; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Salesforce Enumeration DTO for picklist SLA__c + */ +@Generated("org.apache.camel.maven.CamelSalesforceMojo") +public enum Account_SLAEnum { + + // Bronze + BRONZE("Bronze"), + + // Gold + GOLD("Gold"), + + // Platinum + PLATINUM("Platinum"), + + // Silver + SILVER("Silver"); + + final String value; + + private Account_SLAEnum(String value) { + this.value = value; + } + + @JsonValue + public String value() { + return this.value; + } + + @JsonCreator + public static Account_SLAEnum fromValue(String value) { + for (Account_SLAEnum e : Account_SLAEnum.values()) { + if (e.value.equals(value)) { + return e; + } + } + throw new IllegalArgumentException(value); + } +} diff --git a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_ShippingGeocodeAccuracyEnum.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_ShippingGeocodeAccuracyEnum.java new file mode 100644 index 0000000..c8ac7f6 --- /dev/null +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_ShippingGeocodeAccuracyEnum.java @@ -0,0 +1,83 @@ +/* + * 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.quarkus.component.salesforce.generated; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Salesforce Enumeration DTO for picklist ShippingGeocodeAccuracy + */ +@Generated("org.apache.camel.maven.CamelSalesforceMojo") +public enum Account_ShippingGeocodeAccuracyEnum { + + // Address + ADDRESS("Address"), + + // Block + BLOCK("Block"), + + // City + CITY("City"), + + // County + COUNTY("County"), + + // ExtendedZip + EXTENDEDZIP("ExtendedZip"), + + // NearAddress + NEARADDRESS("NearAddress"), + + // Neighborhood + NEIGHBORHOOD("Neighborhood"), + + // State + STATE("State"), + + // Street + STREET("Street"), + + // Unknown + UNKNOWN("Unknown"), + + // Zip + ZIP("Zip"); + + final String value; + + private Account_ShippingGeocodeAccuracyEnum(String value) { + this.value = value; + } + + @JsonValue + public String value() { + return this.value; + } + + @JsonCreator + public static Account_ShippingGeocodeAccuracyEnum fromValue(String value) { + for (Account_ShippingGeocodeAccuracyEnum e : Account_ShippingGeocodeAccuracyEnum.values()) { + if (e.value.equals(value)) { + return e; + } + } + throw new IllegalArgumentException(value); + } +} diff --git a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_TypeEnum.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_TypeEnum.java new file mode 100644 index 0000000..34cc5d2 --- /dev/null +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_TypeEnum.java @@ -0,0 +1,71 @@ +/* + * 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.quarkus.component.salesforce.generated; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Salesforce Enumeration DTO for picklist Type + */ +@Generated("org.apache.camel.maven.CamelSalesforceMojo") +public enum Account_TypeEnum { + + // Channel Partner / Reseller + CHANNEL_PARTNER___RESELLER("Channel Partner / Reseller"), + + // Customer - Channel + CUSTOMER___CHANNEL("Customer - Channel"), + + // Customer - Direct + CUSTOMER___DIRECT("Customer - Direct"), + + // Installation Partner + INSTALLATION_PARTNER("Installation Partner"), + + // Other + OTHER("Other"), + + // Prospect + PROSPECT("Prospect"), + + // Technology Partner + TECHNOLOGY_PARTNER("Technology Partner"); + + final String value; + + private Account_TypeEnum(String value) { + this.value = value; + } + + @JsonValue + public String value() { + return this.value; + } + + @JsonCreator + public static Account_TypeEnum fromValue(String value) { + for (Account_TypeEnum e : Account_TypeEnum.values()) { + if (e.value.equals(value)) { + return e; + } + } + throw new IllegalArgumentException(value); + } +} diff --git a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_UpsellOpportunityEnum.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_UpsellOpportunityEnum.java new file mode 100644 index 0000000..b49fc1f --- /dev/null +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/Account_UpsellOpportunityEnum.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.quarkus.component.salesforce.generated; + +import javax.annotation.Generated; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +/** + * Salesforce Enumeration DTO for picklist UpsellOpportunity__c + */ +@Generated("org.apache.camel.maven.CamelSalesforceMojo") +public enum Account_UpsellOpportunityEnum { + + // Maybe + MAYBE("Maybe"), + + // No + NO("No"), + + // Yes + YES("Yes"); + + final String value; + + private Account_UpsellOpportunityEnum(String value) { + this.value = value; + } + + @JsonValue + public String value() { + return this.value; + } + + @JsonCreator + public static Account_UpsellOpportunityEnum fromValue(String value) { + for (Account_UpsellOpportunityEnum e : Account_UpsellOpportunityEnum.values()) { + if (e.value.equals(value)) { + return e; + } + } + throw new IllegalArgumentException(value); + } +} diff --git a/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/QueryRecordsAccount.java b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/QueryRecordsAccount.java new file mode 100644 index 0000000..78cab0f --- /dev/null +++ b/integration-tests/salesforce/src/main/java/org/apache/camel/quarkus/component/salesforce/generated/QueryRecordsAccount.java @@ -0,0 +1,42 @@ +/* + * 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.quarkus.component.salesforce.generated; + +import java.util.List; + +import javax.annotation.Generated; + +import com.thoughtworks.xstream.annotations.XStreamImplicit; +import org.apache.camel.component.salesforce.api.dto.AbstractQueryRecordsBase; + +/** + * Salesforce QueryRecords DTO for type Account + */ +@Generated("org.apache.camel.maven.CamelSalesforceMojo") +public class QueryRecordsAccount extends AbstractQueryRecordsBase { + + @XStreamImplicit + private List<Account> records; + + public List<Account> getRecords() { + return records; + } + + public void setRecords(List<Account> records) { + this.records = records; + } +} diff --git a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceTest.java b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceTest.java index 5f5b086..1de2906 100644 --- a/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceTest.java +++ b/integration-tests/salesforce/src/test/java/org/apache/camel/quarkus/component/salesforce/SalesforceTest.java @@ -16,12 +16,20 @@ */ package org.apache.camel.quarkus.component.salesforce; +import java.util.UUID; + import io.quarkus.test.junit.QuarkusTest; import io.restassured.RestAssured; +import io.restassured.path.json.JsonPath; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable; -import static org.hamcrest.core.Is.is; +import static org.hamcrest.Matchers.emptyString; +import static org.hamcrest.Matchers.is; +import static org.hamcrest.core.IsNot.not; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; @EnabledIfEnvironmentVariable(named = "SALESFORCE_USERNAME", matches = ".+") @EnabledIfEnvironmentVariable(named = "SALESFORCE_PASSWORD", matches = ".+") @@ -31,10 +39,92 @@ import static org.hamcrest.core.Is.is; class SalesforceTest { @Test - public void testSalesforceComponent() { + public void testGetDocumentRaw() { RestAssured.get("/salesforce/document/test") .then() .statusCode(200) .body("attributes.type", is("Document")); } + + @Test + public void testGetAccountDTO() { + RestAssured.get("/salesforce/account") + .then() + .statusCode(200) + .body( + "id", not(emptyString()), + "accountNumber", not(emptyString())); + } + + @Test + public void testBulkJobApi() { + // Create bulk job + JsonPath jobInfo = RestAssured.given() + .post("/salesforce/bulk") + .then() + .statusCode(200) + .extract() + .body() + .jsonPath(); + + String id = jobInfo.getString("id"); + String state = jobInfo.getString("state"); + assertNotNull(id); + assertTrue(id.length() > 0); + assertEquals("OPEN", state); + + // Abort bulk job + jobInfo = RestAssured.given() + .queryParam("jobId", id) + .delete("/salesforce/bulk") + .then() + .statusCode(200) + .extract() + .body() + .jsonPath(); + + state = jobInfo.getString("state"); + assertEquals("ABORTED", state); + } + + @Test + public void testChangeDataCaptureEvents() { + String accountId = null; + try { + // Start the Salesforce CDC consumer + RestAssured.post("/salesforce/cdc/start") + .then() + .statusCode(200); + + // Create an account + String accountName = "Camel Quarkus Account Test: " + UUID.randomUUID().toString(); + accountId = RestAssured.given() + .body(accountName) + .post("/salesforce/account") + .then() + .statusCode(200) + .extract() + .body() + .asString(); + + // Verify we captured the account creation event + RestAssured.given() + .get("/salesforce/cdc") + .then() + .statusCode(200) + .body("Name", is(accountName)); + } finally { + // Shut down the CDC consumer + RestAssured.post("/salesforce/cdc/stop") + .then() + .statusCode(200); + + // Clean up + if (accountId != null) { + RestAssured.delete("/salesforce/account/" + accountId) + .then() + .statusCode(204); + } + } + } } diff --git a/poms/build-parent-it/pom.xml b/poms/build-parent-it/pom.xml index 10bd26a..ec3d40b 100644 --- a/poms/build-parent-it/pom.xml +++ b/poms/build-parent-it/pom.xml @@ -67,6 +67,11 @@ </execution> </executions> </plugin> + <plugin> + <groupId>org.apache.camel.maven</groupId> + <artifactId>camel-salesforce-maven-plugin</artifactId> + <version>${camel.version}</version> + </plugin> </plugins> </pluginManagement> <plugins>