diff --git a/.java-version b/.java-version index 2dbc24b32d3c..03b6389f32ad 100644 --- a/.java-version +++ b/.java-version @@ -1 +1 @@ -11.0 +17.0 diff --git a/api/pom.xml b/api/pom.xml index c80c35593451..1e60ff165e7f 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -41,10 +41,6 @@ commons-math3 ${cs.commons-math3.version} - - javax.servlet - javax.servlet-api - org.apache.cloudstack cloud-framework-db diff --git a/api/src/main/java/org/apache/cloudstack/api/ApiServerService.java b/api/src/main/java/org/apache/cloudstack/api/ApiServerService.java index cb75939d6bc5..f44471da77b3 100644 --- a/api/src/main/java/org/apache/cloudstack/api/ApiServerService.java +++ b/api/src/main/java/org/apache/cloudstack/api/ApiServerService.java @@ -19,7 +19,7 @@ import java.net.InetAddress; import java.util.Map; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpSession; import com.cloud.domain.Domain; import com.cloud.exception.CloudAuthenticationException; diff --git a/api/src/main/java/org/apache/cloudstack/api/auth/APIAuthenticator.java b/api/src/main/java/org/apache/cloudstack/api/auth/APIAuthenticator.java index 7e33b1347db3..5d9442137df9 100644 --- a/api/src/main/java/org/apache/cloudstack/api/auth/APIAuthenticator.java +++ b/api/src/main/java/org/apache/cloudstack/api/auth/APIAuthenticator.java @@ -18,9 +18,9 @@ import org.apache.cloudstack.api.ServerApiException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import java.util.List; import java.util.Map; import java.net.InetAddress; diff --git a/client/pom.xml b/client/pom.xml index d8fa433d5be3..e95e29080215 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -28,10 +28,6 @@ 4.23.0.0-SNAPSHOT - - javax.servlet - javax.servlet-api - org.eclipse.jetty jetty-server diff --git a/framework/spring/module/pom.xml b/framework/spring/module/pom.xml index f44cffa30b10..cf4750480b61 100644 --- a/framework/spring/module/pom.xml +++ b/framework/spring/module/pom.xml @@ -41,11 +41,5 @@ org.springframework spring-web - - javax.servlet - javax.servlet-api - provided - true - diff --git a/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/web/CloudStackContextLoaderListener.java b/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/web/CloudStackContextLoaderListener.java index 3b6133b91b4a..e7e0a8e46a81 100644 --- a/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/web/CloudStackContextLoaderListener.java +++ b/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/web/CloudStackContextLoaderListener.java @@ -20,8 +20,8 @@ import java.io.IOException; -import javax.servlet.ServletContext; -import javax.servlet.ServletContextEvent; +import jakarta.servlet.ServletContext; +import jakarta.servlet.ServletContextEvent; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; diff --git a/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/web/ModuleBasedFilter.java b/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/web/ModuleBasedFilter.java index b3648ab76e55..f457e6b3f64b 100644 --- a/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/web/ModuleBasedFilter.java +++ b/framework/spring/module/src/main/java/org/apache/cloudstack/spring/module/web/ModuleBasedFilter.java @@ -18,9 +18,9 @@ */ package org.apache.cloudstack.spring.module.web; -import javax.servlet.Filter; -import javax.servlet.FilterConfig; -import javax.servlet.ServletException; +import jakarta.servlet.Filter; +import jakarta.servlet.FilterConfig; +import jakarta.servlet.ServletException; import org.springframework.beans.factory.config.AutowireCapableBeanFactory; import org.springframework.context.ApplicationContext; diff --git a/plugins/backup/networker/src/test/java/org/apache/backup/networker/NetworkerClientTest.java b/plugins/backup/networker/src/test/java/org/apache/backup/networker/NetworkerClientTest.java index f8cff7ba1960..41eb1e9a55a9 100644 --- a/plugins/backup/networker/src/test/java/org/apache/backup/networker/NetworkerClientTest.java +++ b/plugins/backup/networker/src/test/java/org/apache/backup/networker/NetworkerClientTest.java @@ -53,7 +53,6 @@ public class NetworkerClientTest { private final String adminUsername = "administrator"; private final String adminPassword = "password"; private final int port = 9400; - private final String url = "http://localhost:" + port + "/nwrestapi/v3"; private NetworkerClient client; @Rule public WireMockRule wireMockRule = new WireMockRule(port); @@ -63,6 +62,7 @@ public void setUp() throws Exception { wireMockRule.stubFor(get(urlMatching(".*")).withBasicAuth(adminUsername, adminPassword) .willReturn(aResponse() .withStatus(200))); + String url = "http://localhost:" + port + "/nwrestapi/v3"; client = new NetworkerClient(url, adminUsername, adminPassword, false, 60); ReflectionTestUtils.setField(client, "backupManager", Mockito.mock(BackupManager.class)); } @@ -532,11 +532,11 @@ public void testregisterBackupForVMwithSsid() { backupedVM.setBackupOfferingId(0L); backupedVM.setDataCenterId(1); SimpleDateFormat formatterDateTime = new SimpleDateFormat("yyy-MM-dd'T'HH:mm:ss"); - Long startTS=1657591323L; + long startTS=1657591323L; Instant instant = Instant.ofEpochSecond(startTS); Date backupDate = Date.from(instant); String saveTime = formatterDateTime.format(Date.from(instant)); - BackupVO vmBackup = client.registerBackupForVm(backupedVM,backupDate,startTS.toString()); + BackupVO vmBackup = client.registerBackupForVm(backupedVM,backupDate,String.valueOf(startTS)); verify(getRequestedFor(urlEqualTo("/nwrestapi/v3/global/backups/?q=name:"+backupedVM.getName()+"+and+saveTime:'"+saveTime+"'"))); Assert.assertEquals("658580844", vmBackup.getSize().toString()); Assert.assertEquals("d371d629-00000006-84ccd61b-62ccd61b-007d1500-5a80015d",vmBackup.getExternalId()); @@ -625,7 +625,7 @@ public void testregisterBackupForVMwithOutSsid() { backupedVM.setDataCenterId(1); SimpleDateFormat formatterDate = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat formatterTime = new SimpleDateFormat("HH:mm:ss"); - Long startTS=1657591323L; + long startTS=1657591323L; Instant instant = Instant.ofEpochSecond(startTS); Date backupDate = Date.from(instant); String startDate = formatterDate.format(backupDate); diff --git a/plugins/user-authenticators/oauth2/src/main/java/org/apache/cloudstack/oauth2/api/command/ListOAuthProvidersCmd.java b/plugins/user-authenticators/oauth2/src/main/java/org/apache/cloudstack/oauth2/api/command/ListOAuthProvidersCmd.java index abdbf65dbb42..1d117cfaaaf1 100644 --- a/plugins/user-authenticators/oauth2/src/main/java/org/apache/cloudstack/oauth2/api/command/ListOAuthProvidersCmd.java +++ b/plugins/user-authenticators/oauth2/src/main/java/org/apache/cloudstack/oauth2/api/command/ListOAuthProvidersCmd.java @@ -40,9 +40,9 @@ import org.apache.cloudstack.oauth2.vo.OauthProviderVO; import org.apache.commons.lang.ArrayUtils; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; @APICommand(name = "listOauthProvider", description = "List OAuth providers registered", responseObject = OauthProviderResponse.class, entityType = {}, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, diff --git a/plugins/user-authenticators/oauth2/src/main/java/org/apache/cloudstack/oauth2/api/command/OauthLoginAPIAuthenticatorCmd.java b/plugins/user-authenticators/oauth2/src/main/java/org/apache/cloudstack/oauth2/api/command/OauthLoginAPIAuthenticatorCmd.java index f9a1d10d3526..6bbbddf27f56 100644 --- a/plugins/user-authenticators/oauth2/src/main/java/org/apache/cloudstack/oauth2/api/command/OauthLoginAPIAuthenticatorCmd.java +++ b/plugins/user-authenticators/oauth2/src/main/java/org/apache/cloudstack/oauth2/api/command/OauthLoginAPIAuthenticatorCmd.java @@ -39,9 +39,9 @@ import org.jetbrains.annotations.Nullable; import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import java.util.List; import java.util.Map; import java.net.InetAddress; diff --git a/plugins/user-authenticators/oauth2/src/main/java/org/apache/cloudstack/oauth2/api/command/VerifyOAuthCodeAndGetUserCmd.java b/plugins/user-authenticators/oauth2/src/main/java/org/apache/cloudstack/oauth2/api/command/VerifyOAuthCodeAndGetUserCmd.java index bd49f87d6273..59570032c304 100644 --- a/plugins/user-authenticators/oauth2/src/main/java/org/apache/cloudstack/oauth2/api/command/VerifyOAuthCodeAndGetUserCmd.java +++ b/plugins/user-authenticators/oauth2/src/main/java/org/apache/cloudstack/oauth2/api/command/VerifyOAuthCodeAndGetUserCmd.java @@ -37,9 +37,9 @@ import org.apache.cloudstack.oauth2.api.response.OauthProviderResponse; import org.apache.commons.lang.ArrayUtils; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; @APICommand(name = "verifyOAuthCodeAndGetUser", description = "Verify the OAuth Code and fetch the corresponding user from provider", responseObject = OauthProviderResponse.class, entityType = {}, requestHasSensitiveInfo = false, responseHasSensitiveInfo = false, diff --git a/plugins/user-authenticators/oauth2/src/test/java/org/apache/cloudstack/oauth2/api/command/VerifyOAuthCodeAndGetUserCmdTest.java b/plugins/user-authenticators/oauth2/src/test/java/org/apache/cloudstack/oauth2/api/command/VerifyOAuthCodeAndGetUserCmdTest.java index 59245a4027aa..6d0b89dedd71 100644 --- a/plugins/user-authenticators/oauth2/src/test/java/org/apache/cloudstack/oauth2/api/command/VerifyOAuthCodeAndGetUserCmdTest.java +++ b/plugins/user-authenticators/oauth2/src/test/java/org/apache/cloudstack/oauth2/api/command/VerifyOAuthCodeAndGetUserCmdTest.java @@ -28,9 +28,9 @@ import java.util.List; import java.util.Map; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import org.apache.cloudstack.api.ServerApiException; import org.apache.cloudstack.api.auth.PluggableAPIAuthenticator; diff --git a/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/GetServiceProviderMetaDataCmd.java b/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/GetServiceProviderMetaDataCmd.java index 50b075b44489..7d043fb0bb51 100644 --- a/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/GetServiceProviderMetaDataCmd.java +++ b/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/GetServiceProviderMetaDataCmd.java @@ -24,9 +24,9 @@ import java.util.Map; import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.parsers.ParserConfigurationException; diff --git a/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/ListAndSwitchSAMLAccountCmd.java b/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/ListAndSwitchSAMLAccountCmd.java index 5263ade6b37a..1d5827d7b808 100644 --- a/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/ListAndSwitchSAMLAccountCmd.java +++ b/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/ListAndSwitchSAMLAccountCmd.java @@ -23,9 +23,9 @@ import java.util.Map; import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.ApiCommandResourceType; diff --git a/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/ListIdpsCmd.java b/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/ListIdpsCmd.java index 09e5f1b6557e..79d647a20b58 100644 --- a/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/ListIdpsCmd.java +++ b/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/ListIdpsCmd.java @@ -32,9 +32,9 @@ import org.apache.cloudstack.saml.SAMLProviderMetadata; import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import java.net.InetAddress; import java.util.ArrayList; import java.util.List; diff --git a/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/SAML2LoginAPIAuthenticatorCmd.java b/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/SAML2LoginAPIAuthenticatorCmd.java index bfd47922142f..3e299ab9e7f8 100644 --- a/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/SAML2LoginAPIAuthenticatorCmd.java +++ b/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/SAML2LoginAPIAuthenticatorCmd.java @@ -22,9 +22,9 @@ import java.util.Map; import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import javax.xml.parsers.ParserConfigurationException; import javax.xml.stream.FactoryConfigurationError; diff --git a/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/SAML2LogoutAPIAuthenticatorCmd.java b/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/SAML2LogoutAPIAuthenticatorCmd.java index ca46bef4b5a3..72e20057873f 100644 --- a/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/SAML2LogoutAPIAuthenticatorCmd.java +++ b/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/api/command/SAML2LogoutAPIAuthenticatorCmd.java @@ -41,9 +41,9 @@ import org.xml.sax.SAXException; import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import javax.xml.parsers.ParserConfigurationException; import javax.xml.stream.FactoryConfigurationError; import java.io.IOException; diff --git a/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/saml/SAMLUtils.java b/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/saml/SAMLUtils.java index 1a9d677d43a5..0042a6c91c28 100644 --- a/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/saml/SAMLUtils.java +++ b/plugins/user-authenticators/saml2/src/main/java/org/apache/cloudstack/saml/SAMLUtils.java @@ -50,8 +50,8 @@ import java.util.zip.Deflater; import java.util.zip.DeflaterOutputStream; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServletResponse; import javax.xml.XMLConstants; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; diff --git a/plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/GetServiceProviderMetaDataCmdTest.java b/plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/GetServiceProviderMetaDataCmdTest.java index 2cddb126b1b7..a94678e6bdb5 100644 --- a/plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/GetServiceProviderMetaDataCmdTest.java +++ b/plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/GetServiceProviderMetaDataCmdTest.java @@ -24,9 +24,9 @@ import java.security.KeyPair; import java.security.cert.X509Certificate; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import org.apache.cloudstack.api.ApiServerService; import org.apache.cloudstack.api.auth.APIAuthenticationType; diff --git a/plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/api/command/ListAndSwitchSAMLAccountCmdTest.java b/plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/api/command/ListAndSwitchSAMLAccountCmdTest.java index afc2f82b2060..aec2a859999a 100644 --- a/plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/api/command/ListAndSwitchSAMLAccountCmdTest.java +++ b/plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/api/command/ListAndSwitchSAMLAccountCmdTest.java @@ -27,10 +27,10 @@ import java.util.HashMap; import java.util.Map; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import org.apache.cloudstack.api.ApiConstants; import org.apache.cloudstack.api.ApiErrorCode; diff --git a/plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/api/command/SAML2LoginAPIAuthenticatorCmdTest.java b/plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/api/command/SAML2LoginAPIAuthenticatorCmdTest.java index 426ec4e073f4..ca07c680ce0e 100644 --- a/plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/api/command/SAML2LoginAPIAuthenticatorCmdTest.java +++ b/plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/api/command/SAML2LoginAPIAuthenticatorCmdTest.java @@ -30,9 +30,9 @@ import java.util.HashMap; import java.util.Map; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import org.apache.cloudstack.api.ApiServerService; import org.apache.cloudstack.api.BaseCmd; diff --git a/plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/api/command/SAML2LogoutAPIAuthenticatorCmdTest.java b/plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/api/command/SAML2LogoutAPIAuthenticatorCmdTest.java index 2060d0baf311..fcc65036312d 100644 --- a/plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/api/command/SAML2LogoutAPIAuthenticatorCmdTest.java +++ b/plugins/user-authenticators/saml2/src/test/java/org/apache/cloudstack/api/command/SAML2LogoutAPIAuthenticatorCmdTest.java @@ -23,9 +23,9 @@ import java.net.InetAddress; import java.security.cert.X509Certificate; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import org.apache.cloudstack.api.ApiServerService; import org.apache.cloudstack.api.auth.APIAuthenticationType; diff --git a/pom.xml b/pom.xml index 315a2e3e4bd7..ed528f95a753 100644 --- a/pom.xml +++ b/pom.xml @@ -185,7 +185,7 @@ 8.1.0 3.1.3 1.4.20 - 5.3.26 + 7.0.2 0.5.4 3.1.7 @@ -436,11 +436,6 @@ mail ${cs.mail.version} - - javax.servlet - javax.servlet-api - ${cs.servlet.version} - joda-time joda-time diff --git a/server/pom.xml b/server/pom.xml index 2b35a0f42ac8..e13b3babd038 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -55,11 +55,6 @@ cloud-framework-security ${project.version} - - javax.servlet - javax.servlet-api - provided - org.apache.httpcomponents httpcore diff --git a/server/src/main/java/com/cloud/api/ApiServer.java b/server/src/main/java/com/cloud/api/ApiServer.java index 5a3c8c2c7179..5425154a1e35 100644 --- a/server/src/main/java/com/cloud/api/ApiServer.java +++ b/server/src/main/java/com/cloud/api/ApiServer.java @@ -55,8 +55,8 @@ import javax.crypto.spec.SecretKeySpec; import javax.inject.Inject; import javax.naming.ConfigurationException; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import com.cloud.cluster.ManagementServerHostVO; import com.cloud.cluster.dao.ManagementServerHostDao; diff --git a/server/src/main/java/com/cloud/api/ApiServlet.java b/server/src/main/java/com/cloud/api/ApiServlet.java index 21d093758127..aa400aa47bfc 100644 --- a/server/src/main/java/com/cloud/api/ApiServlet.java +++ b/server/src/main/java/com/cloud/api/ApiServlet.java @@ -29,13 +29,13 @@ import java.util.Set; import javax.inject.Inject; -import javax.servlet.ServletConfig; -import javax.servlet.ServletException; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.ServletConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import org.apache.cloudstack.api.APICommand; import org.apache.cloudstack.api.ApiConstants; diff --git a/server/src/main/java/com/cloud/api/ApiSessionListener.java b/server/src/main/java/com/cloud/api/ApiSessionListener.java index a82c043ee3b2..1e64df745769 100644 --- a/server/src/main/java/com/cloud/api/ApiSessionListener.java +++ b/server/src/main/java/com/cloud/api/ApiSessionListener.java @@ -16,10 +16,10 @@ // under the License. package com.cloud.api; -import javax.servlet.annotation.WebListener; -import javax.servlet.http.HttpSession; -import javax.servlet.http.HttpSessionEvent; -import javax.servlet.http.HttpSessionListener; +import jakarta.servlet.annotation.WebListener; +import jakarta.servlet.http.HttpSession; +import jakarta.servlet.http.HttpSessionEvent; +import jakarta.servlet.http.HttpSessionListener; import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; diff --git a/server/src/main/java/com/cloud/api/auth/DefaultForgotPasswordAPIAuthenticatorCmd.java b/server/src/main/java/com/cloud/api/auth/DefaultForgotPasswordAPIAuthenticatorCmd.java index 1e90b43c5e8b..29100d64f83a 100644 --- a/server/src/main/java/com/cloud/api/auth/DefaultForgotPasswordAPIAuthenticatorCmd.java +++ b/server/src/main/java/com/cloud/api/auth/DefaultForgotPasswordAPIAuthenticatorCmd.java @@ -37,9 +37,9 @@ import org.jetbrains.annotations.Nullable; import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import java.net.InetAddress; import java.util.List; import java.util.Map; diff --git a/server/src/main/java/com/cloud/api/auth/DefaultLoginAPIAuthenticatorCmd.java b/server/src/main/java/com/cloud/api/auth/DefaultLoginAPIAuthenticatorCmd.java index c9b03a85f4c7..76e6211c4313 100644 --- a/server/src/main/java/com/cloud/api/auth/DefaultLoginAPIAuthenticatorCmd.java +++ b/server/src/main/java/com/cloud/api/auth/DefaultLoginAPIAuthenticatorCmd.java @@ -37,9 +37,9 @@ import org.jetbrains.annotations.Nullable; import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import java.util.List; import java.util.Map; import java.net.InetAddress; diff --git a/server/src/main/java/com/cloud/api/auth/DefaultLogoutAPIAuthenticatorCmd.java b/server/src/main/java/com/cloud/api/auth/DefaultLogoutAPIAuthenticatorCmd.java index 6248f8f2f0ff..957f97ba7070 100644 --- a/server/src/main/java/com/cloud/api/auth/DefaultLogoutAPIAuthenticatorCmd.java +++ b/server/src/main/java/com/cloud/api/auth/DefaultLogoutAPIAuthenticatorCmd.java @@ -27,9 +27,9 @@ import org.apache.cloudstack.api.auth.PluggableAPIAuthenticator; import org.apache.cloudstack.api.response.LogoutCmdResponse; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import java.util.List; import java.util.Map; import java.net.InetAddress; diff --git a/server/src/main/java/com/cloud/api/auth/DefaultResetPasswordAPIAuthenticatorCmd.java b/server/src/main/java/com/cloud/api/auth/DefaultResetPasswordAPIAuthenticatorCmd.java index 077efdee0879..92b9e8c61539 100644 --- a/server/src/main/java/com/cloud/api/auth/DefaultResetPasswordAPIAuthenticatorCmd.java +++ b/server/src/main/java/com/cloud/api/auth/DefaultResetPasswordAPIAuthenticatorCmd.java @@ -39,9 +39,9 @@ import org.jetbrains.annotations.Nullable; import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import java.net.InetAddress; import java.util.List; import java.util.Map; diff --git a/server/src/main/java/com/cloud/api/auth/ValidateUserTwoFactorAuthenticationCodeCmd.java b/server/src/main/java/com/cloud/api/auth/ValidateUserTwoFactorAuthenticationCodeCmd.java index c5914e948db4..0cf322756180 100644 --- a/server/src/main/java/com/cloud/api/auth/ValidateUserTwoFactorAuthenticationCodeCmd.java +++ b/server/src/main/java/com/cloud/api/auth/ValidateUserTwoFactorAuthenticationCodeCmd.java @@ -40,9 +40,9 @@ import org.apache.commons.lang3.StringUtils; import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import java.net.InetAddress; import java.util.List; import java.util.Map; diff --git a/server/src/main/java/com/cloud/servlet/CloudStartupServlet.java b/server/src/main/java/com/cloud/servlet/CloudStartupServlet.java index 03933a8ad0e2..bba651590e11 100644 --- a/server/src/main/java/com/cloud/servlet/CloudStartupServlet.java +++ b/server/src/main/java/com/cloud/servlet/CloudStartupServlet.java @@ -19,9 +19,9 @@ import java.util.Timer; import java.util.TimerTask; -import javax.servlet.ServletConfig; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; +import jakarta.servlet.ServletConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; import org.springframework.web.context.support.SpringBeanAutowiringSupport; diff --git a/server/src/main/java/com/cloud/servlet/ConsoleProxyServlet.java b/server/src/main/java/com/cloud/servlet/ConsoleProxyServlet.java index 265a975af245..28ba146004ba 100644 --- a/server/src/main/java/com/cloud/servlet/ConsoleProxyServlet.java +++ b/server/src/main/java/com/cloud/servlet/ConsoleProxyServlet.java @@ -28,12 +28,12 @@ import javax.crypto.Mac; import javax.crypto.spec.SecretKeySpec; import javax.inject.Inject; -import javax.servlet.ServletConfig; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.ServletConfig; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServlet; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import org.apache.cloudstack.framework.security.keys.KeysManager; import org.apache.commons.codec.binary.Base64; diff --git a/server/src/test/java/com/cloud/api/ApiServletTest.java b/server/src/test/java/com/cloud/api/ApiServletTest.java index 4d4f0a12098c..2363f1654b5d 100644 --- a/server/src/test/java/com/cloud/api/ApiServletTest.java +++ b/server/src/test/java/com/cloud/api/ApiServletTest.java @@ -42,9 +42,9 @@ import org.mockito.Mockito; import org.mockito.junit.MockitoJUnitRunner; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import java.io.IOException; import java.io.PrintWriter; import java.io.StringWriter; diff --git a/server/src/test/java/com/cloud/deploy/DeploymentPlanningManagerImplTest.java b/server/src/test/java/com/cloud/deploy/DeploymentPlanningManagerImplTest.java index 5b03260d2d66..28773c60c370 100644 --- a/server/src/test/java/com/cloud/deploy/DeploymentPlanningManagerImplTest.java +++ b/server/src/test/java/com/cloud/deploy/DeploymentPlanningManagerImplTest.java @@ -123,7 +123,6 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.AnnotationConfigContextLoader; -import javax.inject.Inject; import javax.naming.ConfigurationException; import java.io.IOException; import java.lang.reflect.Field; @@ -149,64 +148,67 @@ public class DeploymentPlanningManagerImplTest { @InjectMocks DeploymentPlanningManagerImpl _dpm; - @Inject + @Mock + AgentManager _agentMgr; + + @Mock PlannerHostReservationDao _plannerHostReserveDao; - @Inject + @Mock VirtualMachineProfileImpl vmProfile; - @Inject + @Mock private AccountDao accountDao; - @Inject + @Mock private VMInstanceDao vmInstanceDao; - @Inject + @Mock AffinityGroupVMMapDao _affinityGroupVMMapDao; - @Inject + @Mock ExcludeList avoids; - @Inject + @Mock DataCenterVO dc; - @Inject + @Mock DataCenterDao _dcDao; @Mock FirstFitPlanner _planner; - @Inject + @Mock ClusterDao _clusterDao; - @Inject + @Mock DedicatedResourceDao _dedicatedDao; - @Inject + @Mock VMInstanceDetailsDao vmDetailsDao; - @Inject + @Mock VMTemplateDao templateDao; - @Inject + @Mock HostPodDao hostPodDao; - @Inject + @Mock VolumeDao volDao; - @Inject + @Mock HostDao hostDao; - @Inject + @Mock CapacityManager capacityMgr; - @Inject + @Mock ServiceOfferingDetailsDao serviceOfferingDetailsDao; - @Inject + @Mock ClusterDetailsDao clusterDetailsDao; - @Inject + @Mock PrimaryDataStoreDao primaryDataStoreDao; @Mock @@ -218,13 +220,13 @@ public class DeploymentPlanningManagerImplTest { @Mock AccountManager _accountMgr; - @Inject + @Mock DiskOfferingDao _diskOfferingDao; @Mock DataStoreManager _dataStoreManager; - @Inject + @Mock HostPodDao _podDao; private static final long dataCenterId = 1L; diff --git a/server/src/test/java/com/cloud/network/vpc/NetworkACLManagerTest.java b/server/src/test/java/com/cloud/network/vpc/NetworkACLManagerTest.java index 651d7cb6aef3..89a8701d41b5 100644 --- a/server/src/test/java/com/cloud/network/vpc/NetworkACLManagerTest.java +++ b/server/src/test/java/com/cloud/network/vpc/NetworkACLManagerTest.java @@ -44,8 +44,7 @@ import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.ArgumentMatchers; -import org.mockito.Mockito; +import org.mockito.*; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.Configuration; @@ -74,38 +73,42 @@ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(loader = AnnotationConfigContextLoader.class) public class NetworkACLManagerTest extends TestCase { - @Inject + + @Spy + @InjectMocks NetworkACLManagerImpl _aclMgr; - @Inject + @Mock AccountManager _accountMgr; - @Inject + @Mock VpcManager _vpcMgr; - @Inject + @Mock NetworkACLDao _networkACLDao; - @Inject + @Mock NetworkACLItemDao _networkACLItemDao; - @Inject + @Mock NetworkDao _networkDao; - @Inject + @Mock NetworkOfferingDao networkOfferingDao; - @Inject + @Mock NetworkModel _networkModel; - @Inject + @Mock List _networkAclElements; - @Inject + @Mock VpcService _vpcSvc; - @Inject + @Mock VpcGatewayDao _vpcGatewayDao; - @Inject + @Mock private ResourceTagDao resourceTagDao; private NetworkACLVO acl; private NetworkACLItemVO aclItem; + private AutoCloseable closeable; @Override @Before public void setUp() { + closeable = MockitoAnnotations.openMocks(this); ComponentContext.initComponentsLifeCycle(); final Account account = new AccountVO("testaccount", 1, "testdomain", Account.Type.NORMAL, UUID.randomUUID().toString()); final UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN); @@ -117,8 +120,9 @@ public void setUp() { @Override @After - public void tearDown() { + public void tearDown() throws Exception { CallContext.unregister(); + closeable.close(); } @Test @@ -156,7 +160,7 @@ public void testApplyNetworkACLsButNotOnGateway() throws Exception { @SuppressWarnings("unchecked") public void driveTestApplyNetworkACL(final boolean result, final boolean applyNetworkACLs, final boolean applyACLToPrivateGw) throws Exception { // In order to test ONLY our scope method, we mock the others - final NetworkACLManager aclManager = Mockito.spy(_aclMgr); + final NetworkACLManager aclManager = _aclMgr; // Prepare // Reset mocked objects to reuse diff --git a/server/src/test/java/com/cloud/template/TemplateManagerImplTest.java b/server/src/test/java/com/cloud/template/TemplateManagerImplTest.java index 819694a226b3..613939ec6277 100755 --- a/server/src/test/java/com/cloud/template/TemplateManagerImplTest.java +++ b/server/src/test/java/com/cloud/template/TemplateManagerImplTest.java @@ -69,6 +69,7 @@ import com.cloud.vm.VMInstanceVO; import com.cloud.vm.dao.UserVmDao; import com.cloud.vm.dao.VMInstanceDao; + import org.apache.cloudstack.api.command.user.template.CreateTemplateCmd; import org.apache.cloudstack.api.command.user.template.DeleteTemplateCmd; import org.apache.cloudstack.api.command.user.template.RegisterTemplateCmd; @@ -104,12 +105,18 @@ import org.apache.cloudstack.storage.heuristics.HeuristicRuleHelper; import org.apache.cloudstack.storage.template.VnfTemplateManager; import org.apache.cloudstack.test.utils.SpringUtils; + import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; + +import org.mockito.InjectMocks; +import org.mockito.Mock; import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.mockito.Spy; import org.mockito.invocation.InvocationOnMock; import org.mockito.stubbing.Answer; import org.springframework.context.annotation.Bean; @@ -150,25 +157,26 @@ @ContextConfiguration(loader = AnnotationConfigContextLoader.class) public class TemplateManagerImplTest { - @Inject - TemplateManagerImpl templateManager = new TemplateManagerImpl(); + @Spy + @InjectMocks + TemplateManagerImpl templateManager; - @Inject + @Mock DataStoreManager dataStoreManager; - @Inject + @Mock VMTemplateDao vmTemplateDao; - @Inject + @Mock VMTemplatePoolDao vmTemplatePoolDao; - @Inject + @Mock TemplateDataStoreDao templateDataStoreDao; @Inject StoragePoolHostDao storagePoolHostDao; - @Inject + @Mock PrimaryDataStoreDao primaryDataStoreDao; @Inject @@ -180,37 +188,37 @@ public class TemplateManagerImplTest { @Inject GuestOSDao guestOSDao; - @Inject - VMTemplateDao tmpltDao; - - @Inject - SnapshotDao snapshotDao; - @Inject VMTemplateDetailsDao tmpltDetailsDao; @Inject StorageStrategyFactory storageStrategyFactory; - @Inject + @Mock VMInstanceDao _vmInstanceDao; - @Inject + @Mock private VMTemplateDao _tmpltDao; @Inject HypervisorGuruManager _hvGuruMgr; - @Inject + @Mock AccountManager _accountMgr; + @Inject VnfTemplateManager vnfTemplateManager; @Inject SnapshotJoinDao snapshotJoinDao; - @Inject + @Mock + SnapshotDao _snapshotDao; + + @Mock HeuristicRuleHelper heuristicRuleHelperMock; + AutoCloseable mockHolder; + public class CustomThreadPoolExecutor extends ThreadPoolExecutor { AtomicInteger ai = new AtomicInteger(0); public CustomThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, @@ -238,6 +246,7 @@ public int getCount() { @Before public void setUp() { + mockHolder = MockitoAnnotations.openMocks(this); ComponentContext.initComponentsLifeCycle(); AccountVO account = new AccountVO("admin", 1L, "networkDomain", Account.Type.NORMAL, "uuid"); UserVO user = new UserVO(1, "testuser", "password", "firstname", "lastName", "email", "timezone", UUID.randomUUID().toString(), User.Source.UNKNOWN); @@ -245,8 +254,9 @@ public void setUp() { } @After - public void tearDown() { + public void tearDown() throws Exception{ CallContext.unregister(); + mockHolder.close(); } @Test(expected = InvalidParameterValueException.class) @@ -305,13 +315,13 @@ public void testForceDeleteTemplate() { @Test public void testPrepareTemplateIsSeeded() { VMTemplateVO mockTemplate = mock(VMTemplateVO.class); - when(mockTemplate.getId()).thenReturn(202l); + when(mockTemplate.getId()).thenReturn(202L); StoragePoolVO mockPool = mock(StoragePoolVO.class); - when(mockPool.getId()).thenReturn(2l); + when(mockPool.getId()).thenReturn(2L); PrimaryDataStore mockPrimaryDataStore = mock(PrimaryDataStore.class); - when(mockPrimaryDataStore.getId()).thenReturn(2l); + when(mockPrimaryDataStore.getId()).thenReturn(2L); VMTemplateStoragePoolVO mockTemplateStore = mock(VMTemplateStoragePoolVO.class); when(mockTemplateStore.getDownloadState()).thenReturn(VMTemplateStorageResourceAssoc.Status.DOWNLOADED); @@ -319,6 +329,7 @@ public void testPrepareTemplateIsSeeded() { when(dataStoreManager.getPrimaryDataStore(anyLong())).thenReturn(mockPrimaryDataStore); when(vmTemplateDao.findById(anyLong(), anyBoolean())).thenReturn(mockTemplate); when(vmTemplatePoolDao.findByPoolTemplate(anyLong(), anyLong(), nullable(String.class))).thenReturn(mockTemplateStore); + when(_tmpltDao.findById(202L)).thenReturn(mockTemplate); doNothing().when(mockTemplateStore).setMarkedForGC(anyBoolean()); @@ -329,7 +340,7 @@ public void testPrepareTemplateIsSeeded() { @Test public void testPrepareTemplateNotDownloaded() { VMTemplateVO mockTemplate = mock(VMTemplateVO.class); - when(mockTemplate.getId()).thenReturn(202l); + when(mockTemplate.getId()).thenReturn(202L); StoragePoolVO mockPool = mock(StoragePoolVO.class); when(mockPool.getId()).thenReturn(2l); @@ -342,6 +353,7 @@ public void testPrepareTemplateNotDownloaded() { when(vmTemplateDao.findById(anyLong(), anyBoolean())).thenReturn(mockTemplate); when(vmTemplatePoolDao.findByPoolTemplate(anyLong(), anyLong(), nullable(String.class))).thenReturn(null); when(templateDataStoreDao.findByTemplateZoneDownloadStatus(202l, 1l, VMTemplateStorageResourceAssoc.Status.DOWNLOADED)).thenReturn(null); + when(_tmpltDao.findById(202L)).thenReturn(mockTemplate); VMTemplateStoragePoolVO returnObject = templateManager.prepareTemplateForCreate(mockTemplate, (StoragePool) mockPrimaryDataStore); assertTrue("Test template is not ready", returnObject == null); @@ -394,6 +406,7 @@ public void testTemplateScheduledForDownloadInOnePool() { when(vmTemplateDao.findById(anyLong(), anyBoolean())).thenReturn(mockTemplate); when(vmTemplatePoolDao.findByPoolTemplate(anyLong(), anyLong(), nullable(String.class))).thenReturn(mockTemplateStore); when(primaryDataStoreDao.findById(anyLong())).thenReturn(mockPool); + when(_tmpltDao.findById(202L)).thenReturn(mockTemplate); doNothing().when(mockTemplateStore).setMarkedForGC(anyBoolean()); @@ -423,6 +436,7 @@ public void testTemplateScheduledForDownloadInDisabledPool() { when(vmTemplateDao.findById(anyLong(), anyBoolean())).thenReturn(mockTemplate); when(vmTemplatePoolDao.findByPoolTemplate(anyLong(), anyLong(), nullable(String.class))).thenReturn(mockTemplateStore); when(primaryDataStoreDao.findById(anyLong())).thenReturn(mockPool); + when(_tmpltDao.findById(202L)).thenReturn(mockTemplate); doNothing().when(mockTemplateStore).setMarkedForGC(anyBoolean()); @@ -468,6 +482,7 @@ public void testTemplateScheduledForDownloadInMultiplePool() { when(primaryDataStoreDao.findById(3l)).thenReturn(mockPool2); when(primaryDataStoreDao.findById(4l)).thenReturn(mockPool3); when(primaryDataStoreDao.listByStatus(StoragePoolStatus.Up)).thenReturn(pools); + when(_tmpltDao.findById(202L)).thenReturn(mockTemplate); doNothing().when(mockTemplateStore).setMarkedForGC(anyBoolean()); @@ -501,7 +516,7 @@ public void testCreatePrivateTemplateRecordForRegionStore() throws ResourceAlloc Account mockTemplateOwner = mock(Account.class); SnapshotVO mockSnapshot = mock(SnapshotVO.class); - when(snapshotDao.findById(anyLong())).thenReturn(mockSnapshot); + when(_snapshotDao.findById(anyLong())).thenReturn(mockSnapshot); when(mockSnapshot.getVolumeId()).thenReturn(1L); when(mockSnapshot.getState()).thenReturn(Snapshot.State.BackedUp); @@ -513,14 +528,14 @@ public void testCreatePrivateTemplateRecordForRegionStore() throws ResourceAlloc GuestOSVO mockGuestOS = mock(GuestOSVO.class); when(guestOSDao.findById(anyLong())).thenReturn(mockGuestOS); - when(tmpltDao.getNextInSequence(eq(Long.class), eq("id"))).thenReturn(1L); + when(_tmpltDao.getNextInSequence(eq(Long.class), eq("id"))).thenReturn(1L); List mockRegionStores = new ArrayList<>(); ImageStoreVO mockRegionStore = mock(ImageStoreVO.class); mockRegionStores.add(mockRegionStore); when(imgStoreDao.findRegionImageStores()).thenReturn(mockRegionStores); - when(tmpltDao.persist(any(VMTemplateVO.class))).thenAnswer(new Answer() { + when(_tmpltDao.persist(any(VMTemplateVO.class))).thenAnswer(new Answer() { @Override public VMTemplateVO answer(InvocationOnMock invocationOnMock) throws Throwable { Object[] args = invocationOnMock.getArguments(); diff --git a/server/src/test/java/com/cloud/vm/FirstFitPlannerTest.java b/server/src/test/java/com/cloud/vm/FirstFitPlannerTest.java index 5b877cc66169..67956abb789e 100644 --- a/server/src/test/java/com/cloud/vm/FirstFitPlannerTest.java +++ b/server/src/test/java/com/cloud/vm/FirstFitPlannerTest.java @@ -33,6 +33,7 @@ import com.cloud.capacity.CapacityVO; import com.cloud.dc.ClusterDetailsVO; + import org.apache.cloudstack.context.CallContext; import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreManager; import org.apache.cloudstack.framework.config.ConfigDepot; @@ -44,12 +45,15 @@ import org.apache.cloudstack.framework.config.impl.ConfigDepotImpl; import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao; import org.apache.cloudstack.test.utils.SpringUtils; + import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; -import org.mockito.Mockito; + +import org.mockito.*; + import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan.Filter; @@ -105,43 +109,44 @@ @ContextConfiguration(loader = AnnotationConfigContextLoader.class) public class FirstFitPlannerTest { - @Inject - FirstFitPlanner planner = new FirstFitPlanner(); - @Inject + @Spy + @InjectMocks + FirstFitPlanner planner; + @Mock DataCenterDao dcDao; - @Inject + @Mock ClusterDao clusterDao; - @Inject + @Mock UserVmDao vmDao; - @Inject + @Mock HostDetailsDao hostDetailsDao; - @Inject + @Mock VMInstanceDetailsDao vmDetailsDao; - @Inject + @Mock ConfigurationDao configDao; - @Inject + @Mock ConfigurationGroupDao configGroupDao; - @Inject + @Mock ConfigurationSubGroupDao configSubGroupDao; - @Inject + @Mock CapacityDao capacityDao; - @Inject + @Mock AccountManager accountMgr; - @Inject + @Mock ServiceOfferingDao serviceOfferingDao; - @Inject + @Mock ServiceOfferingDetailsDao serviceOfferingDetailsDao; - @Inject + @Mock HostGpuGroupsDao hostGpuGroupsDao; - @Inject + @Mock HostTagsDao hostTagsDao; - @Inject + @Mock ConfigDepotImpl configDepot; - @Inject + @Mock ScopedConfigStorage scopedStorage; - @Inject + @Mock HostDao hostDao; - @Inject + @Mock private ClusterDetailsDao clusterDetailsDao; private static final double TOLERANCE = 0.0001; private static long domainId = 1L; @@ -152,16 +157,18 @@ public class FirstFitPlannerTest { int cpuSpeedInOffering = 500; int ramInOffering = 512; AccountVO acct = new AccountVO(accountId); + private AutoCloseable mockHolder; @Before public void setUp() { + mockHolder = MockitoAnnotations.openMocks(this); + ComponentContext.initComponentsLifeCycle(); ConfigKey.init(configDepot); when(configDepot.global()).thenReturn(configDao); when(configDao.getValue(Mockito.anyString())).thenReturn(null); when(configDao.getValue(Config.ImplicitHostTags.key())).thenReturn("GPU"); - ComponentContext.initComponentsLifeCycle(); acct.setType(Account.Type.ADMIN); acct.setAccountName("user1"); acct.setDomainId(domainId); @@ -169,9 +176,10 @@ public void setUp() { } @After - public void tearDown() { + public void tearDown() throws Exception{ ConfigKey.init(null); CallContext.unregister(); + mockHolder.close(); } @Test @@ -182,7 +190,7 @@ public void checkClusterReorderingBasedOnImplicitHostTags() throws InsufficientS initializeForTest(vmProfile, plan, avoids); List clusterList = planner.orderClusters(vmProfile, plan, avoids); - List reorderedClusterList = new ArrayList(); + List reorderedClusterList = new ArrayList<>(); reorderedClusterList.add(4L); reorderedClusterList.add(3L); reorderedClusterList.add(1L); diff --git a/server/src/test/java/org/apache/cloudstack/affinity/AffinityGroupServiceImplTest.java b/server/src/test/java/org/apache/cloudstack/affinity/AffinityGroupServiceImplTest.java index 5657bd1f5068..6f404467ebfa 100644 --- a/server/src/test/java/org/apache/cloudstack/affinity/AffinityGroupServiceImplTest.java +++ b/server/src/test/java/org/apache/cloudstack/affinity/AffinityGroupServiceImplTest.java @@ -48,14 +48,21 @@ import org.apache.cloudstack.framework.config.dao.ConfigurationDao; import org.apache.cloudstack.framework.messagebus.MessageBus; import org.apache.cloudstack.test.utils.SpringUtils; + import org.junit.After; import org.junit.Assert; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.junit.runner.RunWith; + import org.mockito.ArgumentMatchers; +import org.mockito.InjectMocks; +import org.mockito.Mock; import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; +import org.mockito.Spy; + import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.ComponentScan.Filter; @@ -68,7 +75,6 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.test.context.support.AnnotationConfigContextLoader; -import javax.inject.Inject; import javax.naming.ConfigurationException; import java.io.IOException; import java.util.ArrayList; @@ -88,48 +94,56 @@ @ContextConfiguration(loader = AnnotationConfigContextLoader.class) public class AffinityGroupServiceImplTest { - @Inject + @Spy + @InjectMocks AffinityGroupServiceImpl _affinityService; - @Inject + @Mock AccountManager _acctMgr; - @Inject + @Mock AffinityGroupProcessor _processor; - @Inject + @Mock AffinityGroupDao _groupDao; - @Inject + @Mock UserVmDao _vmDao; - @Inject + @Mock AffinityGroupVMMapDao _affinityGroupVMMapDao; - @Inject + @Mock + AffinityGroupDomainMapDao _affinityGroupDomainMapDao; + + @Mock AffinityGroupDao _affinityGroupDao; - @Inject + @Mock ActionEventUtils _eventUtils; - @Inject + @Mock AccountDao _accountDao; - @Inject + @Mock ProjectDao _projectDao; - @Inject + @Mock EventDao _eventDao; - @Inject + @Mock DedicatedResourceDao _dedicatedDao; + @Mock + MessageBus _messageBus; + private static final long DOMAIN_ID = 5L; private static final long PROJECT_ID = 10L; private static final String ACCOUNT_NAME = "user"; private static final String AFFINITY_GROUP_NAME = "group1"; private AccountVO acct; + private AutoCloseable mockHolder; @BeforeClass public static void setUpClass() throws ConfigurationException { @@ -137,6 +151,7 @@ public static void setUpClass() throws ConfigurationException { @Before public void setUp() { + mockHolder = MockitoAnnotations.openMocks(this); ComponentContext.initComponentsLifeCycle(); acct = new AccountVO(200L); acct.setType(Account.Type.NORMAL); @@ -165,8 +180,9 @@ public void setUp() { } @After - public void tearDown() { + public void tearDown() throws Exception { CallContext.unregister(); + mockHolder.close(); } @Test diff --git a/services/console-proxy/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyNoVNCHandler.java b/services/console-proxy/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyNoVNCHandler.java index a148b988e40d..bb00d51a7c43 100644 --- a/services/console-proxy/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyNoVNCHandler.java +++ b/services/console-proxy/server/src/main/java/com/cloud/consoleproxy/ConsoleProxyNoVNCHandler.java @@ -19,9 +19,9 @@ import java.io.IOException; import java.util.Map; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; +import jakarta.servlet.ServletException; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; diff --git a/utils/pom.xml b/utils/pom.xml index fe0f696e52c7..0d7b1cfa7363 100755 --- a/utils/pom.xml +++ b/utils/pom.xml @@ -112,11 +112,6 @@ javax.annotation-api ${cs.javax.annotation.version} - - javax.servlet - javax.servlet-api - provided - com.cronutils cron-utils @@ -229,6 +224,15 @@ org.apache.commons commons-collections4 + + org.apache.tomcat.embed + tomcat-embed-core + test + + + org.apache.tomcat.embed + tomcat-embed-core + diff --git a/utils/src/main/java/com/cloud/utils/HttpUtils.java b/utils/src/main/java/com/cloud/utils/HttpUtils.java index 9f998efe0994..3ca70790f7e2 100644 --- a/utils/src/main/java/com/cloud/utils/HttpUtils.java +++ b/utils/src/main/java/com/cloud/utils/HttpUtils.java @@ -22,9 +22,9 @@ import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpServletResponse; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpServletResponse; +import jakarta.servlet.http.HttpSession; import java.io.FileOutputStream; import java.io.IOException; diff --git a/utils/src/main/java/com/cloud/utils/component/ComponentInstantiationPostProcessor.java b/utils/src/main/java/com/cloud/utils/component/ComponentInstantiationPostProcessor.java index 3ec7d93098e7..22eeac17fcf3 100644 --- a/utils/src/main/java/com/cloud/utils/component/ComponentInstantiationPostProcessor.java +++ b/utils/src/main/java/com/cloud/utils/component/ComponentInstantiationPostProcessor.java @@ -19,7 +19,6 @@ package com.cloud.utils.component; -import java.beans.PropertyDescriptor; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.List; @@ -34,7 +33,6 @@ import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; import org.springframework.beans.BeansException; -import org.springframework.beans.PropertyValues; import org.springframework.beans.factory.config.InstantiationAwareBeanPostProcessor; import com.cloud.utils.Pair; @@ -102,11 +100,6 @@ public boolean postProcessAfterInstantiation(Object bean, String beanName) throw return true; } - @Override - public PropertyValues postProcessPropertyValues(PropertyValues pvs, PropertyDescriptor[] pds, Object bean, String beanName) throws BeansException { - return pvs; - } - protected class InterceptorDispatcher implements MethodInterceptor { @Override public Object intercept(Object target, Method method, Object[] args, MethodProxy methodProxy) throws Throwable { diff --git a/utils/src/test/java/com/cloud/utils/HttpUtilsTest.java b/utils/src/test/java/com/cloud/utils/HttpUtilsTest.java index 3dea0d05d029..357255f9caff 100644 --- a/utils/src/test/java/com/cloud/utils/HttpUtilsTest.java +++ b/utils/src/test/java/com/cloud/utils/HttpUtilsTest.java @@ -44,8 +44,8 @@ import java.util.HashMap; import java.util.Map; -import javax.servlet.http.Cookie; -import javax.servlet.http.HttpSession; +import jakarta.servlet.http.Cookie; +import jakarta.servlet.http.HttpSession; import org.apache.logging.log4j.Logger; import org.junit.BeforeClass; @@ -104,7 +104,6 @@ public void validateSessionKeyTest() { assertFalse(HttpUtils.validateSessionKey(session, params, cookies, sessionKeyString, HttpUtils.ApiSessionKeyCheckOption.CookieOrParameter)); // param null, cookies not null test (JSESSIONID is null) - params = null; cookies = new Cookie[]{new Cookie(sessionKeyString, sessionKeyValue)}; assertFalse(HttpUtils.validateSessionKey(session, params, cookies, "randomString", HttpUtils.ApiSessionKeyCheckOption.CookieOrParameter)); assertTrue(HttpUtils.validateSessionKey(session, params, cookies, sessionKeyString, HttpUtils.ApiSessionKeyCheckOption.CookieOrParameter)); @@ -123,7 +122,7 @@ public void validateSessionKeyTest() { assertFalse(HttpUtils.validateSessionKey(session, params, cookies, sessionKeyString, HttpUtils.ApiSessionKeyCheckOption.CookieOrParameter)); // param not null, cookies null test - params = new HashMap(); + params = new HashMap<>(); params.put(sessionKeyString, new String[]{"randomString"}); cookies = null; assertFalse(HttpUtils.validateSessionKey(session, params, cookies, sessionKeyString, HttpUtils.ApiSessionKeyCheckOption.CookieOrParameter)); @@ -131,7 +130,7 @@ public void validateSessionKeyTest() { assertTrue(HttpUtils.validateSessionKey(session, params, cookies, sessionKeyString, HttpUtils.ApiSessionKeyCheckOption.CookieOrParameter)); // both param and cookies not null test (JSESSIONID is null) - params = new HashMap(); + params = new HashMap<>(); cookies = new Cookie[2]; cookies[0] = new Cookie(sessionKeyString, sessionKeyValue); params.put(sessionKeyString, new String[]{"incorrectValue"}); @@ -140,7 +139,7 @@ public void validateSessionKeyTest() { assertTrue(HttpUtils.validateSessionKey(session, params, cookies, sessionKeyString, HttpUtils.ApiSessionKeyCheckOption.CookieOrParameter)); // both param and cookies not null test (JSESSIONID is not null but mismatches) - params = new HashMap(); + params = new HashMap<>(); cookies = new Cookie[2]; cookies[0] = new Cookie(sessionKeyString, sessionKeyValue); cookies[1] = new Cookie("JSESSIONID", "node0xxxxxxxxxxxxx.node0"); @@ -150,7 +149,7 @@ public void validateSessionKeyTest() { assertFalse(HttpUtils.validateSessionKey(session, params, cookies, sessionKeyString, HttpUtils.ApiSessionKeyCheckOption.CookieOrParameter)); // both param and cookies not null test (JSESSIONID is not null amd matches) - params = new HashMap(); + params = new HashMap<>(); cookies = new Cookie[2]; cookies[0] = new Cookie(sessionKeyString, sessionKeyValue); cookies[1] = new Cookie("JSESSIONID", sessionId + ".node0"); @@ -160,7 +159,7 @@ public void validateSessionKeyTest() { assertTrue(HttpUtils.validateSessionKey(session, params, cookies, sessionKeyString, HttpUtils.ApiSessionKeyCheckOption.CookieOrParameter)); // param not null, cookies null test (JSESSIONID is not null amd matches) - params = new HashMap(); + params = new HashMap<>(); cookies = new Cookie[1]; cookies[0] = new Cookie("JSESSIONID", sessionId + ".node0"); params.put(sessionKeyString, new String[]{"incorrectValue"});