From 7d2273a89087bf86e0f918e32d738bb0c73047dd Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Mon, 21 Oct 2024 03:07:16 +0530 Subject: [PATCH 01/27] Add property file into MI pack's conf folder --- .../AppDeployerServiceComponent.java | 2 + .../config/deployer/ConfigDeployer.java | 117 ++++++++++++++++++ 2 files changed, 119 insertions(+) create mode 100644 components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java diff --git a/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/AppDeployerServiceComponent.java b/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/AppDeployerServiceComponent.java index 6c5cf96d29..f7bbd606ef 100644 --- a/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/AppDeployerServiceComponent.java +++ b/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/AppDeployerServiceComponent.java @@ -37,6 +37,7 @@ import org.wso2.micro.integrator.initializer.StartupFinalizer; import org.wso2.micro.integrator.initializer.dashboard.HeartBeatComponent; import org.wso2.micro.integrator.initializer.deployment.application.deployer.CappDeployer; +import org.wso2.micro.integrator.initializer.deployment.config.deployer.ConfigDeployer; import org.wso2.micro.integrator.initializer.deployment.synapse.deployer.FileRegistryResourceDeployer; import org.wso2.micro.integrator.initializer.deployment.synapse.deployer.SynapseAppDeployer; import org.wso2.micro.integrator.initializer.deployment.user.store.deployer.UserStoreDeployer; @@ -174,6 +175,7 @@ private void addCAppDeployer(DeploymentEngine deploymentEngine) { cappDeployer.registerDeploymentHandler(new DataSourceCappDeployer()); cappDeployer.registerDeploymentHandler(new DefaultAppDeployer()); cappDeployer.registerDeploymentHandler(new SynapseAppDeployer()); + cappDeployer.registerDeploymentHandler(new ConfigDeployer()); //Add the deployer to deployment engine. This should be done after registering the deployment handlers. deploymentEngine.addDeployer(cappDeployer, artifactRepoPath + DeploymentConstants.CAPP_DIR_NAME, diff --git a/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java b/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java new file mode 100644 index 0000000000..b473f54d42 --- /dev/null +++ b/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java @@ -0,0 +1,117 @@ +/* + * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). + * + * WSO2 LLC. 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.wso2.micro.integrator.initializer.deployment.config.deployer; + +import org.apache.axis2.deployment.DeploymentException; +import org.apache.axis2.engine.AxisConfiguration; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.apache.synapse.registry.Registry; +import org.wso2.micro.application.deployer.CarbonApplication; +import org.wso2.micro.application.deployer.config.ApplicationConfiguration; +import org.wso2.micro.application.deployer.config.Artifact; +import org.wso2.micro.application.deployer.config.CappFile; +import org.wso2.micro.application.deployer.handler.AppDeploymentHandler; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; +import java.nio.file.StandardCopyOption; +import java.util.ArrayList; +import java.util.List; + +public class ConfigDeployer implements AppDeploymentHandler { + + private static final Log log = LogFactory.getLog(ConfigDeployer.class); + + private static final String PROPERTY_TYPE = "config/property"; + + private static final String PROPERTY_FILE_NAME = "config.properties"; + + public static final char URL_SEPARATOR_CHAR = '/'; + + public ConfigDeployer() { + } + + @Override + public void deployArtifacts(CarbonApplication carbonApp, AxisConfiguration axisConfig) throws DeploymentException { + if (log.isDebugEnabled()) { + log.debug("Deploying properties - " + carbonApp.getAppName()); + } + ApplicationConfiguration appConfig = carbonApp.getAppConfig(); + List deps = appConfig.getApplicationArtifact().getDependencies(); + + List artifacts = new ArrayList(); + for (Artifact.Dependency dep : deps) { + if (dep.getArtifact() != null) { + artifacts.add(dep.getArtifact()); + } + } + deployConfigArtifacts(artifacts, carbonApp.getAppNameWithVersion()); + } + + @Override + public void undeployArtifacts(CarbonApplication carbonApp, AxisConfiguration axisConfig) throws DeploymentException { + + } + + private void deployConfigArtifacts(List artifacts, String parentAppName) { + artifacts.stream().filter(artifact -> PROPERTY_TYPE.equals(artifact.getType())).forEach(artifact -> { + if (log.isDebugEnabled()) { + log.debug("Deploying config artifact: " + artifact.getName()); + } + writePropertyToConf(artifact, parentAppName); + }); + } + + private void writePropertyToConf(Artifact artifact, String appName) { + // get the file path of the registry config file + List files = artifact.getFiles(); + if (files.size() == 1) { + String configPath = artifact.getExtractedPath() + File.separator + PROPERTY_FILE_NAME; + File regConfigFile = new File(configPath); + if (regConfigFile.exists()) { + try { + Files.copy(Paths.get(configPath), Paths.get(getHome(), "conf", PROPERTY_FILE_NAME), StandardCopyOption.REPLACE_EXISTING); + } catch (IOException e) { + throw new RuntimeException(e); + } + } else { + log.error("Config file not found at : " + configPath); + } + } else { + log.error("config/property type must have a single file which declares " + + "config. But " + files.size() + " files found."); + } + } + + + public static String getHome() { + String carbonHome = System.getProperty("carbon.home"); + if (carbonHome == null || "".equals(carbonHome) || ".".equals(carbonHome)) { + carbonHome = getSystemDependentPath(new File(".").getAbsolutePath()); + } + return carbonHome; + } + + public static String getSystemDependentPath(String path) { + return path.replace(URL_SEPARATOR_CHAR, File.separatorChar); + } + +} From 2e785a948a077768dbb9b37f61e5ca2a4fc4f029 Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Tue, 29 Oct 2024 15:52:51 +0530 Subject: [PATCH 02/27] Add cert deployment --- .../config/deployer/ConfigDeployer.java | 99 ++++++++++++++++--- distribution/src/scripts/micro-integrator.bat | 40 ++++++++ distribution/src/scripts/micro-integrator.sh | 32 ++++++ 3 files changed, 158 insertions(+), 13 deletions(-) diff --git a/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java b/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java index b473f54d42..8c67134f7b 100644 --- a/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java +++ b/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java @@ -19,9 +19,13 @@ import org.apache.axis2.deployment.DeploymentException; import org.apache.axis2.engine.AxisConfiguration; +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.synapse.registry.Registry; +import org.apache.synapse.commons.property.PropertyLoader; +import org.apache.synapse.transport.nhttp.config.SslSenderTrustStoreHolder; +import org.apache.synapse.transport.nhttp.config.TrustStoreHolder; import org.wso2.micro.application.deployer.CarbonApplication; import org.wso2.micro.application.deployer.config.ApplicationConfiguration; import org.wso2.micro.application.deployer.config.Artifact; @@ -29,12 +33,21 @@ import org.wso2.micro.application.deployer.handler.AppDeploymentHandler; import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; import java.io.IOException; -import java.nio.file.Files; +import java.io.InputStream; +import java.nio.file.Path; import java.nio.file.Paths; -import java.nio.file.StandardCopyOption; +import java.security.KeyStore; +import java.security.cert.Certificate; +import java.security.cert.CertificateFactory; import java.util.ArrayList; import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.Properties; public class ConfigDeployer implements AppDeploymentHandler { @@ -42,7 +55,8 @@ public class ConfigDeployer implements AppDeploymentHandler { private static final String PROPERTY_TYPE = "config/property"; - private static final String PROPERTY_FILE_NAME = "config.properties"; + private static final String LOCAL_CONFIG_FILE_NAME = "config.properties"; + private static final String GLOBAL_CONFIG_FILE_NAME = "file.properties"; public static final char URL_SEPARATOR_CHAR = '/'; @@ -76,24 +90,83 @@ private void deployConfigArtifacts(List artifacts, String parentAppNam if (log.isDebugEnabled()) { log.debug("Deploying config artifact: " + artifact.getName()); } - writePropertyToConf(artifact, parentAppName); + writePropertyToMap(artifact); }); } - private void writePropertyToConf(Artifact artifact, String appName) { + private void writePropertyToMap(Artifact artifact) { // get the file path of the registry config file List files = artifact.getFiles(); if (files.size() == 1) { - String configPath = artifact.getExtractedPath() + File.separator + PROPERTY_FILE_NAME; - File regConfigFile = new File(configPath); - if (regConfigFile.exists()) { - try { - Files.copy(Paths.get(configPath), Paths.get(getHome(), "conf", PROPERTY_FILE_NAME), StandardCopyOption.REPLACE_EXISTING); + String globalConfigFilePath = Paths.get(getHome()) + File.separator + "conf" + File.separator + GLOBAL_CONFIG_FILE_NAME; + String localConfigFilePath = artifact.getExtractedPath() + File.separator + LOCAL_CONFIG_FILE_NAME; + File localConfigFile = new File(localConfigFilePath); + File globalConfigFile = new File(globalConfigFilePath); + Properties localProperties = new Properties(); + Properties globalProperties = new Properties(); + if (localConfigFile.exists()) { + try (FileInputStream localFileReader = new FileInputStream(localConfigFile); + FileInputStream globalFileReader = new FileInputStream(globalConfigFile)) { + localProperties.load(localFileReader); + globalProperties.load(globalFileReader); + for (Map.Entry entry : localProperties.entrySet()) { + String key = entry.getKey().toString(); + String propertyValue = System.getenv(key); + if (propertyValue == null) { + propertyValue = System.getProperty(key); + if (propertyValue == null) { + propertyValue = globalProperties.getProperty(key); + } + } + if (PropertyLoader.getInstance().hasKey(key)) { + String oldValue = PropertyLoader.getInstance().getPropertyValue(key); + if (!Objects.equals(oldValue, propertyValue)) { + log.error(String.format("The value:[%s] of the key:[%s] has been " + + "replaced with the new value:[%s].", oldValue, key, propertyValue)); + } + } + if (propertyValue != null) { + if (Objects.equals(entry.getValue().toString(), "cert")) { + // Load the default truststore + char[] password = SslSenderTrustStoreHolder.getInstance().getPassword().toCharArray(); + String type = SslSenderTrustStoreHolder.getInstance().getType(); + Path trustStorePath = Paths.get(getHome(), SslSenderTrustStoreHolder.getInstance().getLocation()); + try (FileInputStream trustStoreStream = new FileInputStream(trustStorePath.toFile())) { + KeyStore trustStore = KeyStore.getInstance(type); + trustStore.load(trustStoreStream, password); + + // Load the certificate file + CertificateFactory certFactory = CertificateFactory.getInstance("X.509"); + try (FileInputStream certStream = new FileInputStream(propertyValue)) { + Certificate cert = certFactory.generateCertificate(certStream); + // Add the certificate to the truststore + trustStore.setCertificateEntry(key, cert); + System.out.println("Certificate added with alias: " + key); + } + // Save the truststore with the new certificate + try (FileOutputStream outputStream = new FileOutputStream(trustStorePath.toFile())) { + trustStore.store(outputStream, password); + System.out.println("Truststore updated successfully at: " + trustStorePath); + } + } catch (Exception e) { + e.printStackTrace(); + System.err.println("Failed to import certificate: " + e.getMessage()); + } + } else { + PropertyLoader.getInstance().setProperty(key, propertyValue); + } + } else { + log.error(String.format("The value of the key:[%s] is not found.", key)); + } + } + } catch (FileNotFoundException e) { + log.debug("Config file not found.:" + e.getMessage()); } catch (IOException e) { - throw new RuntimeException(e); + log.error("config/property type must have a single file which declares " + + "config. But " + files.size() + " files found."); } } else { - log.error("Config file not found at : " + configPath); + log.info("No configuration was used in the integration"); } } else { log.error("config/property type must have a single file which declares " + diff --git a/distribution/src/scripts/micro-integrator.bat b/distribution/src/scripts/micro-integrator.bat index ef06cb8107..cb967a2493 100644 --- a/distribution/src/scripts/micro-integrator.bat +++ b/distribution/src/scripts/micro-integrator.bat @@ -103,6 +103,12 @@ if ""%1""==""car"" goto setCar if ""%1""==""-car"" goto setCar if ""%1""==""--car"" goto setCar +@REM Check if the argument starts with --env-file= +set "envfile=%~1" +if "!envfile:~0,11!"=="--env-file=" ( + set "file_path=!envfile:~11!" + call :export_env_file "!file_path!" +) shift goto setupArgs @@ -133,6 +139,40 @@ echo Stopping the Micro Integrator Server taskkill /F /PID %processId% goto end +:export_env_file +setlocal EnableDelayedExpansion + +set "file_path=%~1" + +REM Check if the file exists +if not exist "!file_path!" ( + echo Error: File '!file_path!' not found. + exit /b 1 +) + +REM Read each line in the file +for /f "usebackq tokens=1,* delims==" %%A in ("!file_path!") do ( + set "line=%%A" + + REM Ignore lines that start with '#' (comments) or are empty + if not "!line!"=="" ( + if "!line:~0,1!" neq "#" ( + set "key=%%A" + set "value=%%B" + + REM Trim surrounding whitespace from key and value + for /f "tokens=* delims= " %%i in ("!key!") do set "key=%%i" + for /f "tokens=* delims= " %%i in ("!value!") do set "value=%%i" + + REM Set the environment variable + setx "!key!" "!value!" >nul + set "!key!=!value!" + ) + ) +) +echo Environment variables loaded from !file_path!. +exit /b 0 + rem ----- commandLifecycle ----------------------------------------------------- :commandLifecycle goto findJdk diff --git a/distribution/src/scripts/micro-integrator.sh b/distribution/src/scripts/micro-integrator.sh index a76f0a3b4c..f28f709787 100644 --- a/distribution/src/scripts/micro-integrator.sh +++ b/distribution/src/scripts/micro-integrator.sh @@ -118,6 +118,32 @@ if [ -e "$CARBON_HOME/wso2carbon.pid" ]; then fi # ----- Process the input command ---------------------------------------------- + +# Function to export variables from the given .env file +export_env_file() { + local file_path="$1" + + # Check if the file exists + if [ ! -f "$file_path" ]; then + echo "Error: File '$file_path' not found." + return 1 # Return with an error status + fi + + # Read the .env file and export each variable to the environment + while IFS='=' read -r key value; do + # Ignore lines starting with '#' (comments) or empty lines + if [[ ! "$key" =~ ^# ]] && [[ "$key" != "" ]]; then + # Trim surrounding whitespace from key and value + key=$(echo "$key" | xargs) + value=$(echo "$value" | xargs) + # Export the key-value pair to the environment + export "$key=$value" + fi + done < "$file_path" + + echo "Environment variables loaded from $file_path." +} + args="" for c in $* do @@ -142,6 +168,12 @@ do else args="$args $c" fi + # Check if the argument starts with --env-file= + if [[ "$c" == --env-file=* ]]; then + # Extract the file path from the argument + file_path="${c#--env-file=}" + export_env_file "$file_path" + fi done if [ "$ARGUMENT" = "car" ]; then From e962194276719c4d944ccd60b142bbc846347c8f Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Wed, 30 Oct 2024 14:05:25 +0530 Subject: [PATCH 03/27] Remove condition --- .../initializer/deployment/config/deployer/ConfigDeployer.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java b/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java index 8c67134f7b..e67f767b4e 100644 --- a/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java +++ b/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java @@ -152,9 +152,8 @@ private void writePropertyToMap(Artifact artifact) { e.printStackTrace(); System.err.println("Failed to import certificate: " + e.getMessage()); } - } else { - PropertyLoader.getInstance().setProperty(key, propertyValue); } + PropertyLoader.getInstance().setProperty(key, propertyValue); } else { log.error(String.format("The value of the key:[%s] is not found.", key)); } From b195e6d15b4c3d6f9063975a7d0a0d9bee4b27a2 Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Mon, 4 Nov 2024 15:52:41 +0530 Subject: [PATCH 04/27] Update the implementation --- .../AppDeployerServiceComponent.java | 2 +- .../config/deployer/ConfigDeployer.java | 216 +++++++++++------- .../carbonserver/CarbonServerExtension.java | 9 + .../carbonserver/TestServerManager.java | 8 + ...pointWithConfigurablePropertyTestCase.java | 105 +++++++++ .../artifacts/ESB/server/conf/file.properties | 22 ++ .../testDeploymentParameter_1.0.0.car | Bin 0 -> 9872 bytes .../common/ServerConfigurationManager.java | 5 + pom.xml | 2 +- 9 files changed, 290 insertions(+), 79 deletions(-) create mode 100644 integration/mediation-tests/tests-other/src/test/java/org/wso2/carbon/esb/resource/test/endpoint/EndpointWithConfigurablePropertyTestCase.java create mode 100644 integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/conf/file.properties create mode 100644 integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/repository/deployment/server/carbonapps/testDeploymentParameter_1.0.0.car diff --git a/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/AppDeployerServiceComponent.java b/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/AppDeployerServiceComponent.java index f7bbd606ef..f93c5e4cc9 100644 --- a/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/AppDeployerServiceComponent.java +++ b/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/AppDeployerServiceComponent.java @@ -170,12 +170,12 @@ private void addCAppDeployer(DeploymentEngine deploymentEngine) { cappDeployer.init(configCtx); // Register application deployment handlers + cappDeployer.registerDeploymentHandler(new ConfigDeployer()); cappDeployer.registerDeploymentHandler(new FileRegistryResourceDeployer( synapseEnvironmentService.getSynapseEnvironment().getSynapseConfiguration().getRegistry())); cappDeployer.registerDeploymentHandler(new DataSourceCappDeployer()); cappDeployer.registerDeploymentHandler(new DefaultAppDeployer()); cappDeployer.registerDeploymentHandler(new SynapseAppDeployer()); - cappDeployer.registerDeploymentHandler(new ConfigDeployer()); //Add the deployer to deployment engine. This should be done after registering the deployment handlers. deploymentEngine.addDeployer(cappDeployer, artifactRepoPath + DeploymentConstants.CAPP_DIR_NAME, diff --git a/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java b/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java index e67f767b4e..07bfb0550c 100644 --- a/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java +++ b/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java @@ -19,13 +19,11 @@ import org.apache.axis2.deployment.DeploymentException; import org.apache.axis2.engine.AxisConfiguration; -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; -import org.apache.synapse.commons.property.PropertyLoader; +import org.apache.synapse.commons.property.PropertyHolder; +import org.apache.synapse.commons.resolvers.ResolverFactory; import org.apache.synapse.transport.nhttp.config.SslSenderTrustStoreHolder; -import org.apache.synapse.transport.nhttp.config.TrustStoreHolder; import org.wso2.micro.application.deployer.CarbonApplication; import org.wso2.micro.application.deployer.config.ApplicationConfiguration; import org.wso2.micro.application.deployer.config.Artifact; @@ -34,16 +32,16 @@ import java.io.File; import java.io.FileInputStream; -import java.io.FileNotFoundException; import java.io.FileOutputStream; +import java.io.FileWriter; import java.io.IOException; -import java.io.InputStream; import java.nio.file.Path; import java.nio.file.Paths; import java.security.KeyStore; import java.security.cert.Certificate; import java.security.cert.CertificateFactory; import java.util.ArrayList; +import java.util.Enumeration; import java.util.List; import java.util.Map; import java.util.Objects; @@ -57,6 +55,8 @@ public class ConfigDeployer implements AppDeploymentHandler { private static final String LOCAL_CONFIG_FILE_NAME = "config.properties"; private static final String GLOBAL_CONFIG_FILE_NAME = "file.properties"; + private static final String IS_CERT_DEPLOYMENT_ENABLED = "isCertDeploymentEnabled"; + private Properties globalProperties; public static final char URL_SEPARATOR_CHAR = '/'; @@ -98,83 +98,146 @@ private void writePropertyToMap(Artifact artifact) { // get the file path of the registry config file List files = artifact.getFiles(); if (files.size() == 1) { - String globalConfigFilePath = Paths.get(getHome()) + File.separator + "conf" + File.separator + GLOBAL_CONFIG_FILE_NAME; - String localConfigFilePath = artifact.getExtractedPath() + File.separator + LOCAL_CONFIG_FILE_NAME; - File localConfigFile = new File(localConfigFilePath); - File globalConfigFile = new File(globalConfigFilePath); - Properties localProperties = new Properties(); - Properties globalProperties = new Properties(); - if (localConfigFile.exists()) { - try (FileInputStream localFileReader = new FileInputStream(localConfigFile); - FileInputStream globalFileReader = new FileInputStream(globalConfigFile)) { - localProperties.load(localFileReader); - globalProperties.load(globalFileReader); - for (Map.Entry entry : localProperties.entrySet()) { - String key = entry.getKey().toString(); - String propertyValue = System.getenv(key); - if (propertyValue == null) { - propertyValue = System.getProperty(key); - if (propertyValue == null) { - propertyValue = globalProperties.getProperty(key); - } - } - if (PropertyLoader.getInstance().hasKey(key)) { - String oldValue = PropertyLoader.getInstance().getPropertyValue(key); - if (!Objects.equals(oldValue, propertyValue)) { - log.error(String.format("The value:[%s] of the key:[%s] has been " + - "replaced with the new value:[%s].", oldValue, key, propertyValue)); - } - } - if (propertyValue != null) { - if (Objects.equals(entry.getValue().toString(), "cert")) { - // Load the default truststore - char[] password = SslSenderTrustStoreHolder.getInstance().getPassword().toCharArray(); - String type = SslSenderTrustStoreHolder.getInstance().getType(); - Path trustStorePath = Paths.get(getHome(), SslSenderTrustStoreHolder.getInstance().getLocation()); - try (FileInputStream trustStoreStream = new FileInputStream(trustStorePath.toFile())) { - KeyStore trustStore = KeyStore.getInstance(type); - trustStore.load(trustStoreStream, password); - - // Load the certificate file - CertificateFactory certFactory = CertificateFactory.getInstance("X.509"); - try (FileInputStream certStream = new FileInputStream(propertyValue)) { - Certificate cert = certFactory.generateCertificate(certStream); - // Add the certificate to the truststore - trustStore.setCertificateEntry(key, cert); - System.out.println("Certificate added with alias: " + key); - } - // Save the truststore with the new certificate - try (FileOutputStream outputStream = new FileOutputStream(trustStorePath.toFile())) { - trustStore.store(outputStream, password); - System.out.println("Truststore updated successfully at: " + trustStorePath); - } - } catch (Exception e) { - e.printStackTrace(); - System.err.println("Failed to import certificate: " + e.getMessage()); - } - } - PropertyLoader.getInstance().setProperty(key, propertyValue); - } else { - log.error(String.format("The value of the key:[%s] is not found.", key)); - } + Path confFolder = Paths.get(getHome(), "conf"); + Path globalPropertiesFilePath = confFolder.resolve(GLOBAL_CONFIG_FILE_NAME) ; + Path serverConfPropertyPath = confFolder.resolve(LOCAL_CONFIG_FILE_NAME); + String configFilePath = artifact.getExtractedPath() + File.separator + LOCAL_CONFIG_FILE_NAME; + processConfFile(configFilePath, globalPropertiesFilePath.toString(), serverConfPropertyPath.toString()); + } else { + log.error("config/property type must have a single file which declares " + + "config. But " + files.size() + " files found."); + } + } + + public void processConfFile(String configFilePath, String globalPropertiesFilePath, String serverConfPropertyPath) { + File configFile = new File(configFilePath); + // Load capp conf property file + Properties configProperties = loadPropertiesFromFile(configFile); + // Load global conf property file + this.globalProperties = loadPropertiesFromFile(new File(globalPropertiesFilePath)); + // Load sever conf property file + Properties serverConfigProperties = loadPropertiesFromFile(new File(serverConfPropertyPath)); + + Properties newServerConfigProperties = new Properties(); + String isCertDeploymentEnabled = getValueOfKey(IS_CERT_DEPLOYMENT_ENABLED); + if (isCertDeploymentEnabled == null) { + isCertDeploymentEnabled = "true"; + } + PropertyHolder.getInstance().setProperty(IS_CERT_DEPLOYMENT_ENABLED, isCertDeploymentEnabled); + if (serverConfigProperties.size() == 0 && configProperties.size() == 0 ) { + log.info("No configuration is used in the integration"); + } else { + if (serverConfigProperties.size() > 0) { + for (Map.Entry entry : serverConfigProperties.entrySet()) { + String key = entry.getKey().toString(); + String type = entry.getValue().toString(); + if (configProperties.containsKey(key)) { + type = configProperties.getProperty(key); + configProperties.remove(key); } - } catch (FileNotFoundException e) { - log.debug("Config file not found.:" + e.getMessage()); - } catch (IOException e) { - log.error("config/property type must have a single file which declares " + - "config. But " + files.size() + " files found."); + newServerConfigProperties.setProperty(key, type); + processConfigProperties(key, type); + } + } + if (configProperties.size() > 0) { + for (Map.Entry entry : configProperties.entrySet()) { + String key = entry.getKey().toString(); + String type = entry.getValue().toString(); + newServerConfigProperties.setProperty(key, type); + processConfigProperties(key, type); } - } else { - log.info("No configuration was used in the integration"); } + writeServerConfFile(serverConfPropertyPath, newServerConfigProperties); + } + } + + public void processConfigProperties(String key, String type) { + String value = getValueOfKey(key); + if (value != null) { + if (Objects.equals(type, "cert")) { + deployCert(key, value); + } + if (PropertyHolder.getInstance().hasKey(key)) { + String oldValue = PropertyHolder.getInstance().getPropertyValue(key); + if (!Objects.equals(oldValue, value)) { + log.error(String.format("The value:[%s] of the key:[%s] has been " + + "replaced with the new value:[%s].", oldValue, key, value)); + } + } + PropertyHolder.getInstance().setProperty(key, value); } else { - log.error("config/property type must have a single file which declares " + - "config. But " + files.size() + " files found."); + log.error(String.format("The value of the key:[%s] is not found.", key)); } } + public void deployCert(String key, String path) { + if (ResolverFactory.getInstance().getResolver("$config:" + IS_CERT_DEPLOYMENT_ENABLED).resolve(). + equals("true")) { + // Load the truststore properties + char[] password = SslSenderTrustStoreHolder.getInstance().getPassword().toCharArray(); + String type = SslSenderTrustStoreHolder.getInstance().getType(); + Path trustStorePath = Paths.get(getHome(), SslSenderTrustStoreHolder.getInstance().getLocation()); + try (FileInputStream trustStoreStream = new FileInputStream(trustStorePath.toFile())) { + KeyStore trustStore = KeyStore.getInstance(type); + trustStore.load(trustStoreStream, password); + + // Load the certificate file + CertificateFactory certFactory = CertificateFactory.getInstance("X.509"); + try (FileInputStream certStream = new FileInputStream(path)) { + Certificate cert = certFactory.generateCertificate(certStream); + // Add the certificate to the truststore + trustStore.setCertificateEntry(key, cert); + log.info("Certificate added with alias: " + key); + } + // Save the truststore with the new certificate + try (FileOutputStream outputStream = new FileOutputStream(trustStorePath.toFile())) { + trustStore.store(outputStream, password); + log.info("Truststore updated successfully at: " + trustStorePath); + } + } catch (Exception e) { + e.printStackTrace(); + System.err.println("Failed to import certificate: " + e.getMessage()); + } + } + } + + public void writeServerConfFile(String file, Properties newServerConfigProperties) { + try (FileWriter writer = new FileWriter(file)) { + Enumeration propertyNames = newServerConfigProperties.propertyNames(); + while (propertyNames.hasMoreElements()) { + String key = (String) propertyNames.nextElement(); + String value = newServerConfigProperties.getProperty(key); + writer.write(key + ":" + value + "\n"); + } + } catch (IOException e) { + e.printStackTrace(); + } + } - public static String getHome() { + public Properties loadPropertiesFromFile(File file) { + Properties properties = new Properties(); + if (file.exists()) { + try (FileInputStream serverConfigFileReader = new FileInputStream(file)) { + properties.load(serverConfigFileReader); + } catch (IOException e) { + log.debug("Error occurred while loading properties from file:" + e.getMessage()); + } + } + return properties; + } + + private String getValueOfKey(String key) { + String value = System.getenv(key); + if (value == null) { + value = System.getProperty(key); + if (value == null) { + value = this.globalProperties.getProperty(key); + } + } + return value; + } + + public String getHome() { String carbonHome = System.getProperty("carbon.home"); if (carbonHome == null || "".equals(carbonHome) || ".".equals(carbonHome)) { carbonHome = getSystemDependentPath(new File(".").getAbsolutePath()); @@ -182,8 +245,7 @@ public static String getHome() { return carbonHome; } - public static String getSystemDependentPath(String path) { + public String getSystemDependentPath(String path) { return path.replace(URL_SEPARATOR_CHAR, File.separatorChar); } - } diff --git a/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/CarbonServerExtension.java b/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/CarbonServerExtension.java index fa74436514..183d10cb01 100644 --- a/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/CarbonServerExtension.java +++ b/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/CarbonServerExtension.java @@ -27,6 +27,7 @@ import org.wso2.carbon.automation.extensions.ExtensionConstants; import javax.xml.xpath.XPathExpressionException; +import java.util.Map; public class CarbonServerExtension extends ExecutionListenerExtension { private static TestServerManager serverManager; @@ -80,6 +81,14 @@ public static void restartServer() { } } + public static void restartServer(Map commandMap) { + try { + serverManager.restartServer(commandMap); + } catch (AutomationFrameworkException e) { + throw new RuntimeException("Exception occurred while restarting the server", e); + } + } + public static void startServer() { try { serverManager.startMIServer(); diff --git a/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/TestServerManager.java b/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/TestServerManager.java index 6379fdfbc6..8d4363d836 100644 --- a/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/TestServerManager.java +++ b/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/TestServerManager.java @@ -153,6 +153,14 @@ void restartServer() throws AutomationFrameworkException { log.info("Server restarted successfully ..."); } + void restartServer(Map commands) throws AutomationFrameworkException { + log.info("Preparing to restart the server ..."); + commandMap.putAll(commands); + carbonServer.serverShutdown(portOffset, true); + carbonServer.startServerUsingCarbonHome(carbonHome, commandMap); + log.info("Server restarted successfully ..."); + } + void startMIServer() throws AutomationFrameworkException { log.info("Preparing to start the MI server ..."); diff --git a/integration/mediation-tests/tests-other/src/test/java/org/wso2/carbon/esb/resource/test/endpoint/EndpointWithConfigurablePropertyTestCase.java b/integration/mediation-tests/tests-other/src/test/java/org/wso2/carbon/esb/resource/test/endpoint/EndpointWithConfigurablePropertyTestCase.java new file mode 100644 index 0000000000..48c355b5b3 --- /dev/null +++ b/integration/mediation-tests/tests-other/src/test/java/org/wso2/carbon/esb/resource/test/endpoint/EndpointWithConfigurablePropertyTestCase.java @@ -0,0 +1,105 @@ +/* + * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). + * + * WSO2 LLC. 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.wso2.carbon.esb.resource.test.endpoint; + +import org.junit.Assert; +import org.testng.annotations.AfterClass; +import org.testng.annotations.BeforeClass; +import org.testng.annotations.Test; +import org.wso2.carbon.automation.engine.frameworkutils.FrameworkPathUtil; +import org.wso2.carbon.automation.test.utils.http.client.HttpRequestUtil; +import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; +import org.wso2.carbon.base.CarbonBaseUtils; +import org.wso2.carbon.integration.common.utils.exceptions.AutomationUtilException; +import org.wso2.esb.integration.common.utils.ESBIntegrationTest; +import org.wso2.esb.integration.common.utils.common.ServerConfigurationManager; + +import java.io.File; +import java.io.IOException; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +public class EndpointWithConfigurablePropertyTestCase extends ESBIntegrationTest { + + private ServerConfigurationManager serverConfigurationManager; + + @BeforeClass(alwaysRun = true) + public void init() throws Exception { + super.init(); + serverConfigurationManager = new ServerConfigurationManager(context); + } + + @Test(groups = {"wso2.esb"}, description = "Configurable property", priority = 1) + public void testConfigurablePropertyWithFile() throws IOException { + Map headers = new HashMap<>(); + URL endpoint = new URL(getApiInvocationURL("getdata/file")); + HttpResponse httpResponse = HttpRequestUtil.doGet(endpoint.toString(), headers); + Assert.assertEquals(httpResponse.getResponseCode(), 200); + Assert.assertEquals(httpResponse.getData(), "{\"msg\": \"file\"}", httpResponse.getData()); + } + + @Test(groups = {"wso2.esb"}, description = "Configurable property", priority = 2) + public void testConfigurablePropertyWithSystemProperty() throws IOException, AutomationUtilException { + File fileProperty = new File(CarbonBaseUtils.getCarbonHome() + File.separator + + "conf" + File.separator + "file.properties"); + Assert.assertTrue(fileProperty.exists() && !fileProperty.isDirectory()); + Assert.assertTrue(fileProperty.delete()); + Map commands = new HashMap<>(); + commands.put("-Dendpoint_url", "http://localhost:8480/endpoint/sys"); + commands.put("-Dcommon_url", "http://localhost:8480/endpoint/sys"); + commands.put("-Durl", "http://localhost:8480/endpoint/sys"); + commands.put("-Durl_value", "http://localhost:8480/endpoint/sys"); + serverConfigurationManager.restartMicroIntegrator(commands); + Map headers = new HashMap<>(); + URL endpoint = new URL(getApiInvocationURL("getdata/sys")); + HttpResponse httpResponse = HttpRequestUtil.doGet(endpoint.toString(), headers); + Assert.assertEquals(httpResponse.getResponseCode(), 200); + Assert.assertEquals(httpResponse.getData(), "{\"msg\": \"sys\"}", httpResponse.getData()); + } + + @Test(groups = {"wso2.esb"}, description = "Configurable property", priority = 3) + public void testConfigurablePropertyWithEnvVariable() throws IOException, AutomationUtilException { + Map commands = new HashMap<>(); + commands.put("--env-file", FrameworkPathUtil.getSystemResourceLocation() + ".env"); + serverConfigurationManager.restartMicroIntegrator(commands); + Map headers = new HashMap<>(); + URL endpoint = new URL(getApiInvocationURL("getdata/env")); + HttpResponse httpResponse = HttpRequestUtil.doGet(endpoint.toString(), headers); + Assert.assertEquals(httpResponse.getResponseCode(), 200); + Assert.assertEquals(httpResponse.getData(), "{\"msg\": \"env\"}", httpResponse.getData()); + } + + @Test(groups = {"wso2.esb"}, description = "Configurable property", priority = 4) + public void testConfigurableProperty() throws IOException, AutomationUtilException { + Map commands = new HashMap<>(); + commands.put("-Dcommon_url", "http://localhost:8480/endpoint/sys"); + commands.put("--env-file", FrameworkPathUtil.getSystemResourceLocation() + ".env"); + serverConfigurationManager.restartMicroIntegrator(commands); + Map headers = new HashMap<>(); + URL endpoint = new URL(getApiInvocationURL("getdata/common")); + HttpResponse httpResponse = HttpRequestUtil.doGet(endpoint.toString(), headers); + Assert.assertEquals(httpResponse.getResponseCode(), 200); + Assert.assertEquals(httpResponse.getData(), "{\"msg\": \"hi\"}", httpResponse.getData()); + } + + @AfterClass(alwaysRun = true) + public void destroy() throws Exception { + super.cleanup(); + } +} diff --git a/integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/conf/file.properties b/integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/conf/file.properties new file mode 100644 index 0000000000..6f65ebbbc7 --- /dev/null +++ b/integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/conf/file.properties @@ -0,0 +1,22 @@ +# +# Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). +# +# WSO2 LLC. 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. +#/ + +common_url=http://localhost:8480/endpoint/file +url=http://localhost:8480/endpoint/file +endpoint_url=http://localhost:8290/endpoint/file +url_value=http://localhost:8290/endpoint/file diff --git a/integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/repository/deployment/server/carbonapps/testDeploymentParameter_1.0.0.car b/integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/repository/deployment/server/carbonapps/testDeploymentParameter_1.0.0.car new file mode 100644 index 0000000000000000000000000000000000000000..2a2a283346af76a9bab4fa5149a0724acda6c376 GIT binary patch literal 9872 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 literal 0 HcmV?d00001 diff --git a/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/common/ServerConfigurationManager.java b/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/common/ServerConfigurationManager.java index 42081fc076..6fbf73b6c4 100644 --- a/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/common/ServerConfigurationManager.java +++ b/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/common/ServerConfigurationManager.java @@ -45,6 +45,7 @@ import java.nio.file.StandardCopyOption; import java.util.ArrayList; import java.util.List; +import java.util.Map; import java.util.Properties; import java.util.concurrent.TimeUnit; import java.util.function.BooleanSupplier; @@ -388,6 +389,10 @@ public void restartMicroIntegrator() throws AutomationUtilException { org.wso2.esb.integration.common.extensions.carbonserver.CarbonServerExtension.restartServer(); } + public void restartMicroIntegrator(Map commandMap) throws AutomationUtilException { + org.wso2.esb.integration.common.extensions.carbonserver.CarbonServerExtension.restartServer(commandMap); + } + /** * Restart Server Gracefully from admin user * diff --git a/pom.xml b/pom.xml index c4ffee3012..aeac288388 100644 --- a/pom.xml +++ b/pom.xml @@ -1597,7 +1597,7 @@ 2.3.0 2.3.1 - 4.0.0-wso2v119 + 4.0.0-wso2v130 [4.0.0, 4.0.1) 4.7.215 1.1.3 From 8b539cf08282fed4d727516c6f2def1d09dccd71 Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Mon, 4 Nov 2024 15:54:19 +0530 Subject: [PATCH 05/27] Change snapse version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index aeac288388..111efdd5a5 100644 --- a/pom.xml +++ b/pom.xml @@ -1597,7 +1597,7 @@ 2.3.0 2.3.1 - 4.0.0-wso2v130 + 4.0.0-wso2v129 [4.0.0, 4.0.1) 4.7.215 1.1.3 From 03c274cdb9f8400337b848ed1d06f421663eb415 Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Tue, 5 Nov 2024 12:34:08 +0530 Subject: [PATCH 06/27] Update error msg --- .../initializer/deployment/config/deployer/ConfigDeployer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java b/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java index 07bfb0550c..8ed8ca799b 100644 --- a/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java +++ b/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java @@ -210,7 +210,7 @@ public void writeServerConfFile(String file, Properties newServerConfigPropertie writer.write(key + ":" + value + "\n"); } } catch (IOException e) { - e.printStackTrace(); + System.err.println("Failed to add the config.properties file to the server conf folder: " + e.getMessage()); } } From 75cb6bd9044c1e5eba3ea4d47191065e5f3026cd Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Wed, 6 Nov 2024 13:29:08 +0530 Subject: [PATCH 07/27] Update capp --- .../carbonapps/testConfiguration_1.0.0.car | Bin 0 -> 9874 bytes .../carbonapps/testDeploymentParameter_1.0.0.car | Bin 9872 -> 0 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/repository/deployment/server/carbonapps/testConfiguration_1.0.0.car delete mode 100644 integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/repository/deployment/server/carbonapps/testDeploymentParameter_1.0.0.car diff --git a/integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/repository/deployment/server/carbonapps/testConfiguration_1.0.0.car b/integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/repository/deployment/server/carbonapps/testConfiguration_1.0.0.car new file mode 100644 index 0000000000000000000000000000000000000000..8f089dff1c7b0ed21f716b444c0265f0bfa18759 GIT binary patch literal 9874 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 Mw+ZB-n|nFpKXg3J-2eap literal 0 HcmV?d00001 diff --git a/integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/repository/deployment/server/carbonapps/testDeploymentParameter_1.0.0.car b/integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/repository/deployment/server/carbonapps/testDeploymentParameter_1.0.0.car deleted file mode 100644 index 2a2a283346af76a9bab4fa5149a0724acda6c376..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9872 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 From 19f2339224e50a1e5e126b3464b4058495bd505b Mon Sep 17 00:00:00 2001 From: Kalaiyarasi Ganeshalingam Date: Thu, 7 Nov 2024 10:29:21 +0530 Subject: [PATCH 08/27] Create main.yml --- .github/workflows/main.yml | 50 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000000..57235e0606 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,50 @@ +name: Integration tests (Ubuntu, OpenJDK21) + +on: [push, pull_request] + +jobs: + ubuntu: + runs-on: ubuntu-latest + strategy: + matrix: + include: + - id: 1 + profile: tests-mediators_tests-other_tests-sample + - id: 2 + profile: tests-service_tests-patches_service-samples + - id: 3 + profile: tests-transport_tests-platform + - id: 4 + profile: management-api_dss-tests + fail-fast: false + steps: + - uses: actions/checkout@v3 + - name: Cache Maven packages + uses: actions/cache@v2 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2 + restore-keys: ${{ runner.os }}-m2 + - name: Set up JDK 11 + uses: actions/setup-java@v2 + with: + distribution: 'temurin' + java-version: '11.0.12+7' + - name: check mvn version + run: echo "MAVEN_VERSION=$(mvn -v)" + - name: check java version + run: echo "JAVA_VERSION=$(java -version)" + - name: Set JAVA_TOOL_OPTIONS + run: | + NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true --add-opens=java.base/java.net=ALL-UNNAMED" + echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV + - name: Build in jdk11 + run: mvn -B clean install -DskipTests --file pom.xml + - name: Set up JDK 21 + uses: actions/setup-java@v2 + with: + distribution: 'temurin' + java-version: '21.0.4' + - name: check mvn version + run: echo "MAVEN_VERSION=$(mvn -v)" + - name: check java version From 32845bee24959bee0649df0051ebc2d17c9cb57a Mon Sep 17 00:00:00 2001 From: Kalaiyarasi Ganeshalingam Date: Thu, 7 Nov 2024 12:44:35 +0530 Subject: [PATCH 09/27] Create maven.yml --- .github/workflows/maven.yml | 55 +++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 .github/workflows/maven.yml diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml new file mode 100644 index 0000000000..fbe79d5979 --- /dev/null +++ b/.github/workflows/maven.yml @@ -0,0 +1,55 @@ +name: Integration tests (Ubuntu, OpenJDK21) + +on: [push, pull_request] + +jobs: + ubuntu: + runs-on: ubuntu-latest + strategy: + matrix: + include: + - id: 1 + profile: tests-mediators_tests-other_tests-sample + - id: 2 + profile: tests-service_tests-patches_service-samples + - id: 3 + profile: tests-transport_tests-platform + - id: 4 + profile: management-api_dss-tests + fail-fast: false + steps: + - uses: actions/checkout@v3 + - name: Cache Maven packages + uses: actions/cache@v2 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2 + restore-keys: ${{ runner.os }}-m2 + - name: Set up JDK 11 + uses: actions/setup-java@v2 + with: + distribution: 'temurin' + java-version: '11.0.12+7' + - name: check mvn version + run: echo "MAVEN_VERSION=$(mvn -v)" + - name: check java version + run: echo "JAVA_VERSION=$(java -version)" + - name: Set JAVA_TOOL_OPTIONS + run: | + NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true --add-opens=java.base/java.net=ALL-UNNAMED" + echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV + - name: Build in jdk11 + run: mvn -B clean install -DskipTests --file pom.xml + - name: Set up JDK 21 + uses: actions/setup-java@v2 + with: + distribution: 'temurin' + java-version: '21.0.4' + - name: check mvn version + run: echo "MAVEN_VERSION=$(mvn -v)" + - name: check java version + run: echo "JAVA_VERSION=$(java -version)" + - name: Print segment + run: echo "Running build for segment ${{ matrix.profile }}" + - name: JDK 21 Tests + run: mvn -B clean install --file integration/pom.xml -P ${{ matrix.profile }} -fae From 6f3cc6a1c55c9c589b2fea4b7a3456c1e5098022 Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Fri, 8 Nov 2024 11:10:44 +0530 Subject: [PATCH 10/27] Update workflow --- .github/workflows/main.yml | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 57235e0606..031210dff1 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -1,6 +1,13 @@ name: Integration tests (Ubuntu, OpenJDK21) -on: [push, pull_request] +on: + push: + branches: + - '*' # Runs on push to any branch + pull_request: + branches: + - '*' # Runs on any pull request + workflow_dispatch: jobs: ubuntu: @@ -25,20 +32,16 @@ jobs: path: ~/.m2 key: ${{ runner.os }}-m2 restore-keys: ${{ runner.os }}-m2 - - name: Set up JDK 11 + - name: Set up JDK 21 uses: actions/setup-java@v2 with: distribution: 'temurin' - java-version: '11.0.12+7' + java-version: '21.0.4' - name: check mvn version run: echo "MAVEN_VERSION=$(mvn -v)" - name: check java version run: echo "JAVA_VERSION=$(java -version)" - - name: Set JAVA_TOOL_OPTIONS - run: | - NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true --add-opens=java.base/java.net=ALL-UNNAMED" - echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV - - name: Build in jdk11 + - name: Build in jdk21 run: mvn -B clean install -DskipTests --file pom.xml - name: Set up JDK 21 uses: actions/setup-java@v2 @@ -48,3 +51,8 @@ jobs: - name: check mvn version run: echo "MAVEN_VERSION=$(mvn -v)" - name: check java version + run: echo "JAVA_VERSION=$(java -version)" + - name: Print segment + run: echo "Running build for segment ${{ matrix.profile }}" + - name: JDK 21 Tests + run: mvn -B clean install --file integration/pom.xml -P ${{ matrix.profile }} -fae From 0b1b1c0d08a35f3b973e43f3bf11d5743d44983e Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Fri, 8 Nov 2024 11:28:24 +0530 Subject: [PATCH 11/27] Revert the changes --- .../AppDeployerServiceComponent.java | 2 - .../config/deployer/ConfigDeployer.java | 251 ------------------ distribution/src/scripts/micro-integrator.bat | 40 --- distribution/src/scripts/micro-integrator.sh | 32 --- .../carbonserver/CarbonServerExtension.java | 9 - .../carbonserver/TestServerManager.java | 8 - ...pointWithConfigurablePropertyTestCase.java | 105 -------- .../artifacts/ESB/server/conf/file.properties | 22 -- .../carbonapps/testConfiguration_1.0.0.car | Bin 9874 -> 0 bytes .../common/ServerConfigurationManager.java | 4 - pom.xml | 2 +- 11 files changed, 1 insertion(+), 474 deletions(-) delete mode 100644 components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java delete mode 100644 integration/mediation-tests/tests-other/src/test/java/org/wso2/carbon/esb/resource/test/endpoint/EndpointWithConfigurablePropertyTestCase.java delete mode 100644 integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/conf/file.properties delete mode 100644 integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/repository/deployment/server/carbonapps/testConfiguration_1.0.0.car diff --git a/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/AppDeployerServiceComponent.java b/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/AppDeployerServiceComponent.java index f93c5e4cc9..6c5cf96d29 100644 --- a/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/AppDeployerServiceComponent.java +++ b/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/AppDeployerServiceComponent.java @@ -37,7 +37,6 @@ import org.wso2.micro.integrator.initializer.StartupFinalizer; import org.wso2.micro.integrator.initializer.dashboard.HeartBeatComponent; import org.wso2.micro.integrator.initializer.deployment.application.deployer.CappDeployer; -import org.wso2.micro.integrator.initializer.deployment.config.deployer.ConfigDeployer; import org.wso2.micro.integrator.initializer.deployment.synapse.deployer.FileRegistryResourceDeployer; import org.wso2.micro.integrator.initializer.deployment.synapse.deployer.SynapseAppDeployer; import org.wso2.micro.integrator.initializer.deployment.user.store.deployer.UserStoreDeployer; @@ -170,7 +169,6 @@ private void addCAppDeployer(DeploymentEngine deploymentEngine) { cappDeployer.init(configCtx); // Register application deployment handlers - cappDeployer.registerDeploymentHandler(new ConfigDeployer()); cappDeployer.registerDeploymentHandler(new FileRegistryResourceDeployer( synapseEnvironmentService.getSynapseEnvironment().getSynapseConfiguration().getRegistry())); cappDeployer.registerDeploymentHandler(new DataSourceCappDeployer()); diff --git a/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java b/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java deleted file mode 100644 index 8ed8ca799b..0000000000 --- a/components/org.wso2.micro.integrator.initializer/src/main/java/org/wso2/micro/integrator/initializer/deployment/config/deployer/ConfigDeployer.java +++ /dev/null @@ -1,251 +0,0 @@ -/* - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. 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.wso2.micro.integrator.initializer.deployment.config.deployer; - -import org.apache.axis2.deployment.DeploymentException; -import org.apache.axis2.engine.AxisConfiguration; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; -import org.apache.synapse.commons.property.PropertyHolder; -import org.apache.synapse.commons.resolvers.ResolverFactory; -import org.apache.synapse.transport.nhttp.config.SslSenderTrustStoreHolder; -import org.wso2.micro.application.deployer.CarbonApplication; -import org.wso2.micro.application.deployer.config.ApplicationConfiguration; -import org.wso2.micro.application.deployer.config.Artifact; -import org.wso2.micro.application.deployer.config.CappFile; -import org.wso2.micro.application.deployer.handler.AppDeploymentHandler; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileOutputStream; -import java.io.FileWriter; -import java.io.IOException; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.security.KeyStore; -import java.security.cert.Certificate; -import java.security.cert.CertificateFactory; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.Properties; - -public class ConfigDeployer implements AppDeploymentHandler { - - private static final Log log = LogFactory.getLog(ConfigDeployer.class); - - private static final String PROPERTY_TYPE = "config/property"; - - private static final String LOCAL_CONFIG_FILE_NAME = "config.properties"; - private static final String GLOBAL_CONFIG_FILE_NAME = "file.properties"; - private static final String IS_CERT_DEPLOYMENT_ENABLED = "isCertDeploymentEnabled"; - private Properties globalProperties; - - public static final char URL_SEPARATOR_CHAR = '/'; - - public ConfigDeployer() { - } - - @Override - public void deployArtifacts(CarbonApplication carbonApp, AxisConfiguration axisConfig) throws DeploymentException { - if (log.isDebugEnabled()) { - log.debug("Deploying properties - " + carbonApp.getAppName()); - } - ApplicationConfiguration appConfig = carbonApp.getAppConfig(); - List deps = appConfig.getApplicationArtifact().getDependencies(); - - List artifacts = new ArrayList(); - for (Artifact.Dependency dep : deps) { - if (dep.getArtifact() != null) { - artifacts.add(dep.getArtifact()); - } - } - deployConfigArtifacts(artifacts, carbonApp.getAppNameWithVersion()); - } - - @Override - public void undeployArtifacts(CarbonApplication carbonApp, AxisConfiguration axisConfig) throws DeploymentException { - - } - - private void deployConfigArtifacts(List artifacts, String parentAppName) { - artifacts.stream().filter(artifact -> PROPERTY_TYPE.equals(artifact.getType())).forEach(artifact -> { - if (log.isDebugEnabled()) { - log.debug("Deploying config artifact: " + artifact.getName()); - } - writePropertyToMap(artifact); - }); - } - - private void writePropertyToMap(Artifact artifact) { - // get the file path of the registry config file - List files = artifact.getFiles(); - if (files.size() == 1) { - Path confFolder = Paths.get(getHome(), "conf"); - Path globalPropertiesFilePath = confFolder.resolve(GLOBAL_CONFIG_FILE_NAME) ; - Path serverConfPropertyPath = confFolder.resolve(LOCAL_CONFIG_FILE_NAME); - String configFilePath = artifact.getExtractedPath() + File.separator + LOCAL_CONFIG_FILE_NAME; - processConfFile(configFilePath, globalPropertiesFilePath.toString(), serverConfPropertyPath.toString()); - } else { - log.error("config/property type must have a single file which declares " + - "config. But " + files.size() + " files found."); - } - } - - public void processConfFile(String configFilePath, String globalPropertiesFilePath, String serverConfPropertyPath) { - File configFile = new File(configFilePath); - // Load capp conf property file - Properties configProperties = loadPropertiesFromFile(configFile); - // Load global conf property file - this.globalProperties = loadPropertiesFromFile(new File(globalPropertiesFilePath)); - // Load sever conf property file - Properties serverConfigProperties = loadPropertiesFromFile(new File(serverConfPropertyPath)); - - Properties newServerConfigProperties = new Properties(); - String isCertDeploymentEnabled = getValueOfKey(IS_CERT_DEPLOYMENT_ENABLED); - if (isCertDeploymentEnabled == null) { - isCertDeploymentEnabled = "true"; - } - PropertyHolder.getInstance().setProperty(IS_CERT_DEPLOYMENT_ENABLED, isCertDeploymentEnabled); - if (serverConfigProperties.size() == 0 && configProperties.size() == 0 ) { - log.info("No configuration is used in the integration"); - } else { - if (serverConfigProperties.size() > 0) { - for (Map.Entry entry : serverConfigProperties.entrySet()) { - String key = entry.getKey().toString(); - String type = entry.getValue().toString(); - if (configProperties.containsKey(key)) { - type = configProperties.getProperty(key); - configProperties.remove(key); - } - newServerConfigProperties.setProperty(key, type); - processConfigProperties(key, type); - } - } - if (configProperties.size() > 0) { - for (Map.Entry entry : configProperties.entrySet()) { - String key = entry.getKey().toString(); - String type = entry.getValue().toString(); - newServerConfigProperties.setProperty(key, type); - processConfigProperties(key, type); - } - } - writeServerConfFile(serverConfPropertyPath, newServerConfigProperties); - } - } - - public void processConfigProperties(String key, String type) { - String value = getValueOfKey(key); - if (value != null) { - if (Objects.equals(type, "cert")) { - deployCert(key, value); - } - if (PropertyHolder.getInstance().hasKey(key)) { - String oldValue = PropertyHolder.getInstance().getPropertyValue(key); - if (!Objects.equals(oldValue, value)) { - log.error(String.format("The value:[%s] of the key:[%s] has been " + - "replaced with the new value:[%s].", oldValue, key, value)); - } - } - PropertyHolder.getInstance().setProperty(key, value); - } else { - log.error(String.format("The value of the key:[%s] is not found.", key)); - } - } - - public void deployCert(String key, String path) { - if (ResolverFactory.getInstance().getResolver("$config:" + IS_CERT_DEPLOYMENT_ENABLED).resolve(). - equals("true")) { - // Load the truststore properties - char[] password = SslSenderTrustStoreHolder.getInstance().getPassword().toCharArray(); - String type = SslSenderTrustStoreHolder.getInstance().getType(); - Path trustStorePath = Paths.get(getHome(), SslSenderTrustStoreHolder.getInstance().getLocation()); - try (FileInputStream trustStoreStream = new FileInputStream(trustStorePath.toFile())) { - KeyStore trustStore = KeyStore.getInstance(type); - trustStore.load(trustStoreStream, password); - - // Load the certificate file - CertificateFactory certFactory = CertificateFactory.getInstance("X.509"); - try (FileInputStream certStream = new FileInputStream(path)) { - Certificate cert = certFactory.generateCertificate(certStream); - // Add the certificate to the truststore - trustStore.setCertificateEntry(key, cert); - log.info("Certificate added with alias: " + key); - } - // Save the truststore with the new certificate - try (FileOutputStream outputStream = new FileOutputStream(trustStorePath.toFile())) { - trustStore.store(outputStream, password); - log.info("Truststore updated successfully at: " + trustStorePath); - } - } catch (Exception e) { - e.printStackTrace(); - System.err.println("Failed to import certificate: " + e.getMessage()); - } - } - } - - public void writeServerConfFile(String file, Properties newServerConfigProperties) { - try (FileWriter writer = new FileWriter(file)) { - Enumeration propertyNames = newServerConfigProperties.propertyNames(); - while (propertyNames.hasMoreElements()) { - String key = (String) propertyNames.nextElement(); - String value = newServerConfigProperties.getProperty(key); - writer.write(key + ":" + value + "\n"); - } - } catch (IOException e) { - System.err.println("Failed to add the config.properties file to the server conf folder: " + e.getMessage()); - } - } - - public Properties loadPropertiesFromFile(File file) { - Properties properties = new Properties(); - if (file.exists()) { - try (FileInputStream serverConfigFileReader = new FileInputStream(file)) { - properties.load(serverConfigFileReader); - } catch (IOException e) { - log.debug("Error occurred while loading properties from file:" + e.getMessage()); - } - } - return properties; - } - - private String getValueOfKey(String key) { - String value = System.getenv(key); - if (value == null) { - value = System.getProperty(key); - if (value == null) { - value = this.globalProperties.getProperty(key); - } - } - return value; - } - - public String getHome() { - String carbonHome = System.getProperty("carbon.home"); - if (carbonHome == null || "".equals(carbonHome) || ".".equals(carbonHome)) { - carbonHome = getSystemDependentPath(new File(".").getAbsolutePath()); - } - return carbonHome; - } - - public String getSystemDependentPath(String path) { - return path.replace(URL_SEPARATOR_CHAR, File.separatorChar); - } -} diff --git a/distribution/src/scripts/micro-integrator.bat b/distribution/src/scripts/micro-integrator.bat index cb967a2493..ef06cb8107 100644 --- a/distribution/src/scripts/micro-integrator.bat +++ b/distribution/src/scripts/micro-integrator.bat @@ -103,12 +103,6 @@ if ""%1""==""car"" goto setCar if ""%1""==""-car"" goto setCar if ""%1""==""--car"" goto setCar -@REM Check if the argument starts with --env-file= -set "envfile=%~1" -if "!envfile:~0,11!"=="--env-file=" ( - set "file_path=!envfile:~11!" - call :export_env_file "!file_path!" -) shift goto setupArgs @@ -139,40 +133,6 @@ echo Stopping the Micro Integrator Server taskkill /F /PID %processId% goto end -:export_env_file -setlocal EnableDelayedExpansion - -set "file_path=%~1" - -REM Check if the file exists -if not exist "!file_path!" ( - echo Error: File '!file_path!' not found. - exit /b 1 -) - -REM Read each line in the file -for /f "usebackq tokens=1,* delims==" %%A in ("!file_path!") do ( - set "line=%%A" - - REM Ignore lines that start with '#' (comments) or are empty - if not "!line!"=="" ( - if "!line:~0,1!" neq "#" ( - set "key=%%A" - set "value=%%B" - - REM Trim surrounding whitespace from key and value - for /f "tokens=* delims= " %%i in ("!key!") do set "key=%%i" - for /f "tokens=* delims= " %%i in ("!value!") do set "value=%%i" - - REM Set the environment variable - setx "!key!" "!value!" >nul - set "!key!=!value!" - ) - ) -) -echo Environment variables loaded from !file_path!. -exit /b 0 - rem ----- commandLifecycle ----------------------------------------------------- :commandLifecycle goto findJdk diff --git a/distribution/src/scripts/micro-integrator.sh b/distribution/src/scripts/micro-integrator.sh index dd31526efb..3b483e8701 100644 --- a/distribution/src/scripts/micro-integrator.sh +++ b/distribution/src/scripts/micro-integrator.sh @@ -118,32 +118,6 @@ if [ -e "$CARBON_HOME/wso2carbon.pid" ]; then fi # ----- Process the input command ---------------------------------------------- - -# Function to export variables from the given .env file -export_env_file() { - local file_path="$1" - - # Check if the file exists - if [ ! -f "$file_path" ]; then - echo "Error: File '$file_path' not found." - return 1 # Return with an error status - fi - - # Read the .env file and export each variable to the environment - while IFS='=' read -r key value; do - # Ignore lines starting with '#' (comments) or empty lines - if [[ ! "$key" =~ ^# ]] && [[ "$key" != "" ]]; then - # Trim surrounding whitespace from key and value - key=$(echo "$key" | xargs) - value=$(echo "$value" | xargs) - # Export the key-value pair to the environment - export "$key=$value" - fi - done < "$file_path" - - echo "Environment variables loaded from $file_path." -} - args="" for c in $* do @@ -168,12 +142,6 @@ do else args="$args $c" fi - # Check if the argument starts with --env-file= - if [[ "$c" == --env-file=* ]]; then - # Extract the file path from the argument - file_path="${c#--env-file=}" - export_env_file "$file_path" - fi done if [ "$ARGUMENT" = "car" ]; then diff --git a/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/CarbonServerExtension.java b/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/CarbonServerExtension.java index 183d10cb01..fa74436514 100644 --- a/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/CarbonServerExtension.java +++ b/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/CarbonServerExtension.java @@ -27,7 +27,6 @@ import org.wso2.carbon.automation.extensions.ExtensionConstants; import javax.xml.xpath.XPathExpressionException; -import java.util.Map; public class CarbonServerExtension extends ExecutionListenerExtension { private static TestServerManager serverManager; @@ -81,14 +80,6 @@ public static void restartServer() { } } - public static void restartServer(Map commandMap) { - try { - serverManager.restartServer(commandMap); - } catch (AutomationFrameworkException e) { - throw new RuntimeException("Exception occurred while restarting the server", e); - } - } - public static void startServer() { try { serverManager.startMIServer(); diff --git a/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/TestServerManager.java b/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/TestServerManager.java index 8d4363d836..6379fdfbc6 100644 --- a/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/TestServerManager.java +++ b/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/TestServerManager.java @@ -153,14 +153,6 @@ void restartServer() throws AutomationFrameworkException { log.info("Server restarted successfully ..."); } - void restartServer(Map commands) throws AutomationFrameworkException { - log.info("Preparing to restart the server ..."); - commandMap.putAll(commands); - carbonServer.serverShutdown(portOffset, true); - carbonServer.startServerUsingCarbonHome(carbonHome, commandMap); - log.info("Server restarted successfully ..."); - } - void startMIServer() throws AutomationFrameworkException { log.info("Preparing to start the MI server ..."); diff --git a/integration/mediation-tests/tests-other/src/test/java/org/wso2/carbon/esb/resource/test/endpoint/EndpointWithConfigurablePropertyTestCase.java b/integration/mediation-tests/tests-other/src/test/java/org/wso2/carbon/esb/resource/test/endpoint/EndpointWithConfigurablePropertyTestCase.java deleted file mode 100644 index 48c355b5b3..0000000000 --- a/integration/mediation-tests/tests-other/src/test/java/org/wso2/carbon/esb/resource/test/endpoint/EndpointWithConfigurablePropertyTestCase.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). - * - * WSO2 LLC. 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.wso2.carbon.esb.resource.test.endpoint; - -import org.junit.Assert; -import org.testng.annotations.AfterClass; -import org.testng.annotations.BeforeClass; -import org.testng.annotations.Test; -import org.wso2.carbon.automation.engine.frameworkutils.FrameworkPathUtil; -import org.wso2.carbon.automation.test.utils.http.client.HttpRequestUtil; -import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.carbon.base.CarbonBaseUtils; -import org.wso2.carbon.integration.common.utils.exceptions.AutomationUtilException; -import org.wso2.esb.integration.common.utils.ESBIntegrationTest; -import org.wso2.esb.integration.common.utils.common.ServerConfigurationManager; - -import java.io.File; -import java.io.IOException; -import java.net.URL; -import java.util.HashMap; -import java.util.Map; - -public class EndpointWithConfigurablePropertyTestCase extends ESBIntegrationTest { - - private ServerConfigurationManager serverConfigurationManager; - - @BeforeClass(alwaysRun = true) - public void init() throws Exception { - super.init(); - serverConfigurationManager = new ServerConfigurationManager(context); - } - - @Test(groups = {"wso2.esb"}, description = "Configurable property", priority = 1) - public void testConfigurablePropertyWithFile() throws IOException { - Map headers = new HashMap<>(); - URL endpoint = new URL(getApiInvocationURL("getdata/file")); - HttpResponse httpResponse = HttpRequestUtil.doGet(endpoint.toString(), headers); - Assert.assertEquals(httpResponse.getResponseCode(), 200); - Assert.assertEquals(httpResponse.getData(), "{\"msg\": \"file\"}", httpResponse.getData()); - } - - @Test(groups = {"wso2.esb"}, description = "Configurable property", priority = 2) - public void testConfigurablePropertyWithSystemProperty() throws IOException, AutomationUtilException { - File fileProperty = new File(CarbonBaseUtils.getCarbonHome() + File.separator + - "conf" + File.separator + "file.properties"); - Assert.assertTrue(fileProperty.exists() && !fileProperty.isDirectory()); - Assert.assertTrue(fileProperty.delete()); - Map commands = new HashMap<>(); - commands.put("-Dendpoint_url", "http://localhost:8480/endpoint/sys"); - commands.put("-Dcommon_url", "http://localhost:8480/endpoint/sys"); - commands.put("-Durl", "http://localhost:8480/endpoint/sys"); - commands.put("-Durl_value", "http://localhost:8480/endpoint/sys"); - serverConfigurationManager.restartMicroIntegrator(commands); - Map headers = new HashMap<>(); - URL endpoint = new URL(getApiInvocationURL("getdata/sys")); - HttpResponse httpResponse = HttpRequestUtil.doGet(endpoint.toString(), headers); - Assert.assertEquals(httpResponse.getResponseCode(), 200); - Assert.assertEquals(httpResponse.getData(), "{\"msg\": \"sys\"}", httpResponse.getData()); - } - - @Test(groups = {"wso2.esb"}, description = "Configurable property", priority = 3) - public void testConfigurablePropertyWithEnvVariable() throws IOException, AutomationUtilException { - Map commands = new HashMap<>(); - commands.put("--env-file", FrameworkPathUtil.getSystemResourceLocation() + ".env"); - serverConfigurationManager.restartMicroIntegrator(commands); - Map headers = new HashMap<>(); - URL endpoint = new URL(getApiInvocationURL("getdata/env")); - HttpResponse httpResponse = HttpRequestUtil.doGet(endpoint.toString(), headers); - Assert.assertEquals(httpResponse.getResponseCode(), 200); - Assert.assertEquals(httpResponse.getData(), "{\"msg\": \"env\"}", httpResponse.getData()); - } - - @Test(groups = {"wso2.esb"}, description = "Configurable property", priority = 4) - public void testConfigurableProperty() throws IOException, AutomationUtilException { - Map commands = new HashMap<>(); - commands.put("-Dcommon_url", "http://localhost:8480/endpoint/sys"); - commands.put("--env-file", FrameworkPathUtil.getSystemResourceLocation() + ".env"); - serverConfigurationManager.restartMicroIntegrator(commands); - Map headers = new HashMap<>(); - URL endpoint = new URL(getApiInvocationURL("getdata/common")); - HttpResponse httpResponse = HttpRequestUtil.doGet(endpoint.toString(), headers); - Assert.assertEquals(httpResponse.getResponseCode(), 200); - Assert.assertEquals(httpResponse.getData(), "{\"msg\": \"hi\"}", httpResponse.getData()); - } - - @AfterClass(alwaysRun = true) - public void destroy() throws Exception { - super.cleanup(); - } -} diff --git a/integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/conf/file.properties b/integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/conf/file.properties deleted file mode 100644 index 6f65ebbbc7..0000000000 --- a/integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/conf/file.properties +++ /dev/null @@ -1,22 +0,0 @@ -# -# Copyright (c) 2024, WSO2 LLC. (https://www.wso2.com). -# -# WSO2 LLC. 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. -#/ - -common_url=http://localhost:8480/endpoint/file -url=http://localhost:8480/endpoint/file -endpoint_url=http://localhost:8290/endpoint/file -url_value=http://localhost:8290/endpoint/file diff --git a/integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/repository/deployment/server/carbonapps/testConfiguration_1.0.0.car b/integration/mediation-tests/tests-other/src/test/resources/artifacts/ESB/server/repository/deployment/server/carbonapps/testConfiguration_1.0.0.car deleted file mode 100644 index 8f089dff1c7b0ed21f716b444c0265f0bfa18759..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9874 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 Mw+ZB-n|nFpKXg3J-2eap diff --git a/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/common/ServerConfigurationManager.java b/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/common/ServerConfigurationManager.java index 6fbf73b6c4..618a222dc8 100644 --- a/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/common/ServerConfigurationManager.java +++ b/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/common/ServerConfigurationManager.java @@ -389,10 +389,6 @@ public void restartMicroIntegrator() throws AutomationUtilException { org.wso2.esb.integration.common.extensions.carbonserver.CarbonServerExtension.restartServer(); } - public void restartMicroIntegrator(Map commandMap) throws AutomationUtilException { - org.wso2.esb.integration.common.extensions.carbonserver.CarbonServerExtension.restartServer(commandMap); - } - /** * Restart Server Gracefully from admin user * diff --git a/pom.xml b/pom.xml index 111efdd5a5..c4ffee3012 100644 --- a/pom.xml +++ b/pom.xml @@ -1597,7 +1597,7 @@ 2.3.0 2.3.1 - 4.0.0-wso2v129 + 4.0.0-wso2v119 [4.0.0, 4.0.1) 4.7.215 1.1.3 From 6516006574db4b964bcb25b15385795c13f6b39a Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Fri, 8 Nov 2024 11:29:18 +0530 Subject: [PATCH 12/27] Revert the changes --- .../common/utils/common/ServerConfigurationManager.java | 1 - 1 file changed, 1 deletion(-) diff --git a/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/common/ServerConfigurationManager.java b/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/common/ServerConfigurationManager.java index 618a222dc8..42081fc076 100644 --- a/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/common/ServerConfigurationManager.java +++ b/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/common/ServerConfigurationManager.java @@ -45,7 +45,6 @@ import java.nio.file.StandardCopyOption; import java.util.ArrayList; import java.util.List; -import java.util.Map; import java.util.Properties; import java.util.concurrent.TimeUnit; import java.util.function.BooleanSupplier; From e9339ee357743b1f31844de8daf2eff58e098df6 Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Fri, 8 Nov 2024 11:54:55 +0530 Subject: [PATCH 13/27] Remove duplicate setup --- .github/workflows/main.yml | 9 --- .github/workflows/maven.yml | 110 ++++++++++++++++++------------------ 2 files changed, 55 insertions(+), 64 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 031210dff1..2f9326a137 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -43,15 +43,6 @@ jobs: run: echo "JAVA_VERSION=$(java -version)" - name: Build in jdk21 run: mvn -B clean install -DskipTests --file pom.xml - - name: Set up JDK 21 - uses: actions/setup-java@v2 - with: - distribution: 'temurin' - java-version: '21.0.4' - - name: check mvn version - run: echo "MAVEN_VERSION=$(mvn -v)" - - name: check java version - run: echo "JAVA_VERSION=$(java -version)" - name: Print segment run: echo "Running build for segment ${{ matrix.profile }}" - name: JDK 21 Tests diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml index fbe79d5979..6701034397 100644 --- a/.github/workflows/maven.yml +++ b/.github/workflows/maven.yml @@ -1,55 +1,55 @@ -name: Integration tests (Ubuntu, OpenJDK21) - -on: [push, pull_request] - -jobs: - ubuntu: - runs-on: ubuntu-latest - strategy: - matrix: - include: - - id: 1 - profile: tests-mediators_tests-other_tests-sample - - id: 2 - profile: tests-service_tests-patches_service-samples - - id: 3 - profile: tests-transport_tests-platform - - id: 4 - profile: management-api_dss-tests - fail-fast: false - steps: - - uses: actions/checkout@v3 - - name: Cache Maven packages - uses: actions/cache@v2 - with: - path: ~/.m2 - key: ${{ runner.os }}-m2 - restore-keys: ${{ runner.os }}-m2 - - name: Set up JDK 11 - uses: actions/setup-java@v2 - with: - distribution: 'temurin' - java-version: '11.0.12+7' - - name: check mvn version - run: echo "MAVEN_VERSION=$(mvn -v)" - - name: check java version - run: echo "JAVA_VERSION=$(java -version)" - - name: Set JAVA_TOOL_OPTIONS - run: | - NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true --add-opens=java.base/java.net=ALL-UNNAMED" - echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV - - name: Build in jdk11 - run: mvn -B clean install -DskipTests --file pom.xml - - name: Set up JDK 21 - uses: actions/setup-java@v2 - with: - distribution: 'temurin' - java-version: '21.0.4' - - name: check mvn version - run: echo "MAVEN_VERSION=$(mvn -v)" - - name: check java version - run: echo "JAVA_VERSION=$(java -version)" - - name: Print segment - run: echo "Running build for segment ${{ matrix.profile }}" - - name: JDK 21 Tests - run: mvn -B clean install --file integration/pom.xml -P ${{ matrix.profile }} -fae +#name: Integration tests (Ubuntu, OpenJDK21) +# +#on: [push, pull_request] +# +#jobs: +# ubuntu: +# runs-on: ubuntu-latest +# strategy: +# matrix: +# include: +# - id: 1 +# profile: tests-mediators_tests-other_tests-sample +# - id: 2 +# profile: tests-service_tests-patches_service-samples +# - id: 3 +# profile: tests-transport_tests-platform +# - id: 4 +# profile: management-api_dss-tests +# fail-fast: false +# steps: +# - uses: actions/checkout@v3 +# - name: Cache Maven packages +# uses: actions/cache@v2 +# with: +# path: ~/.m2 +# key: ${{ runner.os }}-m2 +# restore-keys: ${{ runner.os }}-m2 +# - name: Set up JDK 11 +# uses: actions/setup-java@v2 +# with: +# distribution: 'temurin' +# java-version: '11.0.12+7' +# - name: check mvn version +# run: echo "MAVEN_VERSION=$(mvn -v)" +# - name: check java version +# run: echo "JAVA_VERSION=$(java -version)" +# - name: Set JAVA_TOOL_OPTIONS +# run: | +# NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true --add-opens=java.base/java.net=ALL-UNNAMED" +# echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV +# - name: Build in jdk11 +# run: mvn -B clean install -DskipTests --file pom.xml +# - name: Set up JDK 21 +# uses: actions/setup-java@v2 +# with: +# distribution: 'temurin' +# java-version: '21.0.4' +# - name: check mvn version +# run: echo "MAVEN_VERSION=$(mvn -v)" +# - name: check java version +# run: echo "JAVA_VERSION=$(java -version)" +# - name: Print segment +# run: echo "Running build for segment ${{ matrix.profile }}" +# - name: JDK 21 Tests +# run: mvn -B clean install --file integration/pom.xml -P ${{ matrix.profile }} -fae From f1a5a9ff4153dccb904f70462f850ef62d16d6b3 Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Fri, 8 Nov 2024 12:43:16 +0530 Subject: [PATCH 14/27] Add workflow Update workflow Update workflow Update workflow latest Update workflow latest Update workflow Replace java.util.concurrent.TimeUnit with java.time.Duration Replace java.util.concurrent.TimeUnit with java.time.Duration Replace java.util.concurrent.TimeUnit with java.time.Duration update waiting time Update script Remove unwanted changes Replace java.util.concurrent.TimeUnit with java.time.Duration Replace timeunit with duration Replace timeunit with duration Update time to wait Update time to wait Add exception in the method signature Update workflow Add exception in the method signature --- .github/workflows/cluster-tests.yml | 9 +++- .github/workflows/jdk-21-tests.yml | 51 +++++++++++++++++++ .github/workflows/main.yml | 24 +++++++-- README.md | 2 +- distribution/src/scripts/micro-integrator.bat | 2 +- .../dbConsole/DBConsoleAvailableTest.java | 2 +- .../test/odata/ODataETagTestCase.java | 3 -- .../test/odata/ODataReferenceTestCase.java | 4 +- .../odata/ODataRequestThreadExecutor.java | 8 +-- .../test/odata/ODataTestUtils.java | 15 ++++-- .../samples/InMemoryDSSampleTestCase.java | 4 +- .../test/ServiceCatalogTestCase.java | 15 +++--- ...ediatorEmptyOMArraySerializeException.java | 4 +- .../enableCorrelation/micro-integrator.sh | 4 +- .../artifacts/ESB/vfs/micro-integrator.bat | 2 +- .../artifacts/ESB/vfs/micro-integrator.sh | 4 +- .../transport/test/MSMPCronForwarderCase.java | 20 ++++---- .../esb/integration/common/utils/Utils.java | 7 ++- .../common/ServerConfigurationManager.java | 10 ++-- 19 files changed, 132 insertions(+), 58 deletions(-) create mode 100644 .github/workflows/jdk-21-tests.yml diff --git a/.github/workflows/cluster-tests.yml b/.github/workflows/cluster-tests.yml index fb33f9258b..e6af1fd0e2 100644 --- a/.github/workflows/cluster-tests.yml +++ b/.github/workflows/cluster-tests.yml @@ -22,5 +22,12 @@ jobs: with: distribution: 'temurin' java-version: '17.0.6' - - name: Cluster Tests + - name: Cluster Tests with JDK 17 + run: mvn -B clean install --file integration/pom.xml -P cluster-tests + - name: Set up JDK 21 + uses: actions/setup-java@v2 + with: + distribution: 'temurin' + java-version: '21.0.4' + - name: Cluster Tests with JDK 21 run: mvn -B clean install --file integration/pom.xml -P cluster-tests diff --git a/.github/workflows/jdk-21-tests.yml b/.github/workflows/jdk-21-tests.yml new file mode 100644 index 0000000000..5dae1fc056 --- /dev/null +++ b/.github/workflows/jdk-21-tests.yml @@ -0,0 +1,51 @@ +name: Integration tests (Ubuntu, OpenJDK17) + +on: [push, pull_request] + +jobs: + ubuntu: + runs-on: ubuntu-latest + strategy: + matrix: + include: + - id: 1 + profile: tests-mediators_tests-other_tests-sample + - id: 2 + profile: tests-service_tests-patches_service-samples + - id: 3 + profile: tests-transport_tests-platform + - id: 4 + profile: management-api_dss-tests + fail-fast: false + steps: + - uses: actions/checkout@v3 + - name: Cache Maven packages + uses: actions/cache@v2 + with: + path: ~/.m2 + key: ${{ runner.os }}-m2 + restore-keys: ${{ runner.os }}-m2 + - name: Set up JDK 11 + uses: actions/setup-java@v2 + with: + distribution: 'temurin' + java-version: '11.0.12+7' + - name: check mvn version + run: echo "MAVEN_VERSION=$(mvn -v)" + - name: check java version + run: echo "JAVA_VERSION=$(java -version)" + - name: Build in jdk11 + run: mvn -B clean install -DskipTests --file pom.xml + - name: Set up JDK 21 + uses: actions/setup-java@v2 + with: + distribution: 'temurin' + java-version: '21.0.4' + - name: check mvn version + run: echo "MAVEN_VERSION=$(mvn -v)" + - name: check java version + run: echo "JAVA_VERSION=$(java -version)" + - name: Print segment + run: echo "Running build for segment ${{ matrix.profile }}" + - name: JDK 21 Tests + run: mvn -B clean install --file integration/pom.xml -P ${{ matrix.profile }} -fae diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 2f9326a137..7376563b70 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -32,6 +32,19 @@ jobs: path: ~/.m2 key: ${{ runner.os }}-m2 restore-keys: ${{ runner.os }}-m2 + - name: Set up JDK 11 + uses: actions/setup-java@v2 + with: + distribution: 'temurin' + java-version: '11.0.12+7' + - name: check mvn version + run: echo "MAVEN_VERSION=$(mvn -v)" + continue-on-error: true + - name: check java version + run: echo "JAVA_VERSION=$(java -version)" + continue-on-error: true + - name: Build in jdk11 + run: mvn -B clean install -DskipTests --file pom.xml - name: Set up JDK 21 uses: actions/setup-java@v2 with: @@ -39,11 +52,16 @@ jobs: java-version: '21.0.4' - name: check mvn version run: echo "MAVEN_VERSION=$(mvn -v)" + continue-on-error: true - name: check java version run: echo "JAVA_VERSION=$(java -version)" - - name: Build in jdk21 - run: mvn -B clean install -DskipTests --file pom.xml + continue-on-error: true +# - name: Build in jdk21 +# run: mvn -B clean install -DskipTests --file pom.xml +# continue-on-error: true - name: Print segment run: echo "Running build for segment ${{ matrix.profile }}" + continue-on-error: true - name: JDK 21 Tests - run: mvn -B clean install --file integration/pom.xml -P ${{ matrix.profile }} -fae + run: mvn -B clean install --file integration/pom.xml + continue-on-error: true diff --git a/README.md b/README.md index d2f2c90e1b..35ba4dcf56 100644 --- a/README.md +++ b/README.md @@ -60,7 +60,7 @@ Please follow the steps below to build WSO2 Micro Integrator from the source cod 2. Run the maven command `mvn clean install` from the root directory of the repository. 3. The generated Micro Integrator distribution can be found at `micro-integrator/distribution/target/wso2mi-.zip`. -Please note that the product can be build using only JDK 11 but the integration tests can be run in either JDK 11 or 17. +Please note that the product can be build using only JDK 11 but the integration tests can be run in either JDK 11, 17 or 21. #### Building the Docker image diff --git a/distribution/src/scripts/micro-integrator.bat b/distribution/src/scripts/micro-integrator.bat index ef06cb8107..d67fb29b2e 100644 --- a/distribution/src/scripts/micro-integrator.bat +++ b/distribution/src/scripts/micro-integrator.bat @@ -158,7 +158,7 @@ goto supportedJdk :unknownJdk echo Starting WSO2 MI (in unsupported JDK %JAVA_VERSION%) -echo [ERROR] WSO2 MI is supported only between JDK 11 and JDK 17" +echo [ERROR] WSO2 MI is supported only between JDK 11 and JDK 21" goto end :supportedJdk diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/dbConsole/DBConsoleAvailableTest.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/dbConsole/DBConsoleAvailableTest.java index c1160417bd..5cfe3d1585 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/dbConsole/DBConsoleAvailableTest.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/dbConsole/DBConsoleAvailableTest.java @@ -37,7 +37,7 @@ public void serviceDeployment() throws Exception { } @Test(groups = "wso2.dss", description = "dbConsole available test case") - public void dbConsoleAvailableTest() throws XPathExpressionException, IOException { + public void dbConsoleAvailableTest() throws XPathExpressionException, IOException, InterruptedException { String webAppUrl = dssContext.getContextUrls().getWebAppURL(); String url = webAppUrl + "/" + "dbconsole/login.jsp?region=region5&item=dbconsole"; Map headers = new HashMap<>(); diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java index f8d036997d..6b7d2dc487 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java @@ -24,10 +24,7 @@ import org.testng.annotations.Test; import org.wso2.ei.dataservice.integration.test.DSSIntegrationTest; -import java.io.File; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; import static org.wso2.ei.dataservice.integration.test.odata.ODataTestUtils.getETag; diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataReferenceTestCase.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataReferenceTestCase.java index 59c6f782ff..d7b31d2b72 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataReferenceTestCase.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataReferenceTestCase.java @@ -24,10 +24,7 @@ import org.testng.annotations.Test; import org.wso2.ei.dataservice.integration.test.DSSIntegrationTest; -import java.io.File; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; import static org.wso2.ei.dataservice.integration.test.odata.ODataTestUtils.sendDELETE; @@ -61,6 +58,7 @@ public void validateNavigationPropertyReferencesTestCase() throws Exception { Map headers = new HashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); Assert.assertTrue( response[1].toString().contains("FILERECORDS(1)") && response[1].toString().contains("FILERECORDS(4)"), diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataRequestThreadExecutor.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataRequestThreadExecutor.java index 384a70645b..bdd02379bf 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataRequestThreadExecutor.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataRequestThreadExecutor.java @@ -43,28 +43,28 @@ public void run() { case "POST": try { ODataTestUtils.sendPOST(endpoint, content, headers); - } catch (IOException e) { + } catch (IOException|InterruptedException e) { e.printStackTrace(); } break; case "PUT": try { ODataTestUtils.sendPUT(endpoint, content, headers); - } catch (IOException e) { + } catch (IOException|InterruptedException e) { e.printStackTrace(); } break; case "PATCH": try { ODataTestUtils.sendPATCH(endpoint, content, headers); - } catch (IOException e) { + } catch (IOException|InterruptedException e) { e.printStackTrace(); } break; case "DELETE": try { ODataTestUtils.sendDELETE(endpoint, headers); - } catch (IOException e) { + } catch (IOException|InterruptedException e) { e.printStackTrace(); } break; diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java index 8677ce4f48..cf877fb8d8 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java @@ -48,7 +48,7 @@ public class ODataTestUtils { public static final int PRE_CONDITION_FAILED = 412; public static final int NOT_FOUND = 404; - public static Object[] sendPOST(String endpoint, String content, Map headers) throws IOException { + public static Object[] sendPOST(String endpoint, String content, Map headers) throws IOException, InterruptedException { HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(endpoint); for (String headerType : headers.keySet()) { @@ -62,6 +62,7 @@ public static Object[] sendPOST(String endpoint, String content, Map headers) throws IOException { + public static Object[] sendGET(String endpoint, Map headers) throws IOException, InterruptedException { HttpClient httpClient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(endpoint); for (String headerType : headers.keySet()) { httpGet.setHeader(headerType, headers.get(headerType)); } HttpResponse httpResponse = httpClient.execute(httpGet); + Thread.sleep(1000); if (httpResponse.getEntity() != null) { BufferedReader reader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent())); String inputLine; @@ -99,7 +101,7 @@ public static Object[] sendGET(String endpoint, Map headers) thr } } - public static int sendPUT(String endpoint, String content, Map headers) throws IOException { + public static int sendPUT(String endpoint, String content, Map headers) throws IOException, InterruptedException { HttpClient httpClient = new DefaultHttpClient(); HttpPut httpPut = new HttpPut(endpoint); for (String headerType : headers.keySet()) { @@ -113,10 +115,11 @@ public static int sendPUT(String endpoint, String content, Map h httpPut.setEntity(httpEntity); } HttpResponse httpResponse = httpClient.execute(httpPut); + Thread.sleep(1000); return httpResponse.getStatusLine().getStatusCode(); } - public static int sendPATCH(String endpoint, String content, Map headers) throws IOException { + public static int sendPATCH(String endpoint, String content, Map headers) throws IOException, InterruptedException { HttpClient httpClient = new DefaultHttpClient(); HttpPatch httpPatch = new HttpPatch(endpoint); for (String headerType : headers.keySet()) { @@ -130,16 +133,18 @@ public static int sendPATCH(String endpoint, String content, Map httpPatch.setEntity(httpEntity); } HttpResponse httpResponse = httpClient.execute(httpPatch); + Thread.sleep(1000); return httpResponse.getStatusLine().getStatusCode(); } - public static int sendDELETE(String endpoint, Map headers) throws IOException { + public static int sendDELETE(String endpoint, Map headers) throws IOException, InterruptedException { HttpClient httpClient = new DefaultHttpClient(); HttpDelete httpDelete = new HttpDelete(endpoint); for (String headerType : headers.keySet()) { httpDelete.setHeader(headerType, headers.get(headerType)); } HttpResponse httpResponse = httpClient.execute(httpDelete); + Thread.sleep(1000); return httpResponse.getStatusLine().getStatusCode(); } diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/samples/InMemoryDSSampleTestCase.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/samples/InMemoryDSSampleTestCase.java index 5c2cc03c9d..ae1adb3a7a 100755 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/samples/InMemoryDSSampleTestCase.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/samples/InMemoryDSSampleTestCase.java @@ -144,7 +144,7 @@ private void addDataSources() throws Exception { echoSampleSourceMetaInfo.setDefinition(echoSampleDSDefinition); dataSourceAdminClient.addDataSource(echoSampleSourceMetaInfo); - Thread.sleep(1000); + Thread.sleep(5000); } private void removeDataSources() throws Exception { @@ -152,6 +152,6 @@ private void removeDataSources() throws Exception { dssContext.getContextUrls().getBackEndUrl(), sessionCookie); dataSourceAdminClient.deleteDataSource("IN_MEMORY_SAMPLE_DS"); dataSourceAdminClient.deleteDataSource("ECHO_SAMPLE_DS"); - Thread.sleep(1000); + Thread.sleep(5000); } } diff --git a/integration/mediation-tests/tests-other/src/test/java/org/wso2/carbon/esb/serviceCatalog/test/ServiceCatalogTestCase.java b/integration/mediation-tests/tests-other/src/test/java/org/wso2/carbon/esb/serviceCatalog/test/ServiceCatalogTestCase.java index 396e3a50df..3a925cd6ec 100644 --- a/integration/mediation-tests/tests-other/src/test/java/org/wso2/carbon/esb/serviceCatalog/test/ServiceCatalogTestCase.java +++ b/integration/mediation-tests/tests-other/src/test/java/org/wso2/carbon/esb/serviceCatalog/test/ServiceCatalogTestCase.java @@ -218,8 +218,8 @@ public void testServiceCatalogMetadataWithEnv() @Test(groups = {"wso2.esb"}, description = "Test the ZIP file created by the service catalog", priority = 7) - public void testServiceCatalogZipFile() throws CarbonException, FileNotFoundException { - File extracted = chekAndExtractPayloadZip(); + public void testServiceCatalogZipFile() throws CarbonException, FileNotFoundException, InterruptedException { + File extracted = checkAndExtractPayloadZip(); assertTrue(extracted.exists(), "Error occurred while extracting the ZIP"); File metadataFile = new File(extracted, "healthcare_v1.0.0-SNAPSHOT"); File yamlFile = new File(metadataFile, "metadata.yaml"); @@ -244,7 +244,7 @@ public void testUploadOnlyNewAPIs() File.separator + TOML_FILE)); assertTrue(Utils.checkForLog(carbonLogReader, "Successfully updated the service catalog", 10), "Did not receive the expected info log"); - File extracted = chekAndExtractPayloadZip(); + File extracted = checkAndExtractPayloadZip(); assertTrue(extracted.exists(), "Error occurred while extracting the ZIP"); assertFalse(checkMetadataFileExists(extracted, "healthcare_v1.0.0-SNAPSHOT"), "healthcare API should not be uploaded again"); @@ -269,7 +269,7 @@ public void testUploadOnlyModifiedAPIs() File.separator + TOML_FILE)); assertTrue(Utils.checkForLog(carbonLogReader, "Successfully updated the service catalog", 10), "Did not receive the expected info log"); - File extracted = chekAndExtractPayloadZip(); + File extracted = checkAndExtractPayloadZip(); assertTrue(extracted.exists(), "Error occurred while extracting the ZIP"); assertFalse(checkMetadataFileExists(extracted, "healthcare_v1.0.0-SNAPSHOT"), "healthcare API should not be uploaded again"); @@ -316,7 +316,7 @@ public void testServiceCatalogProxyServiceMetadata() serverConfigurationManager.restartMicroIntegrator(); assertTrue(Utils.checkForLog(carbonLogReader, "Successfully updated the service catalog", 10), "Did not receive the expected info log"); - File extracted = chekAndExtractPayloadZip(); + File extracted = checkAndExtractPayloadZip(); assertTrue(extracted.exists(), "Error occurred while extracting the ZIP"); File metadataFile = new File(extracted, "SampleProxyService_proxy_v1.0.0"); File yamlFile = new File(metadataFile, "metadata.yaml"); @@ -326,7 +326,8 @@ public void testServiceCatalogProxyServiceMetadata() } } - private static File chekAndExtractPayloadZip() throws CarbonException { + private static File checkAndExtractPayloadZip() throws CarbonException, InterruptedException { + Thread.sleep(1000); String payloadZipPath = CarbonBaseUtils.getCarbonHome() + File.separator + "tmp" + File.separator + SERVICE_CATALOG_FOLDER_NAME + File.separator + ZIP_FILE_NAME; File zipFile = new File(payloadZipPath); @@ -354,7 +355,7 @@ public void destroy() throws Exception { serverConfigurationManager.restartGracefully(); } - private class FirstController implements HttpHandler { + private static class FirstController implements HttpHandler { @Override public void handle(HttpExchange exchange) throws IOException { try (OutputStream responseBody = exchange.getResponseBody()) { diff --git a/integration/mediation-tests/tests-patches/src/test/java/org/wso2/carbon/esb/mediators/store/ESBJAVA4470StoreMediatorEmptyOMArraySerializeException.java b/integration/mediation-tests/tests-patches/src/test/java/org/wso2/carbon/esb/mediators/store/ESBJAVA4470StoreMediatorEmptyOMArraySerializeException.java index 2193bc6339..7290ff386c 100644 --- a/integration/mediation-tests/tests-patches/src/test/java/org/wso2/carbon/esb/mediators/store/ESBJAVA4470StoreMediatorEmptyOMArraySerializeException.java +++ b/integration/mediation-tests/tests-patches/src/test/java/org/wso2/carbon/esb/mediators/store/ESBJAVA4470StoreMediatorEmptyOMArraySerializeException.java @@ -24,8 +24,6 @@ import org.wso2.esb.integration.common.utils.CarbonLogReader; import org.wso2.esb.integration.common.utils.ESBIntegrationTest; -import java.util.concurrent.TimeUnit; - import static org.testng.Assert.assertFalse; public class ESBJAVA4470StoreMediatorEmptyOMArraySerializeException extends ESBIntegrationTest { @@ -42,7 +40,7 @@ public void testStoreMediatorEmptyOMArrayPropertySerialize() throws Exception { String url = getApiInvocationURL("SerializeProperty") + "/serializeOMArray"; SimpleHttpClient httpClient = new SimpleHttpClient(); httpClient.doGet(url, null); - TimeUnit.SECONDS.sleep(10); + Thread.sleep(10000); boolean logFound = carbonLogReader.checkForLog("Index: 0, Size: 0", DEFAULT_TIMEOUT) && carbonLogReader.checkForLog("ERROR", DEFAULT_TIMEOUT); diff --git a/integration/mediation-tests/tests-patches/src/test/resources/artifacts/ESB/passthru/transport/enableCorrelation/micro-integrator.sh b/integration/mediation-tests/tests-patches/src/test/resources/artifacts/ESB/passthru/transport/enableCorrelation/micro-integrator.sh index 8c3a7d29f6..01ffcb3087 100644 --- a/integration/mediation-tests/tests-patches/src/test/resources/artifacts/ESB/passthru/transport/enableCorrelation/micro-integrator.sh +++ b/integration/mediation-tests/tests-patches/src/test/resources/artifacts/ESB/passthru/transport/enableCorrelation/micro-integrator.sh @@ -192,9 +192,9 @@ fi # ---------- Handle the SSL Issue with proper JDK version -------------------- java_version=$("$JAVACMD" -version 2>&1 | awk -F '"' '/version/ {print $2}') java_version_formatted=$(echo "$java_version" | awk -F. '{printf("%02d%02d",$1,$2);}') -if [ $java_version_formatted -lt 1100 ] || [ $java_version_formatted -gt 1700 ]; then +if [ $java_version_formatted -lt 1100 ] || [ $java_version_formatted -gt 2100 ]; then echo " Starting WSO2 MI (in unsupported JDK)" - echo " [ERROR] WSO2 MI is supported only between JDK 11 and JDK 17" + echo " [ERROR] WSO2 MI is supported only between JDK 11 and JDK 21" exit 0 fi diff --git a/integration/mediation-tests/tests-patches/src/test/resources/artifacts/ESB/vfs/micro-integrator.bat b/integration/mediation-tests/tests-patches/src/test/resources/artifacts/ESB/vfs/micro-integrator.bat index 749d336833..48e2beb9ec 100644 --- a/integration/mediation-tests/tests-patches/src/test/resources/artifacts/ESB/vfs/micro-integrator.bat +++ b/integration/mediation-tests/tests-patches/src/test/resources/artifacts/ESB/vfs/micro-integrator.bat @@ -160,7 +160,7 @@ goto supportedJdk :unknownJdk echo Starting WSO2 MI (in unsupported JDK %JAVA_VERSION%) -echo [ERROR] WSO2 MI is supported only between JDK 11 and JDK 17" +echo [ERROR] WSO2 MI is supported only between JDK 11 and JDK 21" goto end :supportedJdk diff --git a/integration/mediation-tests/tests-patches/src/test/resources/artifacts/ESB/vfs/micro-integrator.sh b/integration/mediation-tests/tests-patches/src/test/resources/artifacts/ESB/vfs/micro-integrator.sh index 47636c2e8b..6c65c36eaa 100755 --- a/integration/mediation-tests/tests-patches/src/test/resources/artifacts/ESB/vfs/micro-integrator.sh +++ b/integration/mediation-tests/tests-patches/src/test/resources/artifacts/ESB/vfs/micro-integrator.sh @@ -199,9 +199,9 @@ fi # ---------- Handle the SSL Issue with proper JDK version -------------------- java_version=$("$JAVACMD" -version 2>&1 | awk -F '"' '/version/ {print $2}') java_version_formatted=$(echo "$java_version" | awk -F. '{printf("%02d%02d",$1,$2);}') -if [ $java_version_formatted -lt 1100 ] || [ $java_version_formatted -gt 1700 ]; then +if [ $java_version_formatted -lt 1100 ] || [ $java_version_formatted -gt 2100 ]; then echo " Starting WSO2 MI (in unsupported JDK)" - echo " [ERROR] WSO2 MI is supported only between JDK 11 and JDK 17" + echo " [ERROR] WSO2 MI is supported only between JDK 11 and JDK 21" exit 0 fi diff --git a/integration/mediation-tests/tests-transport/src/test/java/org/wso2/carbon/esb/jms/transport/test/MSMPCronForwarderCase.java b/integration/mediation-tests/tests-transport/src/test/java/org/wso2/carbon/esb/jms/transport/test/MSMPCronForwarderCase.java index ac9bdc9439..4c48298083 100644 --- a/integration/mediation-tests/tests-transport/src/test/java/org/wso2/carbon/esb/jms/transport/test/MSMPCronForwarderCase.java +++ b/integration/mediation-tests/tests-transport/src/test/java/org/wso2/carbon/esb/jms/transport/test/MSMPCronForwarderCase.java @@ -19,25 +19,21 @@ package org.wso2.carbon.esb.jms.transport.test; import org.awaitility.Awaitility; +import org.awaitility.core.ConditionFactory; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; -import org.wso2.carbon.automation.extensions.servers.jmsserver.controller.config.JMSBrokerConfigurationProvider; -import org.wso2.carbon.automation.extensions.servers.tomcatserver.TomcatServerManager; -import org.wso2.carbon.automation.extensions.servers.tomcatserver.TomcatServerType; import org.wso2.carbon.automation.test.utils.http.client.HttpRequestUtil; import org.wso2.carbon.automation.test.utils.http.client.HttpResponse; -import org.wso2.carbon.esb.jms.utils.JMSBroker; import org.wso2.esb.integration.common.extensions.jmsserver.ActiveMQServerExtension; import org.wso2.esb.integration.common.utils.CarbonLogReader; import org.wso2.esb.integration.common.utils.ESBIntegrationTest; -import org.wso2.esb.integration.services.jaxrs.customersample.CustomerConfig; import java.net.URL; +import java.time.Duration; import java.util.HashMap; import java.util.Map; import java.util.concurrent.Callable; -import java.util.concurrent.TimeUnit; import static org.testng.Assert.assertEquals; import static org.testng.Assert.assertTrue; @@ -59,8 +55,10 @@ protected void init() throws Exception { log.info("ActiveMQ Server is not started. Hence starting the MQServer"); ActiveMQServerExtension.startMQServer(); Thread.sleep(60000); - Awaitility.await().pollInterval(50, TimeUnit.MILLISECONDS).atMost(300, - TimeUnit.SECONDS).until(isServerStarted()); + Awaitility.await() + .pollInterval(org.awaitility.Duration.ONE_MINUTE) + .atMost(org.awaitility.Duration.FIVE_MINUTES) + .until(isLogWritten()); } else { log.info("ActiveMQ Server has already started."); } @@ -91,8 +89,10 @@ public void testMessageProcessorCronForwader() throws Exception { // WAIT FOR THE MESSAGE PROCESSOR TO TRIGGER // Thread.sleep(60000); - Awaitility.await().pollInterval(50, TimeUnit.MILLISECONDS).atMost(300, - TimeUnit.SECONDS).until(isLogWritten()); + Awaitility.await() + .pollInterval(org.awaitility.Duration.ONE_MINUTE) + .atMost(org.awaitility.Duration.FIVE_MINUTES) + .until(isLogWritten()); assertTrue(carbonLogReader.checkForLog("Jack", 60, NUMBER_OF_MESSAGES)); } } diff --git a/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/Utils.java b/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/Utils.java index 80ea57295e..db7ac8f45e 100644 --- a/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/Utils.java +++ b/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/Utils.java @@ -39,7 +39,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.rmi.RemoteException; -import java.util.concurrent.TimeUnit; import javax.xml.stream.XMLStreamException; public class Utils { @@ -151,7 +150,7 @@ public static boolean logExists(CarbonLogReader logReader, String expected, int throws InterruptedException { boolean logExists = false; for (int i = 0; i < timeout; i++) { - TimeUnit.SECONDS.sleep(1); + Thread.sleep(5000); if (logReader.getLogs().contains(expected)) { logExists = true; logReader.stop(); @@ -174,7 +173,7 @@ public static boolean checkForLog(CarbonLogReader logReader, String expected, in throws InterruptedException { boolean logExists = false; for (int i = 0; i < timeout; i++) { - TimeUnit.SECONDS.sleep(1); + Thread.sleep(1000); if (logReader.getLogs().contains(expected)) { logExists = true; break; @@ -189,7 +188,7 @@ public static boolean checkForFileExistence(Path filePath, int timeout) throws I if (Files.exists(filePath)) { return true; } - TimeUnit.SECONDS.sleep(1); + Thread.sleep(1000); } log.error("File does not exists in " + filePath, new Throwable()); return false; diff --git a/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/common/ServerConfigurationManager.java b/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/common/ServerConfigurationManager.java index 42081fc076..be512b3327 100644 --- a/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/common/ServerConfigurationManager.java +++ b/integration/tests-common/integration-test-utils/src/main/java/org/wso2/esb/integration/common/utils/common/ServerConfigurationManager.java @@ -43,10 +43,10 @@ import java.nio.file.Files; import java.nio.file.Paths; import java.nio.file.StandardCopyOption; +import java.time.Duration; import java.util.ArrayList; import java.util.List; import java.util.Properties; -import java.util.concurrent.TimeUnit; import java.util.function.BooleanSupplier; import javax.xml.xpath.XPathExpressionException; @@ -406,10 +406,10 @@ private Process startProcess(String workingDirectory, String[] cmdArray) throws return processBuilder.start(); } - private void waitTill(BooleanSupplier predicate, int maxWaitTime, TimeUnit timeUnit) throws InterruptedException { - long time = System.currentTimeMillis() + timeUnit.toMillis(maxWaitTime); - while (predicate.getAsBoolean() && System.currentTimeMillis() < time) { - TimeUnit.MILLISECONDS.sleep(1); + private void waitTill(BooleanSupplier predicate, int maxWaitTime, Duration timeUnit) throws InterruptedException { + long endTime = System.currentTimeMillis() + timeUnit.toMillis(); + while (predicate.getAsBoolean() && System.currentTimeMillis() < endTime) { + Thread.sleep(1000); } } From 87322b05b40d3704950b56c120c6ac078cbd1c2b Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Tue, 12 Nov 2024 14:44:28 +0530 Subject: [PATCH 15/27] Delete workflow Update workflow Update workflow Update workflow Update workflow Update workflow Refactor testcase Add arg under the surfire plugin Update arg --- .github/workflows/jdk-17-tests.yml | 4 +- .github/workflows/jdk-21-tests.yml | 10 +- .github/workflows/main.yml | 67 ------- .github/workflows/maven.yml | 55 ------ .github/workflows/smoke-tests.yml | 4 +- .github/workflows/windows-tests.yml | 8 +- .../tests-integration/tests/pom.xml | 7 +- .../test/odata/ODataTestUtils.java | 169 ++++++++++-------- pom.xml | 12 ++ 9 files changed, 124 insertions(+), 212 deletions(-) delete mode 100644 .github/workflows/main.yml delete mode 100644 .github/workflows/maven.yml diff --git a/.github/workflows/jdk-17-tests.yml b/.github/workflows/jdk-17-tests.yml index 015d1b8811..f7d19ccc69 100644 --- a/.github/workflows/jdk-17-tests.yml +++ b/.github/workflows/jdk-17-tests.yml @@ -35,7 +35,7 @@ jobs: - name: check java version run: echo "JAVA_VERSION=$(java -version)" - name: Build in jdk11 - run: mvn -B clean install -DskipTests --file pom.xml + run: mvn clean install -DskipTests --file pom.xml - name: Set up JDK 17 uses: actions/setup-java@v2 with: @@ -48,4 +48,4 @@ jobs: - name: Print segment run: echo "Running build for segment ${{ matrix.profile }}" - name: JDK 17 Tests - run: mvn -B clean install --file integration/pom.xml -P ${{ matrix.profile }} -fae + run: mvn clean install --file integration/pom.xml -P ${{ matrix.profile }} -fae diff --git a/.github/workflows/jdk-21-tests.yml b/.github/workflows/jdk-21-tests.yml index 5dae1fc056..897592cf59 100644 --- a/.github/workflows/jdk-21-tests.yml +++ b/.github/workflows/jdk-21-tests.yml @@ -1,4 +1,4 @@ -name: Integration tests (Ubuntu, OpenJDK17) +name: Integration tests (Ubuntu, OpenJDK21) on: [push, pull_request] @@ -34,8 +34,12 @@ jobs: run: echo "MAVEN_VERSION=$(mvn -v)" - name: check java version run: echo "JAVA_VERSION=$(java -version)" + - name: Set JAVA_TOOL_OPTIONS + run: | + NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true --add-opens=java.base/java.net=ALL-UNNAMED" + echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV - name: Build in jdk11 - run: mvn -B clean install -DskipTests --file pom.xml + run: mvn clean install -DskipTests --file pom.xml - name: Set up JDK 21 uses: actions/setup-java@v2 with: @@ -48,4 +52,4 @@ jobs: - name: Print segment run: echo "Running build for segment ${{ matrix.profile }}" - name: JDK 21 Tests - run: mvn -B clean install --file integration/pom.xml -P ${{ matrix.profile }} -fae + run: mvn clean install --file integration/pom.xml -P ${{ matrix.profile }} -fae diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 7376563b70..0000000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,67 +0,0 @@ -name: Integration tests (Ubuntu, OpenJDK21) - -on: - push: - branches: - - '*' # Runs on push to any branch - pull_request: - branches: - - '*' # Runs on any pull request - workflow_dispatch: - -jobs: - ubuntu: - runs-on: ubuntu-latest - strategy: - matrix: - include: - - id: 1 - profile: tests-mediators_tests-other_tests-sample - - id: 2 - profile: tests-service_tests-patches_service-samples - - id: 3 - profile: tests-transport_tests-platform - - id: 4 - profile: management-api_dss-tests - fail-fast: false - steps: - - uses: actions/checkout@v3 - - name: Cache Maven packages - uses: actions/cache@v2 - with: - path: ~/.m2 - key: ${{ runner.os }}-m2 - restore-keys: ${{ runner.os }}-m2 - - name: Set up JDK 11 - uses: actions/setup-java@v2 - with: - distribution: 'temurin' - java-version: '11.0.12+7' - - name: check mvn version - run: echo "MAVEN_VERSION=$(mvn -v)" - continue-on-error: true - - name: check java version - run: echo "JAVA_VERSION=$(java -version)" - continue-on-error: true - - name: Build in jdk11 - run: mvn -B clean install -DskipTests --file pom.xml - - name: Set up JDK 21 - uses: actions/setup-java@v2 - with: - distribution: 'temurin' - java-version: '21.0.4' - - name: check mvn version - run: echo "MAVEN_VERSION=$(mvn -v)" - continue-on-error: true - - name: check java version - run: echo "JAVA_VERSION=$(java -version)" - continue-on-error: true -# - name: Build in jdk21 -# run: mvn -B clean install -DskipTests --file pom.xml -# continue-on-error: true - - name: Print segment - run: echo "Running build for segment ${{ matrix.profile }}" - continue-on-error: true - - name: JDK 21 Tests - run: mvn -B clean install --file integration/pom.xml - continue-on-error: true diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml deleted file mode 100644 index 6701034397..0000000000 --- a/.github/workflows/maven.yml +++ /dev/null @@ -1,55 +0,0 @@ -#name: Integration tests (Ubuntu, OpenJDK21) -# -#on: [push, pull_request] -# -#jobs: -# ubuntu: -# runs-on: ubuntu-latest -# strategy: -# matrix: -# include: -# - id: 1 -# profile: tests-mediators_tests-other_tests-sample -# - id: 2 -# profile: tests-service_tests-patches_service-samples -# - id: 3 -# profile: tests-transport_tests-platform -# - id: 4 -# profile: management-api_dss-tests -# fail-fast: false -# steps: -# - uses: actions/checkout@v3 -# - name: Cache Maven packages -# uses: actions/cache@v2 -# with: -# path: ~/.m2 -# key: ${{ runner.os }}-m2 -# restore-keys: ${{ runner.os }}-m2 -# - name: Set up JDK 11 -# uses: actions/setup-java@v2 -# with: -# distribution: 'temurin' -# java-version: '11.0.12+7' -# - name: check mvn version -# run: echo "MAVEN_VERSION=$(mvn -v)" -# - name: check java version -# run: echo "JAVA_VERSION=$(java -version)" -# - name: Set JAVA_TOOL_OPTIONS -# run: | -# NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true --add-opens=java.base/java.net=ALL-UNNAMED" -# echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV -# - name: Build in jdk11 -# run: mvn -B clean install -DskipTests --file pom.xml -# - name: Set up JDK 21 -# uses: actions/setup-java@v2 -# with: -# distribution: 'temurin' -# java-version: '21.0.4' -# - name: check mvn version -# run: echo "MAVEN_VERSION=$(mvn -v)" -# - name: check java version -# run: echo "JAVA_VERSION=$(java -version)" -# - name: Print segment -# run: echo "Running build for segment ${{ matrix.profile }}" -# - name: JDK 21 Tests -# run: mvn -B clean install --file integration/pom.xml -P ${{ matrix.profile }} -fae diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index efb6c5535b..04d6b21597 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -19,9 +19,7 @@ jobs: - name: Build with Maven run: mvn -B clean install -P smoke-tests --file pom.xml -fae windows: - runs-on: windows-latest - steps: - name: Configure Git to support long paths run: git config --global core.longpaths true @@ -29,7 +27,7 @@ jobs: run: git config --global core.longpaths - uses: actions/checkout@v2 - name: Set up JDK 11 - uses: joschi/setup-jdk@v2 + uses: actions/setup-java@v2 with: distribution: 'temurin' java-version: '11.0.12+7' diff --git a/.github/workflows/windows-tests.yml b/.github/workflows/windows-tests.yml index e6a3555022..47ceb70d1a 100644 --- a/.github/workflows/windows-tests.yml +++ b/.github/workflows/windows-tests.yml @@ -1,4 +1,4 @@ -name: Integration tests (Windows, OpenJDK8) +name: Integration tests (Windows, OpenJDK11) on: [push] @@ -12,7 +12,7 @@ jobs: run: git config --system core.longpaths true - uses: actions/checkout@v2 - name: Set up JDK 11 - uses: joschi/setup-jdk@v2 + uses: actions/setup-java@v2 with: distribution: 'adopt' java-version: 11 @@ -28,7 +28,7 @@ jobs: run: git config --system core.longpaths true - uses: actions/checkout@v2 - name: Set up JDK 11 - uses: joschi/setup-jdk@v2 + uses: actions/setup-java@v2 with: distribution: 'adopt' java-version: 11 @@ -44,7 +44,7 @@ jobs: run: git config --system core.longpaths true - uses: actions/checkout@v2 - name: Set up JDK 11 - uses: joschi/setup-jdk@v2 + uses: actions/setup-java@v2 with: distribution: 'adopt' java-version: 11 diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/pom.xml b/integration/dataservice-hosting-tests/tests-integration/tests/pom.xml index c13d34f68f..c41b5ef52c 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/pom.xml +++ b/integration/dataservice-hosting-tests/tests-integration/tests/pom.xml @@ -38,7 +38,12 @@ 2.22.2 - -Xmx1024m + + -Xmx1024m + --add-opens java.base/java.lang=ALL-UNNAMED + --add-opens java.base/java.lang.reflect=ALL-UNNAMED + --add-opens java.base/jdk.internal.reflect=ALL-UNNAMED + false false diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java index cf877fb8d8..a3292f06cd 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java @@ -19,15 +19,15 @@ package org.wso2.ei.dataservice.integration.test.odata; import org.apache.http.HttpEntity; -import org.apache.http.HttpResponse; -import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpDelete; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPatch; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.methods.HttpPut; import org.apache.http.entity.ByteArrayEntity; -import org.apache.http.impl.client.DefaultHttpClient; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; import org.json.JSONException; import org.json.simple.JSONArray; import org.json.simple.JSONObject; @@ -37,6 +37,7 @@ import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; +import java.nio.charset.StandardCharsets; import java.util.Map; public class ODataTestUtils { @@ -49,103 +50,118 @@ public class ODataTestUtils { public static final int NOT_FOUND = 404; public static Object[] sendPOST(String endpoint, String content, Map headers) throws IOException, InterruptedException { - HttpClient httpClient = new DefaultHttpClient(); - HttpPost httpPost = new HttpPost(endpoint); - for (String headerType : headers.keySet()) { - httpPost.setHeader(headerType, headers.get(headerType)); - } - if (null != content) { - HttpEntity httpEntity = new ByteArrayEntity(content.getBytes("UTF-8")); - if (headers.get("Content-Type") == null) { - httpPost.setHeader("Content-Type", "application/json"); + try (CloseableHttpClient httpClient = HttpClients.createDefault()) { + HttpPost httpPost = new HttpPost(endpoint); + for (String headerType : headers.keySet()) { + httpPost.setHeader(headerType, headers.get(headerType)); } - httpPost.setEntity(httpEntity); - } - HttpResponse httpResponse = httpClient.execute(httpPost); - Thread.sleep(1000); - if (httpResponse.getEntity() != null) { - BufferedReader reader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent())); - String inputLine; - StringBuilder response = new StringBuilder(); + if (null != content) { + HttpEntity httpEntity = new ByteArrayEntity(content.getBytes(StandardCharsets.UTF_8)); + if (headers.get("Content-Type") == null) { + httpPost.setHeader("Content-Type", "application/json"); + } + httpPost.setEntity(httpEntity); + } + try (CloseableHttpResponse httpResponse = httpClient.execute(httpPost)) { + if (httpResponse.getEntity() != null) { + BufferedReader reader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent())); + String inputLine; + StringBuilder response = new StringBuilder(); - while ((inputLine = reader.readLine()) != null) { - response.append(inputLine); + while ((inputLine = reader.readLine()) != null) { + response.append(inputLine); + } + reader.close(); + return new Object[] { httpResponse.getStatusLine().getStatusCode(), response.toString() }; + } else { + return new Object[] { httpResponse.getStatusLine().getStatusCode() }; + } } - reader.close(); - return new Object[] { httpResponse.getStatusLine().getStatusCode(), response.toString() }; - } else { - return new Object[] { httpResponse.getStatusLine().getStatusCode() }; + } catch (IOException e) { + throw new IOException(e.getMessage()); } } public static Object[] sendGET(String endpoint, Map headers) throws IOException, InterruptedException { - HttpClient httpClient = new DefaultHttpClient(); - HttpGet httpGet = new HttpGet(endpoint); - for (String headerType : headers.keySet()) { - httpGet.setHeader(headerType, headers.get(headerType)); - } - HttpResponse httpResponse = httpClient.execute(httpGet); - Thread.sleep(1000); - if (httpResponse.getEntity() != null) { - BufferedReader reader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent())); - String inputLine; - StringBuilder response = new StringBuilder(); + try (CloseableHttpClient httpClient = HttpClients.createDefault()) { + HttpGet httpGet = new HttpGet(endpoint); + for (String headerType : headers.keySet()) { + httpGet.setHeader(headerType, headers.get(headerType)); + } + try (CloseableHttpResponse httpResponse = httpClient.execute(httpGet)) { + if (httpResponse.getEntity() != null) { + BufferedReader reader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent())); + String inputLine; + StringBuilder response = new StringBuilder(); - while ((inputLine = reader.readLine()) != null) { - response.append(inputLine); + while ((inputLine = reader.readLine()) != null) { + response.append(inputLine); + } + reader.close(); + return new Object[] { httpResponse.getStatusLine().getStatusCode(), response.toString() }; + } else { + return new Object[] { httpResponse.getStatusLine().getStatusCode() }; + } } - reader.close(); - return new Object[] { httpResponse.getStatusLine().getStatusCode(), response.toString() }; - } else { - return new Object[] { httpResponse.getStatusLine().getStatusCode() }; + } catch (IOException e) { + throw new IOException(e.getMessage()); } } public static int sendPUT(String endpoint, String content, Map headers) throws IOException, InterruptedException { - HttpClient httpClient = new DefaultHttpClient(); - HttpPut httpPut = new HttpPut(endpoint); - for (String headerType : headers.keySet()) { - httpPut.setHeader(headerType, headers.get(headerType)); - } - if (null != content) { - HttpEntity httpEntity = new ByteArrayEntity(content.getBytes("UTF-8")); - if (headers.get("Content-Type") == null) { - httpPut.setHeader("Content-Type", "application/json"); + try (CloseableHttpClient httpClient = HttpClients.createDefault()) { + HttpPut httpPut = new HttpPut(endpoint); + for (String headerType : headers.keySet()) { + httpPut.setHeader(headerType, headers.get(headerType)); } - httpPut.setEntity(httpEntity); + if (null != content) { + HttpEntity httpEntity = new ByteArrayEntity(content.getBytes(StandardCharsets.UTF_8)); + if (headers.get("Content-Type") == null) { + httpPut.setHeader("Content-Type", "application/json"); + } + httpPut.setEntity(httpEntity); + } + try (CloseableHttpResponse response = httpClient.execute(httpPut)) { + return response.getStatusLine().getStatusCode(); + } + } catch (IOException e) { + throw new IOException(e.getMessage()); } - HttpResponse httpResponse = httpClient.execute(httpPut); - Thread.sleep(1000); - return httpResponse.getStatusLine().getStatusCode(); } public static int sendPATCH(String endpoint, String content, Map headers) throws IOException, InterruptedException { - HttpClient httpClient = new DefaultHttpClient(); - HttpPatch httpPatch = new HttpPatch(endpoint); - for (String headerType : headers.keySet()) { - httpPatch.setHeader(headerType, headers.get(headerType)); - } - if (null != content) { - HttpEntity httpEntity = new ByteArrayEntity(content.getBytes("UTF-8")); - if (headers.get("Content-Type") == null) { - httpPatch.setHeader("Content-Type", "application/json"); + try (CloseableHttpClient httpClient = HttpClients.createDefault()) { + HttpPatch httpPatch = new HttpPatch(endpoint); + for (String headerType : headers.keySet()) { + httpPatch.setHeader(headerType, headers.get(headerType)); + } + if (null != content) { + HttpEntity httpEntity = new ByteArrayEntity(content.getBytes(StandardCharsets.UTF_8)); + if (headers.get("Content-Type") == null) { + httpPatch.setHeader("Content-Type", "application/json"); + } + httpPatch.setEntity(httpEntity); } - httpPatch.setEntity(httpEntity); + try (CloseableHttpResponse response = httpClient.execute(httpPatch)) { + return response.getStatusLine().getStatusCode(); + } + } catch (IOException e) { + throw new IOException(e.getMessage()); } - HttpResponse httpResponse = httpClient.execute(httpPatch); - Thread.sleep(1000); - return httpResponse.getStatusLine().getStatusCode(); } public static int sendDELETE(String endpoint, Map headers) throws IOException, InterruptedException { - HttpClient httpClient = new DefaultHttpClient(); - HttpDelete httpDelete = new HttpDelete(endpoint); - for (String headerType : headers.keySet()) { - httpDelete.setHeader(headerType, headers.get(headerType)); + try (CloseableHttpClient httpClient = HttpClients.createDefault()) { + HttpDelete httpDelete = new HttpDelete(endpoint); + for (String headerType : headers.keySet()) { + httpDelete.setHeader(headerType, headers.get(headerType)); + } + try (CloseableHttpResponse response = httpClient.execute(httpDelete)) { + return response.getStatusLine().getStatusCode(); + } + } catch (IOException e) { + throw new IOException(e.getMessage()); } - HttpResponse httpResponse = httpClient.execute(httpDelete); - Thread.sleep(1000); - return httpResponse.getStatusLine().getStatusCode(); } public static String getETag(String content) throws ParseException, JSONException { @@ -157,5 +173,4 @@ public static String getETag(String content) throws ParseException, JSONExceptio return ((JSONObject) ((JSONArray) ((JSONObject) obj).get("value")).get(0)).get("@odata.etag").toString(); } } - } diff --git a/pom.xml b/pom.xml index c4ffee3012..4a7e166aef 100644 --- a/pom.xml +++ b/pom.xml @@ -1932,6 +1932,11 @@ 0.31.1.wso2v3 22.3.4 71.1 + + -Djdk.util.zip.disableZip64ExtraFieldValidation=true + -Djdk.nio.zipfs.allowDotZipEntry=true + --add-opens=java.base/java.net=ALL-UNNAMED + @@ -2129,6 +2134,13 @@ org.apache.maven.plugins maven-surefire-plugin ${maven.surefire.plugin.version} + + + -Djdk.util.zip.disableZip64ExtraFieldValidation=true + -Djdk.nio.zipfs.allowDotZipEntry=true + --add-opens=java.base/java.net=ALL-UNNAMED + + org.jacoco From 0ce14c2488847f4ef38fb88d0c845c8d166355c3 Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Wed, 13 Nov 2024 12:33:32 +0530 Subject: [PATCH 16/27] Add java.util --- .../dataservice-hosting-tests/tests-integration/tests/pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/pom.xml b/integration/dataservice-hosting-tests/tests-integration/tests/pom.xml index c41b5ef52c..1a640279fe 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/pom.xml +++ b/integration/dataservice-hosting-tests/tests-integration/tests/pom.xml @@ -42,7 +42,7 @@ -Xmx1024m --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.reflect=ALL-UNNAMED - --add-opens java.base/jdk.internal.reflect=ALL-UNNAMED + --add-opens java.base/java.util=ALL-UNNAMED false false From d61e615a5d892df4d3f2b1f11bb0898872c5c3b3 Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Wed, 13 Nov 2024 12:56:27 +0530 Subject: [PATCH 17/27] Remove unwanted exception --- .github/workflows/jdk-17-tests.yml | 4 ++++ .github/workflows/jdk-21-tests.yml | 2 +- .../tests-integration/tests/pom.xml | 7 +------ .../test/dbConsole/DBConsoleAvailableTest.java | 2 +- .../test/odata/ODataRequestThreadExecutor.java | 16 ++++++++-------- .../integration/test/odata/ODataTestUtils.java | 10 +++++----- pom.xml | 12 ------------ 7 files changed, 20 insertions(+), 33 deletions(-) diff --git a/.github/workflows/jdk-17-tests.yml b/.github/workflows/jdk-17-tests.yml index f7d19ccc69..e092d12f75 100644 --- a/.github/workflows/jdk-17-tests.yml +++ b/.github/workflows/jdk-17-tests.yml @@ -34,6 +34,10 @@ jobs: run: echo "MAVEN_VERSION=$(mvn -v)" - name: check java version run: echo "JAVA_VERSION=$(java -version)" + - name: Set JAVA_TOOL_OPTIONS + run: | + NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED" + echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV - name: Build in jdk11 run: mvn clean install -DskipTests --file pom.xml - name: Set up JDK 17 diff --git a/.github/workflows/jdk-21-tests.yml b/.github/workflows/jdk-21-tests.yml index 897592cf59..09bd5df49d 100644 --- a/.github/workflows/jdk-21-tests.yml +++ b/.github/workflows/jdk-21-tests.yml @@ -36,7 +36,7 @@ jobs: run: echo "JAVA_VERSION=$(java -version)" - name: Set JAVA_TOOL_OPTIONS run: | - NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true --add-opens=java.base/java.net=ALL-UNNAMED" + NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED" echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV - name: Build in jdk11 run: mvn clean install -DskipTests --file pom.xml diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/pom.xml b/integration/dataservice-hosting-tests/tests-integration/tests/pom.xml index 1a640279fe..c13d34f68f 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/pom.xml +++ b/integration/dataservice-hosting-tests/tests-integration/tests/pom.xml @@ -38,12 +38,7 @@ 2.22.2 - - -Xmx1024m - --add-opens java.base/java.lang=ALL-UNNAMED - --add-opens java.base/java.lang.reflect=ALL-UNNAMED - --add-opens java.base/java.util=ALL-UNNAMED - + -Xmx1024m false false diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/dbConsole/DBConsoleAvailableTest.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/dbConsole/DBConsoleAvailableTest.java index 5cfe3d1585..c1160417bd 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/dbConsole/DBConsoleAvailableTest.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/dbConsole/DBConsoleAvailableTest.java @@ -37,7 +37,7 @@ public void serviceDeployment() throws Exception { } @Test(groups = "wso2.dss", description = "dbConsole available test case") - public void dbConsoleAvailableTest() throws XPathExpressionException, IOException, InterruptedException { + public void dbConsoleAvailableTest() throws XPathExpressionException, IOException { String webAppUrl = dssContext.getContextUrls().getWebAppURL(); String url = webAppUrl + "/" + "dbconsole/login.jsp?region=region5&item=dbconsole"; Map headers = new HashMap<>(); diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataRequestThreadExecutor.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataRequestThreadExecutor.java index bdd02379bf..24019bce9d 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataRequestThreadExecutor.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataRequestThreadExecutor.java @@ -26,10 +26,10 @@ */ public class ODataRequestThreadExecutor extends Thread { - private String httpMethod; - private String content; - private Map headers; - private String endpoint; + private final String httpMethod; + private final String content; + private final Map headers; + private final String endpoint; public ODataRequestThreadExecutor(String httpMethod, String content, Map headers, String endpoint) { this.content = content; @@ -43,28 +43,28 @@ public void run() { case "POST": try { ODataTestUtils.sendPOST(endpoint, content, headers); - } catch (IOException|InterruptedException e) { + } catch (IOException e) { e.printStackTrace(); } break; case "PUT": try { ODataTestUtils.sendPUT(endpoint, content, headers); - } catch (IOException|InterruptedException e) { + } catch (IOException e) { e.printStackTrace(); } break; case "PATCH": try { ODataTestUtils.sendPATCH(endpoint, content, headers); - } catch (IOException|InterruptedException e) { + } catch (IOException e) { e.printStackTrace(); } break; case "DELETE": try { ODataTestUtils.sendDELETE(endpoint, headers); - } catch (IOException|InterruptedException e) { + } catch (IOException e) { e.printStackTrace(); } break; diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java index a3292f06cd..a394d8429d 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java @@ -49,7 +49,7 @@ public class ODataTestUtils { public static final int PRE_CONDITION_FAILED = 412; public static final int NOT_FOUND = 404; - public static Object[] sendPOST(String endpoint, String content, Map headers) throws IOException, InterruptedException { + public static Object[] sendPOST(String endpoint, String content, Map headers) throws IOException { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpPost httpPost = new HttpPost(endpoint); for (String headerType : headers.keySet()) { @@ -82,7 +82,7 @@ public static Object[] sendPOST(String endpoint, String content, Map headers) throws IOException, InterruptedException { + public static Object[] sendGET(String endpoint, Map headers) throws IOException { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpGet httpGet = new HttpGet(endpoint); for (String headerType : headers.keySet()) { @@ -108,7 +108,7 @@ public static Object[] sendGET(String endpoint, Map headers) thr } } - public static int sendPUT(String endpoint, String content, Map headers) throws IOException, InterruptedException { + public static int sendPUT(String endpoint, String content, Map headers) throws IOException { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpPut httpPut = new HttpPut(endpoint); for (String headerType : headers.keySet()) { @@ -129,7 +129,7 @@ public static int sendPUT(String endpoint, String content, Map h } } - public static int sendPATCH(String endpoint, String content, Map headers) throws IOException, InterruptedException { + public static int sendPATCH(String endpoint, String content, Map headers) throws IOException { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpPatch httpPatch = new HttpPatch(endpoint); for (String headerType : headers.keySet()) { @@ -150,7 +150,7 @@ public static int sendPATCH(String endpoint, String content, Map } } - public static int sendDELETE(String endpoint, Map headers) throws IOException, InterruptedException { + public static int sendDELETE(String endpoint, Map headers) throws IOException { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpDelete httpDelete = new HttpDelete(endpoint); for (String headerType : headers.keySet()) { diff --git a/pom.xml b/pom.xml index 4a7e166aef..c4ffee3012 100644 --- a/pom.xml +++ b/pom.xml @@ -1932,11 +1932,6 @@ 0.31.1.wso2v3 22.3.4 71.1 - - -Djdk.util.zip.disableZip64ExtraFieldValidation=true - -Djdk.nio.zipfs.allowDotZipEntry=true - --add-opens=java.base/java.net=ALL-UNNAMED - @@ -2134,13 +2129,6 @@ org.apache.maven.plugins maven-surefire-plugin ${maven.surefire.plugin.version} - - - -Djdk.util.zip.disableZip64ExtraFieldValidation=true - -Djdk.nio.zipfs.allowDotZipEntry=true - --add-opens=java.base/java.net=ALL-UNNAMED - - org.jacoco From ab884326b9bd105cbc05ca205186cfa4feb0e13e Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Wed, 13 Nov 2024 14:05:53 +0530 Subject: [PATCH 18/27] Fix test failure --- .github/workflows/jdk-17-tests.yml | 4 ++-- .github/workflows/jdk-21-tests.yml | 4 ++-- .../initializer/MediationPersistenceTest.java | 10 ++++++---- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/.github/workflows/jdk-17-tests.yml b/.github/workflows/jdk-17-tests.yml index e092d12f75..5ead24b64c 100644 --- a/.github/workflows/jdk-17-tests.yml +++ b/.github/workflows/jdk-17-tests.yml @@ -20,7 +20,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Cache Maven packages - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.m2 key: ${{ runner.os }}-m2 @@ -36,7 +36,7 @@ jobs: run: echo "JAVA_VERSION=$(java -version)" - name: Set JAVA_TOOL_OPTIONS run: | - NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED" + NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED" echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV - name: Build in jdk11 run: mvn clean install -DskipTests --file pom.xml diff --git a/.github/workflows/jdk-21-tests.yml b/.github/workflows/jdk-21-tests.yml index 09bd5df49d..70ac284287 100644 --- a/.github/workflows/jdk-21-tests.yml +++ b/.github/workflows/jdk-21-tests.yml @@ -20,7 +20,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: Cache Maven packages - uses: actions/cache@v2 + uses: actions/cache@v3 with: path: ~/.m2 key: ${{ runner.os }}-m2 @@ -36,7 +36,7 @@ jobs: run: echo "JAVA_VERSION=$(java -version)" - name: Set JAVA_TOOL_OPTIONS run: | - NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED" + NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED" echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV - name: Build in jdk11 run: mvn clean install -DskipTests --file pom.xml diff --git a/components/org.wso2.micro.integrator.initializer/src/test/java/org/wso2/carbon/mediation/initializer/MediationPersistenceTest.java b/components/org.wso2.micro.integrator.initializer/src/test/java/org/wso2/carbon/mediation/initializer/MediationPersistenceTest.java index 4a6d5dafe5..df106017b8 100644 --- a/components/org.wso2.micro.integrator.initializer/src/test/java/org/wso2/carbon/mediation/initializer/MediationPersistenceTest.java +++ b/components/org.wso2.micro.integrator.initializer/src/test/java/org/wso2/carbon/mediation/initializer/MediationPersistenceTest.java @@ -44,6 +44,7 @@ import javax.xml.stream.XMLStreamException; import java.io.File; +import java.io.IOException; import java.io.InputStream; import java.io.FileInputStream; import java.io.FileNotFoundException; @@ -75,13 +76,14 @@ public void setUp() { } protected SynapseConfiguration getConfigurationFromSynapseXML() { - try { - FileInputStream fin = new FileInputStream(path + File.separator + "synapse.xml"); + try (FileInputStream fin = new FileInputStream(path + File.separator + "synapse.xml")) { return XMLConfigurationBuilder.getConfiguration(fin, new Properties()); } catch (FileNotFoundException e) { - fail("The synapse.xml file does not exist"); + fail("The synapse.xml file does not exist at the path: " + path); } catch (XMLStreamException e) { - fail("Error parsing the synapse.xml"); + fail("Error parsing the synapse.xml file at the path: " + path); + } catch (IOException e) { + fail("IO error while reading the synapse.xml file at the path: " + path); } return null; } From 2a990df8ca317a4a58624b5d1d2d30a4f948ac7c Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Wed, 13 Nov 2024 15:52:04 +0530 Subject: [PATCH 19/27] Update script file --- .github/workflows/jdk-17-tests.yml | 2 +- .github/workflows/jdk-21-tests.yml | 2 +- .../resources/artifacts/DSS/serverConfigs/wso2server.sh | 8 ++++---- .../resources/artifacts/DSS/serverConfigs/wso2server1.sh | 8 ++++---- .../artifacts/DSS/serverConfigs/wso2serverLegacyMode.sh | 8 ++++---- .../artifacts/DSS/serverConfigs/wso2serverLegacyMode1.sh | 8 ++++---- .../tests/src/test/resources/bin/integrator.sh | 8 ++++---- .../tests-mediator-1/src/test/resources/bin/integrator.sh | 8 ++++---- .../tests-mediator-2/src/test/resources/bin/integrator.sh | 8 ++++---- .../src/test/resources/bin/integrator.sh | 8 ++++---- .../tests-patches/src/test/resources/bin/integrator.sh | 8 ++++---- .../tests-rabbitmq/src/test/resources/bin/integrator.sh | 8 ++++---- .../tests-wso2mb/src/test/resources/bin/integrator.sh | 8 ++++---- .../tests-sample/src/test/resources/bin/integrator.sh | 8 ++++---- .../tests-service/src/test/resources/bin/integrator.sh | 8 ++++---- .../tests-transport/src/test/resources/bin/integrator.sh | 8 ++++---- 16 files changed, 58 insertions(+), 58 deletions(-) diff --git a/.github/workflows/jdk-17-tests.yml b/.github/workflows/jdk-17-tests.yml index 5ead24b64c..0763a0942a 100644 --- a/.github/workflows/jdk-17-tests.yml +++ b/.github/workflows/jdk-17-tests.yml @@ -36,7 +36,7 @@ jobs: run: echo "JAVA_VERSION=$(java -version)" - name: Set JAVA_TOOL_OPTIONS run: | - NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED" + NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/jdk.internal.reflect=ALL-UNNAMED" echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV - name: Build in jdk11 run: mvn clean install -DskipTests --file pom.xml diff --git a/.github/workflows/jdk-21-tests.yml b/.github/workflows/jdk-21-tests.yml index 70ac284287..0958af5a9c 100644 --- a/.github/workflows/jdk-21-tests.yml +++ b/.github/workflows/jdk-21-tests.yml @@ -36,7 +36,7 @@ jobs: run: echo "JAVA_VERSION=$(java -version)" - name: Set JAVA_TOOL_OPTIONS run: | - NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED" + NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/jdk.internal.reflect=ALL-UNNAMED" echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV - name: Build in jdk11 run: mvn clean install -DskipTests --file pom.xml diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/artifacts/DSS/serverConfigs/wso2server.sh b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/artifacts/DSS/serverConfigs/wso2server.sh index 829c4a7773..01c1f868cc 100755 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/artifacts/DSS/serverConfigs/wso2server.sh +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/artifacts/DSS/serverConfigs/wso2server.sh @@ -211,10 +211,10 @@ elif [ "$CMD" = "version" ]; then fi # ---------- Handle the SSL Issue with proper JDK version -------------------- -jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` -if [ "$jdk_17" = "" ]; then - echo " Starting WSO2 Carbon (in unsupported JDK)" - echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +jdk_version=`$JAVA_HOME/bin/java -version 2>&1 | grep -E "1\.(7|8)|21"` +if [ -z "$jdk_version" ]; then + echo "Starting WSO2 Carbon (in unsupported JDK)" + echo "[ERROR] CARBON is supported only on JDK 1.7, 1.8, or 21" fi CARBON_XBOOTCLASSPATH="" diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/artifacts/DSS/serverConfigs/wso2server1.sh b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/artifacts/DSS/serverConfigs/wso2server1.sh index e1822606da..b8dd5a06a7 100755 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/artifacts/DSS/serverConfigs/wso2server1.sh +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/artifacts/DSS/serverConfigs/wso2server1.sh @@ -211,10 +211,10 @@ elif [ "$CMD" = "version" ]; then fi # ---------- Handle the SSL Issue with proper JDK version -------------------- -jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` -if [ "$jdk_17" = "" ]; then - echo " Starting WSO2 Carbon (in unsupported JDK)" - echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +jdk_version=`$JAVA_HOME/bin/java -version 2>&1 | grep -E "1\.(7|8)|21"` +if [ -z "$jdk_version" ]; then + echo "Starting WSO2 Carbon (in unsupported JDK)" + echo "[ERROR] CARBON is supported only on JDK 1.7, 1.8, or 21" fi CARBON_XBOOTCLASSPATH="" diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/artifacts/DSS/serverConfigs/wso2serverLegacyMode.sh b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/artifacts/DSS/serverConfigs/wso2serverLegacyMode.sh index e2171e9c16..cb733d9068 100755 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/artifacts/DSS/serverConfigs/wso2serverLegacyMode.sh +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/artifacts/DSS/serverConfigs/wso2serverLegacyMode.sh @@ -211,10 +211,10 @@ elif [ "$CMD" = "version" ]; then fi # ---------- Handle the SSL Issue with proper JDK version -------------------- -jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` -if [ "$jdk_17" = "" ]; then - echo " Starting WSO2 Carbon (in unsupported JDK)" - echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +jdk_version=`$JAVA_HOME/bin/java -version 2>&1 | grep -E "1\.(7|8)|21"` +if [ -z "$jdk_version" ]; then + echo "Starting WSO2 Carbon (in unsupported JDK)" + echo "[ERROR] CARBON is supported only on JDK 1.7, 1.8, or 21" fi CARBON_XBOOTCLASSPATH="" diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/artifacts/DSS/serverConfigs/wso2serverLegacyMode1.sh b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/artifacts/DSS/serverConfigs/wso2serverLegacyMode1.sh index 5a81bf52a3..99dcbf703c 100755 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/artifacts/DSS/serverConfigs/wso2serverLegacyMode1.sh +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/artifacts/DSS/serverConfigs/wso2serverLegacyMode1.sh @@ -211,10 +211,10 @@ elif [ "$CMD" = "version" ]; then fi # ---------- Handle the SSL Issue with proper JDK version -------------------- -jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` -if [ "$jdk_17" = "" ]; then - echo " Starting WSO2 Carbon (in unsupported JDK)" - echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +jdk_version=`$JAVA_HOME/bin/java -version 2>&1 | grep -E "1\.(7|8)|21"` +if [ -z "$jdk_version" ]; then + echo "Starting WSO2 Carbon (in unsupported JDK)" + echo "[ERROR] CARBON is supported only on JDK 1.7, 1.8, or 21" fi CARBON_XBOOTCLASSPATH="" diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/bin/integrator.sh b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/bin/integrator.sh index f59e001127..2a6a189918 100755 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/bin/integrator.sh +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/resources/bin/integrator.sh @@ -211,10 +211,10 @@ elif [ "$CMD" = "version" ]; then fi # ---------- Handle the SSL Issue with proper JDK version -------------------- -jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` -if [ "$jdk_17" = "" ]; then - echo " Starting WSO2 Carbon (in unsupported JDK)" - echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +jdk_version=`$JAVA_HOME/bin/java -version 2>&1 | grep -E "1\.(7|8)|21"` +if [ -z "$jdk_version" ]; then + echo "Starting WSO2 Carbon (in unsupported JDK)" + echo "[ERROR] CARBON is supported only on JDK 1.7, 1.8, or 21" fi CARBON_XBOOTCLASSPATH="" diff --git a/integration/mediation-tests/tests-mediator-1/src/test/resources/bin/integrator.sh b/integration/mediation-tests/tests-mediator-1/src/test/resources/bin/integrator.sh index f59e001127..2a6a189918 100755 --- a/integration/mediation-tests/tests-mediator-1/src/test/resources/bin/integrator.sh +++ b/integration/mediation-tests/tests-mediator-1/src/test/resources/bin/integrator.sh @@ -211,10 +211,10 @@ elif [ "$CMD" = "version" ]; then fi # ---------- Handle the SSL Issue with proper JDK version -------------------- -jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` -if [ "$jdk_17" = "" ]; then - echo " Starting WSO2 Carbon (in unsupported JDK)" - echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +jdk_version=`$JAVA_HOME/bin/java -version 2>&1 | grep -E "1\.(7|8)|21"` +if [ -z "$jdk_version" ]; then + echo "Starting WSO2 Carbon (in unsupported JDK)" + echo "[ERROR] CARBON is supported only on JDK 1.7, 1.8, or 21" fi CARBON_XBOOTCLASSPATH="" diff --git a/integration/mediation-tests/tests-mediator-2/src/test/resources/bin/integrator.sh b/integration/mediation-tests/tests-mediator-2/src/test/resources/bin/integrator.sh index f59e001127..2a6a189918 100755 --- a/integration/mediation-tests/tests-mediator-2/src/test/resources/bin/integrator.sh +++ b/integration/mediation-tests/tests-mediator-2/src/test/resources/bin/integrator.sh @@ -211,10 +211,10 @@ elif [ "$CMD" = "version" ]; then fi # ---------- Handle the SSL Issue with proper JDK version -------------------- -jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` -if [ "$jdk_17" = "" ]; then - echo " Starting WSO2 Carbon (in unsupported JDK)" - echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +jdk_version=`$JAVA_HOME/bin/java -version 2>&1 | grep -E "1\.(7|8)|21"` +if [ -z "$jdk_version" ]; then + echo "Starting WSO2 Carbon (in unsupported JDK)" + echo "[ERROR] CARBON is supported only on JDK 1.7, 1.8, or 21" fi CARBON_XBOOTCLASSPATH="" diff --git a/integration/mediation-tests/tests-patches-with-smb2/src/test/resources/bin/integrator.sh b/integration/mediation-tests/tests-patches-with-smb2/src/test/resources/bin/integrator.sh index f59e001127..2a6a189918 100755 --- a/integration/mediation-tests/tests-patches-with-smb2/src/test/resources/bin/integrator.sh +++ b/integration/mediation-tests/tests-patches-with-smb2/src/test/resources/bin/integrator.sh @@ -211,10 +211,10 @@ elif [ "$CMD" = "version" ]; then fi # ---------- Handle the SSL Issue with proper JDK version -------------------- -jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` -if [ "$jdk_17" = "" ]; then - echo " Starting WSO2 Carbon (in unsupported JDK)" - echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +jdk_version=`$JAVA_HOME/bin/java -version 2>&1 | grep -E "1\.(7|8)|21"` +if [ -z "$jdk_version" ]; then + echo "Starting WSO2 Carbon (in unsupported JDK)" + echo "[ERROR] CARBON is supported only on JDK 1.7, 1.8, or 21" fi CARBON_XBOOTCLASSPATH="" diff --git a/integration/mediation-tests/tests-patches/src/test/resources/bin/integrator.sh b/integration/mediation-tests/tests-patches/src/test/resources/bin/integrator.sh index f59e001127..2a6a189918 100755 --- a/integration/mediation-tests/tests-patches/src/test/resources/bin/integrator.sh +++ b/integration/mediation-tests/tests-patches/src/test/resources/bin/integrator.sh @@ -211,10 +211,10 @@ elif [ "$CMD" = "version" ]; then fi # ---------- Handle the SSL Issue with proper JDK version -------------------- -jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` -if [ "$jdk_17" = "" ]; then - echo " Starting WSO2 Carbon (in unsupported JDK)" - echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +jdk_version=`$JAVA_HOME/bin/java -version 2>&1 | grep -E "1\.(7|8)|21"` +if [ -z "$jdk_version" ]; then + echo "Starting WSO2 Carbon (in unsupported JDK)" + echo "[ERROR] CARBON is supported only on JDK 1.7, 1.8, or 21" fi CARBON_XBOOTCLASSPATH="" diff --git a/integration/mediation-tests/tests-platform/tests-rabbitmq/src/test/resources/bin/integrator.sh b/integration/mediation-tests/tests-platform/tests-rabbitmq/src/test/resources/bin/integrator.sh index f59e001127..2a6a189918 100755 --- a/integration/mediation-tests/tests-platform/tests-rabbitmq/src/test/resources/bin/integrator.sh +++ b/integration/mediation-tests/tests-platform/tests-rabbitmq/src/test/resources/bin/integrator.sh @@ -211,10 +211,10 @@ elif [ "$CMD" = "version" ]; then fi # ---------- Handle the SSL Issue with proper JDK version -------------------- -jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` -if [ "$jdk_17" = "" ]; then - echo " Starting WSO2 Carbon (in unsupported JDK)" - echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +jdk_version=`$JAVA_HOME/bin/java -version 2>&1 | grep -E "1\.(7|8)|21"` +if [ -z "$jdk_version" ]; then + echo "Starting WSO2 Carbon (in unsupported JDK)" + echo "[ERROR] CARBON is supported only on JDK 1.7, 1.8, or 21" fi CARBON_XBOOTCLASSPATH="" diff --git a/integration/mediation-tests/tests-platform/tests-wso2mb/src/test/resources/bin/integrator.sh b/integration/mediation-tests/tests-platform/tests-wso2mb/src/test/resources/bin/integrator.sh index f59e001127..2a6a189918 100755 --- a/integration/mediation-tests/tests-platform/tests-wso2mb/src/test/resources/bin/integrator.sh +++ b/integration/mediation-tests/tests-platform/tests-wso2mb/src/test/resources/bin/integrator.sh @@ -211,10 +211,10 @@ elif [ "$CMD" = "version" ]; then fi # ---------- Handle the SSL Issue with proper JDK version -------------------- -jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` -if [ "$jdk_17" = "" ]; then - echo " Starting WSO2 Carbon (in unsupported JDK)" - echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +jdk_version=`$JAVA_HOME/bin/java -version 2>&1 | grep -E "1\.(7|8)|21"` +if [ -z "$jdk_version" ]; then + echo "Starting WSO2 Carbon (in unsupported JDK)" + echo "[ERROR] CARBON is supported only on JDK 1.7, 1.8, or 21" fi CARBON_XBOOTCLASSPATH="" diff --git a/integration/mediation-tests/tests-sample/src/test/resources/bin/integrator.sh b/integration/mediation-tests/tests-sample/src/test/resources/bin/integrator.sh index f59e001127..2a6a189918 100755 --- a/integration/mediation-tests/tests-sample/src/test/resources/bin/integrator.sh +++ b/integration/mediation-tests/tests-sample/src/test/resources/bin/integrator.sh @@ -211,10 +211,10 @@ elif [ "$CMD" = "version" ]; then fi # ---------- Handle the SSL Issue with proper JDK version -------------------- -jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` -if [ "$jdk_17" = "" ]; then - echo " Starting WSO2 Carbon (in unsupported JDK)" - echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +jdk_version=`$JAVA_HOME/bin/java -version 2>&1 | grep -E "1\.(7|8)|21"` +if [ -z "$jdk_version" ]; then + echo "Starting WSO2 Carbon (in unsupported JDK)" + echo "[ERROR] CARBON is supported only on JDK 1.7, 1.8, or 21" fi CARBON_XBOOTCLASSPATH="" diff --git a/integration/mediation-tests/tests-service/src/test/resources/bin/integrator.sh b/integration/mediation-tests/tests-service/src/test/resources/bin/integrator.sh index f59e001127..2a6a189918 100755 --- a/integration/mediation-tests/tests-service/src/test/resources/bin/integrator.sh +++ b/integration/mediation-tests/tests-service/src/test/resources/bin/integrator.sh @@ -211,10 +211,10 @@ elif [ "$CMD" = "version" ]; then fi # ---------- Handle the SSL Issue with proper JDK version -------------------- -jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` -if [ "$jdk_17" = "" ]; then - echo " Starting WSO2 Carbon (in unsupported JDK)" - echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +jdk_version=`$JAVA_HOME/bin/java -version 2>&1 | grep -E "1\.(7|8)|21"` +if [ -z "$jdk_version" ]; then + echo "Starting WSO2 Carbon (in unsupported JDK)" + echo "[ERROR] CARBON is supported only on JDK 1.7, 1.8, or 21" fi CARBON_XBOOTCLASSPATH="" diff --git a/integration/mediation-tests/tests-transport/src/test/resources/bin/integrator.sh b/integration/mediation-tests/tests-transport/src/test/resources/bin/integrator.sh index f59e001127..2a6a189918 100755 --- a/integration/mediation-tests/tests-transport/src/test/resources/bin/integrator.sh +++ b/integration/mediation-tests/tests-transport/src/test/resources/bin/integrator.sh @@ -211,10 +211,10 @@ elif [ "$CMD" = "version" ]; then fi # ---------- Handle the SSL Issue with proper JDK version -------------------- -jdk_17=`$JAVA_HOME/bin/java -version 2>&1 | grep "1.[7|8]"` -if [ "$jdk_17" = "" ]; then - echo " Starting WSO2 Carbon (in unsupported JDK)" - echo " [ERROR] CARBON is supported only on JDK 1.7 and 1.8" +jdk_version=`$JAVA_HOME/bin/java -version 2>&1 | grep -E "1\.(7|8)|21"` +if [ -z "$jdk_version" ]; then + echo "Starting WSO2 Carbon (in unsupported JDK)" + echo "[ERROR] CARBON is supported only on JDK 1.7, 1.8, or 21" fi CARBON_XBOOTCLASSPATH="" From db31368dbf531ad9b526b40466b92d9243a1aca5 Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Wed, 13 Nov 2024 19:08:02 +0530 Subject: [PATCH 20/27] Update workflow --- .github/workflows/jdk-17-tests.yml | 2 +- .github/workflows/jdk-21-tests.yml | 2 +- .../common/extensions/carbonserver/CarbonServerManager.java | 5 ++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/jdk-17-tests.yml b/.github/workflows/jdk-17-tests.yml index 0763a0942a..134dd5adec 100644 --- a/.github/workflows/jdk-17-tests.yml +++ b/.github/workflows/jdk-17-tests.yml @@ -36,7 +36,7 @@ jobs: run: echo "JAVA_VERSION=$(java -version)" - name: Set JAVA_TOOL_OPTIONS run: | - NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/jdk.internal.reflect=ALL-UNNAMED" + NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/jdk.internal.reflect=ALL-UNNAMED --add-opens=java.base/java.util.TreeMap=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.lang.Thread=ALL-UNNAMED" echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV - name: Build in jdk11 run: mvn clean install -DskipTests --file pom.xml diff --git a/.github/workflows/jdk-21-tests.yml b/.github/workflows/jdk-21-tests.yml index 0958af5a9c..ec6688e882 100644 --- a/.github/workflows/jdk-21-tests.yml +++ b/.github/workflows/jdk-21-tests.yml @@ -36,7 +36,7 @@ jobs: run: echo "JAVA_VERSION=$(java -version)" - name: Set JAVA_TOOL_OPTIONS run: | - NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/jdk.internal.reflect=ALL-UNNAMED" + NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/jdk.internal.reflect=ALL-UNNAMED --add-opens=java.base/java.util.TreeMap=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.lang.Thread=ALL-UNNAMED" echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV - name: Build in jdk11 run: mvn clean install -DskipTests --file pom.xml diff --git a/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/CarbonServerManager.java b/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/CarbonServerManager.java index 9ba50e3391..58efba38c5 100644 --- a/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/CarbonServerManager.java +++ b/integration/automation-extensions/src/main/java/org/wso2/esb/integration/common/extensions/carbonserver/CarbonServerManager.java @@ -45,7 +45,6 @@ import java.util.Arrays; import java.util.Map; import java.util.Set; -import java.util.concurrent.TimeUnit; import java.util.function.BooleanSupplier; import javax.xml.xpath.XPathExpressionException; @@ -316,10 +315,10 @@ private Process startProcess(String workingDirectory, String[] cmdArray) throws } private void waitTill(BooleanSupplier predicate, int maxWaitTime, String task) throws InterruptedException { - long time = System.currentTimeMillis() + TimeUnit.SECONDS.toMillis(maxWaitTime); + long time = System.currentTimeMillis() + maxWaitTime * 1000L; while (predicate.getAsBoolean() && System.currentTimeMillis() < time) { log.info("waiting for server " + task); - TimeUnit.SECONDS.sleep(1); + Thread.sleep(1000); } } From 1184dd085febafa6a6eb629b4fe330c38a648ebe Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Wed, 13 Nov 2024 22:31:51 +0530 Subject: [PATCH 21/27] Add thread sleep --- .../test/dbConsole/DBConsoleAvailableTest.java | 2 +- .../test/odata/ODataETagTestCase.java | 16 ++++++++-------- .../test/odata/ODataRequestThreadExecutor.java | 8 ++++---- .../integration/test/odata/ODataTestUtils.java | 15 ++++++++++----- 4 files changed, 23 insertions(+), 18 deletions(-) diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/dbConsole/DBConsoleAvailableTest.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/dbConsole/DBConsoleAvailableTest.java index c1160417bd..5cfe3d1585 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/dbConsole/DBConsoleAvailableTest.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/dbConsole/DBConsoleAvailableTest.java @@ -37,7 +37,7 @@ public void serviceDeployment() throws Exception { } @Test(groups = "wso2.dss", description = "dbConsole available test case") - public void dbConsoleAvailableTest() throws XPathExpressionException, IOException { + public void dbConsoleAvailableTest() throws XPathExpressionException, IOException, InterruptedException { String webAppUrl = dssContext.getContextUrls().getWebAppURL(); String url = webAppUrl + "/" + "dbconsole/login.jsp?region=region5&item=dbconsole"; Map headers = new HashMap<>(); diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java index 6b7d2dc487..51716bc66f 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java @@ -62,7 +62,7 @@ public void validateETagRetrievalTestCase() throws Exception { headers.put("Accept", "application/json"); Object[] response = sendPOST(endpoint, content, headers); Assert.assertEquals(response[0], ODataTestUtils.CREATED); - endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2PROD')"; + endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES('WSO2PROD')"; response = sendGET(endpoint, headers); Assert.assertEquals(response[0], ODataTestUtils.OK); String etag = getETag(response[1].toString()); @@ -87,11 +87,11 @@ public void validateETagGenerationTestCase() throws Exception { headers.put("Accept", "application/json"); Object[] response = sendPOST(endpoint, content, headers); Assert.assertEquals(response[0], ODataTestUtils.CREATED); - endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2\')"; + endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES('WSO2')"; response = sendGET(endpoint, headers); Assert.assertEquals(response[0], ODataTestUtils.OK); String etag = getETag(response[1].toString()); - endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2\')"; + endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES('WSO2')"; content = "{\"TYPE\" : \"USJP\"}"; int responseCode = sendPUT(endpoint, content, headers); Assert.assertEquals(responseCode, ODataTestUtils.NO_CONTENT); @@ -103,7 +103,7 @@ public void validateETagGenerationTestCase() throws Exception { @Test(groups = "wso2.dss", description = "etag concurrent handling with put method test", dependsOnMethods = "validateETagGenerationTestCase") public void validateETagConcurrentHandlingTestCaseForPutMethod() throws Exception { - String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2PROD\')"; + String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES('WSO2PROD')"; Map headers = new HashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendGET(endpoint, headers); @@ -163,7 +163,7 @@ public void validateETagConcurrentHandlingTestCaseForPutMethod() throws Exceptio @Test(groups = "wso2.dss", description = "etag concurrent handling with patch method test", dependsOnMethods = "validateETagConcurrentHandlingTestCaseForPutMethod") public void validateETagConcurrentHandlingTestCaseForPatchMethod() throws Exception { - String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2\')"; + String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES('WSO2')"; Map headers = new HashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendGET(endpoint, headers); @@ -230,7 +230,7 @@ public void validateETagConcurrentHandlingTestCaseForDeleteMethod() throws Excep headers.put("Accept", "application/json"); Object[] response = sendPOST(endpoint, content, headers); Assert.assertEquals(response[0], ODataTestUtils.CREATED); - endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2PROD\')"; + endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES('WSO2PROD')"; response = sendGET(endpoint, headers); Assert.assertEquals(response[0], ODataTestUtils.OK); String etag = ODataTestUtils.getETag(response[1].toString()); @@ -331,8 +331,8 @@ public void validateETagConcurrentHandlingTestCaseForUpdatePropertyWithPutMethod public void validateETagConcurrentHandlingTestCaseForUpdatePropertyWithPatchMethod() throws Exception { if (!Boolean.parseBoolean(System.getenv("CI_BUILD_SKIP"))) { System.out.println("This test is temporarily skipped for this workflow"); - String entityEndpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2PROD\')"; - String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2PROD\')/TYPE"; + String entityEndpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES('WSO2PROD')"; + String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES('WSO2PROD')/TYPE"; Map headers = new HashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendGET(entityEndpoint, headers); diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataRequestThreadExecutor.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataRequestThreadExecutor.java index 24019bce9d..11e1204f74 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataRequestThreadExecutor.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataRequestThreadExecutor.java @@ -43,28 +43,28 @@ public void run() { case "POST": try { ODataTestUtils.sendPOST(endpoint, content, headers); - } catch (IOException e) { + } catch (IOException|InterruptedException e) { e.printStackTrace(); } break; case "PUT": try { ODataTestUtils.sendPUT(endpoint, content, headers); - } catch (IOException e) { + } catch (IOException|InterruptedException e) { e.printStackTrace(); } break; case "PATCH": try { ODataTestUtils.sendPATCH(endpoint, content, headers); - } catch (IOException e) { + } catch (IOException|InterruptedException e) { e.printStackTrace(); } break; case "DELETE": try { ODataTestUtils.sendDELETE(endpoint, headers); - } catch (IOException e) { + } catch (IOException|InterruptedException e) { e.printStackTrace(); } break; diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java index a394d8429d..2f185b5019 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java @@ -49,7 +49,7 @@ public class ODataTestUtils { public static final int PRE_CONDITION_FAILED = 412; public static final int NOT_FOUND = 404; - public static Object[] sendPOST(String endpoint, String content, Map headers) throws IOException { + public static Object[] sendPOST(String endpoint, String content, Map headers) throws IOException, InterruptedException { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpPost httpPost = new HttpPost(endpoint); for (String headerType : headers.keySet()) { @@ -63,6 +63,7 @@ public static Object[] sendPOST(String endpoint, String content, Map headers) throws IOException { + public static Object[] sendGET(String endpoint, Map headers) throws IOException, InterruptedException { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpGet httpGet = new HttpGet(endpoint); for (String headerType : headers.keySet()) { httpGet.setHeader(headerType, headers.get(headerType)); } try (CloseableHttpResponse httpResponse = httpClient.execute(httpGet)) { + Thread.sleep(1000); if (httpResponse.getEntity() != null) { BufferedReader reader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent())); String inputLine; @@ -108,7 +110,7 @@ public static Object[] sendGET(String endpoint, Map headers) thr } } - public static int sendPUT(String endpoint, String content, Map headers) throws IOException { + public static int sendPUT(String endpoint, String content, Map headers) throws IOException, InterruptedException { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpPut httpPut = new HttpPut(endpoint); for (String headerType : headers.keySet()) { @@ -122,6 +124,7 @@ public static int sendPUT(String endpoint, String content, Map h httpPut.setEntity(httpEntity); } try (CloseableHttpResponse response = httpClient.execute(httpPut)) { + Thread.sleep(1000); return response.getStatusLine().getStatusCode(); } } catch (IOException e) { @@ -129,7 +132,7 @@ public static int sendPUT(String endpoint, String content, Map h } } - public static int sendPATCH(String endpoint, String content, Map headers) throws IOException { + public static int sendPATCH(String endpoint, String content, Map headers) throws IOException, InterruptedException { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpPatch httpPatch = new HttpPatch(endpoint); for (String headerType : headers.keySet()) { @@ -143,6 +146,7 @@ public static int sendPATCH(String endpoint, String content, Map httpPatch.setEntity(httpEntity); } try (CloseableHttpResponse response = httpClient.execute(httpPatch)) { + Thread.sleep(1000); return response.getStatusLine().getStatusCode(); } } catch (IOException e) { @@ -150,13 +154,14 @@ public static int sendPATCH(String endpoint, String content, Map } } - public static int sendDELETE(String endpoint, Map headers) throws IOException { + public static int sendDELETE(String endpoint, Map headers) throws IOException, InterruptedException { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpDelete httpDelete = new HttpDelete(endpoint); for (String headerType : headers.keySet()) { httpDelete.setHeader(headerType, headers.get(headerType)); } try (CloseableHttpResponse response = httpClient.execute(httpDelete)) { + Thread.sleep(1000); return response.getStatusLine().getStatusCode(); } } catch (IOException e) { From 4b1d24eefdd48c3c3550b23934a85e1cd76e7d50 Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Sun, 17 Nov 2024 12:53:05 +0530 Subject: [PATCH 22/27] Revert 1184dd085 --- .../test/dbConsole/DBConsoleAvailableTest.java | 2 +- .../test/odata/ODataETagTestCase.java | 16 ++++++++-------- .../test/odata/ODataRequestThreadExecutor.java | 8 ++++---- .../integration/test/odata/ODataTestUtils.java | 15 +++++---------- 4 files changed, 18 insertions(+), 23 deletions(-) diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/dbConsole/DBConsoleAvailableTest.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/dbConsole/DBConsoleAvailableTest.java index 5cfe3d1585..c1160417bd 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/dbConsole/DBConsoleAvailableTest.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/dbConsole/DBConsoleAvailableTest.java @@ -37,7 +37,7 @@ public void serviceDeployment() throws Exception { } @Test(groups = "wso2.dss", description = "dbConsole available test case") - public void dbConsoleAvailableTest() throws XPathExpressionException, IOException, InterruptedException { + public void dbConsoleAvailableTest() throws XPathExpressionException, IOException { String webAppUrl = dssContext.getContextUrls().getWebAppURL(); String url = webAppUrl + "/" + "dbconsole/login.jsp?region=region5&item=dbconsole"; Map headers = new HashMap<>(); diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java index 51716bc66f..6b7d2dc487 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java @@ -62,7 +62,7 @@ public void validateETagRetrievalTestCase() throws Exception { headers.put("Accept", "application/json"); Object[] response = sendPOST(endpoint, content, headers); Assert.assertEquals(response[0], ODataTestUtils.CREATED); - endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES('WSO2PROD')"; + endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2PROD')"; response = sendGET(endpoint, headers); Assert.assertEquals(response[0], ODataTestUtils.OK); String etag = getETag(response[1].toString()); @@ -87,11 +87,11 @@ public void validateETagGenerationTestCase() throws Exception { headers.put("Accept", "application/json"); Object[] response = sendPOST(endpoint, content, headers); Assert.assertEquals(response[0], ODataTestUtils.CREATED); - endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES('WSO2')"; + endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2\')"; response = sendGET(endpoint, headers); Assert.assertEquals(response[0], ODataTestUtils.OK); String etag = getETag(response[1].toString()); - endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES('WSO2')"; + endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2\')"; content = "{\"TYPE\" : \"USJP\"}"; int responseCode = sendPUT(endpoint, content, headers); Assert.assertEquals(responseCode, ODataTestUtils.NO_CONTENT); @@ -103,7 +103,7 @@ public void validateETagGenerationTestCase() throws Exception { @Test(groups = "wso2.dss", description = "etag concurrent handling with put method test", dependsOnMethods = "validateETagGenerationTestCase") public void validateETagConcurrentHandlingTestCaseForPutMethod() throws Exception { - String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES('WSO2PROD')"; + String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2PROD\')"; Map headers = new HashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendGET(endpoint, headers); @@ -163,7 +163,7 @@ public void validateETagConcurrentHandlingTestCaseForPutMethod() throws Exceptio @Test(groups = "wso2.dss", description = "etag concurrent handling with patch method test", dependsOnMethods = "validateETagConcurrentHandlingTestCaseForPutMethod") public void validateETagConcurrentHandlingTestCaseForPatchMethod() throws Exception { - String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES('WSO2')"; + String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2\')"; Map headers = new HashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendGET(endpoint, headers); @@ -230,7 +230,7 @@ public void validateETagConcurrentHandlingTestCaseForDeleteMethod() throws Excep headers.put("Accept", "application/json"); Object[] response = sendPOST(endpoint, content, headers); Assert.assertEquals(response[0], ODataTestUtils.CREATED); - endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES('WSO2PROD')"; + endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2PROD\')"; response = sendGET(endpoint, headers); Assert.assertEquals(response[0], ODataTestUtils.OK); String etag = ODataTestUtils.getETag(response[1].toString()); @@ -331,8 +331,8 @@ public void validateETagConcurrentHandlingTestCaseForUpdatePropertyWithPutMethod public void validateETagConcurrentHandlingTestCaseForUpdatePropertyWithPatchMethod() throws Exception { if (!Boolean.parseBoolean(System.getenv("CI_BUILD_SKIP"))) { System.out.println("This test is temporarily skipped for this workflow"); - String entityEndpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES('WSO2PROD')"; - String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES('WSO2PROD')/TYPE"; + String entityEndpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2PROD\')"; + String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2PROD\')/TYPE"; Map headers = new HashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendGET(entityEndpoint, headers); diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataRequestThreadExecutor.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataRequestThreadExecutor.java index 11e1204f74..24019bce9d 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataRequestThreadExecutor.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataRequestThreadExecutor.java @@ -43,28 +43,28 @@ public void run() { case "POST": try { ODataTestUtils.sendPOST(endpoint, content, headers); - } catch (IOException|InterruptedException e) { + } catch (IOException e) { e.printStackTrace(); } break; case "PUT": try { ODataTestUtils.sendPUT(endpoint, content, headers); - } catch (IOException|InterruptedException e) { + } catch (IOException e) { e.printStackTrace(); } break; case "PATCH": try { ODataTestUtils.sendPATCH(endpoint, content, headers); - } catch (IOException|InterruptedException e) { + } catch (IOException e) { e.printStackTrace(); } break; case "DELETE": try { ODataTestUtils.sendDELETE(endpoint, headers); - } catch (IOException|InterruptedException e) { + } catch (IOException e) { e.printStackTrace(); } break; diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java index 2f185b5019..a394d8429d 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataTestUtils.java @@ -49,7 +49,7 @@ public class ODataTestUtils { public static final int PRE_CONDITION_FAILED = 412; public static final int NOT_FOUND = 404; - public static Object[] sendPOST(String endpoint, String content, Map headers) throws IOException, InterruptedException { + public static Object[] sendPOST(String endpoint, String content, Map headers) throws IOException { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpPost httpPost = new HttpPost(endpoint); for (String headerType : headers.keySet()) { @@ -63,7 +63,6 @@ public static Object[] sendPOST(String endpoint, String content, Map headers) throws IOException, InterruptedException { + public static Object[] sendGET(String endpoint, Map headers) throws IOException { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpGet httpGet = new HttpGet(endpoint); for (String headerType : headers.keySet()) { httpGet.setHeader(headerType, headers.get(headerType)); } try (CloseableHttpResponse httpResponse = httpClient.execute(httpGet)) { - Thread.sleep(1000); if (httpResponse.getEntity() != null) { BufferedReader reader = new BufferedReader(new InputStreamReader(httpResponse.getEntity().getContent())); String inputLine; @@ -110,7 +108,7 @@ public static Object[] sendGET(String endpoint, Map headers) thr } } - public static int sendPUT(String endpoint, String content, Map headers) throws IOException, InterruptedException { + public static int sendPUT(String endpoint, String content, Map headers) throws IOException { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpPut httpPut = new HttpPut(endpoint); for (String headerType : headers.keySet()) { @@ -124,7 +122,6 @@ public static int sendPUT(String endpoint, String content, Map h httpPut.setEntity(httpEntity); } try (CloseableHttpResponse response = httpClient.execute(httpPut)) { - Thread.sleep(1000); return response.getStatusLine().getStatusCode(); } } catch (IOException e) { @@ -132,7 +129,7 @@ public static int sendPUT(String endpoint, String content, Map h } } - public static int sendPATCH(String endpoint, String content, Map headers) throws IOException, InterruptedException { + public static int sendPATCH(String endpoint, String content, Map headers) throws IOException { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpPatch httpPatch = new HttpPatch(endpoint); for (String headerType : headers.keySet()) { @@ -146,7 +143,6 @@ public static int sendPATCH(String endpoint, String content, Map httpPatch.setEntity(httpEntity); } try (CloseableHttpResponse response = httpClient.execute(httpPatch)) { - Thread.sleep(1000); return response.getStatusLine().getStatusCode(); } } catch (IOException e) { @@ -154,14 +150,13 @@ public static int sendPATCH(String endpoint, String content, Map } } - public static int sendDELETE(String endpoint, Map headers) throws IOException, InterruptedException { + public static int sendDELETE(String endpoint, Map headers) throws IOException { try (CloseableHttpClient httpClient = HttpClients.createDefault()) { HttpDelete httpDelete = new HttpDelete(endpoint); for (String headerType : headers.keySet()) { httpDelete.setHeader(headerType, headers.get(headerType)); } try (CloseableHttpResponse response = httpClient.execute(httpDelete)) { - Thread.sleep(1000); return response.getStatusLine().getStatusCode(); } } catch (IOException e) { From aab0737f70d0e6e01c7b47ad10c415422a81c6dd Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Sun, 17 Nov 2024 12:57:00 +0530 Subject: [PATCH 23/27] Update NEW_JAVA_TOOL_OPTIONS --- .github/workflows/jdk-17-tests.yml | 2 +- .github/workflows/jdk-21-tests.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/jdk-17-tests.yml b/.github/workflows/jdk-17-tests.yml index 134dd5adec..0bab5b515e 100644 --- a/.github/workflows/jdk-17-tests.yml +++ b/.github/workflows/jdk-17-tests.yml @@ -36,7 +36,7 @@ jobs: run: echo "JAVA_VERSION=$(java -version)" - name: Set JAVA_TOOL_OPTIONS run: | - NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/jdk.internal.reflect=ALL-UNNAMED --add-opens=java.base/java.util.TreeMap=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.lang.Thread=ALL-UNNAMED" + NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} --add-opens=java.base/java.net=ALL-UNNAMED" echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV - name: Build in jdk11 run: mvn clean install -DskipTests --file pom.xml diff --git a/.github/workflows/jdk-21-tests.yml b/.github/workflows/jdk-21-tests.yml index ec6688e882..a2298b0af5 100644 --- a/.github/workflows/jdk-21-tests.yml +++ b/.github/workflows/jdk-21-tests.yml @@ -36,7 +36,7 @@ jobs: run: echo "JAVA_VERSION=$(java -version)" - name: Set JAVA_TOOL_OPTIONS run: | - NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/jdk.internal.reflect=ALL-UNNAMED --add-opens=java.base/java.util.TreeMap=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.lang.Thread=ALL-UNNAMED" + NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} -Djdk.util.zip.disableZip64ExtraFieldValidation=true -Djdk.nio.zipfs.allowDotZipEntry=true --add-opens=java.base/java.net=ALL-UNNAMED" echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV - name: Build in jdk11 run: mvn clean install -DskipTests --file pom.xml From f3cda42486145efe4d2a50e1f127a7071de3b13f Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Sun, 17 Nov 2024 12:58:30 +0530 Subject: [PATCH 24/27] Remove additional changes --- .github/workflows/jdk-17-tests.yml | 4 ---- 1 file changed, 4 deletions(-) diff --git a/.github/workflows/jdk-17-tests.yml b/.github/workflows/jdk-17-tests.yml index 0bab5b515e..05939d714a 100644 --- a/.github/workflows/jdk-17-tests.yml +++ b/.github/workflows/jdk-17-tests.yml @@ -34,10 +34,6 @@ jobs: run: echo "MAVEN_VERSION=$(mvn -v)" - name: check java version run: echo "JAVA_VERSION=$(java -version)" - - name: Set JAVA_TOOL_OPTIONS - run: | - NEW_JAVA_TOOL_OPTIONS="${{ env.JAVA_TOOL_OPTIONS }} --add-opens=java.base/java.net=ALL-UNNAMED" - echo "JAVA_TOOL_OPTIONS=$NEW_JAVA_TOOL_OPTIONS" >> $GITHUB_ENV - name: Build in jdk11 run: mvn clean install -DskipTests --file pom.xml - name: Set up JDK 17 From 6d235502e8a7ff90f0369017c0f062645d9648f3 Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Mon, 18 Nov 2024 10:51:31 +0530 Subject: [PATCH 25/27] Update testcase --- .github/workflows/jdk-17-tests.yml | 4 +- .github/workflows/jdk-21-tests.yml | 4 +- .github/workflows/smoke-tests.yml | 2 +- .github/workflows/windows-tests.yml | 6 +- .../test/odata/ODataETagTestCase.java | 53 +++++++++++++++ .../test/odata/ODataReferenceTestCase.java | 12 ++++ .../integration-test-utils/pom.xml | 67 ------------------- 7 files changed, 73 insertions(+), 75 deletions(-) diff --git a/.github/workflows/jdk-17-tests.yml b/.github/workflows/jdk-17-tests.yml index 05939d714a..22d28dcbc1 100644 --- a/.github/workflows/jdk-17-tests.yml +++ b/.github/workflows/jdk-17-tests.yml @@ -26,7 +26,7 @@ jobs: key: ${{ runner.os }}-m2 restore-keys: ${{ runner.os }}-m2 - name: Set up JDK 11 - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: distribution: 'temurin' java-version: '11.0.12+7' @@ -37,7 +37,7 @@ jobs: - name: Build in jdk11 run: mvn clean install -DskipTests --file pom.xml - name: Set up JDK 17 - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: distribution: 'temurin' java-version: '17.0.6' diff --git a/.github/workflows/jdk-21-tests.yml b/.github/workflows/jdk-21-tests.yml index a2298b0af5..a472eb80b4 100644 --- a/.github/workflows/jdk-21-tests.yml +++ b/.github/workflows/jdk-21-tests.yml @@ -26,7 +26,7 @@ jobs: key: ${{ runner.os }}-m2 restore-keys: ${{ runner.os }}-m2 - name: Set up JDK 11 - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: distribution: 'temurin' java-version: '11.0.12+7' @@ -41,7 +41,7 @@ jobs: - name: Build in jdk11 run: mvn clean install -DskipTests --file pom.xml - name: Set up JDK 21 - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: distribution: 'temurin' java-version: '21.0.4' diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index 04d6b21597..a5ff042b77 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -27,7 +27,7 @@ jobs: run: git config --global core.longpaths - uses: actions/checkout@v2 - name: Set up JDK 11 - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: distribution: 'temurin' java-version: '11.0.12+7' diff --git a/.github/workflows/windows-tests.yml b/.github/workflows/windows-tests.yml index 47ceb70d1a..4100c57511 100644 --- a/.github/workflows/windows-tests.yml +++ b/.github/workflows/windows-tests.yml @@ -12,7 +12,7 @@ jobs: run: git config --system core.longpaths true - uses: actions/checkout@v2 - name: Set up JDK 11 - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: distribution: 'adopt' java-version: 11 @@ -28,7 +28,7 @@ jobs: run: git config --system core.longpaths true - uses: actions/checkout@v2 - name: Set up JDK 11 - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: distribution: 'adopt' java-version: 11 @@ -44,7 +44,7 @@ jobs: run: git config --system core.longpaths true - uses: actions/checkout@v2 - name: Set up JDK 11 - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: distribution: 'adopt' java-version: 11 diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java index 6b7d2dc487..3e76088c01 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java @@ -64,18 +64,22 @@ public void validateETagRetrievalTestCase() throws Exception { Assert.assertEquals(response[0], ODataTestUtils.CREATED); endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2PROD')"; response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); String etag = getETag(response[1].toString()); headers.put("If-Match", "1212122"); response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.PRE_CONDITION_FAILED); headers.remove("If-Match"); headers.put("If-None-Match", etag); response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.PRE_CONDITION_FAILED); headers.remove("If-None-Match"); headers.put("If-Match", etag); response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); } @@ -86,16 +90,20 @@ public void validateETagGenerationTestCase() throws Exception { Map headers = new HashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendPOST(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.CREATED); endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2\')"; response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); String etag = getETag(response[1].toString()); endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2\')"; content = "{\"TYPE\" : \"USJP\"}"; int responseCode = sendPUT(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.NO_CONTENT); response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); String tempETag = getETag(response[1].toString()); Assert.assertNotEquals(etag, tempETag); @@ -107,6 +115,7 @@ public void validateETagConcurrentHandlingTestCaseForPutMethod() throws Exceptio Map headers = new HashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); String etag = getETag(response[1].toString()); //modifying data - E-Tag should be changed after processing the below request @@ -114,17 +123,20 @@ public void validateETagConcurrentHandlingTestCaseForPutMethod() throws Exceptio String content = "{\"TYPE\" : \"ml\"}"; int responseCode = sendPUT(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.NO_CONTENT); // Data has been modified therefore E-Tag has been changed, Then If-None-Match should be worked with previous E-Tag headers.remove("If-Match"); headers.put("If-None-Match", etag); content = "{\"TYPE\" : \"test\"}"; responseCode = sendPUT(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.NO_CONTENT); //testing concurrent test with put method // get the E-Tag response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); etag = getETag(response[1].toString()); content = "{\"TYPE\" : \"SriLanka\"}"; @@ -133,15 +145,18 @@ public void validateETagConcurrentHandlingTestCaseForPutMethod() throws Exceptio threadExecutor.run(); Thread.sleep(1000); response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); String tempETag = getETag(response[1].toString()); Assert.assertNotEquals(etag, tempETag); headers.put("If-Match", etag); content = "{\"TYPE\" : \"MB\"}"; responseCode = sendPUT(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.PRE_CONDITION_FAILED); headers.put("If-Match", tempETag); response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); // Data validation Assert.assertFalse(response[1].toString().contains("MB"), "E-Tag with put method failed"); @@ -150,6 +165,7 @@ public void validateETagConcurrentHandlingTestCaseForPutMethod() throws Exceptio //testing concurrent test with delete method // get the E-Tag response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); headers.remove("If-Match"); threadExecutor = new ODataRequestThreadExecutor("DELETE", null, headers, endpoint); @@ -158,6 +174,7 @@ public void validateETagConcurrentHandlingTestCaseForPutMethod() throws Exceptio headers.put("If-Match", etag); content = "{\"TYPE\" : \"MB\"}"; responseCode = sendPUT(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.NOT_FOUND); } @@ -167,23 +184,27 @@ public void validateETagConcurrentHandlingTestCaseForPatchMethod() throws Except Map headers = new HashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); String etag = getETag(response[1].toString()); //modifying data - E-Tag should be changed after processing the below request headers.put("If-Match", etag); String content = "{\"TYPE\" : \"ml\"}"; int responseCode = sendPATCH(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.NO_CONTENT); // Data has been modified therefore E-Tag has been changed, Then If-None-Match should be worked with previous E-Tag headers.remove("If-Match"); headers.put("If-None-Match", etag); content = "{\"TYPE\" : \"test\"}"; responseCode = sendPATCH(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.NO_CONTENT); //testing concurrent test with put method // get the E-Tag response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); etag = getETag(response[1].toString()); content = "{\"TYPE\" : \"SriLanka\"}"; @@ -192,15 +213,18 @@ public void validateETagConcurrentHandlingTestCaseForPatchMethod() throws Except threadExecutor.run(); Thread.sleep(1000); response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); String tempETag = getETag(response[1].toString()); Assert.assertNotEquals(etag, tempETag); headers.put("If-Match", etag); content = "{\"TYPE\" : \"MB\"}"; responseCode = sendPATCH(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.PRE_CONDITION_FAILED); headers.put("If-Match", tempETag); response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); // Data validation Assert.assertFalse(response[1].toString().contains("MB"), "E-Tag with put method failed"); @@ -209,6 +233,7 @@ public void validateETagConcurrentHandlingTestCaseForPatchMethod() throws Except //testing concurrent test with delete method // get the E-Tag response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); headers.remove("If-Match"); threadExecutor = new ODataRequestThreadExecutor("DELETE", null, headers, endpoint); @@ -217,6 +242,7 @@ public void validateETagConcurrentHandlingTestCaseForPatchMethod() throws Except headers.put("If-Match", etag); content = "{\"TYPE\" : \"MB\"}"; responseCode = sendPATCH(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.NOT_FOUND); } @@ -229,19 +255,24 @@ public void validateETagConcurrentHandlingTestCaseForDeleteMethod() throws Excep Map headers = new HashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendPOST(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.CREATED); endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2PROD\')"; response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); String etag = ODataTestUtils.getETag(response[1].toString()); headers.put("If-None-Match", etag); int responseCode = sendDELETE(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.PRE_CONDITION_FAILED); headers.remove("If-None-Match"); headers.put("If-Match", etag); responseCode = sendDELETE(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.NO_CONTENT); responseCode = sendDELETE(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.NOT_FOUND); // To insert values @@ -250,6 +281,7 @@ public void validateETagConcurrentHandlingTestCaseForDeleteMethod() throws Excep //testing concurrent test with put method // get the E-Tag response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); etag = getETag(response[1].toString()); content = "{\"TYPE\" : \"SriLanka\"}"; @@ -258,16 +290,20 @@ public void validateETagConcurrentHandlingTestCaseForDeleteMethod() throws Excep threadExecutor.run(); Thread.sleep(1000); response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); String tempETag = getETag(response[1].toString()); Assert.assertNotEquals(etag, tempETag); headers.put("If-Match", etag); responseCode = sendDELETE(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.PRE_CONDITION_FAILED); headers.put("If-Match", tempETag); responseCode = sendDELETE(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.NO_CONTENT); responseCode = sendDELETE(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, 404); } } @@ -281,25 +317,30 @@ public void validateETagConcurrentHandlingTestCaseForUpdatePropertyWithPutMethod Map headers = new HashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendPOST(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.CREATED); String entityEndpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2PROD\')"; response = sendGET(entityEndpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); String etag = getETag(response[1].toString()); endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2PROD\')/TYPE"; content = "{\"value\" : \"Jayasooriya\"}"; headers.put("If-None-Match", etag); int responseCode = sendPUT(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.PRE_CONDITION_FAILED); headers.remove("If-None-Match"); headers.put("If-Match", etag); responseCode = sendPUT(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.NO_CONTENT); //testing concurrent test with put method // get the E-Tag headers.remove("If-Match"); response = sendGET(entityEndpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); etag = getETag(response[1].toString()); content = "{\"value\" : \"SriLanka\"}"; @@ -307,21 +348,25 @@ public void validateETagConcurrentHandlingTestCaseForUpdatePropertyWithPutMethod threadExecutor.run(); Thread.sleep(1000); response = sendGET(entityEndpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); String tempETag = getETag(response[1].toString()); Assert.assertNotEquals(etag, tempETag); headers.put("If-Match", etag); content = "{\"value\" : \"DSS Server\"}"; responseCode = sendPUT(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.PRE_CONDITION_FAILED); // Data validation headers.remove("If-Match"); response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); Assert.assertFalse(response[1].toString().contains("DSS Server"), "E-Tag with put method failed"); Assert.assertTrue(response[1].toString().contains("SriLanka"), "E-Tag with put method failed"); headers.put("If-Match", tempETag); responseCode = sendPUT(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.NO_CONTENT); } @@ -336,21 +381,25 @@ public void validateETagConcurrentHandlingTestCaseForUpdatePropertyWithPatchMeth Map headers = new HashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendGET(entityEndpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); String etag = getETag(response[1].toString()); String content = "{\"value\" : \"Jayasooriya\"}"; headers.put("If-None-Match", etag); int responseCode = sendPATCH(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.PRE_CONDITION_FAILED); headers.remove("If-None-Match"); headers.put("If-Match", etag); responseCode = sendPATCH(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.NO_CONTENT); //testing concurrent test with put method // get the E-Tag headers.remove("If-Match"); response = sendGET(entityEndpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); etag = getETag(response[1].toString()); content = "{\"value\" : \"SriLanka\"}"; @@ -358,21 +407,25 @@ public void validateETagConcurrentHandlingTestCaseForUpdatePropertyWithPatchMeth threadExecutor.run(); Thread.sleep(1000); response = sendGET(entityEndpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); String tempETag = getETag(response[1].toString()); Assert.assertNotEquals(etag, tempETag); headers.put("If-Match", etag); content = "{\"value\" : \"DSS Server\"}"; responseCode = sendPATCH(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.PRE_CONDITION_FAILED); // Data validation headers.remove("If-Match"); response = sendGET(entityEndpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); Assert.assertFalse(response[1].toString().contains("DSS Server"), "E-Tag with patch method failed"); Assert.assertTrue(response[1].toString().contains("SriLanka"), "E-Tag with patch method failed"); headers.put("If-Match", tempETag); responseCode = sendPATCH(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.NO_CONTENT); } diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataReferenceTestCase.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataReferenceTestCase.java index d7b31d2b72..f8e88eb55c 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataReferenceTestCase.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataReferenceTestCase.java @@ -65,6 +65,7 @@ public void validateNavigationPropertyReferencesTestCase() throws Exception { "Navigation property reference retrieval failed"); endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILERECORDS(2)/FILES/$ref"; response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); Assert.assertTrue(response[1].toString().contains("FILES('WSO2DSS')"), "Navigation property reference retrieval failed"); @@ -76,6 +77,7 @@ public void validateNavigationPropertyTestCase() throws Exception { Map headers = new HashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); } @@ -91,6 +93,7 @@ public void validateUpdateReferenceTestCase() throws Exception { Assert.assertEquals(response[0], ODataTestUtils.NO_CONTENT); endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILERECORDS(5)/FILES/$ref"; response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); Assert.assertTrue(response[1].toString().contains("FILES('WSO2DSS')"), "Navigation property reference retrieval failed"); @@ -99,9 +102,11 @@ public void validateUpdateReferenceTestCase() throws Exception { + "/FILES('WSO2ML')\"} "; headers.put("Accept", "application/json"); int responseCode = sendPUT(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.NO_CONTENT); endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES('WSO2ML')/FILERECORDS/$ref"; response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); Assert.assertTrue(response[1].toString().contains("FILERECORDS(5)"), "Navigation property reference retrieval failed"); @@ -115,14 +120,18 @@ public void validateDeleteReferenceTestCase() throws Exception { Map headers = new HashMap<>(); headers.put("Accept", "application/json"); int responseCode = sendDELETE(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.NO_CONTENT); endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILERECORDS(5)/FILES/$ref"; Object[] response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.NO_CONTENT); endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILERECORDS(1)/FILES/$ref"; responseCode = sendDELETE(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(responseCode, ODataTestUtils.NO_CONTENT); response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.NO_CONTENT); } @@ -135,13 +144,16 @@ public void validateAddEntityWithReferenceTestCase() throws Exception { Map headers = new HashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendPOST(endpoint, content, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.CREATED); endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILERECORDS(11)/FILES/$ref"; response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); Assert.assertTrue(response[1].toString().contains("FILES('WSO2DSS')")); endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILERECORDS(11)"; response = sendGET(endpoint, headers); + Thread.sleep(1000); Assert.assertEquals(response[0], ODataTestUtils.OK); Assert.assertTrue(response[1].toString().contains("\"FILENAME\":\"WSO2DSS\"")); } diff --git a/integration/tests-common/integration-test-utils/pom.xml b/integration/tests-common/integration-test-utils/pom.xml index 8b2d5cd922..984edd7e48 100644 --- a/integration/tests-common/integration-test-utils/pom.xml +++ b/integration/tests-common/integration-test-utils/pom.xml @@ -41,58 +41,6 @@ org.wso2.ei admin-clients - - org.wso2.carbon.mediation - org.wso2.carbon.localentry.stub - compile - - - org.apache.axis2.wso2 - axis2 - - - - - org.wso2.carbon.mediation - org.wso2.carbon.proxyadmin.stub - compile - - - org.apache.axis2.wso2 - axis2 - - - - - org.wso2.carbon.mediation - org.wso2.carbon.sequences.stub - compile - - - org.wso2.carbon.automation - org.wso2.carbon.automation.test.utils - compile - - - org.wso2.carbon.mediation - org.wso2.carbon.task.stub - compile - - - org.wso2.carbon.mediation - org.wso2.carbon.endpoint.stub - compile - - - org.wso2.carbon.identity.framework - org.wso2.carbon.security.mgt.stub - compile - - - org.wso2.carbon.deployment - org.wso2.carbon.aarservices.stub - compile - org.wso2.carbon.analytics-common org.wso2.carbon.databridge.commons @@ -108,11 +56,6 @@ org.wso2.carbon.databridge.receiver.thrift compile - - org.wso2.orbit.org.apache.httpcomponents - httpclient - compile - com.rabbitmq amqp-client @@ -121,16 +64,6 @@ com.esotericsoftware kryo-shaded - - org.apache.synapse - synapse-core - - - org.apache.axis2.wso2 - axis2 - - - com.icegreen greenmail From b823b0a9c07e8148bcf2f928b1785c2e0cc6af84 Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Mon, 18 Nov 2024 11:18:53 +0530 Subject: [PATCH 26/27] Revert pom file changes --- .../integration-test-utils/pom.xml | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/integration/tests-common/integration-test-utils/pom.xml b/integration/tests-common/integration-test-utils/pom.xml index 984edd7e48..8b2d5cd922 100644 --- a/integration/tests-common/integration-test-utils/pom.xml +++ b/integration/tests-common/integration-test-utils/pom.xml @@ -41,6 +41,58 @@ org.wso2.ei admin-clients + + org.wso2.carbon.mediation + org.wso2.carbon.localentry.stub + compile + + + org.apache.axis2.wso2 + axis2 + + + + + org.wso2.carbon.mediation + org.wso2.carbon.proxyadmin.stub + compile + + + org.apache.axis2.wso2 + axis2 + + + + + org.wso2.carbon.mediation + org.wso2.carbon.sequences.stub + compile + + + org.wso2.carbon.automation + org.wso2.carbon.automation.test.utils + compile + + + org.wso2.carbon.mediation + org.wso2.carbon.task.stub + compile + + + org.wso2.carbon.mediation + org.wso2.carbon.endpoint.stub + compile + + + org.wso2.carbon.identity.framework + org.wso2.carbon.security.mgt.stub + compile + + + org.wso2.carbon.deployment + org.wso2.carbon.aarservices.stub + compile + org.wso2.carbon.analytics-common org.wso2.carbon.databridge.commons @@ -56,6 +108,11 @@ org.wso2.carbon.databridge.receiver.thrift compile + + org.wso2.orbit.org.apache.httpcomponents + httpclient + compile + com.rabbitmq amqp-client @@ -64,6 +121,16 @@ com.esotericsoftware kryo-shaded + + org.apache.synapse + synapse-core + + + org.apache.axis2.wso2 + axis2 + + + com.icegreen greenmail From 650a6df3eae52518129a5b52da53e433c8ad2e48 Mon Sep 17 00:00:00 2001 From: Kalaiyarasiganeshalingam Date: Mon, 18 Nov 2024 11:51:09 +0530 Subject: [PATCH 27/27] Use ConcurrentHashMap --- .../integration/test/odata/ODataETagTestCase.java | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java index 3e76088c01..face3e1a0b 100644 --- a/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java +++ b/integration/dataservice-hosting-tests/tests-integration/tests/src/test/java/org/wso2/ei/dataservice/integration/test/odata/ODataETagTestCase.java @@ -26,6 +26,7 @@ import java.util.HashMap; import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; import static org.wso2.ei.dataservice.integration.test.odata.ODataTestUtils.getETag; import static org.wso2.ei.dataservice.integration.test.odata.ODataTestUtils.sendDELETE; @@ -58,7 +59,7 @@ public void destroy() throws Exception { public void validateETagRetrievalTestCase() throws Exception { String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES"; String content = "{\"FILENAME\": \"WSO2PROD\" ,\"TYPE\" : \"dss\"}"; - Map headers = new HashMap<>(); + ConcurrentHashMap headers = new ConcurrentHashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendPOST(endpoint, content, headers); Assert.assertEquals(response[0], ODataTestUtils.CREATED); @@ -87,7 +88,7 @@ public void validateETagRetrievalTestCase() throws Exception { public void validateETagGenerationTestCase() throws Exception { String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES"; String content = "{\"FILENAME\": \"WSO2\" ,\"TYPE\" : \"bam\"}"; - Map headers = new HashMap<>(); + ConcurrentHashMap headers = new ConcurrentHashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendPOST(endpoint, content, headers); Thread.sleep(1000); @@ -112,7 +113,7 @@ public void validateETagGenerationTestCase() throws Exception { @Test(groups = "wso2.dss", description = "etag concurrent handling with put method test", dependsOnMethods = "validateETagGenerationTestCase") public void validateETagConcurrentHandlingTestCaseForPutMethod() throws Exception { String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2PROD\')"; - Map headers = new HashMap<>(); + ConcurrentHashMap headers = new ConcurrentHashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendGET(endpoint, headers); Thread.sleep(1000); @@ -181,7 +182,7 @@ public void validateETagConcurrentHandlingTestCaseForPutMethod() throws Exceptio @Test(groups = "wso2.dss", description = "etag concurrent handling with patch method test", dependsOnMethods = "validateETagConcurrentHandlingTestCaseForPutMethod") public void validateETagConcurrentHandlingTestCaseForPatchMethod() throws Exception { String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2\')"; - Map headers = new HashMap<>(); + ConcurrentHashMap headers = new ConcurrentHashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendGET(endpoint, headers); Thread.sleep(1000); @@ -252,7 +253,7 @@ public void validateETagConcurrentHandlingTestCaseForDeleteMethod() throws Excep System.out.println("This test is temporarily skipped for this workflow"); String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES"; String content = "{\"FILENAME\": \"WSO2PROD\" ,\"TYPE\" : \"dss\"}"; - Map headers = new HashMap<>(); + ConcurrentHashMap headers = new ConcurrentHashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendPOST(endpoint, content, headers); Thread.sleep(1000); @@ -314,7 +315,7 @@ public void validateETagConcurrentHandlingTestCaseForUpdatePropertyWithPutMethod if (!Boolean.parseBoolean(System.getenv("CI_BUILD_SKIP"))) { String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES"; String content = "{\"FILENAME\": \"WSO2PROD\" ,\"TYPE\" : \"dss\"}"; - Map headers = new HashMap<>(); + ConcurrentHashMap headers = new ConcurrentHashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendPOST(endpoint, content, headers); Thread.sleep(1000); @@ -378,7 +379,7 @@ public void validateETagConcurrentHandlingTestCaseForUpdatePropertyWithPatchMeth System.out.println("This test is temporarily skipped for this workflow"); String entityEndpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2PROD\')"; String endpoint = webAppUrl + "/odata/" + serviceName + "/" + configId + "/FILES(\'WSO2PROD\')/TYPE"; - Map headers = new HashMap<>(); + ConcurrentHashMap headers = new ConcurrentHashMap<>(); headers.put("Accept", "application/json"); Object[] response = sendGET(entityEndpoint, headers); Thread.sleep(1000);