This is an automated email from the ASF dual-hosted git repository.

acosentino pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git

commit 297085fc6251ae97cafd4724870770b2fe315dbd
Author: Andrea Cosentino <anco...@gmail.com>
AuthorDate: Fri May 9 11:12:07 2025 +0200

    CAMEL-22013 - camel-api - Remove all usage of component.extension and the 
component.extension package content itself - Salesforce
    
    Signed-off-by: Andrea Cosentino <anco...@gmail.com>
---
 .../component/salesforce/SalesforceComponent.java  |   2 -
 .../SalesforceComponentVerifierExtension.java      | 118 ----------------
 .../salesforce/SalesforceMetaDataExtension.java    | 130 -----------------
 ...lesforceComponentVerifierExtensionManualIT.java | 138 -------------------
 .../SalesforceComponentVerifierExtensionTest.java  |  98 -------------
 .../SalesforceMetaDataExtensionTest.java           | 153 ---------------------
 6 files changed, 639 deletions(-)

diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
index 9e2173b0532..babc4a41f1d 100644
--- 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
+++ 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java
@@ -297,8 +297,6 @@ public class SalesforceComponent extends DefaultComponent 
implements SSLContextP
 
     public SalesforceComponent(CamelContext context) {
         super(context);
-        registerExtension(SalesforceComponentVerifierExtension::new);
-        registerExtension(SalesforceMetaDataExtension::new);
     }
 
     @Override
diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponentVerifierExtension.java
 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponentVerifierExtension.java
deleted file mode 100644
index e96367c84cf..00000000000
--- 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponentVerifierExtension.java
+++ /dev/null
@@ -1,118 +0,0 @@
-/*
- * 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;
-
-import java.util.Collections;
-import java.util.Map;
-import java.util.Optional;
-
-import 
org.apache.camel.component.extension.verifier.DefaultComponentVerifierExtension;
-import org.apache.camel.component.extension.verifier.NoSuchOptionException;
-import org.apache.camel.component.extension.verifier.OptionsGroup;
-import org.apache.camel.component.extension.verifier.ResultBuilder;
-import org.apache.camel.component.extension.verifier.ResultErrorBuilder;
-import org.apache.camel.component.extension.verifier.ResultErrorHelper;
-import org.apache.camel.component.salesforce.api.SalesforceException;
-import org.apache.camel.component.salesforce.api.dto.RestError;
-
-public class SalesforceComponentVerifierExtension extends 
DefaultComponentVerifierExtension {
-
-    SalesforceComponentVerifierExtension() {
-        super("salesforce");
-    }
-
-    // *********************************
-    // Parameters validation
-    // *********************************
-
-    @Override
-    protected Result verifyParameters(Map<String, Object> parameters) {
-        // Validate mandatory component options, needed to be done here as 
these
-        // options are not properly marked as mandatory in the catalog.
-        //
-        // Validation rules are borrowed from SalesforceLoginConfig's validate
-        // method, which support 3 workflow:
-        //
-        // - OAuth Username/Password Flow
-        // - OAuth Refresh Token Flow:
-        // - OAuth JWT Flow
-        //
-        ResultBuilder builder = 
ResultBuilder.withStatusAndScope(Result.Status.OK, Scope.PARAMETERS)
-                .errors(ResultErrorHelper
-                        .requiresAny(parameters,
-                                
OptionsGroup.withName(AuthenticationType.USERNAME_PASSWORD).options("operationName",
 "clientId",
-                                        "clientSecret",
-                                        "userName", "password", 
"!refreshToken", "!keystore"),
-                                
OptionsGroup.withName(AuthenticationType.REFRESH_TOKEN).options("operationName",
 "clientId",
-                                        "clientSecret",
-                                        "refreshToken", "!password", 
"!keystore"),
-                                
OptionsGroup.withName(AuthenticationType.JWT).options("operationName", 
"clientId", "userName",
-                                        "keystore",
-                                        "!password", "!refreshToken")));
-
-        // Validate using the catalog
-        super.verifyParametersAgainstCatalog(builder, parameters);
-
-        return builder.build();
-    }
-
-    // *********************************
-    // Connectivity validation
-    // *********************************
-
-    @Override
-    protected Result verifyConnectivity(Map<String, Object> parameters) {
-        // Default is success
-        ResultBuilder builder = 
ResultBuilder.withStatusAndScope(Result.Status.OK, Scope.CONNECTIVITY);
-
-        try {
-            SalesforceClientTemplate.invoke(getCamelContext(), parameters, 
client -> {
-                client.getVersions(Collections.emptyMap(),
-                        (response, headers, exception) -> 
processSalesforceException(builder, Optional.ofNullable(exception)));
-                return null;
-            });
-        } catch (NoSuchOptionException e) {
-            
builder.error(ResultErrorBuilder.withMissingOption(e.getOptionName()).build());
-        } catch (Exception e) {
-            if (e.getCause() instanceof SalesforceException) {
-                processSalesforceException(builder, 
Optional.of((SalesforceException) e.getCause()));
-            } else {
-                builder.error(ResultErrorBuilder.withException(e).build());
-            }
-        }
-
-        return builder.build();
-    }
-
-    // *********************************
-    // Helpers
-    // *********************************
-
-    private static void processSalesforceException(ResultBuilder builder, 
Optional<SalesforceException> exception) {
-        exception.ifPresent(e -> {
-            builder.error(ResultErrorBuilder.withException(e)
-                    .detail(VerificationError.HttpAttribute.HTTP_CODE, 
e.getStatusCode()).build());
-
-            for (RestError error : e.getErrors()) {
-                
builder.error(ResultErrorBuilder.withCode(VerificationError.StandardCode.GENERIC)
-                        
.description(error.getMessage()).parameterKeys(error.getFields())
-                        .detail("salesforce_code", 
error.getErrorCode()).build());
-            }
-        });
-    }
-
-}
diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceMetaDataExtension.java
 
b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceMetaDataExtension.java
deleted file mode 100644
index 0c390039a27..00000000000
--- 
a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceMetaDataExtension.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * 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;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Collections;
-import java.util.Map;
-import java.util.Optional;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ExecutionException;
-import java.util.function.Consumer;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.module.jsonSchema.jakarta.JsonSchema;
-import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.component.extension.metadata.AbstractMetaDataExtension;
-import org.apache.camel.component.extension.metadata.MetaDataBuilder;
-import org.apache.camel.component.salesforce.api.dto.GlobalObjects;
-import org.apache.camel.component.salesforce.api.dto.SObjectDescription;
-import org.apache.camel.component.salesforce.api.utils.JsonUtils;
-import org.apache.camel.component.salesforce.internal.client.RestClient;
-import 
org.apache.camel.component.salesforce.internal.client.RestClient.ResponseCallback;
-
-public class SalesforceMetaDataExtension extends AbstractMetaDataExtension {
-
-    @FunctionalInterface
-    interface SchemaMapper {
-        JsonSchema map(InputStream stream) throws IOException;
-    }
-
-    private static final ObjectMapper MAPPER = JsonUtils.createObjectMapper();
-
-    @Override
-    public Optional<MetaData> meta(final Map<String, Object> parameters) {
-        final JsonSchema schema = schemaFor(parameters);
-
-        final MetaData metaData = MetaDataBuilder.on(getCamelContext())//
-                .withAttribute(MetaData.CONTENT_TYPE, 
"application/schema+json")//
-                .withAttribute(MetaData.JAVA_TYPE, JsonNode.class)//
-                .withPayload(schema).build();
-
-        return Optional.ofNullable(metaData);
-    }
-
-    JsonSchema allObjectsSchema(final Map<String, Object> parameters) throws 
Exception {
-        return SalesforceClientTemplate.invoke(getCamelContext(), parameters, 
client -> fetchAllObjectsSchema(client));
-    }
-
-    JsonSchema schemaFor(final Map<String, Object> parameters) {
-        try {
-            if (parameters.containsKey(SalesforceEndpointConfig.SOBJECT_NAME)) 
{
-                return singleObjectSchema(parameters);
-            }
-
-            return allObjectsSchema(parameters);
-        } catch (final Exception e) {
-            throw RuntimeCamelException.wrapRuntimeCamelException(e);
-        }
-
-    }
-
-    JsonSchema singleObjectSchema(final Map<String, Object> parameters) throws 
Exception {
-        return SalesforceClientTemplate.invoke(getCamelContext(), parameters,
-                client -> fetchSingleObjectSchema(client, (String) 
parameters.get(SalesforceEndpointConfig.SOBJECT_NAME)));
-    }
-
-    static JsonSchema fetch(final Consumer<ResponseCallback> restMethod, final 
SchemaMapper callback) {
-        final CompletableFuture<JsonSchema> ret = new CompletableFuture<>();
-
-        restMethod.accept((response, headers, exception) -> {
-            if (exception != null) {
-                ret.completeExceptionally(exception);
-            } else {
-                try (final InputStream is = response) {
-                    ret.complete(callback.map(is));
-                } catch (final IOException e) {
-                    ret.completeExceptionally(e);
-                }
-            }
-        });
-
-        try {
-            return ret.get();
-        } catch (InterruptedException e) {
-            Thread.currentThread().interrupt();
-            throw RuntimeCamelException.wrapRuntimeCamelException(e);
-        } catch (ExecutionException e) {
-            throw RuntimeCamelException.wrapRuntimeCamelException(e);
-        }
-    }
-
-    static JsonSchema fetchAllObjectsSchema(final RestClient client) {
-        return fetch(callback -> 
client.getGlobalObjects(Collections.emptyMap(), callback),
-                SalesforceMetaDataExtension::mapAllObjectsSchema);
-    }
-
-    static JsonSchema fetchSingleObjectSchema(final RestClient client, final 
String objectName) {
-        return fetch(callback -> client.getDescription(objectName, 
Collections.emptyMap(), callback),
-                SalesforceMetaDataExtension::mapSingleObjectSchema);
-    }
-
-    static JsonSchema mapAllObjectsSchema(final InputStream stream) throws 
IOException {
-        final GlobalObjects globalObjects = 
MAPPER.readerFor(GlobalObjects.class).readValue(stream);
-
-        return JsonUtils.getGlobalObjectsJsonSchemaAsSchema(globalObjects);
-    }
-
-    static JsonSchema mapSingleObjectSchema(final InputStream stream) throws 
IOException {
-        final SObjectDescription description = 
MAPPER.readerFor(SObjectDescription.class).readValue(stream);
-
-        return JsonUtils.getSObjectJsonSchemaAsSchema(description, true);
-    }
-
-}
diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceComponentVerifierExtensionManualIT.java
 
b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceComponentVerifierExtensionManualIT.java
deleted file mode 100644
index 86c68ea940b..00000000000
--- 
a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceComponentVerifierExtensionManualIT.java
+++ /dev/null
@@ -1,138 +0,0 @@
-/*
- * 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;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.camel.Component;
-import org.apache.camel.component.extension.ComponentVerifierExtension;
-import org.apache.camel.component.salesforce.api.SalesforceException;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.apache.camel.util.ObjectHelper;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertNotNull;
-import static org.junit.jupiter.api.Assertions.assertTrue;
-
-public class SalesforceComponentVerifierExtensionManualIT extends 
CamelTestSupport {
-
-    @Override
-    public boolean isUseRouteBuilder() {
-        return false;
-    }
-
-    // *********************************
-    // Helpers
-    // *********************************
-
-    protected Map<String, Object> getParameters() {
-        SalesforceLoginConfig loginConfig = LoginConfigHelper.getLoginConfig();
-
-        HashMap<String, Object> parameters = new HashMap<>();
-        parameters.put("clientId", loginConfig.getClientId());
-        parameters.put("clientSecret", loginConfig.getClientSecret());
-        parameters.put("userName", loginConfig.getUserName());
-        parameters.put("password", loginConfig.getPassword());
-        parameters.put("loginUrl", loginConfig.getLoginUrl());
-
-        return parameters;
-    }
-
-    public static String getSystemPropertyOrEnvVar(String systemProperty) {
-        String answer = System.getProperty(systemProperty);
-        if (ObjectHelper.isEmpty(answer)) {
-            String envProperty = 
systemProperty.toUpperCase().replaceAll("[.-]", "_");
-            answer = System.getenv(envProperty);
-        }
-
-        return answer;
-    }
-
-    protected ComponentVerifierExtension getExtension() {
-        Component component = context().getComponent("salesforce");
-        ComponentVerifierExtension verifier
-                = 
component.getExtension(ComponentVerifierExtension.class).orElseThrow(IllegalStateException::new);
-
-        return verifier;
-    }
-
-    // *********************************
-    // Connectivity validation
-    // *********************************
-
-    @Test
-    public void testConnectivity() {
-        Map<String, Object> parameters = getParameters();
-        ComponentVerifierExtension.Result result
-                = 
getExtension().verify(ComponentVerifierExtension.Scope.CONNECTIVITY, 
parameters);
-
-        assertEquals(ComponentVerifierExtension.Result.Status.OK, 
result.getStatus());
-    }
-
-    @Test
-    public void testConnectivityWithWrongUserName() {
-        Map<String, Object> parameters = getParameters();
-        parameters.put("userName", "not-a-salesforce-user");
-
-        ComponentVerifierExtension.Result result
-                = 
getExtension().verify(ComponentVerifierExtension.Scope.CONNECTIVITY, 
parameters);
-
-        assertEquals(ComponentVerifierExtension.Result.Status.ERROR, 
result.getStatus());
-        assertEquals(2, result.getErrors().size());
-
-        // Exception
-        
assertEquals(ComponentVerifierExtension.VerificationError.StandardCode.EXCEPTION,
 result.getErrors().get(0).getCode());
-        assertNotNull(result.getErrors().get(0).getDetails()
-                
.get(ComponentVerifierExtension.VerificationError.ExceptionAttribute.EXCEPTION_INSTANCE));
-        assertTrue(result.getErrors().get(0).getDetails()
-                
.get(ComponentVerifierExtension.VerificationError.ExceptionAttribute.EXCEPTION_INSTANCE)
 instanceof SalesforceException);
-        assertEquals(400, result.getErrors().get(0).getDetails()
-                
.get(ComponentVerifierExtension.VerificationError.HttpAttribute.HTTP_CODE));
-
-        // Salesforce Error
-        assertEquals("invalid_grant", 
result.getErrors().get(1).getDetail("salesforce_code"));
-    }
-
-    @Test
-    public void testConnectivityWithWrongSecrets() {
-        Map<String, Object> parameters = getParameters();
-        parameters.put("clientId", "wrong-client-id");
-        parameters.put("clientSecret", "wrong-client-secret");
-
-        ComponentVerifierExtension.Result result
-                = 
getExtension().verify(ComponentVerifierExtension.Scope.CONNECTIVITY, 
parameters);
-
-        assertEquals(ComponentVerifierExtension.Result.Status.ERROR, 
result.getStatus());
-
-        assertEquals(ComponentVerifierExtension.Result.Status.ERROR, 
result.getStatus());
-        assertEquals(2, result.getErrors().size());
-
-        // Exception
-        
assertEquals(ComponentVerifierExtension.VerificationError.StandardCode.EXCEPTION,
 result.getErrors().get(0).getCode());
-        assertNotNull(result.getErrors().get(0).getDetails()
-                
.get(ComponentVerifierExtension.VerificationError.ExceptionAttribute.EXCEPTION_INSTANCE));
-        assertTrue(result.getErrors().get(0).getDetails()
-                
.get(ComponentVerifierExtension.VerificationError.ExceptionAttribute.EXCEPTION_INSTANCE)
 instanceof SalesforceException);
-        assertEquals(400, result.getErrors().get(0).getDetails()
-                
.get(ComponentVerifierExtension.VerificationError.HttpAttribute.HTTP_CODE));
-
-        // Salesforce Error
-        assertEquals("invalid_client_id", 
result.getErrors().get(1).getDetail("salesforce_code"));
-    }
-}
diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceComponentVerifierExtensionTest.java
 
b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceComponentVerifierExtensionTest.java
deleted file mode 100644
index a9a8e71e336..00000000000
--- 
a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceComponentVerifierExtensionTest.java
+++ /dev/null
@@ -1,98 +0,0 @@
-/*
- * 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;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.camel.Component;
-import org.apache.camel.component.extension.ComponentVerifierExtension;
-import org.apache.camel.test.junit5.CamelTestSupport;
-import org.junit.jupiter.api.Test;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-
-public class SalesforceComponentVerifierExtensionTest extends CamelTestSupport 
{
-
-    @Override
-    public boolean isUseRouteBuilder() {
-        return false;
-    }
-
-    protected ComponentVerifierExtension getExtension() {
-        Component component = context().getComponent("salesforce");
-        ComponentVerifierExtension verifier
-                = 
component.getExtension(ComponentVerifierExtension.class).orElseThrow(IllegalStateException::new);
-
-        return verifier;
-    }
-
-    // *********************************
-    // Parameters validation
-    // *********************************
-
-    @Test
-    public void testUsernamePasswordParameters() {
-        HashMap<String, Object> parameters = new HashMap<>();
-        parameters.put("operationName", "subscribe");
-        parameters.put("clientId", "clientId");
-        parameters.put("clientSecret", "clientSecret");
-        parameters.put("userName", "userName");
-        parameters.put("password", "password");
-
-        ComponentVerifierExtension.Result result
-                = 
getExtension().verify(ComponentVerifierExtension.Scope.PARAMETERS, parameters);
-
-        assertEquals(ComponentVerifierExtension.Result.Status.OK, 
result.getStatus());
-    }
-
-    @Test
-    public void testRefreshTokenParameters() {
-        Map<String, Object> parameters = new HashMap<>();
-        parameters.put("operationName", "subscribe");
-        parameters.put("clientId", "clientId");
-        parameters.put("clientSecret", "clientSecret");
-        parameters.put("refreshToken", "refreshToken");
-
-        ComponentVerifierExtension.Result result
-                = 
getExtension().verify(ComponentVerifierExtension.Scope.PARAMETERS, parameters);
-
-        assertEquals(ComponentVerifierExtension.Result.Status.OK, 
result.getStatus());
-    }
-
-    @Test
-    public void testWrongParameters() {
-        HashMap<String, Object> parameters = new HashMap<>();
-        parameters.put("operationName", "subscribe");
-        parameters.put("clientId", "clientId");
-        parameters.put("clientSecret", "clientSecret");
-        parameters.put("password", "password");
-
-        ComponentVerifierExtension.Result result
-                = 
getExtension().verify(ComponentVerifierExtension.Scope.PARAMETERS, parameters);
-
-        assertEquals(ComponentVerifierExtension.Result.Status.ERROR, 
result.getStatus());
-        assertEquals(3, result.getErrors().size());
-
-        
assertEquals(ComponentVerifierExtension.VerificationError.StandardCode.ILLEGAL_PARAMETER_GROUP_COMBINATION,
-                result.getErrors().get(0).getCode());
-        
assertEquals(ComponentVerifierExtension.VerificationError.StandardCode.ILLEGAL_PARAMETER_GROUP_COMBINATION,
-                result.getErrors().get(1).getCode());
-        
assertEquals(ComponentVerifierExtension.VerificationError.StandardCode.ILLEGAL_PARAMETER_GROUP_COMBINATION,
-                result.getErrors().get(2).getCode());
-    }
-}
diff --git 
a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceMetaDataExtensionTest.java
 
b/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceMetaDataExtensionTest.java
deleted file mode 100644
index e893c396b42..00000000000
--- 
a/components/camel-salesforce/camel-salesforce-component/src/test/java/org/apache/camel/component/salesforce/SalesforceMetaDataExtensionTest.java
+++ /dev/null
@@ -1,153 +0,0 @@
-/*
- * 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;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.Optional;
-import java.util.Set;
-import java.util.function.Predicate;
-import java.util.stream.StreamSupport;
-
-import com.fasterxml.jackson.databind.JsonNode;
-import com.fasterxml.jackson.module.jsonSchema.jakarta.JsonSchema;
-import com.fasterxml.jackson.module.jsonSchema.jakarta.types.ObjectSchema;
-import org.apache.camel.component.extension.MetaDataExtension;
-import org.apache.camel.component.extension.MetaDataExtension.MetaData;
-import org.apache.camel.component.salesforce.api.utils.JsonUtils;
-import org.apache.camel.component.salesforce.internal.client.RestClient;
-import 
org.apache.camel.component.salesforce.internal.client.RestClient.ResponseCallback;
-import org.apache.camel.impl.DefaultCamelContext;
-import org.junit.jupiter.api.Test;
-import org.mockito.stubbing.Answer;
-
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.eq;
-import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.mock;
-
-public class SalesforceMetaDataExtensionTest {
-
-    @SuppressWarnings({ "unchecked", "rawtypes" })
-    private static final Class<Map<String, List<String>>> HEADERS_TYPE = 
(Class) Map.class;
-
-    final SalesforceComponent component = new SalesforceComponent();
-
-    final MetaDataExtension metadata;
-
-    final RestClient restClient = mock(RestClient.class);
-
-    public SalesforceMetaDataExtensionTest() {
-        component.setCamelContext(new DefaultCamelContext());
-        SalesforceClientTemplate.restClientSupplier = (c, p) -> restClient;
-        metadata = component.getExtension(MetaDataExtension.class).get();
-    }
-
-    @Test
-    public void componentShouldProvideMetadataExtension() {
-        
assertThat(component.getExtension(MetaDataExtension.class)).isPresent();
-    }
-
-    @Test
-    public void shouldProvideSalesforceObjectFields() throws IOException {
-        final Optional<MetaData> maybeMeta;
-        try (InputStream stream = resource("/objectDescription.json")) {
-            
doAnswer(provideStreamToCallback(stream)).when(restClient).getDescription(eq("Account"),
 any(HEADERS_TYPE),
-                    any(ResponseCallback.class));
-            maybeMeta = 
metadata.meta(Collections.singletonMap(SalesforceEndpointConfig.SOBJECT_NAME, 
"Account"));
-        }
-
-        assertThat(maybeMeta).isPresent();
-
-        final MetaData meta = maybeMeta.get();
-        
assertThat(meta.getAttribute(MetaDataExtension.MetaData.JAVA_TYPE)).isEqualTo(JsonNode.class);
-        
assertThat(meta.getAttribute(MetaDataExtension.MetaData.CONTENT_TYPE)).isEqualTo("application/schema+json");
-
-        final ObjectSchema payload = meta.getPayload(ObjectSchema.class);
-        assertThat(payload).isNotNull();
-
-        assertThat(schemaFor(payload, "Merchandise__c")).isPresent();
-        assertThat(schemaFor(payload, 
"QueryRecordsMerchandise__c")).isPresent();
-    }
-
-    @Test
-    public void shouldProvideSalesforceObjectTypes() throws IOException {
-        final Optional<MetaData> maybeMeta;
-        try (InputStream stream = resource("/globalObjects.json")) {
-            
doAnswer(provideStreamToCallback(stream)).when(restClient).getGlobalObjects(any(HEADERS_TYPE),
-                    any(ResponseCallback.class));
-            maybeMeta = metadata.meta(Collections.emptyMap());
-        }
-
-        assertThat(maybeMeta).isPresent();
-
-        final MetaData meta = maybeMeta.get();
-        
assertThat(meta.getAttribute(MetaDataExtension.MetaData.JAVA_TYPE)).isEqualTo(JsonNode.class);
-        
assertThat(meta.getAttribute(MetaDataExtension.MetaData.CONTENT_TYPE)).isEqualTo("application/schema+json");
-
-        final ObjectSchema payload = meta.getPayload(ObjectSchema.class);
-        assertThat(payload).isNotNull();
-
-        @SuppressWarnings({ "unchecked", "rawtypes" })
-        final Set<JsonSchema> oneOf = (Set) payload.getOneOf();
-        assertThat(oneOf).hasSize(4);
-
-        assertThat(schemaFor(payload, "AcceptedEventRelation")).isPresent()
-                .hasValueSatisfying(schema -> 
assertThat(schema.getTitle()).isEqualTo("Accepted Event Relation"));
-        assertThat(schemaFor(payload, "Account")).isPresent()
-                .hasValueSatisfying(schema -> 
assertThat(schema.getTitle()).isEqualTo("Account"));
-        assertThat(schemaFor(payload, "AccountCleanInfo")).isPresent()
-                .hasValueSatisfying(schema -> 
assertThat(schema.getTitle()).isEqualTo("Account Clean Info"));
-        assertThat(schemaFor(payload, "AccountContactRole")).isPresent()
-                .hasValueSatisfying(schema -> 
assertThat(schema.getTitle()).isEqualTo("Account Contact Role"));
-    }
-
-    static Answer<Void> provideStreamToCallback(final InputStream stream) {
-        return invocation -> {
-            final ResponseCallback callback = (ResponseCallback) 
Arrays.stream(invocation.getArguments())
-                    
.filter(ResponseCallback.class::isInstance).findFirst().get();
-            callback.onResponse(stream, Collections.emptyMap(), null);
-
-            return null;
-        };
-    }
-
-    static InputStream resource(final String path) {
-        return SalesforceMetaDataExtensionTest.class.getResourceAsStream(path);
-    }
-
-    static Optional<ObjectSchema> schemaFor(final ObjectSchema schema, final 
String sObjectName) {
-        @SuppressWarnings({ "unchecked", "rawtypes" })
-        final Set<ObjectSchema> oneOf = (Set) schema.getOneOf();
-
-        return StreamSupport.stream(oneOf.spliterator(), false)
-                .filter(idMatches(JsonUtils.DEFAULT_ID_PREFIX + ":" + 
sObjectName)).findAny();
-    }
-
-    static String valueAt(final JsonNode payload, final int idx, final String 
name) {
-        return payload.get(idx).get(name).asText();
-    }
-
-    private static Predicate<JsonSchema> idMatches(final String wantedId) {
-        return schema -> wantedId.equals(schema.getId());
-    }
-}

Reply via email to