From f93079fd978abfe32265f9707df9b71d19a713d3 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Wed, 25 Feb 2026 14:05:58 +0000 Subject: [PATCH 01/23] NCL-9544 Migration to Quarkus. Includes annotation changes and fixes for various modules. --- application/pom.xml | 119 ++++---- common/pom.xml | 68 ++--- .../jboss/da/common/logging/AppLifecycle.java | 12 +- .../jboss/da/common/util/Configuration.java | 2 +- .../jboss/da/common/util/LoggerProducer.java | 4 +- .../org/jboss/da/common/util/UserLog.java | 2 +- .../da/common/util/ConfigurationTest.java | 18 +- communication/pom.xml | 135 +++++---- .../da/communication/GalleyMavenProducer.java | 73 +++-- .../impl/ElytronAuthenticatorService.java | 55 ---- .../auth/impl/JAASAuthenticatorService.java | 98 +++---- .../impl/QuarkusOidcAuthenticatorService.java | 28 ++ .../indy/impl/IndyConnectorImpl.java | 7 +- .../indy/impl/MetadataFileParser.java | 10 +- .../indy/model/VersionResponse.java | 4 +- .../communication/indy/model/Versioning.java | 2 +- .../da/communication/indy/model/Versions.java | 2 +- .../communication/pnc/PncConnectorImpl.java | 4 +- .../da/communication/pom/PomAnalyzerImpl.java | 4 +- .../jboss/da/communication/pom/PomReader.java | 10 +- .../pom/impl/DependencyTreeBuilder.java | 4 +- .../communication/pom/model/MavenParent.java | 2 +- .../communication/pom/model/MavenProject.java | 8 +- .../pom/model/MavenRepositories.java | 2 +- .../pom/model/MavenRepository.java | 6 +- .../da/communication/pom/model/MavenSCM.java | 6 +- .../scm/impl/SCMConnectorImpl.java | 4 +- .../communication/MetadataFileParserTest.java | 30 +- .../communication/indy/IndyConnectorTest.java | 47 ++- .../model/BackwardCompatibilityTest.java | 5 +- .../model/GAVIntegrationTest.java | 5 +- .../da/communication/pom/GetPomTest.java | 15 +- .../da/communication/pom/PomReaderTest.java | 10 +- pom.xml | 267 +++++++++++++----- reports-backend/pom.xml | 75 +++-- .../jboss/da/listings/api/model/Artifact.java | 4 +- .../da/listings/api/model/BlackArtifact.java | 2 +- .../org/jboss/da/listings/api/model/GA.java | 2 +- .../da/listings/api/model/GenericEntity.java | 8 +- .../org/jboss/da/listings/api/model/User.java | 4 +- .../da/listings/impl/dao/ArtifactDAOImpl.java | 12 +- .../impl/dao/BlackArtifactDAOImpl.java | 14 +- .../jboss/da/listings/impl/dao/GADAOImpl.java | 17 +- .../da/listings/impl/dao/GenericDAOImpl.java | 7 +- .../da/listings/impl/dao/UserDAOImpl.java | 20 +- .../impl/service/ArtifactServiceImpl.java | 2 +- .../service/BlackArtifactServiceImpl.java | 4 +- .../impl/AbstractProductProvider.java | 9 +- .../impl/AggregatedProductProvider.java | 11 +- .../da/products/impl/PncProductProvider.java | 11 +- .../impl/RepositoryProductProvider.java | 11 +- .../impl/DependencyTreeGeneratorImpl.java | 4 +- .../da/reports/impl/LookupGeneratorImpl.java | 4 +- .../da/reports/impl/ReportsGeneratorImpl.java | 6 +- .../org/jboss/da/validation/Validation.java | 8 +- .../da/validation/ValidationException.java | 2 +- .../da/reports/api/ArtifactReportTest.java | 12 +- .../da/reports/impl/LookupGeneratorTest.java | 19 +- .../impl/ReportsGeneratorImplTest.java | 124 +++----- reports-model/pom.xml | 80 +++--- .../da/lookup/model/MavenVersionsRequest.java | 2 +- .../da/lookup/model/NPMVersionsRequest.java | 2 +- .../da/model/rest/validators/ScmUrl.java | 4 +- .../rest/validators/ScmUrlValidator.java | 8 +- .../model/request/LookupGAVsRequest.java | 2 +- .../model/request/LookupNPMRequest.java | 2 +- .../model/request/SCMReportRequest.java | 2 +- .../model/request/VersionsNPMRequest.java | 2 +- .../model/rest/BackwardCompatibilityTest.java | 4 +- .../java/org/jboss/da/model/rest/GAVTest.java | 12 +- .../da/model/rest/VersionComparatorTest.java | 8 +- .../model/response/DeserializationTest.java | 2 +- reports-rest/pom.xml | 110 ++++---- .../org/jboss/da/rest/JacksonProvider.java | 10 +- .../java/org/jboss/da/rest/LookupImpl.java | 4 +- .../jboss/da/rest/ReportsRestActivator.java | 76 ++--- .../src/main/java/org/jboss/da/rest/Root.java | 8 +- .../jboss/da/rest/SwaggerConfiguration.java | 37 ++- .../jboss/da/rest/VersionEndpointImpl.java | 2 +- .../java/org/jboss/da/rest/api/BlackList.java | 46 +-- .../java/org/jboss/da/rest/api/Lookup.java | 38 +-- .../jboss/da/rest/api/VersionEndpoint.java | 20 +- .../rest/exceptions/AllExceptionsMapper.java | 6 +- .../jboss/da/rest/facade/ReportsFacade.java | 2 +- .../da/rest/filter/MDCLoggingFilter.java | 10 +- .../jboss/da/rest/listings/BlackListImpl.java | 4 +- .../jboss/da/rest/listings/RestConvert.java | 2 +- .../org/jboss/da/rest/reports/Reports.java | 53 ++-- .../DefaultWebsocketEndpointHandler.java | 8 +- .../websocket/WebsocketEndpointHandler.java | 2 +- .../org/jboss/da/rest/ws/ReportsEndpoint.java | 14 +- .../jboss/da/rest/ws/ReportsMethodsImpl.java | 4 +- .../da/rest/ws/ReportsWebsocketMethods.java | 2 +- source-code-manager/pom.xml | 52 ++-- .../java/org/jboss/da/scm/impl/SCMCache.java | 24 +- .../java/org/jboss/da/scm/impl/SCMImpl.java | 4 +- .../java/org/jboss/da/scm/impl/ScmFacade.java | 4 +- testsuite/pom.xml | 120 ++++---- 98 files changed, 1168 insertions(+), 1084 deletions(-) delete mode 100644 communication/src/main/java/org/jboss/da/communication/auth/impl/ElytronAuthenticatorService.java create mode 100644 communication/src/main/java/org/jboss/da/communication/auth/impl/QuarkusOidcAuthenticatorService.java diff --git a/application/pom.xml b/application/pom.xml index c350c9ace..59db1449e 100644 --- a/application/pom.xml +++ b/application/pom.xml @@ -7,97 +7,78 @@ application application - ear + jar + Quarkus application for Dependency Analyzer + + + uber-jar + - org.jboss.da - communication - ejb + reports-rest + + + + + + - org.jboss.da - source-code-manager - ejb + io.quarkus + quarkus-hibernate-orm - org.jboss.da - reports-model - ejb + io.quarkus + quarkus-jdbc-postgresql - org.jboss.da - reports-backend - ejb + io.quarkus + quarkus-arc - org.jboss.da - reports-rest - war + io.quarkus + quarkus-smallrye-openapi + + + io.quarkus + quarkus-oidc + + + + io.quarkus + quarkus-jaxb + + + + io.quarkus + quarkus-websockets - - - false - src/main/resources - - - false - src/main/java - - ** - - - **/*.java - - - - - org.apache.maven.plugins - maven-ear-plugin - 2.9 + io.quarkus.platform + quarkus-maven-plugin - true - 6 - lib dependency-analysis - - - org.jboss.da - communication - - - org.jboss.da - reports-model - - - org.jboss.da - reports-backend - - - org.jboss.da - reports-rest - - - no-version - ${outDirectory} - - - - org.wildfly.plugins - wildfly-maven-plugin - - target - dependency-analysis.ear - false + + + + + + + + + + + + + - diff --git a/common/pom.xml b/common/pom.xml index 6d48d6a1f..f9097b0dd 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -7,73 +7,59 @@ common common - ejb + jar org.jboss.da reports-model - ejb - com.fasterxml.jackson.core - jackson-databind - provided + io.quarkus + quarkus-core - - org.projectlombok - lombok - provided - + + + + + org.jboss.pnc constants - - - junit - junit - - - jakarta.enterprise - jakarta.enterprise.cdi-api - org.slf4j slf4j-api - org.jboss.spec.javax.ejb - jboss-ejb-api_3.2_spec + org.projectlombok + lombok provided + - org.jboss.spec.javax.annotation - jboss-annotations-api_1.3_spec + io.quarkus + quarkus-junit5 + test + + + + + + + + + + + + + - - - - org.apache.maven.plugins - maven-ejb-plugin - - - - - org.apache.httpcomponents export meta-inf - - - - - - - - pl.project13.maven diff --git a/common/src/main/java/org/jboss/da/common/logging/AppLifecycle.java b/common/src/main/java/org/jboss/da/common/logging/AppLifecycle.java index 68f84b4a4..25dbc5c39 100644 --- a/common/src/main/java/org/jboss/da/common/logging/AppLifecycle.java +++ b/common/src/main/java/org/jboss/da/common/logging/AppLifecycle.java @@ -2,13 +2,13 @@ import lombok.extern.slf4j.Slf4j; -import javax.annotation.PostConstruct; -import javax.annotation.PreDestroy; -import javax.ejb.Startup; -import javax.inject.Singleton; +import jakarta.annotation.PostConstruct; +import jakarta.annotation.PreDestroy; +import jakarta.enterprise.context.ApplicationScoped; +//import io.quarkus.runtime.Startup; -@Startup -@Singleton +//@Startup +@ApplicationScoped @Slf4j public class AppLifecycle { diff --git a/common/src/main/java/org/jboss/da/common/util/Configuration.java b/common/src/main/java/org/jboss/da/common/util/Configuration.java index cf63e12df..ca561bb11 100644 --- a/common/src/main/java/org/jboss/da/common/util/Configuration.java +++ b/common/src/main/java/org/jboss/da/common/util/Configuration.java @@ -8,7 +8,7 @@ import org.jboss.da.common.json.GlobalConfig; import org.jboss.da.common.json.ModuleConfigJson; -import javax.enterprise.context.ApplicationScoped; +import jakarta.enterprise.context.ApplicationScoped; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.jsontype.NamedType; diff --git a/common/src/main/java/org/jboss/da/common/util/LoggerProducer.java b/common/src/main/java/org/jboss/da/common/util/LoggerProducer.java index 6ede96557..675b43cb4 100644 --- a/common/src/main/java/org/jboss/da/common/util/LoggerProducer.java +++ b/common/src/main/java/org/jboss/da/common/util/LoggerProducer.java @@ -1,7 +1,7 @@ package org.jboss.da.common.util; -import javax.enterprise.inject.Produces; -import javax.enterprise.inject.spi.InjectionPoint; +import jakarta.enterprise.inject.Produces; +import jakarta.enterprise.inject.spi.InjectionPoint; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/common/src/main/java/org/jboss/da/common/util/UserLog.java b/common/src/main/java/org/jboss/da/common/util/UserLog.java index cb80430cc..31b2dea30 100644 --- a/common/src/main/java/org/jboss/da/common/util/UserLog.java +++ b/common/src/main/java/org/jboss/da/common/util/UserLog.java @@ -12,7 +12,7 @@ import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; -import javax.inject.Qualifier; +import jakarta.inject.Qualifier; /** * diff --git a/common/src/test/java/org/jboss/da/common/util/ConfigurationTest.java b/common/src/test/java/org/jboss/da/common/util/ConfigurationTest.java index cdc76b5da..6646ef581 100644 --- a/common/src/test/java/org/jboss/da/common/util/ConfigurationTest.java +++ b/common/src/test/java/org/jboss/da/common/util/ConfigurationTest.java @@ -4,9 +4,9 @@ import org.jboss.da.common.json.GlobalConfig; import org.jboss.da.common.json.LookupMode; import org.jboss.pnc.enums.BuildCategory; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import java.util.List; import java.util.Map; @@ -14,10 +14,10 @@ import java.util.stream.Collectors; import static org.jboss.da.common.util.Configuration.CONFIG_SYSPROP; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; public class ConfigurationTest { @@ -25,7 +25,7 @@ public class ConfigurationTest { private Configuration configuration; - @Before + @BeforeEach public void before() { configuration = new Configuration(); backupSystemConfigPath(); @@ -35,7 +35,7 @@ private void backupSystemConfigPath() { backupConfigPath = System.getProperty(CONFIG_SYSPROP); } - @After + @AfterEach public void restoreConfigPath() { if (backupConfigPath != null) { System.setProperty(CONFIG_SYSPROP, backupConfigPath); diff --git a/communication/pom.xml b/communication/pom.xml index ba72e1581..945cf873b 100644 --- a/communication/pom.xml +++ b/communication/pom.xml @@ -7,23 +7,20 @@ communication communication - ejb + jar org.jboss.da common - ejb org.jboss.da reports-model - ejb org.jboss.da source-code-manager - ejb @@ -39,82 +36,86 @@ org.jboss.pnc pnc-common + jakarta org.jboss.pnc rest-api java-client - - - org.commonjava.atlas - atlas-identities - - - + - javax.xml.bind - jaxb-api - test + jakarta.xml.bind + jakarta.xml.bind-api + - - - com.sun.xml.bind - jaxb-impl + org.glassfish.jaxb + jaxb-runtime test com.fasterxml.jackson.core jackson-databind - provided - - - jakarta.enterprise - jakarta.enterprise.cdi-api - - - org.jboss.spec.javax.servlet - jboss-servlet-api_4.0_spec - provided - + + + + + + + + + + + + + io.quarkus + quarkus-undertow + + + + + + org.slf4j slf4j-api - org.keycloak - keycloak-core - provided + org.commonjava.maven.galley + galley-maven + jakarta - org.wildfly.security - wildfly-elytron-http-oidc - provided + org.commonjava.maven.galley + galley-core + jakarta - org.commonjava.maven.galley - galley-maven + galley-api + jakarta org.commonjava.maven.galley galley-transport-filearc + jakarta org.commonjava.maven.galley galley-transport-httpclient + jakarta - - org.commonjava.atlas - atlas-identities - - org.commonjava.maven.galley galley-cache-partyline + jakarta + + + org.commonjava.atlas + atlas-identities @@ -125,12 +126,14 @@ - junit - junit + io.quarkus + quarkus-junit5 + test - org.mockito - mockito-all + io.quarkus + quarkus-junit5-mockito + test org.skyscreamer @@ -138,13 +141,43 @@ test - com.github.tomakehurst + org.wiremock wiremock-standalone test - - org.jboss.spec.javax.xml.bind - jboss-jaxb-api_2.3_spec - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/communication/src/main/java/org/jboss/da/communication/GalleyMavenProducer.java b/communication/src/main/java/org/jboss/da/communication/GalleyMavenProducer.java index e6323e7b0..f6455e3e7 100644 --- a/communication/src/main/java/org/jboss/da/communication/GalleyMavenProducer.java +++ b/communication/src/main/java/org/jboss/da/communication/GalleyMavenProducer.java @@ -1,7 +1,8 @@ package org.jboss.da.communication; -import com.codahale.metrics.MetricRegistry; import com.fasterxml.jackson.databind.ObjectMapper; +import jakarta.annotation.PostConstruct; +import jakarta.enterprise.inject.Produces; import org.commonjava.cdi.util.weft.config.DefaultWeftConfig; import org.commonjava.cdi.util.weft.config.WeftConfig; import org.commonjava.maven.galley.auth.MemoryPasswordManager; @@ -21,37 +22,35 @@ import org.commonjava.maven.galley.maven.spi.defaults.MavenPluginImplications; import org.commonjava.maven.galley.model.Location; import org.commonjava.maven.galley.nfc.MemoryNotFoundCache; +import org.commonjava.maven.galley.proxy.NoOpProxySitesCache; import org.commonjava.maven.galley.spi.auth.PasswordManager; import org.commonjava.maven.galley.spi.event.FileEventManager; import org.commonjava.maven.galley.spi.io.PathGenerator; import org.commonjava.maven.galley.spi.nfc.NotFoundCache; +import org.commonjava.maven.galley.spi.proxy.ProxySitesCache; import org.commonjava.maven.galley.spi.transport.LocationExpander; import org.commonjava.maven.galley.transport.NoOpLocationExpander; import org.commonjava.maven.galley.transport.htcli.Http; import org.commonjava.maven.galley.transport.htcli.HttpImpl; import org.commonjava.maven.galley.transport.htcli.conf.GlobalHttpConfiguration; -import org.commonjava.util.partyline.JoinableFileManager; +import org.commonjava.maven.galley.transport.htcli.conf.GlobalProxyConfig; +import org.commonjava.o11yphant.metrics.api.MetricRegistry; +import org.commonjava.util.partyline.Partyline; -import javax.annotation.PostConstruct; -import javax.enterprise.inject.Produces; -import javax.inject.Inject; import java.io.File; import java.io.IOException; import java.nio.file.Files; +import java.util.ArrayList; +import java.util.List; import java.util.concurrent.Executors; // Inspiration taken from the previous CartographyProducer and org.commonjava.maven.galley.embed.TestCDIProvider.java public class GalleyMavenProducer { - @Inject - private TransferDecoratorManager transferDecorator; - private FileTransportConfig fileTransportConfig; private PartyLineCacheProvider cacheProvider; - private MetricRegistry metricRegistry; - private GlobalHttpConfiguration globalHttpConfiguration; private PathGenerator pathGenerator; @@ -82,14 +81,14 @@ void init() { file, pathGenerator, new NoOpFileEventManager(), - transferDecorator, + new TransferDecoratorManager(), Executors.newScheduledThreadPool(2), - new JoinableFileManager()); + new Partyline()); fileTransportConfig = new FileTransportConfig(file, pathGenerator); globalHttpConfiguration = new GlobalHttpConfiguration(); - metricRegistry = new MetricRegistry(); + // metricRegistry = new MetricRegistry(); } catch (IOException e) { throw new RuntimeException(e); @@ -161,10 +160,10 @@ public GlobalHttpConfiguration getGlobalHttpConfiguration() { return globalHttpConfiguration; } - @Produces - public MetricRegistry getMetricRegistry() { - return metricRegistry; - } + // @Produces + // public MetricRegistry getMetricRegistry() { + // return metricRegistry; + // } @Produces public TransportMetricConfig getTransportMetricConfig() { @@ -176,6 +175,46 @@ public ObjectMapper getObjectMapper() { return new ObjectMapper(); } + @Produces + public GlobalProxyConfig getGlobalProxyConfig() { + return new GlobalProxyConfig() { + @Override + public String getHost() { + return "proxy.com"; + } + + @Override + public int getPort() { + return 3128; + } + + @Override + public String getUser() { + return null; + } + + @Override + public List getAllowHttpJobTypes() { + return new ArrayList<>(); + } + + @Override + public List getEgressSites() { + return new ArrayList<>(); + } + }; + } + + @Produces + public ProxySitesCache getProxySitesCache() { + return new NoOpProxySitesCache(); + } + + @Produces + public MetricRegistry getMetricRegistry() { + return null; + } + // Only appears to be used by GalleyWrapperTestIT @Produces public ModelProcessorConfig getModelProcessorConfig() { diff --git a/communication/src/main/java/org/jboss/da/communication/auth/impl/ElytronAuthenticatorService.java b/communication/src/main/java/org/jboss/da/communication/auth/impl/ElytronAuthenticatorService.java deleted file mode 100644 index 938e84446..000000000 --- a/communication/src/main/java/org/jboss/da/communication/auth/impl/ElytronAuthenticatorService.java +++ /dev/null @@ -1,55 +0,0 @@ -package org.jboss.da.communication.auth.impl; - -import org.jboss.da.communication.auth.AuthenticatorService; -import org.wildfly.security.auth.server.SecurityDomain; -import org.wildfly.security.auth.server.SecurityIdentity; -import org.wildfly.security.http.oidc.AccessToken; -import org.wildfly.security.http.oidc.OidcSecurityContext; - -import javax.annotation.PostConstruct; -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import java.util.Optional; - -/** - * Class based on using SecurityIdentity or OidcSecurityContext to get information from the user - */ -@RequestScoped -public class ElytronAuthenticatorService implements AuthenticatorService { - - @Inject - HttpServletRequest servletRequest; - - private String preferredUsername; - - @PostConstruct - public void postSetup() { - OidcSecurityContext oidcSecurityContext = (OidcSecurityContext) servletRequest - .getAttribute(OidcSecurityContext.class.getName()); - SecurityIdentity identity = SecurityDomain.getCurrent().getCurrentSecurityIdentity(); - if (oidcSecurityContext == null) { - // if not using OIDC: either using LDAP or anonymous user - preferredUsername = identity.getAttributes().getFirst("username"); - } else { - AccessToken accessToken = oidcSecurityContext.getToken(); - preferredUsername = accessToken.getClaimValueAsString("preferred_username"); - } - } - - @Override - public Optional accessToken() { - return Optional.empty(); - } - - @Override - public Optional userId() { - // TODO: this is important because DA uses it for its database - return Optional.empty(); - } - - @Override - public Optional username() { - return Optional.ofNullable(preferredUsername); - } -} diff --git a/communication/src/main/java/org/jboss/da/communication/auth/impl/JAASAuthenticatorService.java b/communication/src/main/java/org/jboss/da/communication/auth/impl/JAASAuthenticatorService.java index ee198c1a4..f766356e0 100644 --- a/communication/src/main/java/org/jboss/da/communication/auth/impl/JAASAuthenticatorService.java +++ b/communication/src/main/java/org/jboss/da/communication/auth/impl/JAASAuthenticatorService.java @@ -2,59 +2,59 @@ import org.jboss.da.communication.auth.AuthenticatorService; -import javax.enterprise.context.RequestScoped; -import javax.enterprise.inject.Alternative; -import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; +import jakarta.enterprise.context.RequestScoped; +import jakarta.enterprise.inject.Alternative; +import jakarta.inject.Inject; +import jakarta.servlet.http.HttpServletRequest; import java.util.Optional; /** * Authenticator service used for testing purposes. - * + * * @author Honza Brázdil <jbrazdil@redhat.com> */ -@RequestScoped -@Alternative -public class JAASAuthenticatorService implements AuthenticatorService { - - @Inject - private HttpServletRequest sr; - - private static Optional user = Optional.empty(); - - private Optional user() { - System.out.println("srajda: " + sr + " user " + sr.getRemoteUser()); - if (sr.getRemoteUser() == null) { - return user; - } - return Optional.ofNullable(sr.getRemoteUser()); - } - - @Override - public Optional userId() { - return user().map(u -> Integer.toString(u.hashCode(), 16)); - } - - @Override - public Optional username() { - return user(); - } - - @Override - public Optional accessToken() { - if (!user().isPresent()) { - return Optional.empty(); - } - return Optional.of("--NO-TOKEN-AVAILABLE--"); - } - - /** - * Force logged in user. - * - * @param username - */ - public static void setUser(String username) { - user = Optional.ofNullable(username); - } -} +// @RequestScoped +// @Alternative +// public class JAASAuthenticatorService implements AuthenticatorService { +// +// @Inject +// private HttpServletRequest sr; +// +// private static Optional user = Optional.empty(); +// +// private Optional user() { +// System.out.println("srajda: " + sr + " user " + sr.getRemoteUser()); +// if (sr.getRemoteUser() == null) { +// return user; +// } +// return Optional.ofNullable(sr.getRemoteUser()); +// } +// +// @Override +// public Optional userId() { +// return user().map(u -> Integer.toString(u.hashCode(), 16)); +// } +// +// @Override +// public Optional username() { +// return user(); +// } +// +// @Override +// public Optional accessToken() { +// if (!user().isPresent()) { +// return Optional.empty(); +// } +// return Optional.of("--NO-TOKEN-AVAILABLE--"); +// } +// +// /** +// * Force logged in user. +// * +// * @param username +// */ +// public static void setUser(String username) { +// user = Optional.ofNullable(username); +// } +// } diff --git a/communication/src/main/java/org/jboss/da/communication/auth/impl/QuarkusOidcAuthenticatorService.java b/communication/src/main/java/org/jboss/da/communication/auth/impl/QuarkusOidcAuthenticatorService.java new file mode 100644 index 000000000..6e98ab7d1 --- /dev/null +++ b/communication/src/main/java/org/jboss/da/communication/auth/impl/QuarkusOidcAuthenticatorService.java @@ -0,0 +1,28 @@ +package org.jboss.da.communication.auth.impl; + +import jakarta.enterprise.context.ApplicationScoped; +import org.jboss.da.communication.auth.AuthenticatorService; + +import java.util.Optional; + +/** + * To be removed and eventually replaced by Dustin's new PNCAuth Quarkus extension. + */ +@ApplicationScoped +public class QuarkusOidcAuthenticatorService implements AuthenticatorService { + + @Override + public Optional accessToken() { + return Optional.empty(); + } + + @Override + public Optional userId() { + return Optional.of(""); + } + + @Override + public Optional username() { + return Optional.of(""); + } +} diff --git a/communication/src/main/java/org/jboss/da/communication/indy/impl/IndyConnectorImpl.java b/communication/src/main/java/org/jboss/da/communication/indy/impl/IndyConnectorImpl.java index 5414883d8..8661cc9cf 100644 --- a/communication/src/main/java/org/jboss/da/communication/indy/impl/IndyConnectorImpl.java +++ b/communication/src/main/java/org/jboss/da/communication/indy/impl/IndyConnectorImpl.java @@ -15,9 +15,9 @@ import org.jboss.pnc.common.log.MDCUtils; import org.slf4j.Logger; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.xml.bind.JAXBException; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.xml.bind.JAXBException; import java.io.FileNotFoundException; import java.io.IOException; @@ -108,6 +108,7 @@ public List getVersionsOfNpm(String packageName) throws RepositoryExcept log.debug("Npm metadata for {} not found. Assuming empty version list.", packageName); return Collections.emptyList(); } catch (IOException e) { + e.printStackTrace(); log.debug("Failed to obtain versions for " + packageName + " from repository on url " + query, e); throw new RepositoryException( "Failed to obtain versions for " + packageName + " from repository on url " + query, diff --git a/communication/src/main/java/org/jboss/da/communication/indy/impl/MetadataFileParser.java b/communication/src/main/java/org/jboss/da/communication/indy/impl/MetadataFileParser.java index e4653f2e3..a7fbe4add 100644 --- a/communication/src/main/java/org/jboss/da/communication/indy/impl/MetadataFileParser.java +++ b/communication/src/main/java/org/jboss/da/communication/indy/impl/MetadataFileParser.java @@ -4,17 +4,17 @@ import org.jboss.da.communication.indy.model.VersionResponse; import org.jboss.da.communication.indy.model.npm.NpmMetadata; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Unmarshaller; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBException; +import jakarta.xml.bind.Unmarshaller; import java.io.IOException; import java.io.InputStream; import java.net.URLConnection; import com.fasterxml.jackson.databind.ObjectMapper; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; /** * @author Matej Lazar diff --git a/communication/src/main/java/org/jboss/da/communication/indy/model/VersionResponse.java b/communication/src/main/java/org/jboss/da/communication/indy/model/VersionResponse.java index 1a290f99e..7fec590ea 100644 --- a/communication/src/main/java/org/jboss/da/communication/indy/model/VersionResponse.java +++ b/communication/src/main/java/org/jboss/da/communication/indy/model/VersionResponse.java @@ -1,7 +1,7 @@ package org.jboss.da.communication.indy.model; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; import lombok.Getter; import lombok.ToString; diff --git a/communication/src/main/java/org/jboss/da/communication/indy/model/Versioning.java b/communication/src/main/java/org/jboss/da/communication/indy/model/Versioning.java index 3128dfbb1..0a38df646 100644 --- a/communication/src/main/java/org/jboss/da/communication/indy/model/Versioning.java +++ b/communication/src/main/java/org/jboss/da/communication/indy/model/Versioning.java @@ -1,6 +1,6 @@ package org.jboss.da.communication.indy.model; -import javax.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlElement; import lombok.Getter; import lombok.ToString; diff --git a/communication/src/main/java/org/jboss/da/communication/indy/model/Versions.java b/communication/src/main/java/org/jboss/da/communication/indy/model/Versions.java index 98e39b09b..ad2c0c5ad 100644 --- a/communication/src/main/java/org/jboss/da/communication/indy/model/Versions.java +++ b/communication/src/main/java/org/jboss/da/communication/indy/model/Versions.java @@ -2,7 +2,7 @@ import java.util.List; -import javax.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlElement; import lombok.Getter; import lombok.ToString; diff --git a/communication/src/main/java/org/jboss/da/communication/pnc/PncConnectorImpl.java b/communication/src/main/java/org/jboss/da/communication/pnc/PncConnectorImpl.java index 45fb5461a..d148c28ca 100644 --- a/communication/src/main/java/org/jboss/da/communication/pnc/PncConnectorImpl.java +++ b/communication/src/main/java/org/jboss/da/communication/pnc/PncConnectorImpl.java @@ -14,8 +14,8 @@ import org.jboss.pnc.enums.RepositoryType; import org.slf4j.Logger; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import java.net.URI; import java.util.ArrayList; diff --git a/communication/src/main/java/org/jboss/da/communication/pom/PomAnalyzerImpl.java b/communication/src/main/java/org/jboss/da/communication/pom/PomAnalyzerImpl.java index ef058661c..f972a50ce 100644 --- a/communication/src/main/java/org/jboss/da/communication/pom/PomAnalyzerImpl.java +++ b/communication/src/main/java/org/jboss/da/communication/pom/PomAnalyzerImpl.java @@ -22,8 +22,8 @@ import org.jboss.da.model.rest.GAV; import org.slf4j.Logger; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import java.io.File; import java.io.IOException; import java.io.InputStream; diff --git a/communication/src/main/java/org/jboss/da/communication/pom/PomReader.java b/communication/src/main/java/org/jboss/da/communication/pom/PomReader.java index cd1640419..5c782a7b0 100644 --- a/communication/src/main/java/org/jboss/da/communication/pom/PomReader.java +++ b/communication/src/main/java/org/jboss/da/communication/pom/PomReader.java @@ -7,11 +7,11 @@ import org.xml.sax.InputSource; import org.xml.sax.SAXException; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.xml.bind.JAXBContext; -import javax.xml.bind.JAXBException; -import javax.xml.bind.Unmarshaller; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.xml.bind.JAXBContext; +import jakarta.xml.bind.JAXBException; +import jakarta.xml.bind.Unmarshaller; import javax.xml.transform.sax.SAXSource; import javax.xml.transform.Source; diff --git a/communication/src/main/java/org/jboss/da/communication/pom/impl/DependencyTreeBuilder.java b/communication/src/main/java/org/jboss/da/communication/pom/impl/DependencyTreeBuilder.java index 85a9ed1a4..30c834247 100644 --- a/communication/src/main/java/org/jboss/da/communication/pom/impl/DependencyTreeBuilder.java +++ b/communication/src/main/java/org/jboss/da/communication/pom/impl/DependencyTreeBuilder.java @@ -10,8 +10,8 @@ import org.jboss.da.model.rest.GAV; import org.slf4j.Logger; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import java.util.HashSet; import java.util.Map; diff --git a/communication/src/main/java/org/jboss/da/communication/pom/model/MavenParent.java b/communication/src/main/java/org/jboss/da/communication/pom/model/MavenParent.java index d53148422..bfe7d7178 100644 --- a/communication/src/main/java/org/jboss/da/communication/pom/model/MavenParent.java +++ b/communication/src/main/java/org/jboss/da/communication/pom/model/MavenParent.java @@ -1,6 +1,6 @@ package org.jboss.da.communication.pom.model; -import javax.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlElement; import lombok.Getter; /** diff --git a/communication/src/main/java/org/jboss/da/communication/pom/model/MavenProject.java b/communication/src/main/java/org/jboss/da/communication/pom/model/MavenProject.java index 238f33229..8e16a1487 100644 --- a/communication/src/main/java/org/jboss/da/communication/pom/model/MavenProject.java +++ b/communication/src/main/java/org/jboss/da/communication/pom/model/MavenProject.java @@ -2,10 +2,10 @@ import org.jboss.da.model.rest.GAV; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlElement; -import javax.xml.bind.annotation.XmlRootElement; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlRootElement; import java.util.List; diff --git a/communication/src/main/java/org/jboss/da/communication/pom/model/MavenRepositories.java b/communication/src/main/java/org/jboss/da/communication/pom/model/MavenRepositories.java index 5a18b6ef5..959b7f5a6 100644 --- a/communication/src/main/java/org/jboss/da/communication/pom/model/MavenRepositories.java +++ b/communication/src/main/java/org/jboss/da/communication/pom/model/MavenRepositories.java @@ -1,6 +1,6 @@ package org.jboss.da.communication.pom.model; -import javax.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlElement; import java.util.List; diff --git a/communication/src/main/java/org/jboss/da/communication/pom/model/MavenRepository.java b/communication/src/main/java/org/jboss/da/communication/pom/model/MavenRepository.java index ec05c95f3..0e28f29f5 100644 --- a/communication/src/main/java/org/jboss/da/communication/pom/model/MavenRepository.java +++ b/communication/src/main/java/org/jboss/da/communication/pom/model/MavenRepository.java @@ -1,8 +1,8 @@ package org.jboss.da.communication.pom.model; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; import lombok.Getter; diff --git a/communication/src/main/java/org/jboss/da/communication/pom/model/MavenSCM.java b/communication/src/main/java/org/jboss/da/communication/pom/model/MavenSCM.java index 41b157b73..cd469d156 100644 --- a/communication/src/main/java/org/jboss/da/communication/pom/model/MavenSCM.java +++ b/communication/src/main/java/org/jboss/da/communication/pom/model/MavenSCM.java @@ -1,8 +1,8 @@ package org.jboss.da.communication.pom.model; -import javax.xml.bind.annotation.XmlAccessType; -import javax.xml.bind.annotation.XmlAccessorType; -import javax.xml.bind.annotation.XmlElement; +import jakarta.xml.bind.annotation.XmlAccessType; +import jakarta.xml.bind.annotation.XmlAccessorType; +import jakarta.xml.bind.annotation.XmlElement; import lombok.Getter; diff --git a/communication/src/main/java/org/jboss/da/communication/scm/impl/SCMConnectorImpl.java b/communication/src/main/java/org/jboss/da/communication/scm/impl/SCMConnectorImpl.java index 813273c13..9b5b085d0 100644 --- a/communication/src/main/java/org/jboss/da/communication/scm/impl/SCMConnectorImpl.java +++ b/communication/src/main/java/org/jboss/da/communication/scm/impl/SCMConnectorImpl.java @@ -4,8 +4,8 @@ import java.util.List; import java.util.Optional; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import org.apache.maven.scm.ScmException; import org.jboss.da.communication.indy.model.GAVDependencyTree; diff --git a/communication/src/test/java/org/jboss/da/communication/MetadataFileParserTest.java b/communication/src/test/java/org/jboss/da/communication/MetadataFileParserTest.java index ad356e4f0..090b1b7e9 100644 --- a/communication/src/test/java/org/jboss/da/communication/MetadataFileParserTest.java +++ b/communication/src/test/java/org/jboss/da/communication/MetadataFileParserTest.java @@ -3,11 +3,15 @@ import org.jboss.da.common.CommunicationException; import org.jboss.da.communication.indy.impl.MetadataFileParser; import org.jboss.da.communication.indy.model.VersionResponse; -import org.junit.Assert; -import org.junit.BeforeClass; -import org.junit.Test; -import javax.xml.bind.JAXBException; +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; + +import jakarta.xml.bind.JAXBException; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; import java.io.IOException; import java.io.InputStream; import java.util.List; @@ -19,7 +23,7 @@ public class MetadataFileParserTest { private static VersionResponse versionResponse; - @BeforeClass + @BeforeAll public static void init() throws JAXBException, IOException, CommunicationException { try (InputStream in = getResourceSteam("maven-metadata.xml")) { versionResponse = MetadataFileParser.parseMavenMetadata(in); @@ -32,12 +36,12 @@ public void availableVersionsTest() throws JAXBException, IOException, Communica List availableVersions = versionResponse.getVersioning().getVersions().getVersion(); // expect - Assert.assertTrue("Missing version.", availableVersions.contains("1.1.0.Beta1")); - Assert.assertTrue("Missing version.", availableVersions.contains("1.4.1.Final-redhat-1")); - Assert.assertTrue("Missing version.", availableVersions.contains("1.4.1.Final-redhat-2")); - Assert.assertTrue("Missing version.", availableVersions.contains("1.4.2.Final")); - Assert.assertTrue("Missing version.", availableVersions.contains("1.5.1.Final-redhat-4")); - Assert.assertFalse("Version should not be present.", availableVersions.contains("1.5.1.Final-redhat-10")); + assertTrue(availableVersions.contains("1.1.0.Beta1"), "Missing version."); + assertTrue(availableVersions.contains("1.4.1.Final-redhat-1"), "Missing version."); + assertTrue(availableVersions.contains("1.4.1.Final-redhat-2"), "Missing version."); + assertTrue(availableVersions.contains("1.4.2.Final"), "Missing version."); + assertTrue(availableVersions.contains("1.5.1.Final-redhat-4"), "Missing version."); + assertFalse(availableVersions.contains("1.5.1.Final-redhat-10"), "Version should not be present."); } @Test @@ -46,7 +50,7 @@ public void latestTest() throws JAXBException, IOException, CommunicationExcepti String latestVersion = versionResponse.getVersioning().getLatestVersion(); // expect - Assert.assertEquals("1.4.2.Final", latestVersion); + assertEquals("1.4.2.Final", latestVersion); } @Test @@ -55,7 +59,7 @@ public void releaseTest() throws JAXBException, IOException, CommunicationExcept String latestReleaseVersion = versionResponse.getVersioning().getLatestRelease(); // expect - Assert.assertEquals("1.4.1.Final-redhat-2", latestReleaseVersion); + assertEquals("1.4.1.Final-redhat-2", latestReleaseVersion); } private static InputStream getResourceSteam(String file) { diff --git a/communication/src/test/java/org/jboss/da/communication/indy/IndyConnectorTest.java b/communication/src/test/java/org/jboss/da/communication/indy/IndyConnectorTest.java index 5dad47da9..c66d17ba8 100644 --- a/communication/src/test/java/org/jboss/da/communication/indy/IndyConnectorTest.java +++ b/communication/src/test/java/org/jboss/da/communication/indy/IndyConnectorTest.java @@ -1,5 +1,8 @@ package org.jboss.da.communication.indy; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.github.tomakehurst.wiremock.client.WireMock; +import com.github.tomakehurst.wiremock.junit5.WireMockTest; import org.jboss.da.common.CommunicationException; import org.jboss.da.common.json.DAConfig; import org.jboss.da.common.json.GlobalConfig; @@ -10,42 +13,33 @@ import org.jboss.da.communication.indy.impl.MetadataFileParser; import org.jboss.da.communication.pom.api.PomAnalyzer; import org.jboss.da.model.rest.GA; - -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; - -import org.junit.Rule; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; import org.mockito.Mockito; - -import static org.mockito.Mockito.when; - import org.mockito.Spy; -import org.mockito.runners.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import org.slf4j.Logger; import java.util.List; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.github.tomakehurst.wiremock.client.WireMock; - -import static com.github.tomakehurst.wiremock.client.WireMock.*; - -import com.github.tomakehurst.wiremock.junit.WireMockRule; +import static com.github.tomakehurst.wiremock.client.WireMock.aResponse; +import static com.github.tomakehurst.wiremock.client.WireMock.get; +import static com.github.tomakehurst.wiremock.client.WireMock.stubFor; +import static com.github.tomakehurst.wiremock.client.WireMock.urlEqualTo; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.Mockito.when; /** * * @author Honza Brázdil <jbrazdil@redhat.com> */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) +@WireMockTest(httpPort = 8082) public class IndyConnectorTest { - @Rule - public WireMockRule wireMockRule = (new WireMockRule(8082)); - @Mock private Logger log; @@ -61,9 +55,8 @@ public class IndyConnectorTest { @Spy private ObjectMapper mapper = new ObjectMapper(); - @Spy @InjectMocks - private MetadataFileParser parser = new MetadataFileParser(); + private MetadataFileParser parser = Mockito.spy(MetadataFileParser.class); @InjectMocks private final IndyConnectorImpl indyConnector = new IndyConnectorImpl(config); @@ -113,8 +106,8 @@ public void testGetVersionsOfGA() throws ConfigurationParseException, Communicat // verify assertTrue( - "Unmatched requests: " + WireMock.findUnmatchedRequests(), - WireMock.findUnmatchedRequests().isEmpty()); + WireMock.findUnmatchedRequests().isEmpty(), + "Unmatched requests: " + WireMock.findUnmatchedRequests()); assertEquals(3, versionsOfGA.size()); assertTrue(versionsOfGA.contains(REDHAT5)); assertTrue(versionsOfGA.contains(REDHAT2)); @@ -133,8 +126,8 @@ public void testGetVersionsOfNpm() throws ConfigurationParseException, Communica // verify assertTrue( - "Unmatched requests: " + WireMock.findUnmatchedRequests(), - WireMock.findUnmatchedRequests().isEmpty()); + WireMock.findUnmatchedRequests().isEmpty(), + "Unmatched requests: " + WireMock.findUnmatchedRequests()); assertEquals(9, versionsOfGA.size()); assertTrue(versionsOfGA.contains("1.12.1")); assertTrue(versionsOfGA.contains("1.5.1")); diff --git a/communication/src/test/java/org/jboss/da/communication/model/BackwardCompatibilityTest.java b/communication/src/test/java/org/jboss/da/communication/model/BackwardCompatibilityTest.java index e0ee2587f..958b6ed84 100644 --- a/communication/src/test/java/org/jboss/da/communication/model/BackwardCompatibilityTest.java +++ b/communication/src/test/java/org/jboss/da/communication/model/BackwardCompatibilityTest.java @@ -6,14 +6,15 @@ import java.io.StringWriter; import java.nio.file.Paths; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; import org.jboss.da.communication.indy.model.VersionResponse; import org.jboss.da.communication.indy.model.Versioning; import org.jboss.da.communication.indy.model.Versions; import org.json.JSONException; -import static org.junit.Assert.fail; + +import static org.junit.jupiter.api.Assertions.fail; import java.nio.file.Files; import java.nio.file.Path; diff --git a/communication/src/test/java/org/jboss/da/communication/model/GAVIntegrationTest.java b/communication/src/test/java/org/jboss/da/communication/model/GAVIntegrationTest.java index 2ae7caae3..b025c65fe 100644 --- a/communication/src/test/java/org/jboss/da/communication/model/GAVIntegrationTest.java +++ b/communication/src/test/java/org/jboss/da/communication/model/GAVIntegrationTest.java @@ -1,14 +1,15 @@ package org.jboss.da.communication.model; import org.jboss.da.model.rest.GAV; -import org.junit.Test; + +import org.junit.jupiter.api.Test; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Random; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; import com.fasterxml.jackson.databind.ObjectMapper; diff --git a/communication/src/test/java/org/jboss/da/communication/pom/GetPomTest.java b/communication/src/test/java/org/jboss/da/communication/pom/GetPomTest.java index b77283ca7..fb63ad5db 100644 --- a/communication/src/test/java/org/jboss/da/communication/pom/GetPomTest.java +++ b/communication/src/test/java/org/jboss/da/communication/pom/GetPomTest.java @@ -7,20 +7,21 @@ import org.jboss.da.common.CommunicationException; import org.jboss.da.communication.pom.api.PomAnalyzer; import org.jboss.da.communication.pom.model.MavenProject; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNotNull; -import org.junit.Test; -import org.junit.runner.RunWith; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Spy; -import org.mockito.runners.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; /** * * @author Honza Brázdil <jbrazdil@redhat.com> */ - -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class GetPomTest { @Spy diff --git a/communication/src/test/java/org/jboss/da/communication/pom/PomReaderTest.java b/communication/src/test/java/org/jboss/da/communication/pom/PomReaderTest.java index 04ad9a935..32c2305f3 100644 --- a/communication/src/test/java/org/jboss/da/communication/pom/PomReaderTest.java +++ b/communication/src/test/java/org/jboss/da/communication/pom/PomReaderTest.java @@ -1,13 +1,15 @@ package org.jboss.da.communication.pom; import org.jboss.da.communication.pom.model.MavenProject; -import org.junit.Test; + +import org.junit.jupiter.api.Test; + import java.io.File; import java.util.Optional; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.assertFalse; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.junit.jupiter.api.Assertions.assertFalse; public class PomReaderTest { diff --git a/pom.xml b/pom.xml index eae6a290e..69d57b28c 100644 --- a/pom.xml +++ b/pom.xml @@ -21,7 +21,7 @@ Apache License, Version 2.0 repo - http://www.apache.org/licenses/LICENSE-2.0.html + https://www.apache.org/licenses/LICENSE-2.0.html @@ -87,13 +87,14 @@ 1.1.9 - 1.3 - 11 - 11 - 7.4.3.GA + 1.22-SNAPSHOT + 17 + 17 + 3.21.4 1.11.2 /* + 3.5.3 1.22.0 update @@ -107,60 +108,65 @@ org.jboss.da common ${project.version} - ejb org.jboss.da source-code-manager ${project.version} - ejb org.jboss.da communication ${project.version} - ejb org.jboss.da reports-model ${project.version} - ejb org.jboss.da reports-backend ${project.version} - ejb org.jboss.da reports-rest ${project.version} - war + + + io.quarkus.platform + quarkus-bom + ${quarkus.platform.version} + pom + import + + org.jboss.pnc pnc-api ${version.pnc-api} + jakarta org.jboss.pnc pnc-common ${version.pnc-common} - - - io.opentelemetry - * - - - org.apache.httpcomponents - * - - + jakarta + + + + + + + + + + org.jboss.pnc @@ -194,23 +200,27 @@ ${version.pnc} - - org.jboss.bom - jboss-eap-jakartaee8-with-tools - ${jboss.bom.version} - pom - import + jakarta.annotation + jakarta.annotation-api + 2.1.1 - org.jboss.bom - eap-runtime-artifacts - ${jboss.bom.version} - pom - import + jakarta.transaction + jakarta.transaction-api + 2.0.1 + + + + + + + + + + - commons-validator commons-validator @@ -221,65 +231,139 @@ keycloak-core 18.0.9.redhat-00001 - - org.wildfly.security - wildfly-elytron-http-oidc - 1.15.9.Final - provided - + - - javax.xml.bind - jaxb-api - 2.3.1 - + + + + + - - com.sun.xml.bind - jaxb-impl - 2.3.4 - + + + + + + + org.commonjava.maven.galley + galley-api + ${version.galley} + jakarta + + + + + + + + + org.commonjava.maven.galley + galley-core + ${version.galley} + jakarta + + + + ch.qos.logback + * + + + + org.commonjava.maven.galley + * + + + + + + + org.commonjava.maven.galley galley-maven ${version.galley} + jakarta + - org.apache.httpcomponents + ch.qos.logback * + + + org.commonjava.maven.galley + * + org.commonjava.maven.galley galley-transport-filearc ${version.galley} + jakarta + + + org.commonjava.maven.galley + * + + org.commonjava.maven.galley galley-transport-httpclient ${version.galley} + jakarta + + + ch.qos.logback + * + + - org.apache.httpcomponents + org.commonjava.maven.galley * + + + + org.commonjava.maven.galley galley-cache-partyline ${version.galley} + jakarta + + + + ch.qos.logback + * + + + + org.commonjava.maven.galley + * + + org.commonjava.atlas atlas-identities ${atlasVersion} + + + + ch.qos.logback + * + + @@ -289,11 +373,11 @@ provided - - io.swagger.core.v3 - swagger-jaxrs2 - 2.2.2 - + + + + + @@ -305,12 +389,12 @@ org.apache.maven.scm maven-scm-provider-jgit ${mvn-scm.version} - - - org.apache.httpcomponents - * - - + + + + + + org.eclipse.jgit @@ -352,21 +436,21 @@ ${version.io.opentelemetry.instrumentation} - - - org.mockito - mockito-all - 1.10.19 - + org.skyscreamer jsonassert 1.2.3 - com.github.tomakehurst + org.wiremock wiremock-standalone - 2.6.0 + 3.13.2 + + + org.jboss.arquillian.junit5 + arquillian-junit5-container + 1.10.0.Final org.assertj @@ -414,6 +498,17 @@ + + maven-surefire-plugin + + + + org.jboss.logmanager.LogManager + ${maven.home} + + true + + @@ -441,13 +536,37 @@ - org.wildfly.plugins - wildfly-maven-plugin - 1.1.0.Alpha8 + org.apache.maven.plugins + maven-compiler-plugin + 3.11.0 + + ${maven.compiler.source} + ${maven.compiler.target} + + + + io.quarkus.platform + quarkus-maven-plugin + ${quarkus.platform.version} + true + + + + build + generate-code + generate-code-tests + + + - true + true + + io.smallrye + jandex-maven-plugin + ${version.jandex-maven-plugin} + diff --git a/reports-backend/pom.xml b/reports-backend/pom.xml index f10efc815..0a1a8cf1c 100644 --- a/reports-backend/pom.xml +++ b/reports-backend/pom.xml @@ -7,19 +7,17 @@ reports-backend reports-backend - ejb + jar org.jboss.da communication - ejb org.jboss.da reports-model - ejb @@ -28,45 +26,64 @@ - org.projectlombok - lombok - provided - - - jakarta.persistence - jakarta.persistence-api - provided + io.quarkus + quarkus-arc - jakarta.validation - jakarta.validation-api - provided - + io.quarkus + quarkus-hibernate-orm + - org.jboss.spec.javax.enterprise.concurrent - jboss-concurrency-api_1.0_spec - provided + io.quarkus + quarkus-hibernate-validator - org.jboss.spec.javax.ws.rs - jboss-jaxrs-api_2.1_spec - provided - + jakarta.ws.rs + jakarta.ws.rs-api + + + + + + + + + + + + + + + + + + + + + + + + + + + + - org.jboss.spec.javax.ejb - jboss-ejb-api_3.2_spec + org.projectlombok + lombok provided - junit - junit + io.quarkus + quarkus-junit5 + test - - org.mockito - mockito-all + io.quarkus + quarkus-junit5-mockito + test diff --git a/reports-backend/src/main/java/org/jboss/da/listings/api/model/Artifact.java b/reports-backend/src/main/java/org/jboss/da/listings/api/model/Artifact.java index a4dd9730e..99cfc0d69 100644 --- a/reports-backend/src/main/java/org/jboss/da/listings/api/model/Artifact.java +++ b/reports-backend/src/main/java/org/jboss/da/listings/api/model/Artifact.java @@ -1,7 +1,7 @@ package org.jboss.da.listings.api.model; -import javax.persistence.ManyToOne; -import javax.persistence.MappedSuperclass; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.MappedSuperclass; import lombok.AccessLevel; import lombok.EqualsAndHashCode; diff --git a/reports-backend/src/main/java/org/jboss/da/listings/api/model/BlackArtifact.java b/reports-backend/src/main/java/org/jboss/da/listings/api/model/BlackArtifact.java index f558366d8..4c9114b2a 100644 --- a/reports-backend/src/main/java/org/jboss/da/listings/api/model/BlackArtifact.java +++ b/reports-backend/src/main/java/org/jboss/da/listings/api/model/BlackArtifact.java @@ -1,6 +1,6 @@ package org.jboss.da.listings.api.model; -import javax.persistence.Entity; +import jakarta.persistence.Entity; import lombok.AccessLevel; import lombok.NoArgsConstructor; diff --git a/reports-backend/src/main/java/org/jboss/da/listings/api/model/GA.java b/reports-backend/src/main/java/org/jboss/da/listings/api/model/GA.java index cce35ea5c..9962bd0c1 100644 --- a/reports-backend/src/main/java/org/jboss/da/listings/api/model/GA.java +++ b/reports-backend/src/main/java/org/jboss/da/listings/api/model/GA.java @@ -1,6 +1,6 @@ package org.jboss.da.listings.api.model; -import javax.persistence.Entity; +import jakarta.persistence.Entity; import lombok.AccessLevel; import lombok.EqualsAndHashCode; diff --git a/reports-backend/src/main/java/org/jboss/da/listings/api/model/GenericEntity.java b/reports-backend/src/main/java/org/jboss/da/listings/api/model/GenericEntity.java index 1602cdda7..8e35d2922 100644 --- a/reports-backend/src/main/java/org/jboss/da/listings/api/model/GenericEntity.java +++ b/reports-backend/src/main/java/org/jboss/da/listings/api/model/GenericEntity.java @@ -2,10 +2,10 @@ import java.io.Serializable; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; -import javax.persistence.MappedSuperclass; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; +import jakarta.persistence.MappedSuperclass; import lombok.EqualsAndHashCode; import lombok.Getter; diff --git a/reports-backend/src/main/java/org/jboss/da/listings/api/model/User.java b/reports-backend/src/main/java/org/jboss/da/listings/api/model/User.java index fc65612bc..6db206049 100644 --- a/reports-backend/src/main/java/org/jboss/da/listings/api/model/User.java +++ b/reports-backend/src/main/java/org/jboss/da/listings/api/model/User.java @@ -1,7 +1,7 @@ package org.jboss.da.listings.api.model; -import javax.persistence.Column; -import javax.persistence.Entity; +import jakarta.persistence.Column; +import jakarta.persistence.Entity; import lombok.AccessLevel; import lombok.EqualsAndHashCode; diff --git a/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/ArtifactDAOImpl.java b/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/ArtifactDAOImpl.java index 663d18f32..2f866f3eb 100644 --- a/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/ArtifactDAOImpl.java +++ b/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/ArtifactDAOImpl.java @@ -4,12 +4,12 @@ import java.util.Optional; import java.util.Set; -import javax.persistence.NoResultException; -import javax.persistence.TypedQuery; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Join; -import javax.persistence.criteria.Root; +import jakarta.persistence.NoResultException; +import jakarta.persistence.TypedQuery; +import jakarta.persistence.criteria.CriteriaBuilder; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Join; +import jakarta.persistence.criteria.Root; import org.jboss.da.listings.api.dao.ArtifactDAO; import org.jboss.da.listings.api.model.Artifact; diff --git a/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/BlackArtifactDAOImpl.java b/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/BlackArtifactDAOImpl.java index ac9bf2098..dc39f59e3 100644 --- a/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/BlackArtifactDAOImpl.java +++ b/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/BlackArtifactDAOImpl.java @@ -5,19 +5,19 @@ import org.jboss.da.listings.api.model.BlackArtifact; import org.jboss.da.listings.api.model.GA; -import javax.ejb.Stateless; -import javax.persistence.TypedQuery; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Join; -import javax.persistence.criteria.Root; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.persistence.TypedQuery; +import jakarta.persistence.criteria.CriteriaBuilder; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Join; +import jakarta.persistence.criteria.Root; import java.util.List; /** * @author Jozef Mrazek <jmrazek@redhat.com> * @author Honza Brázdil <jbrazdil@redhat.com> */ -@Stateless +@ApplicationScoped public class BlackArtifactDAOImpl extends ArtifactDAOImpl implements BlackArtifactDAO { public BlackArtifactDAOImpl() { diff --git a/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/GADAOImpl.java b/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/GADAOImpl.java index 2cdf15c12..6e2136fac 100644 --- a/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/GADAOImpl.java +++ b/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/GADAOImpl.java @@ -3,21 +3,20 @@ import org.jboss.da.listings.api.dao.GADAO; import org.jboss.da.listings.api.model.GA; -import javax.ejb.Stateless; -import javax.persistence.NoResultException; -import javax.persistence.TypedQuery; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Predicate; -import javax.persistence.criteria.Root; - +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.persistence.NoResultException; +import jakarta.persistence.TypedQuery; +import jakarta.persistence.criteria.CriteriaBuilder; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Predicate; +import jakarta.persistence.criteria.Root; import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Optional; import java.util.Set; -@Stateless +@ApplicationScoped public class GADAOImpl extends GenericDAOImpl implements GADAO { public static final int BATCH_SIZE = 100; diff --git a/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/GenericDAOImpl.java b/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/GenericDAOImpl.java index 3f0b760a9..69626f08c 100644 --- a/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/GenericDAOImpl.java +++ b/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/GenericDAOImpl.java @@ -2,9 +2,8 @@ import static java.util.Objects.requireNonNull; -import javax.inject.Inject; -import javax.persistence.EntityManager; -import javax.persistence.PersistenceContext; +import jakarta.inject.Inject; +import jakarta.persistence.EntityManager; import org.jboss.da.common.logging.AuditLogger; import org.jboss.da.listings.api.dao.GenericDAO; @@ -15,7 +14,7 @@ */ public abstract class GenericDAOImpl implements GenericDAO { - @PersistenceContext(unitName = "relationdbPU") + @Inject protected EntityManager em; protected final Class type; diff --git a/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/UserDAOImpl.java b/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/UserDAOImpl.java index 2c4d953ac..55337012f 100644 --- a/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/UserDAOImpl.java +++ b/reports-backend/src/main/java/org/jboss/da/listings/impl/dao/UserDAOImpl.java @@ -1,24 +1,22 @@ package org.jboss.da.listings.impl.dao; -import java.util.Optional; - -import javax.persistence.NoResultException; -import javax.persistence.TypedQuery; -import javax.persistence.criteria.CriteriaBuilder; -import javax.persistence.criteria.CriteriaQuery; -import javax.persistence.criteria.Root; - import org.jboss.da.listings.api.dao.UserDAO; import org.jboss.da.listings.api.model.User; -import javax.ejb.Stateless; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.persistence.NoResultException; +import jakarta.persistence.TypedQuery; +import jakarta.persistence.criteria.CriteriaBuilder; +import jakarta.persistence.criteria.CriteriaQuery; +import jakarta.persistence.criteria.Root; +import java.util.Optional; /** - * + * * @author Honza Brázdil <jbrazdil@redhat.com> * */ -@Stateless +@ApplicationScoped public class UserDAOImpl extends GenericDAOImpl implements UserDAO { public UserDAOImpl() { diff --git a/reports-backend/src/main/java/org/jboss/da/listings/impl/service/ArtifactServiceImpl.java b/reports-backend/src/main/java/org/jboss/da/listings/impl/service/ArtifactServiceImpl.java index 4e0a8f992..9f124e939 100644 --- a/reports-backend/src/main/java/org/jboss/da/listings/impl/service/ArtifactServiceImpl.java +++ b/reports-backend/src/main/java/org/jboss/da/listings/impl/service/ArtifactServiceImpl.java @@ -8,7 +8,7 @@ import org.jboss.da.listings.api.service.ArtifactService; import org.jboss.pnc.common.version.VersionParser; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.List; diff --git a/reports-backend/src/main/java/org/jboss/da/listings/impl/service/BlackArtifactServiceImpl.java b/reports-backend/src/main/java/org/jboss/da/listings/impl/service/BlackArtifactServiceImpl.java index 5a04160e5..913f8e161 100644 --- a/reports-backend/src/main/java/org/jboss/da/listings/impl/service/BlackArtifactServiceImpl.java +++ b/reports-backend/src/main/java/org/jboss/da/listings/impl/service/BlackArtifactServiceImpl.java @@ -2,8 +2,8 @@ import java.util.Optional; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import org.jboss.da.listings.api.dao.ArtifactDAO; import org.jboss.da.listings.api.dao.BlackArtifactDAO; diff --git a/reports-backend/src/main/java/org/jboss/da/products/impl/AbstractProductProvider.java b/reports-backend/src/main/java/org/jboss/da/products/impl/AbstractProductProvider.java index 34d9097fc..d063609e0 100644 --- a/reports-backend/src/main/java/org/jboss/da/products/impl/AbstractProductProvider.java +++ b/reports-backend/src/main/java/org/jboss/da/products/impl/AbstractProductProvider.java @@ -5,11 +5,10 @@ import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.function.Supplier; +import java.util.concurrent.ExecutorService; import java.util.stream.Collectors; import java.util.stream.Stream; -import javax.annotation.Resource; -import javax.enterprise.concurrent.ManagedExecutorService; -import javax.inject.Inject; +import jakarta.inject.Inject; import org.jboss.da.common.json.LookupMode; import org.jboss.da.common.util.UserLog; @@ -54,8 +53,8 @@ public abstract class AbstractProductProvider implements ProductProvider { @UserLog protected Logger userLog; - @Resource - private ManagedExecutorService executorService; + @Inject + ExecutorService executorService; private VersionParser versionParser = new VersionParser(DEFAULT_SUFFIX); diff --git a/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java b/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java index daea78b93..7ce6a935a 100644 --- a/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java +++ b/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java @@ -9,10 +9,8 @@ import org.jboss.da.products.impl.RepositoryProductProvider.Repository; import org.jboss.da.products.impl.PncProductProvider.Pnc; -import javax.annotation.Resource; -import javax.enterprise.concurrent.ManagedScheduledExecutorService; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import java.util.ArrayList; import java.util.EnumSet; @@ -24,6 +22,7 @@ import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.Future; +import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; import java.util.function.BiConsumer; import java.util.function.BiFunction; @@ -72,8 +71,8 @@ public static CompletableFuture> filterProducts( @Pnc PncProductProvider pncProductProvider; - @Resource - private ManagedScheduledExecutorService scheduler; + @Inject + ScheduledExecutorService scheduler; @Override public CompletableFuture> getAllProducts() { diff --git a/reports-backend/src/main/java/org/jboss/da/products/impl/PncProductProvider.java b/reports-backend/src/main/java/org/jboss/da/products/impl/PncProductProvider.java index d37c82a6e..639d49b6f 100644 --- a/reports-backend/src/main/java/org/jboss/da/products/impl/PncProductProvider.java +++ b/reports-backend/src/main/java/org/jboss/da/products/impl/PncProductProvider.java @@ -5,11 +5,10 @@ import org.jboss.da.model.rest.GA; import org.jboss.da.products.impl.PncProductProvider.Pnc; -import javax.ejb.TransactionAttribute; -import javax.ejb.TransactionAttributeType; -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Qualifier; +import jakarta.transaction.Transactional; +import jakarta.enterprise.context.RequestScoped; +import jakarta.inject.Inject; +import jakarta.inject.Qualifier; import java.lang.annotation.Retention; import java.lang.annotation.Target; @@ -26,7 +25,7 @@ * @author Petr Kocandrle */ @Pnc -@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED) +@Transactional(Transactional.TxType.NOT_SUPPORTED) @RequestScoped public class PncProductProvider extends AbstractProductProvider { diff --git a/reports-backend/src/main/java/org/jboss/da/products/impl/RepositoryProductProvider.java b/reports-backend/src/main/java/org/jboss/da/products/impl/RepositoryProductProvider.java index 10633db6c..731c17c23 100644 --- a/reports-backend/src/main/java/org/jboss/da/products/impl/RepositoryProductProvider.java +++ b/reports-backend/src/main/java/org/jboss/da/products/impl/RepositoryProductProvider.java @@ -5,11 +5,10 @@ import org.jboss.da.model.rest.GA; import org.jboss.da.products.impl.RepositoryProductProvider.Repository; -import javax.ejb.TransactionAttribute; -import javax.ejb.TransactionAttributeType; -import javax.enterprise.context.RequestScoped; -import javax.inject.Inject; -import javax.inject.Qualifier; +import jakarta.transaction.Transactional; +import jakarta.enterprise.context.RequestScoped; +import jakarta.inject.Inject; +import jakarta.inject.Qualifier; import java.lang.annotation.Retention; import java.lang.annotation.Target; @@ -27,7 +26,7 @@ * @author Honza Brázdil <jbrazdil@redhat.com> */ @Repository -@TransactionAttribute(TransactionAttributeType.NOT_SUPPORTED) +@Transactional(Transactional.TxType.NOT_SUPPORTED) @RequestScoped public class RepositoryProductProvider extends AbstractProductProvider { diff --git a/reports-backend/src/main/java/org/jboss/da/reports/backend/impl/DependencyTreeGeneratorImpl.java b/reports-backend/src/main/java/org/jboss/da/reports/backend/impl/DependencyTreeGeneratorImpl.java index 73e4c8781..632afbdf3 100644 --- a/reports-backend/src/main/java/org/jboss/da/reports/backend/impl/DependencyTreeGeneratorImpl.java +++ b/reports-backend/src/main/java/org/jboss/da/reports/backend/impl/DependencyTreeGeneratorImpl.java @@ -11,8 +11,8 @@ import org.jboss.da.reports.backend.api.GAVToplevelDependencies; import org.jboss.da.reports.model.api.SCMLocator; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import java.util.HashSet; import java.util.Map; diff --git a/reports-backend/src/main/java/org/jboss/da/reports/impl/LookupGeneratorImpl.java b/reports-backend/src/main/java/org/jboss/da/reports/impl/LookupGeneratorImpl.java index 481fa1e6c..e5d43600b 100644 --- a/reports-backend/src/main/java/org/jboss/da/reports/impl/LookupGeneratorImpl.java +++ b/reports-backend/src/main/java/org/jboss/da/reports/impl/LookupGeneratorImpl.java @@ -26,8 +26,8 @@ import org.jboss.pnc.common.version.VersionAnalyzer; import org.jboss.pnc.enums.ArtifactQuality; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import java.util.Collections; import java.util.EnumSet; diff --git a/reports-backend/src/main/java/org/jboss/da/reports/impl/ReportsGeneratorImpl.java b/reports-backend/src/main/java/org/jboss/da/reports/impl/ReportsGeneratorImpl.java index 5afe9050b..6dbedc776 100644 --- a/reports-backend/src/main/java/org/jboss/da/reports/impl/ReportsGeneratorImpl.java +++ b/reports-backend/src/main/java/org/jboss/da/reports/impl/ReportsGeneratorImpl.java @@ -54,9 +54,9 @@ import org.jboss.pnc.enums.BuildCategory; import org.slf4j.Logger; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.validation.ValidationException; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.validation.ValidationException; import java.io.File; import java.util.ArrayList; diff --git a/reports-backend/src/main/java/org/jboss/da/validation/Validation.java b/reports-backend/src/main/java/org/jboss/da/validation/Validation.java index 297f6edcf..2603b8dcb 100644 --- a/reports-backend/src/main/java/org/jboss/da/validation/Validation.java +++ b/reports-backend/src/main/java/org/jboss/da/validation/Validation.java @@ -2,10 +2,10 @@ import java.util.Set; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; -import javax.validation.ConstraintViolation; -import javax.validation.Validator; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; +import jakarta.validation.ConstraintViolation; +import jakarta.validation.Validator; import org.jboss.da.model.rest.validators.ValidationField; import org.jboss.da.model.rest.validators.Validations; diff --git a/reports-backend/src/main/java/org/jboss/da/validation/ValidationException.java b/reports-backend/src/main/java/org/jboss/da/validation/ValidationException.java index e2f44ddb8..3826af78b 100644 --- a/reports-backend/src/main/java/org/jboss/da/validation/ValidationException.java +++ b/reports-backend/src/main/java/org/jboss/da/validation/ValidationException.java @@ -4,7 +4,7 @@ import static org.jboss.da.model.rest.ErrorMessage.ErrorType.INPUT_VALIDATION; import org.jboss.da.model.rest.validators.Validations; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.core.Response; import lombok.Getter; import lombok.NonNull; diff --git a/reports-backend/src/test/java/org/jboss/da/reports/api/ArtifactReportTest.java b/reports-backend/src/test/java/org/jboss/da/reports/api/ArtifactReportTest.java index aa6f285ef..51b2f5b6e 100644 --- a/reports-backend/src/test/java/org/jboss/da/reports/api/ArtifactReportTest.java +++ b/reports-backend/src/test/java/org/jboss/da/reports/api/ArtifactReportTest.java @@ -3,16 +3,18 @@ import java.util.Optional; import org.jboss.da.model.rest.GAV; -import static org.junit.Assert.assertEquals; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.runners.MockitoJUnitRunner; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; +import org.mockito.junit.jupiter.MockitoExtension; /** * * @author Honza Brázdil <jbrazdil@redhat.com> */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class ArtifactReportTest { @Test diff --git a/reports-backend/src/test/java/org/jboss/da/reports/impl/LookupGeneratorTest.java b/reports-backend/src/test/java/org/jboss/da/reports/impl/LookupGeneratorTest.java index c12a68cf9..a52d1d25b 100644 --- a/reports-backend/src/test/java/org/jboss/da/reports/impl/LookupGeneratorTest.java +++ b/reports-backend/src/test/java/org/jboss/da/reports/impl/LookupGeneratorTest.java @@ -17,12 +17,13 @@ import org.jboss.da.products.impl.PncProductProvider; import org.jboss.da.products.impl.RepositoryProductProvider; import org.jboss.da.reports.api.LookupGenerator; -import org.junit.BeforeClass; -import org.junit.Test; -import org.junit.runner.RunWith; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.mockito.runners.MockitoJUnitRunner; +import org.mockito.junit.jupiter.MockitoExtension; import java.util.Arrays; import java.util.Collections; @@ -31,13 +32,13 @@ import java.util.Set; import java.util.concurrent.CompletableFuture; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertNull; -import static org.mockito.Matchers.eq; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNull; +import static org.mockito.ArgumentMatchers.eq; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class LookupGeneratorTest { public static final String PERSISTENT = "persistent"; @@ -70,7 +71,7 @@ public LookupGeneratorTest() throws ConfigurationParseException { lookupGenerator = new LookupGeneratorImpl(config); } - @BeforeClass + @BeforeAll public static void initMocks() throws ConfigurationParseException { } diff --git a/reports-backend/src/test/java/org/jboss/da/reports/impl/ReportsGeneratorImplTest.java b/reports-backend/src/test/java/org/jboss/da/reports/impl/ReportsGeneratorImplTest.java index 31ea17275..527c32713 100644 --- a/reports-backend/src/test/java/org/jboss/da/reports/impl/ReportsGeneratorImplTest.java +++ b/reports-backend/src/test/java/org/jboss/da/reports/impl/ReportsGeneratorImplTest.java @@ -1,16 +1,5 @@ package org.jboss.da.reports.impl; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.HashSet; -import java.util.List; -import java.util.Objects; -import java.util.Set; -import java.util.concurrent.CompletableFuture; -import java.util.stream.Collectors; - import org.jboss.da.common.CommunicationException; import org.jboss.da.common.json.DAConfig; import org.jboss.da.common.json.LookupMode; @@ -32,28 +21,36 @@ import org.jboss.da.products.impl.AggregatedProductProvider; import org.jboss.da.products.impl.PncProductProvider; import org.jboss.da.products.impl.RepositoryProductProvider; -import org.jboss.da.reports.api.ArtifactReport; import org.jboss.da.reports.backend.api.DependencyTreeGenerator; import org.jboss.da.reports.backend.impl.DependencyTreeGeneratorImpl; -import org.jboss.da.reports.model.request.GAVRequest; import org.jboss.da.reports.model.request.LookupGAVsRequest; import org.jboss.da.reports.model.response.LookupReport; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.ArgumentMatcher; import org.mockito.InjectMocks; import org.mockito.Mock; -import org.mockito.Spy; -import org.mockito.runners.MockitoJUnitRunner; +import org.mockito.Mockito; +import org.mockito.junit.jupiter.MockitoExtension; import org.slf4j.Logger; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.junit.Assert.fail; -import static org.mockito.Matchers.argThat; +import java.lang.reflect.Field; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; +import java.util.concurrent.CompletableFuture; +import java.util.stream.Collectors; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertNotNull; +import static org.junit.jupiter.api.Assertions.assertTrue; +import static org.mockito.ArgumentMatchers.argThat; +import static org.mockito.Mockito.lenient; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -61,7 +58,7 @@ * * @author Honza Brázdil <jbrazdil@redhat.com> */ -@RunWith(MockitoJUnitRunner.class) +@ExtendWith(MockitoExtension.class) public class ReportsGeneratorImplTest { @Mock @@ -86,8 +83,8 @@ public class ReportsGeneratorImplTest { private Logger userLog; @InjectMocks - @Spy - private final DependencyTreeGenerator dependencyTreeGenerator = new DependencyTreeGeneratorImpl(); + // @Spy + private final DependencyTreeGenerator dependencyTreeGenerator = Mockito.spy(DependencyTreeGeneratorImpl.class); @InjectMocks private ReportsGeneratorImpl generator; @@ -98,9 +95,6 @@ public class ReportsGeneratorImplTest { private final GAV daCoreGAV = new GAV("org.jboss.da", "core", version); - private final List daCoreVersionsNoBest = Arrays - .asList("1.1.1.redhat-2", "1.2.3.redhat-1", "1.3.4.redhat-3", "1.3.5.redhat-1"); - private final String bestMatchVersion = version + ".redhat-1"; private final List daCoreVersionsBest = Arrays @@ -133,7 +127,7 @@ public ReportsGeneratorImplTest() throws ConfigurationParseException { generator = new ReportsGeneratorImpl(config); } - @Before + @BeforeEach public void initMock() throws ReflectiveOperationException { injectMethod("userLog", generator, userLog, ReportsGeneratorImpl.class); } @@ -171,11 +165,11 @@ private void prepare( boolean blacklisted, List versions, GAVDependencyTree dependencyTree) throws CommunicationException, FindGAVDependencyException { - when(productProvider.getArtifacts(matchingGAV(daCoreGAV))) + lenient().when(productProvider.getArtifacts(matchingGAV(daCoreGAV))) .thenReturn(CompletableFuture.completedFuture(toProductArtifacts(daCoreGAV.getGA(), versions))); prepareProductProvider(versions, whitelisted, daCoreGAV); - when(blackArtifactService.isArtifactPresent(daCoreGAV)).thenReturn(blacklisted); + lenient().when(blackArtifactService.isArtifactPresent(daCoreGAV)).thenReturn(blacklisted); DAConfig daConfig = new DAConfig(); daConfig.setIndyGroup("DA"); @@ -187,20 +181,6 @@ private void prepare( } } - private void prepareMulti() throws CommunicationException, FindGAVDependencyException { - prepare(Collections.emptyList(), false, daCoreVersionsBest, daCoreNoDT); - - when(productProvider.getArtifacts(matchingGAV(daUtilGAV))).thenReturn( - CompletableFuture.completedFuture(toProductArtifacts(daUtilGAV.getGA(), daCoreVersionsBest))); - - when(blackArtifactService.isArtifactPresent(daUtilGAV)).thenReturn(false); - - when(productProvider.getArtifacts(matchingGAV(daCommonGAV))).thenReturn( - CompletableFuture.completedFuture(toProductArtifacts(daCommonGAV.getGA(), daCoreVersionsNoBest))); - prepareProductProvider(daCoreVersionsNoBest, Collections.emptyList(), daCommonGAV); - when(blackArtifactService.isArtifactPresent(daCommonGAV)).thenReturn(false); - } - /** * Test the distinct on a stream in #getLookupReportsForGavs works correctly */ @@ -228,7 +208,7 @@ public void testDistinctOnGavsStream() { // Then assertEquals(uniqueGAVs.size(), distinctList.size()); - assertTrue(uniqueGAVs.equals(distinctList)); + assertEquals(uniqueGAVs, distinctList); } @Test @@ -251,49 +231,11 @@ public void testBlacklistedLookupReport() throws CommunicationException, FindGAV assertTrue(lookupReport.isBlacklisted()); } - private void assertMultipleDependencies(Set deps) { - assertEquals(2, deps.size()); - - for (ArtifactReport dep : deps) { - GAV gav = dep.getGav(); - switch (gav.getArtifactId()) { - case "util": { - assertTrue(dep.getAvailableVersions().containsAll(daCoreVersionsBest)); - assertEquals(daUtilGAV, dep.getGav()); - assertNotNull(dep.getBestMatchVersion()); - assertEquals(bestMatchVersion, dep.getBestMatchVersion().get()); - assertTrue(dep.getDependencies().isEmpty()); - assertFalse(dep.isBlacklisted()); - assertTrue(dep.getWhitelisted().isEmpty()); - break; - } - case "common": { - assertTrue(dep.getAvailableVersions().containsAll(daCoreVersionsNoBest)); - assertEquals(daCommonGAV, dep.getGav()); - assertFalse(dep.getBestMatchVersion().isPresent()); - assertTrue(dep.getDependencies().isEmpty()); - assertFalse(dep.isBlacklisted()); - assertTrue(dep.getWhitelisted().isEmpty()); - break; - } - default: { - fail("Unknown artifact id"); - break; - } - } - } - } - - private GAVRequest gavToRequest(GAV g) { - return new GAVRequest(g.getGroupId(), g.getArtifactId(), g.getVersion(), new HashSet<>(), new HashSet<>()); - - } - private static Artifact matchingGAV(GAV gav) { return argThat(new IsArtifactWithSameNameAndTypeAs(new MavenArtifact(gav))); } - private static class IsArtifactWithSameNameAndTypeAs extends ArgumentMatcher { + private static class IsArtifactWithSameNameAndTypeAs implements ArgumentMatcher { private final String name; @@ -305,13 +247,11 @@ public IsArtifactWithSameNameAndTypeAs(Artifact artifact) { } @Override - public boolean matches(Object argument) { - if (argument instanceof Artifact) { - Artifact artifact = (Artifact) argument; - return name.equals(artifact.getName()) && type == artifact.getType(); + public boolean matches(Artifact argument) { + if (argument != null) { + return name.equals(argument.getName()) && type == argument.getType(); } return false; } - } } diff --git a/reports-model/pom.xml b/reports-model/pom.xml index 947a16ba4..fdde4c82f 100644 --- a/reports-model/pom.xml +++ b/reports-model/pom.xml @@ -7,60 +7,62 @@ reports-model reports-model - ejb + jar org.jboss.pnc pnc-api + jakarta + - com.fasterxml.jackson.core - jackson-annotations - provided - - - com.fasterxml.jackson.core - jackson-databind - provided + io.quarkus + quarkus-hibernate-validator + + + + + + + + + + + org.projectlombok lombok provided - - jakarta.validation - jakarta.validation-api - provided - - - commons-validator - commons-validator - - - commons-beanutils - commons-beanutils - - - commons-collections - commons-collections - - - commons-logging - commons-logging - - - + + + + + + + + + + + + + + + + + + + + + + + - junit - junit - test - - - org.mockito - mockito-all + io.quarkus + quarkus-junit5 test diff --git a/reports-model/src/main/java/org/jboss/da/lookup/model/MavenVersionsRequest.java b/reports-model/src/main/java/org/jboss/da/lookup/model/MavenVersionsRequest.java index e71de03e4..966fa5e95 100644 --- a/reports-model/src/main/java/org/jboss/da/lookup/model/MavenVersionsRequest.java +++ b/reports-model/src/main/java/org/jboss/da/lookup/model/MavenVersionsRequest.java @@ -24,7 +24,7 @@ import org.jboss.pnc.api.constants.versions.VersionDistanceRule; import org.jboss.pnc.api.constants.versions.VersionFilter; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.util.Set; /** diff --git a/reports-model/src/main/java/org/jboss/da/lookup/model/NPMVersionsRequest.java b/reports-model/src/main/java/org/jboss/da/lookup/model/NPMVersionsRequest.java index baa583034..abde89695 100644 --- a/reports-model/src/main/java/org/jboss/da/lookup/model/NPMVersionsRequest.java +++ b/reports-model/src/main/java/org/jboss/da/lookup/model/NPMVersionsRequest.java @@ -24,7 +24,7 @@ import org.jboss.pnc.api.constants.versions.VersionDistanceRule; import org.jboss.pnc.api.constants.versions.VersionFilter; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.util.Set; /** diff --git a/reports-model/src/main/java/org/jboss/da/model/rest/validators/ScmUrl.java b/reports-model/src/main/java/org/jboss/da/model/rest/validators/ScmUrl.java index 2dbbebb4a..2b940da16 100644 --- a/reports-model/src/main/java/org/jboss/da/model/rest/validators/ScmUrl.java +++ b/reports-model/src/main/java/org/jboss/da/model/rest/validators/ScmUrl.java @@ -18,8 +18,8 @@ * limitations under the License. */ -import javax.validation.Constraint; -import javax.validation.Payload; +import jakarta.validation.Constraint; +import jakarta.validation.Payload; import java.lang.annotation.*; /** diff --git a/reports-model/src/main/java/org/jboss/da/model/rest/validators/ScmUrlValidator.java b/reports-model/src/main/java/org/jboss/da/model/rest/validators/ScmUrlValidator.java index 4173e22ba..0c5234a6d 100644 --- a/reports-model/src/main/java/org/jboss/da/model/rest/validators/ScmUrlValidator.java +++ b/reports-model/src/main/java/org/jboss/da/model/rest/validators/ScmUrlValidator.java @@ -22,8 +22,8 @@ import org.apache.commons.validator.routines.UrlValidator; -import javax.validation.ConstraintValidator; -import javax.validation.ConstraintValidatorContext; +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidatorContext; import java.util.regex.Pattern; import java.util.stream.Stream; @@ -32,10 +32,6 @@ */ public class ScmUrlValidator implements ConstraintValidator { - @Override - public void initialize(ScmUrl constraintAnnotation) { - } - @Override public boolean isValid(String value, ConstraintValidatorContext context) { return isValid(value); diff --git a/reports-model/src/main/java/org/jboss/da/reports/model/request/LookupGAVsRequest.java b/reports-model/src/main/java/org/jboss/da/reports/model/request/LookupGAVsRequest.java index 98a034a74..999dce37c 100644 --- a/reports-model/src/main/java/org/jboss/da/reports/model/request/LookupGAVsRequest.java +++ b/reports-model/src/main/java/org/jboss/da/reports/model/request/LookupGAVsRequest.java @@ -4,7 +4,7 @@ import lombok.ToString; import org.jboss.da.model.rest.GAV; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.util.HashSet; import java.util.List; diff --git a/reports-model/src/main/java/org/jboss/da/reports/model/request/LookupNPMRequest.java b/reports-model/src/main/java/org/jboss/da/reports/model/request/LookupNPMRequest.java index 210472bf5..7aecff405 100644 --- a/reports-model/src/main/java/org/jboss/da/reports/model/request/LookupNPMRequest.java +++ b/reports-model/src/main/java/org/jboss/da/reports/model/request/LookupNPMRequest.java @@ -17,7 +17,7 @@ import org.jboss.da.model.rest.NPMPackage; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.util.List; diff --git a/reports-model/src/main/java/org/jboss/da/reports/model/request/SCMReportRequest.java b/reports-model/src/main/java/org/jboss/da/reports/model/request/SCMReportRequest.java index 1883c801b..99728e94c 100644 --- a/reports-model/src/main/java/org/jboss/da/reports/model/request/SCMReportRequest.java +++ b/reports-model/src/main/java/org/jboss/da/reports/model/request/SCMReportRequest.java @@ -4,7 +4,7 @@ import java.util.HashSet; import java.util.Set; -import javax.validation.Valid; +import jakarta.validation.Valid; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/reports-model/src/main/java/org/jboss/da/reports/model/request/VersionsNPMRequest.java b/reports-model/src/main/java/org/jboss/da/reports/model/request/VersionsNPMRequest.java index dc51cf68d..9287d4f78 100644 --- a/reports-model/src/main/java/org/jboss/da/reports/model/request/VersionsNPMRequest.java +++ b/reports-model/src/main/java/org/jboss/da/reports/model/request/VersionsNPMRequest.java @@ -17,7 +17,7 @@ import org.jboss.da.model.rest.NPMPackage; -import javax.validation.constraints.NotNull; +import jakarta.validation.constraints.NotNull; import java.util.List; diff --git a/reports-model/src/test/java/org/jboss/da/model/rest/BackwardCompatibilityTest.java b/reports-model/src/test/java/org/jboss/da/model/rest/BackwardCompatibilityTest.java index 0929dadcb..9d3c7a8a6 100644 --- a/reports-model/src/test/java/org/jboss/da/model/rest/BackwardCompatibilityTest.java +++ b/reports-model/src/test/java/org/jboss/da/model/rest/BackwardCompatibilityTest.java @@ -15,7 +15,7 @@ import org.jboss.da.reports.model.response.LookupReport; import org.jboss.da.reports.model.response.Report; import org.json.JSONException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; @@ -28,7 +28,7 @@ import java.util.HashSet; import java.util.stream.Collectors; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.fail; /** * diff --git a/reports-model/src/test/java/org/jboss/da/model/rest/GAVTest.java b/reports-model/src/test/java/org/jboss/da/model/rest/GAVTest.java index 006074811..d0aa6b7c1 100644 --- a/reports-model/src/test/java/org/jboss/da/model/rest/GAVTest.java +++ b/reports-model/src/test/java/org/jboss/da/model/rest/GAVTest.java @@ -1,22 +1,20 @@ package org.jboss.da.model.rest; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.runners.MockitoJUnitRunner; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; /** * * @author jbrazdil */ -@RunWith(MockitoJUnitRunner.class) public class GAVTest { @Test public void testValidGA() { assertTrue((new GA("com.example", "some-example")).isValid()); - assertTrue((new GA("com.101tec", "zkclient")).isValid()); // technically invallid, but comonly used + assertTrue((new GA("com.101tec", "zkclient")).isValid()); // technically invalid, but commonly used assertFalse((new GA("com.ex ample", "some-example")).isValid()); assertFalse((new GA("com.example", "some example")).isValid()); diff --git a/reports-model/src/test/java/org/jboss/da/model/rest/VersionComparatorTest.java b/reports-model/src/test/java/org/jboss/da/model/rest/VersionComparatorTest.java index 692027d24..d9dc7971e 100644 --- a/reports-model/src/test/java/org/jboss/da/model/rest/VersionComparatorTest.java +++ b/reports-model/src/test/java/org/jboss/da/model/rest/VersionComparatorTest.java @@ -1,15 +1,13 @@ package org.jboss.da.model.rest; -import static org.junit.Assert.assertTrue; -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.runners.MockitoJUnitRunner; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.assertTrue; /** * * @author Honza Brázdil <jbrazdil@redhat.com> */ -@RunWith(MockitoJUnitRunner.class) public class VersionComparatorTest { @Test diff --git a/reports-model/src/test/java/org/jboss/da/reports/model/response/DeserializationTest.java b/reports-model/src/test/java/org/jboss/da/reports/model/response/DeserializationTest.java index 8fee9ad58..5e56f657b 100644 --- a/reports-model/src/test/java/org/jboss/da/reports/model/response/DeserializationTest.java +++ b/reports-model/src/test/java/org/jboss/da/reports/model/response/DeserializationTest.java @@ -6,7 +6,7 @@ import org.jboss.da.lookup.model.MavenLookupResult; import org.jboss.da.lookup.model.NPMLookupResult; import org.jboss.da.reports.model.request.VersionsNPMRequest; -import org.junit.Test; +import org.junit.jupiter.api.Test; import java.io.IOException; import java.nio.file.Files; diff --git a/reports-rest/pom.xml b/reports-rest/pom.xml index 508c46365..9a38d97aa 100644 --- a/reports-rest/pom.xml +++ b/reports-rest/pom.xml @@ -7,14 +7,12 @@ reports-rest reports-rest - war + jar org.jboss.da reports-backend - ejb - provided org.slf4j @@ -25,58 +23,71 @@ lombok provided + - org.jboss.spec.javax.websocket - jboss-websocket-api_1.1_spec - provided - - - jakarta.persistence - jakarta.persistence-api - provided - - - org.jboss.spec.javax.annotation - jboss-annotations-api_1.3_spec - provided + io.quarkus + quarkus-websockets - org.jboss.spec.javax.ws.rs - jboss-jaxrs-api_2.1_spec - provided + io.quarkus + quarkus-smallrye-openapi - org.jboss.weld - weld-api - provided + io.quarkus + quarkus-hibernate-validator + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + com.thetransactioncompany jsonrpc2-base - - io.swagger.core.v3 - swagger-jaxrs2 - - - org.eclipse.jetty - jetty-servlets - - - org.jboss.spec.javax.servlet - jboss-servlet-api_4.0_spec - provided - - - org.wildfly.security - wildfly-elytron-http-oidc - provided - + + + + + + + + + + + + + com.fasterxml.jackson.datatype jackson-datatype-jsr310 - provided + @@ -84,18 +95,13 @@ org.apache.maven.plugins - maven-war-plugin + maven-jar-plugin - true - - - src/main/webapp - true - - **/*.html - - - + + + true + + diff --git a/reports-rest/src/main/java/org/jboss/da/rest/JacksonProvider.java b/reports-rest/src/main/java/org/jboss/da/rest/JacksonProvider.java index 695b2744b..7a6a21eab 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/JacksonProvider.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/JacksonProvider.java @@ -4,11 +4,11 @@ import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule; -import javax.ws.rs.Consumes; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.ext.ContextResolver; -import javax.ws.rs.ext.Provider; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.ext.ContextResolver; +import jakarta.ws.rs.ext.Provider; /** * Jackson Provider just to properly serialize the timestamp diff --git a/reports-rest/src/main/java/org/jboss/da/rest/LookupImpl.java b/reports-rest/src/main/java/org/jboss/da/rest/LookupImpl.java index 305c9c68e..d3050ac47 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/LookupImpl.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/LookupImpl.java @@ -2,8 +2,8 @@ import java.util.Set; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import org.jboss.da.common.CommunicationException; import org.jboss.da.lookup.model.MavenLatestRequest; diff --git a/reports-rest/src/main/java/org/jboss/da/rest/ReportsRestActivator.java b/reports-rest/src/main/java/org/jboss/da/rest/ReportsRestActivator.java index 114868b3d..cdc290003 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/ReportsRestActivator.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/ReportsRestActivator.java @@ -1,57 +1,61 @@ package org.jboss.da.rest; -import static org.jboss.da.common.Constants.REST_API_VERSION_REPORTS; - -import java.util.Collections; -import java.util.HashSet; -import java.util.Set; - -import javax.annotation.PostConstruct; -import javax.ws.rs.ApplicationPath; -import javax.ws.rs.core.Application; -import javax.ws.rs.core.Context; -import javax.servlet.ServletConfig; - -import io.swagger.v3.jaxrs2.integration.JaxrsOpenApiContextBuilder; -import io.swagger.v3.jaxrs2.integration.resources.OpenApiResource; -import io.swagger.v3.oas.integration.OpenApiConfigurationException; +import jakarta.ws.rs.ApplicationPath; +import jakarta.ws.rs.core.Application; +import org.eclipse.microprofile.openapi.annotations.OpenAPIDefinition; +import org.eclipse.microprofile.openapi.annotations.info.Info; +import org.eclipse.microprofile.openapi.annotations.info.License; +import org.eclipse.microprofile.openapi.annotations.servers.Server; +import org.eclipse.microprofile.openapi.annotations.tags.Tag; import org.jboss.da.rest.exceptions.AllExceptionsMapper; import org.jboss.da.rest.filter.MDCLoggingFilter; - import org.jboss.da.rest.listings.BlackListImpl; import org.jboss.da.rest.reports.Reports; +import java.util.HashSet; +import java.util.Set; + +import static org.jboss.da.common.Constants.DA_VERSION; +import static org.jboss.da.common.Constants.REST_API_VERSION_REPORTS; + /** * * @author Jozef Mrazek <jmrazek@redhat.com> * */ @ApplicationPath("/rest/v-" + REST_API_VERSION_REPORTS) +@OpenAPIDefinition( + info = @Info( + title = "Dependency Analyzer", + license = @License(name = "Apache 2.0", url = "https://www.apache.org/licenses/LICENSE-2.0.html"), + version = DA_VERSION), + servers = { @Server(url = "/da", description = "Dependency Analyzer") }, + tags = { + @Tag(name = "lookup", description = "Lookup of artifact versions."), + @Tag(name = "blocklist", description = "Listings of blocklisted artifacts"), + @Tag(name = "reports", description = "Get report of dependencies of projects"), + @Tag(name = "deprecated", description = "Deprecated endpoints.") }) public class ReportsRestActivator extends Application { - @Context - private ServletConfig servletConfig; + // @Context + // private ServletConfig servletConfig; - @PostConstruct - public void init() { - configureSwagger(); - } + // @PostConstruct + // public void init() { + // configureSwagger(); + // } - private void configureSwagger() { - try { - new JaxrsOpenApiContextBuilder().servletConfig(servletConfig) - .application(this) - .resourcePackages(Collections.singleton("org.jboss.da.rest")) - .buildContext(true); - } catch (OpenApiConfigurationException ex) { - throw new IllegalArgumentException("Failed to setup OpenAPI configuration", ex); - } - } + /* + * private void configureSwagger() { try { var builder = new JaxrsOpenApiContextBuilder().application(this) + * .resourcePackages(Collections.singleton("org.jboss.da.rest")); if (servletConfig != null) { + * builder.servletConfig(servletConfig); } builder.buildContext(true); } catch (OpenApiConfigurationException ex) { + * throw new IllegalArgumentException("Failed to setup OpenAPI configuration", ex); } } + */ @Override public Set> getClasses() { Set> resources = new HashSet<>(); - addSwaggerResources(resources); + // addSwaggerResources(resources); addProjectResources(resources); addMetricsResources(resources); addExceptionMappers(resources); @@ -62,11 +66,9 @@ public Set> getClasses() { /** * Swagger classes required to generate the API JSON generation * - * @param resources + * @param resources public void addSwaggerResources(Set> resources) { resources.add(OpenApiResource.class); + * } */ - public void addSwaggerResources(Set> resources) { - resources.add(OpenApiResource.class); - } /** * Add all JAX-RS classes here to get activated! diff --git a/reports-rest/src/main/java/org/jboss/da/rest/Root.java b/reports-rest/src/main/java/org/jboss/da/rest/Root.java index 429980869..644e4b09d 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/Root.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/Root.java @@ -1,9 +1,9 @@ package org.jboss.da.rest; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; import static org.jboss.da.common.Constants.REST_API_VERSION_BC; import static org.jboss.da.common.Constants.REST_API_VERSION_REPORTS; diff --git a/reports-rest/src/main/java/org/jboss/da/rest/SwaggerConfiguration.java b/reports-rest/src/main/java/org/jboss/da/rest/SwaggerConfiguration.java index 47a60789f..697dfa6bd 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/SwaggerConfiguration.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/SwaggerConfiguration.java @@ -1,24 +1,23 @@ package org.jboss.da.rest; -import io.swagger.v3.oas.annotations.OpenAPIDefinition; -import io.swagger.v3.oas.annotations.info.Info; -import io.swagger.v3.oas.annotations.info.License; -import io.swagger.v3.oas.annotations.servers.Server; -import io.swagger.v3.oas.annotations.tags.Tag; +import org.eclipse.microprofile.openapi.annotations.OpenAPIDefinition; +import org.eclipse.microprofile.openapi.annotations.info.Info; +import org.eclipse.microprofile.openapi.annotations.info.License; +import org.eclipse.microprofile.openapi.annotations.servers.Server; +import org.eclipse.microprofile.openapi.annotations.tags.Tag; + +import static org.jboss.da.common.Constants.DA_VERSION; /** * @author Honza Brázdil <jbrazdil@redhat.com> - */ -@OpenAPIDefinition( - info = @Info( - title = "Dependency Analyzer", - license = @License(name = "Apache 2.0", url = "http://www.apache.org/licenses/LICENSE-2.0.html")), - servers = { @Server(url = "/da", description = "Dependency Analyzer") }, - tags = { - @Tag(name = "lookup", description = "Lookup of artifact versions."), - @Tag(name = "blocklist", description = "Listings of blocklisted artifacts"), - @Tag(name = "reports", description = "Get report of dependencies of projects"), - @Tag(name = "deprecated", description = "Deprecated endpoints.") }) -public interface SwaggerConfiguration { - -} + * + * @OpenAPIDefinition( info = @Info( title = "Dependency Analyzer", license = @License(name = "Apache 2.0", url + * = "https://www.apache.org/licenses/LICENSE-2.0.html"), version = DA_VERSION), servers = { @Server(url = + * "/da", description = "Dependency Analyzer") }, tags = { + * @Tag(name = "lookup", description = "Lookup of artifact versions."), + * @Tag(name = "blocklist", description = "Listings of blocklisted artifacts"), + * @Tag(name = "reports", description = "Get report of dependencies of projects"), + * @Tag(name = "deprecated", description = "Deprecated endpoints.") }) public interface SwaggerConfiguration { + * + * } + */ \ No newline at end of file diff --git a/reports-rest/src/main/java/org/jboss/da/rest/VersionEndpointImpl.java b/reports-rest/src/main/java/org/jboss/da/rest/VersionEndpointImpl.java index 5d3adae14..dc07028ac 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/VersionEndpointImpl.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/VersionEndpointImpl.java @@ -4,7 +4,7 @@ import org.jboss.da.rest.api.VersionEndpoint; import org.jboss.pnc.api.dto.ComponentVersion; -import javax.enterprise.context.ApplicationScoped; +import jakarta.enterprise.context.ApplicationScoped; import java.time.ZonedDateTime; @ApplicationScoped diff --git a/reports-rest/src/main/java/org/jboss/da/rest/api/BlackList.java b/reports-rest/src/main/java/org/jboss/da/rest/api/BlackList.java index f3ac9e5e5..688ed9539 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/api/BlackList.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/api/BlackList.java @@ -1,26 +1,26 @@ package org.jboss.da.rest.api; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.media.ArraySchema; -import io.swagger.v3.oas.annotations.media.Content; -import io.swagger.v3.oas.annotations.media.Schema; -import io.swagger.v3.oas.annotations.responses.ApiResponse; -import io.swagger.v3.oas.annotations.tags.Tag; +import org.eclipse.microprofile.openapi.annotations.Operation; +import org.eclipse.microprofile.openapi.annotations.media.Content; +import org.eclipse.microprofile.openapi.annotations.media.Schema; +import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; +import org.eclipse.microprofile.openapi.annotations.parameters.Parameter; +import org.eclipse.microprofile.openapi.annotations.responses.APIResponse; +import org.eclipse.microprofile.openapi.annotations.tags.Tag; import org.jboss.da.listings.model.rest.ContainsResponse; import org.jboss.da.listings.model.rest.RestArtifact; import org.jboss.da.listings.model.rest.SuccessResponse; import org.jboss.da.model.rest.ErrorMessage; -import javax.ws.rs.Consumes; -import javax.ws.rs.DELETE; -import javax.ws.rs.GET; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.QueryParam; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.DELETE; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.QueryParam; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; import java.util.Collection; @@ -39,20 +39,20 @@ public interface BlackList { @Consumes(value = MediaType.APPLICATION_JSON) @Produces(value = MediaType.APPLICATION_JSON) @Operation(summary = "Add an artifact to the blocklist") - @ApiResponse(content = @Content(schema = @Schema(implementation = SuccessResponse.class))) + @APIResponse(content = @Content(schema = @Schema(implementation = SuccessResponse.class))) Response addBlackArtifact(@Parameter(description = GAV_JSON) RestArtifact artifact); @GET @Produces(value = MediaType.APPLICATION_JSON) @Operation(summary = "Get all artifacts in the blocklist") - @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = RestArtifact.class)))) + @APIResponse(content = @Content(schema = @Schema(type = SchemaType.ARRAY, implementation = RestArtifact.class))) Collection getAllBlackArtifacts(); @GET @Path(value = "/ga") @Produces(value = MediaType.APPLICATION_JSON) @Operation(summary = "Get artifacts in the blocklist with given groupid and artifactid") - @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = RestArtifact.class)))) + @APIResponse(content = @Content(schema = @Schema(type = SchemaType.ARRAY, implementation = RestArtifact.class))) Collection getBlackArtifacts( @QueryParam(value = "groupid") String groupId, @QueryParam(value = "artifactid") String artifactId); @@ -61,12 +61,12 @@ Collection getBlackArtifacts( @Path(value = "/gav") @Produces(value = MediaType.APPLICATION_JSON) @Operation(summary = "Check if an artifact is in the blocklist") - @ApiResponse(content = @Content(schema = @Schema(implementation = ContainsResponse.class))) - @ApiResponse( + @APIResponse(content = @Content(schema = @Schema(implementation = ContainsResponse.class))) + @APIResponse( responseCode = "404", description = "Artifact is not in the blocklist", content = @Content(schema = @Schema(implementation = ContainsResponse.class))) - @ApiResponse( + @APIResponse( responseCode = "400", description = "All parameters are required", content = @Content(schema = @Schema(implementation = ErrorMessage.class))) @@ -80,7 +80,7 @@ Response isBlackArtifactPresent( @Consumes(value = MediaType.APPLICATION_JSON) @Produces(value = MediaType.APPLICATION_JSON) @Operation(summary = "Remove an artifact from the blocklist") - @ApiResponse(content = @Content(schema = @Schema(implementation = SuccessResponse.class))) + @APIResponse(content = @Content(schema = @Schema(implementation = SuccessResponse.class))) SuccessResponse removeBlackArtifact(@Parameter(description = GAV_JSON) RestArtifact artifact); } diff --git a/reports-rest/src/main/java/org/jboss/da/rest/api/Lookup.java b/reports-rest/src/main/java/org/jboss/da/rest/api/Lookup.java index d917393bb..5dc0e5c57 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/api/Lookup.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/api/Lookup.java @@ -1,19 +1,19 @@ package org.jboss.da.rest.api; import java.util.Set; -import javax.validation.Valid; -import javax.ws.rs.Consumes; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; +import jakarta.validation.Valid; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.media.ArraySchema; -import io.swagger.v3.oas.annotations.media.Content; -import io.swagger.v3.oas.annotations.media.Schema; -import io.swagger.v3.oas.annotations.responses.ApiResponse; -import io.swagger.v3.oas.annotations.tags.Tag; +import org.eclipse.microprofile.openapi.annotations.Operation; +import org.eclipse.microprofile.openapi.annotations.media.Content; +import org.eclipse.microprofile.openapi.annotations.media.Schema; +import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; +import org.eclipse.microprofile.openapi.annotations.responses.APIResponse; +import org.eclipse.microprofile.openapi.annotations.tags.Tag; import org.jboss.da.common.CommunicationException; import org.jboss.da.lookup.model.MavenLatestRequest; import org.jboss.da.lookup.model.MavenLatestResult; @@ -39,13 +39,15 @@ public interface Lookup { @POST @Path(value = "/maven") @Operation(summary = "Finds best matching versions for given Maven artifact coordinates (GAV).") - @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = MavenLookupResult.class)))) + @APIResponse( + content = @Content(schema = @Schema(type = SchemaType.ARRAY, implementation = MavenLookupResult.class))) Set lookupMaven(@Valid MavenLookupRequest request) throws CommunicationException; @POST @Path(value = "/maven/versions") @Operation(summary = "Lookup and filter available versions for the given Maven artifact coordinates (GAV).") - @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = MavenLookupResult.class)))) + @APIResponse( + content = @Content(schema = @Schema(type = SchemaType.ARRAY, implementation = MavenLookupResult.class))) Set versionsMaven(@Valid MavenVersionsRequest request) throws CommunicationException; @POST @@ -53,19 +55,21 @@ public interface Lookup { @Operation( summary = "Finds latest matching versions for given Maven artifact coordinates (GAV), including bad versions.", description = "This endpoint is used for version increment so it will search all possible places and qualities of artifacts, including deleted and blocklisted artifacts.") - @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = MavenLatestResult.class)))) + @APIResponse( + content = @Content(schema = @Schema(type = SchemaType.ARRAY, implementation = MavenLatestResult.class))) Set lookupMaven(@Valid MavenLatestRequest request) throws CommunicationException; @POST @Path(value = "/npm") @Operation(summary = "Finds best matching versions for given NPM artifact coordinates (name, version).") - @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = NPMLookupResult.class)))) + @APIResponse(content = @Content(schema = @Schema(type = SchemaType.ARRAY, implementation = NPMLookupResult.class))) Set lookupNPM(@Valid NPMLookupRequest request) throws CommunicationException; @POST @Path(value = "/npm/versions") @Operation(summary = "Lookup and filter available versions for the given NPM artifact coordinates (name, version).") - @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = NPMVersionsResult.class)))) + @APIResponse( + content = @Content(schema = @Schema(type = SchemaType.ARRAY, implementation = NPMVersionsResult.class))) Set versionsNPM(@Valid NPMVersionsRequest request) throws CommunicationException; } diff --git a/reports-rest/src/main/java/org/jboss/da/rest/api/VersionEndpoint.java b/reports-rest/src/main/java/org/jboss/da/rest/api/VersionEndpoint.java index 1dee6578c..765670651 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/api/VersionEndpoint.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/api/VersionEndpoint.java @@ -1,16 +1,16 @@ package org.jboss.da.rest.api; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.media.Content; -import io.swagger.v3.oas.annotations.media.Schema; -import io.swagger.v3.oas.annotations.responses.ApiResponse; -import io.swagger.v3.oas.annotations.tags.Tag; +import org.eclipse.microprofile.openapi.annotations.Operation; +import org.eclipse.microprofile.openapi.annotations.media.Content; +import org.eclipse.microprofile.openapi.annotations.media.Schema; +import org.eclipse.microprofile.openapi.annotations.responses.APIResponse; +import org.eclipse.microprofile.openapi.annotations.tags.Tag; import org.jboss.pnc.api.dto.ComponentVersion; -import javax.ws.rs.GET; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; +import jakarta.ws.rs.GET; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; @Path("/version") @Tag(name = "version") @@ -23,6 +23,6 @@ public interface VersionEndpoint { @GET @Produces(value = MediaType.APPLICATION_JSON) @Operation(summary = "Get version of Dependency-Analysis") - @ApiResponse(content = @Content(schema = @Schema(implementation = ComponentVersion.class))) + @APIResponse(content = @Content(schema = @Schema(implementation = ComponentVersion.class))) public ComponentVersion getVersion(); } diff --git a/reports-rest/src/main/java/org/jboss/da/rest/exceptions/AllExceptionsMapper.java b/reports-rest/src/main/java/org/jboss/da/rest/exceptions/AllExceptionsMapper.java index 28d6535c4..facbbce63 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/exceptions/AllExceptionsMapper.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/exceptions/AllExceptionsMapper.java @@ -9,9 +9,9 @@ import org.jboss.da.model.rest.ErrorMessage; import org.jboss.da.validation.ValidationException; -import javax.ws.rs.core.Response; -import javax.ws.rs.ext.ExceptionMapper; -import javax.ws.rs.ext.Provider; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.ext.ExceptionMapper; +import jakarta.ws.rs.ext.Provider; import java.util.NoSuchElementException; diff --git a/reports-rest/src/main/java/org/jboss/da/rest/facade/ReportsFacade.java b/reports-rest/src/main/java/org/jboss/da/rest/facade/ReportsFacade.java index da81ca9a5..e266e431c 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/facade/ReportsFacade.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/facade/ReportsFacade.java @@ -25,7 +25,7 @@ import org.jboss.da.validation.Validation; import org.jboss.da.validation.ValidationException; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.util.Iterator; import java.util.List; diff --git a/reports-rest/src/main/java/org/jboss/da/rest/filter/MDCLoggingFilter.java b/reports-rest/src/main/java/org/jboss/da/rest/filter/MDCLoggingFilter.java index 3bffe02cf..682288a33 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/filter/MDCLoggingFilter.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/filter/MDCLoggingFilter.java @@ -26,11 +26,11 @@ import io.opentelemetry.api.trace.Span; -import javax.inject.Inject; -import javax.servlet.http.HttpServletRequest; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerRequestFilter; -import javax.ws.rs.ext.Provider; +import jakarta.inject.Inject; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerRequestFilter; +import jakarta.ws.rs.ext.Provider; import java.io.IOException; /** diff --git a/reports-rest/src/main/java/org/jboss/da/rest/listings/BlackListImpl.java b/reports-rest/src/main/java/org/jboss/da/rest/listings/BlackListImpl.java index 4a5864c4b..3787ff896 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/listings/BlackListImpl.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/listings/BlackListImpl.java @@ -8,8 +8,8 @@ import org.jboss.da.listings.model.rest.SuccessResponse; import org.jboss.da.model.rest.ErrorMessage; -import javax.inject.Inject; -import javax.ws.rs.core.Response; +import jakarta.inject.Inject; +import jakarta.ws.rs.core.Response; import java.util.ArrayList; import java.util.Collection; diff --git a/reports-rest/src/main/java/org/jboss/da/rest/listings/RestConvert.java b/reports-rest/src/main/java/org/jboss/da/rest/listings/RestConvert.java index a0758aa94..3bd3208b9 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/listings/RestConvert.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/listings/RestConvert.java @@ -5,7 +5,7 @@ import org.jboss.da.listings.model.rest.RestProduct; import org.jboss.da.listings.model.rest.RestProductGAV; -import javax.enterprise.context.ApplicationScoped; +import jakarta.enterprise.context.ApplicationScoped; import java.util.ArrayList; import java.util.Collection; diff --git a/reports-rest/src/main/java/org/jboss/da/rest/reports/Reports.java b/reports-rest/src/main/java/org/jboss/da/rest/reports/Reports.java index d8fa931db..2490100ec 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/reports/Reports.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/reports/Reports.java @@ -2,14 +2,14 @@ import io.opentelemetry.instrumentation.annotations.SpanAttribute; import io.opentelemetry.instrumentation.annotations.WithSpan; -import io.swagger.v3.oas.annotations.Operation; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.media.ArraySchema; -import io.swagger.v3.oas.annotations.media.Content; -import io.swagger.v3.oas.annotations.media.Schema; -import io.swagger.v3.oas.annotations.responses.ApiResponse; -import io.swagger.v3.oas.annotations.tags.Tag; import org.apache.maven.scm.ScmException; +import org.eclipse.microprofile.openapi.annotations.Operation; +import org.eclipse.microprofile.openapi.annotations.media.Content; +import org.eclipse.microprofile.openapi.annotations.media.Schema; +import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; +import org.eclipse.microprofile.openapi.annotations.parameters.Parameter; +import org.eclipse.microprofile.openapi.annotations.responses.APIResponse; +import org.eclipse.microprofile.openapi.annotations.tags.Tag; import org.jboss.da.common.CommunicationException; import org.jboss.da.communication.pom.PomAnalysisException; import org.jboss.da.reports.model.request.AlignReportRequest; @@ -29,15 +29,15 @@ import org.jboss.da.validation.ValidationException; import org.slf4j.Logger; -import javax.inject.Inject; -import javax.validation.Valid; -import javax.ws.rs.Consumes; -import javax.ws.rs.POST; -import javax.ws.rs.Path; -import javax.ws.rs.Produces; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; -import javax.ws.rs.core.Response.Status; +import jakarta.inject.Inject; +import jakarta.validation.Valid; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.Response.Status; import java.util.List; @@ -62,7 +62,7 @@ public class Reports { @POST @Path("/scm") @Operation(summary = "Get dependency report for a project specified in a repository URL.") - @ApiResponse(content = @Content(schema = @Schema(implementation = Report.class))) + @APIResponse(content = @Content(schema = @Schema(implementation = Report.class))) @WithSpan() public Response scmGenerator( @SpanAttribute(value = "request") @Parameter(description = "scm information") SCMReportRequest request) @@ -73,7 +73,7 @@ public Response scmGenerator( @POST @Path("/scm-advanced") @Operation(summary = "Get dependency report for a project specified in a repository URL.") - @ApiResponse(content = @Content(schema = @Schema(implementation = AdvancedReport.class))) + @APIResponse(content = @Content(schema = @Schema(implementation = AdvancedReport.class))) @WithSpan() public Response advancedScmGenerator( @SpanAttribute(value = "request") @Parameter(description = "scm information") SCMReportRequest request) @@ -88,8 +88,8 @@ public Response advancedScmGenerator( summary = "Lookup built versions for the list of provided GAVs.", deprecated = true, description = "DEPRECATED: use /lookup/maven endpoint instead.") - @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = LookupReport.class)))) - @ApiResponse(responseCode = "502", description = "Communication with remote repository failed") + @APIResponse(content = @Content(schema = @Schema(type = SchemaType.ARRAY, implementation = LookupReport.class))) + @APIResponse(responseCode = "502", description = "Communication with remote repository failed") @Tag(name = "deprecated") @Valid @WithSpan() @@ -109,8 +109,8 @@ public Response lookupGav( summary = "Lookup built versions for the list of provided NPM artifacts.", deprecated = true, description = "DEPRECATED: use /lookup/npm endpoint instead.") - @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = NPMLookupReport.class)))) - @ApiResponse(responseCode = "502", description = "Communication with remote repository failed") + @APIResponse(content = @Content(schema = @Schema(type = SchemaType.ARRAY, implementation = NPMLookupReport.class))) + @APIResponse(responseCode = "502", description = "Communication with remote repository failed") @Tag(name = "deprecated") @Valid @WithSpan() @@ -127,8 +127,9 @@ public Response lookupNPM( @POST @Path("/versions/npm") @Operation(summary = "Lookup and filter versions for the list of provided NPM artifacts.") - @ApiResponse(content = @Content(array = @ArraySchema(schema = @Schema(implementation = NPMVersionsReport.class)))) - @ApiResponse(responseCode = "502", description = "Communication with remote repository failed") + @APIResponse( + content = @Content(schema = @Schema(type = SchemaType.ARRAY, implementation = NPMVersionsReport.class))) + @APIResponse(responseCode = "502", description = "Communication with remote repository failed") @Valid @WithSpan() public Response versionsNPM( @@ -144,7 +145,7 @@ public Response versionsNPM( @POST @Path("/align") @Operation(summary = "Get alignment report for project specified in a repository URL.") - @ApiResponse(content = @Content(schema = @Schema(implementation = AlignReport.class))) + @APIResponse(content = @Content(schema = @Schema(implementation = AlignReport.class))) @WithSpan() public Response alignReport(@SpanAttribute(value = "request") AlignReportRequest request) throws ScmException, PomAnalysisException, CommunicationException, ValidationException { @@ -156,7 +157,7 @@ public Response alignReport(@SpanAttribute(value = "request") AlignReportRequest @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) @Operation(summary = "Get built artifacts for project specified in a repository URL.") - @ApiResponse(content = @Content(schema = @Schema(implementation = BuiltReport.class))) + @APIResponse(content = @Content(schema = @Schema(implementation = BuiltReport.class))) @WithSpan() public Response builtReport(@SpanAttribute(value = "request") BuiltReportRequest request) throws ScmException, PomAnalysisException, CommunicationException, ValidationException { diff --git a/reports-rest/src/main/java/org/jboss/da/rest/websocket/DefaultWebsocketEndpointHandler.java b/reports-rest/src/main/java/org/jboss/da/rest/websocket/DefaultWebsocketEndpointHandler.java index f8fbe9ba7..c097ed3cc 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/websocket/DefaultWebsocketEndpointHandler.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/websocket/DefaultWebsocketEndpointHandler.java @@ -1,11 +1,11 @@ package org.jboss.da.rest.websocket; -import org.jboss.weld.context.activator.ActivateRequestContext; +import jakarta.enterprise.context.control.ActivateRequestContext; import org.slf4j.Logger; -import javax.inject.Inject; -import javax.websocket.RemoteEndpoint.Basic; -import javax.websocket.Session; +import jakarta.inject.Inject; +import jakarta.websocket.RemoteEndpoint.Basic; +import jakarta.websocket.Session; import java.io.IOException; diff --git a/reports-rest/src/main/java/org/jboss/da/rest/websocket/WebsocketEndpointHandler.java b/reports-rest/src/main/java/org/jboss/da/rest/websocket/WebsocketEndpointHandler.java index 09ff471ae..072729a91 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/websocket/WebsocketEndpointHandler.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/websocket/WebsocketEndpointHandler.java @@ -1,6 +1,6 @@ package org.jboss.da.rest.websocket; -import javax.websocket.Session; +import jakarta.websocket.Session; public interface WebsocketEndpointHandler { diff --git a/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsEndpoint.java b/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsEndpoint.java index e17a37dbc..58e6fd043 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsEndpoint.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsEndpoint.java @@ -5,13 +5,13 @@ import org.jboss.da.rest.websocket.WebsocketEndpointHandler; import org.slf4j.MDC; -import javax.annotation.PostConstruct; -import javax.inject.Inject; -import javax.websocket.OnClose; -import javax.websocket.OnMessage; -import javax.websocket.OnOpen; -import javax.websocket.Session; -import javax.websocket.server.ServerEndpoint; +import jakarta.annotation.PostConstruct; +import jakarta.inject.Inject; +import jakarta.websocket.OnClose; +import jakarta.websocket.OnMessage; +import jakarta.websocket.OnOpen; +import jakarta.websocket.Session; +import jakarta.websocket.server.ServerEndpoint; @ServerEndpoint("/ws") public class ReportsEndpoint { diff --git a/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsMethodsImpl.java b/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsMethodsImpl.java index 4a4ecc7a4..ac34cb8b3 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsMethodsImpl.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsMethodsImpl.java @@ -14,8 +14,8 @@ import org.jboss.da.rest.websocket.Method; import org.jboss.da.rest.websocket.Methods; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsWebsocketMethods.java b/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsWebsocketMethods.java index febae3ace..41c541532 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsWebsocketMethods.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsWebsocketMethods.java @@ -6,7 +6,7 @@ import static java.lang.annotation.ElementType.TYPE; import static java.lang.annotation.RetentionPolicy.RUNTIME; -import javax.inject.Qualifier; +import jakarta.inject.Qualifier; import java.lang.annotation.Documented; import java.lang.annotation.Retention; diff --git a/source-code-manager/pom.xml b/source-code-manager/pom.xml index 37086741a..8a97b6476 100644 --- a/source-code-manager/pom.xml +++ b/source-code-manager/pom.xml @@ -7,14 +7,9 @@ source-code-manager source-code-manager - ejb + jar - - org.jboss.spec.javax.ejb - jboss-ejb-api_3.2_spec - provided - org.slf4j slf4j-api @@ -36,10 +31,11 @@ jakarta.enterprise jakarta.enterprise.cdi-api - - org.jboss.spec.javax.annotation - jboss-annotations-api_1.3_spec - + + + + + org.projectlombok @@ -52,23 +48,21 @@ commons-io - - - - - org.apache.maven.plugins - maven-ejb-plugin - - - - - org.apache.httpcomponents export meta-inf - - - - - - - - + + + + + + + + + + + + + + + + + diff --git a/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMCache.java b/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMCache.java index 795a9b983..59ded17b0 100644 --- a/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMCache.java +++ b/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMCache.java @@ -1,32 +1,28 @@ package org.jboss.da.scm.impl; +import lombok.extern.slf4j.Slf4j; + +import jakarta.annotation.PreDestroy; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import java.io.File; import java.util.HashMap; import java.util.Iterator; import java.util.Map; import java.util.Optional; - -import javax.annotation.PreDestroy; -import javax.ejb.Schedule; -import javax.inject.Inject; -import javax.inject.Singleton; - -import org.slf4j.Logger; - import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; +//import io.quarkus.scheduler.Scheduled; /** * * @author Honza Brázdil <jbrazdil@redhat.com> */ -@Singleton +@ApplicationScoped +@Slf4j public class SCMCache { - @Inject - Logger log; - @Inject ScmFacade scm; @@ -61,13 +57,13 @@ private void checkFutureCache() { cache.put(e.getKey(), value.get(1, TimeUnit.SECONDS)); it.remove(); } catch (InterruptedException | ExecutionException | TimeoutException ex) { - log.error("Error while geting Future object.", ex); + log.error("Error while getting Future object.", ex); } } } } - @Schedule(hour = "*", minute = "*/10") + // @Scheduled(every="10m") public void invalidateCache() { checkFutureCache(); Iterator> it = cache.entrySet().iterator(); diff --git a/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMImpl.java b/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMImpl.java index 101912032..8034ec4ee 100644 --- a/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMImpl.java +++ b/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMImpl.java @@ -1,10 +1,11 @@ package org.jboss.da.scm.impl; +import jakarta.enterprise.context.ApplicationScoped; import org.apache.maven.scm.ScmException; import org.jboss.da.scm.api.SCM; import org.jboss.da.scm.api.SCMType; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.io.File; import java.io.IOException; @@ -19,6 +20,7 @@ * * @author Honza Brázdil <jbrazdil@redhat.com> */ +@ApplicationScoped public class SCMImpl implements SCM { @Inject diff --git a/source-code-manager/src/main/java/org/jboss/da/scm/impl/ScmFacade.java b/source-code-manager/src/main/java/org/jboss/da/scm/impl/ScmFacade.java index e9d8882dd..1b535927e 100644 --- a/source-code-manager/src/main/java/org/jboss/da/scm/impl/ScmFacade.java +++ b/source-code-manager/src/main/java/org/jboss/da/scm/impl/ScmFacade.java @@ -16,8 +16,8 @@ import org.jboss.da.scm.api.SCMType; import org.slf4j.Logger; -import javax.enterprise.context.ApplicationScoped; -import javax.inject.Inject; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import java.io.File; import java.io.IOException; diff --git a/testsuite/pom.xml b/testsuite/pom.xml index efdd96d16..fc6f668e6 100644 --- a/testsuite/pom.xml +++ b/testsuite/pom.xml @@ -12,17 +12,17 @@ org.jboss.da communication - ejb + org.jboss.da source-code-manager - ejb + org.jboss.da reports-backend - ejb + org.commonjava.atlas @@ -31,8 +31,8 @@ - junit - junit + io.quarkus + quarkus-junit5 test @@ -40,65 +40,65 @@ resteasy-client test - - org.jboss.resteasy - resteasy-jaxrs - test - - - org.hibernate - hibernate-core - test - - - com.github.tomakehurst - wiremock-standalone - test - - - jakarta.persistence - jakarta.persistence-api - test - + + + + + + + + + + + + + + + + + + + + - - javax.xml.bind - jaxb-api - test - + + + + + - - com.sun.xml.bind - jaxb-impl - test - + + + + + - - org.jboss.arquillian.junit - arquillian-junit-container - test - + + + + + - - org.jboss.arquillian.protocol - arquillian-protocol-servlet - test - + + + + + - - org.jboss.shrinkwrap.resolver - shrinkwrap-resolver-impl-maven-archive - test - + + + + + - - org.wildfly.arquillian - wildfly-arquillian-container-managed - test - + + + + + org.jboss.resteasy resteasy-jackson2-provider @@ -124,11 +124,11 @@ jsonrpc2-base test - - io.undertow - undertow-websockets-jsr - test - + + + + + From c8f3eaa1b57b722b09ffabade473d76643a8bd34 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Tue, 3 Mar 2026 14:18:41 +0000 Subject: [PATCH 02/23] Update git-commit-id-plugin --- common/pom.xml | 21 --------------------- pom.xml | 15 +++++++++++++++ 2 files changed, 15 insertions(+), 21 deletions(-) diff --git a/common/pom.xml b/common/pom.xml index f9097b0dd..07d6fa9e2 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -64,27 +64,6 @@ pl.project13.maven git-commit-id-plugin - 2.2.0 - - - - revision - - - - - - - ${project.basedir}/.git - - - true - - diff --git a/pom.xml b/pom.xml index 69d57b28c..fc65f2142 100644 --- a/pom.xml +++ b/pom.xml @@ -498,6 +498,21 @@ + + pl.project13.maven + git-commit-id-plugin + 4.9.10 + + + + revision + + + + + 40 + + maven-surefire-plugin From ea6a713da8bd3992f5576dd8e394d2ca8e285321 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Tue, 3 Mar 2026 14:28:58 +0000 Subject: [PATCH 03/23] Update parent and tidy poms --- common/pom.xml | 19 ------------------- communication/pom.xml | 11 ----------- pom.xml | 2 +- reports-model/pom.xml | 33 --------------------------------- reports-rest/pom.xml | 38 +------------------------------------- 5 files changed, 2 insertions(+), 101 deletions(-) diff --git a/common/pom.xml b/common/pom.xml index 07d6fa9e2..e9d88e3a7 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -19,12 +19,6 @@ quarkus-core - - - - - - org.jboss.pnc constants @@ -44,19 +38,6 @@ quarkus-junit5 test - - - - - - - - - - - - - diff --git a/communication/pom.xml b/communication/pom.xml index 945cf873b..a24c1ee07 100644 --- a/communication/pom.xml +++ b/communication/pom.xml @@ -48,7 +48,6 @@ jakarta.xml.bind jakarta.xml.bind-api - org.glassfish.jaxb @@ -59,7 +58,6 @@ com.fasterxml.jackson.core jackson-databind - @@ -145,15 +143,6 @@ wiremock-standalone test - - - - - - - - - diff --git a/pom.xml b/pom.xml index fc65f2142..36066b4ea 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ org.jboss jboss-parent - 36 + 49 diff --git a/reports-model/pom.xml b/reports-model/pom.xml index fdde4c82f..98da1d957 100644 --- a/reports-model/pom.xml +++ b/reports-model/pom.xml @@ -20,44 +20,11 @@ quarkus-hibernate-validator - - - - - - - - - - org.projectlombok lombok provided - - - - - - - - - - - - - - - - - - - - - - - diff --git a/reports-rest/pom.xml b/reports-rest/pom.xml index 9a38d97aa..f21c8c3ee 100644 --- a/reports-rest/pom.xml +++ b/reports-rest/pom.xml @@ -36,36 +36,7 @@ io.quarkus quarkus-hibernate-validator - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + com.thetransactioncompany jsonrpc2-base @@ -96,13 +67,6 @@ org.apache.maven.plugins maven-jar-plugin - - - - true - - - From c909ded3b1e9ac2e04b0527148d04669a844aaca Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Tue, 3 Mar 2026 16:49:05 +0000 Subject: [PATCH 04/23] Use jandex plugin rather than beans.xml --- .../src/main/application}/META-INF/beans.xml | 0 common/pom.xml | 4 + communication/pom.xml | 23 +----- .../src/main/resources/META-INF/beans.xml | 7 -- pom.xml | 73 +++++++------------ reports-backend/pom.xml | 9 +++ .../src/main/resources/META-INF/beans.xml | 7 -- reports-model/pom.xml | 9 +++ .../src/main/resources/META-INF/beans.xml | 7 -- reports-rest/pom.xml | 8 +- .../jboss/da/rest/facade/ReportsFacade.java | 2 + .../DefaultWebsocketEndpointHandler.java | 2 + source-code-manager/pom.xml | 24 ++---- .../src/main/resources/META-INF/beans.xml | 7 -- 14 files changed, 70 insertions(+), 112 deletions(-) rename {common/src/main/resources => application/src/main/application}/META-INF/beans.xml (100%) delete mode 100644 communication/src/main/resources/META-INF/beans.xml delete mode 100644 reports-backend/src/main/resources/META-INF/beans.xml delete mode 100644 reports-model/src/main/resources/META-INF/beans.xml delete mode 100644 source-code-manager/src/main/resources/META-INF/beans.xml diff --git a/common/src/main/resources/META-INF/beans.xml b/application/src/main/application/META-INF/beans.xml similarity index 100% rename from common/src/main/resources/META-INF/beans.xml rename to application/src/main/application/META-INF/beans.xml diff --git a/common/pom.xml b/common/pom.xml index e9d88e3a7..3debaf9ed 100644 --- a/common/pom.xml +++ b/common/pom.xml @@ -42,6 +42,10 @@ + + io.smallrye + jandex-maven-plugin + pl.project13.maven git-commit-id-plugin diff --git a/communication/pom.xml b/communication/pom.xml index a24c1ee07..a9cd210c3 100644 --- a/communication/pom.xml +++ b/communication/pom.xml @@ -147,25 +147,10 @@ - - - - - - - - - - - - - - - - - - - + + io.smallrye + jandex-maven-plugin + diff --git a/communication/src/main/resources/META-INF/beans.xml b/communication/src/main/resources/META-INF/beans.xml deleted file mode 100644 index a695c672f..000000000 --- a/communication/src/main/resources/META-INF/beans.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/pom.xml b/pom.xml index 36066b4ea..d167542e1 100644 --- a/pom.xml +++ b/pom.xml @@ -94,7 +94,6 @@ 1.11.2 /* - 3.5.3 1.22.0 update @@ -498,6 +497,19 @@ + + io.smallrye + jandex-maven-plugin + 3.5.3 + + + make-index + + jandex + + + + pl.project13.maven git-commit-id-plugin @@ -524,36 +536,9 @@ true - - - org.eclipse.m2e - lifecycle-mapping - 1.0.0 - - - - - - net.revelc.code - formatter-maven-plugin - [0.5.2,) - - format - - - - - - - - - - org.apache.maven.plugins maven-compiler-plugin - 3.11.0 ${maven.compiler.source} ${maven.compiler.target} @@ -577,11 +562,6 @@ true - - io.smallrye - jandex-maven-plugin - ${version.jandex-maven-plugin} - @@ -598,7 +578,7 @@ org.sonatype.central central-publishing-maven-plugin - 0.8.0 + 0.10.0 true @@ -626,7 +606,6 @@ org.apache.maven.plugins maven-enforcer-plugin - 1.4 org.commonjava.maven.enforcer @@ -668,18 +647,18 @@ - - maven-failsafe-plugin - - - integration-test - - integration-test - verify - - - - + + + + + + + + + + + + diff --git a/reports-backend/pom.xml b/reports-backend/pom.xml index 0a1a8cf1c..2e05025e0 100644 --- a/reports-backend/pom.xml +++ b/reports-backend/pom.xml @@ -87,4 +87,13 @@ + + + + + io.smallrye + jandex-maven-plugin + + + diff --git a/reports-backend/src/main/resources/META-INF/beans.xml b/reports-backend/src/main/resources/META-INF/beans.xml deleted file mode 100644 index a695c672f..000000000 --- a/reports-backend/src/main/resources/META-INF/beans.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/reports-model/pom.xml b/reports-model/pom.xml index 98da1d957..9b4662096 100644 --- a/reports-model/pom.xml +++ b/reports-model/pom.xml @@ -43,4 +43,13 @@ test + + + + + io.smallrye + jandex-maven-plugin + + + diff --git a/reports-model/src/main/resources/META-INF/beans.xml b/reports-model/src/main/resources/META-INF/beans.xml deleted file mode 100644 index a695c672f..000000000 --- a/reports-model/src/main/resources/META-INF/beans.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/reports-rest/pom.xml b/reports-rest/pom.xml index f21c8c3ee..b478e4a34 100644 --- a/reports-rest/pom.xml +++ b/reports-rest/pom.xml @@ -65,9 +65,13 @@ - org.apache.maven.plugins - maven-jar-plugin + io.smallrye + jandex-maven-plugin + + + + diff --git a/reports-rest/src/main/java/org/jboss/da/rest/facade/ReportsFacade.java b/reports-rest/src/main/java/org/jboss/da/rest/facade/ReportsFacade.java index e266e431c..8ac904f74 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/facade/ReportsFacade.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/facade/ReportsFacade.java @@ -1,5 +1,6 @@ package org.jboss.da.rest.facade; +import jakarta.enterprise.context.ApplicationScoped; import org.apache.maven.scm.ScmException; import org.jboss.da.common.CommunicationException; import org.jboss.da.communication.pom.PomAnalysisException; @@ -33,6 +34,7 @@ import java.util.Optional; import java.util.Set; +@ApplicationScoped public class ReportsFacade { @Inject diff --git a/reports-rest/src/main/java/org/jboss/da/rest/websocket/DefaultWebsocketEndpointHandler.java b/reports-rest/src/main/java/org/jboss/da/rest/websocket/DefaultWebsocketEndpointHandler.java index c097ed3cc..a388444a5 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/websocket/DefaultWebsocketEndpointHandler.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/websocket/DefaultWebsocketEndpointHandler.java @@ -1,5 +1,6 @@ package org.jboss.da.rest.websocket; +import jakarta.enterprise.context.ApplicationScoped; import jakarta.enterprise.context.control.ActivateRequestContext; import org.slf4j.Logger; @@ -21,6 +22,7 @@ * * @author Honza Brázdil <jbrazdil@redhat.com> */ +@ApplicationScoped public class DefaultWebsocketEndpointHandler implements WebsocketEndpointHandler { @Inject diff --git a/source-code-manager/pom.xml b/source-code-manager/pom.xml index 8a97b6476..61ee0f9d5 100644 --- a/source-code-manager/pom.xml +++ b/source-code-manager/pom.xml @@ -49,20 +49,12 @@ - - - - - - - - - - - - - - - - + + + + io.smallrye + jandex-maven-plugin + + + diff --git a/source-code-manager/src/main/resources/META-INF/beans.xml b/source-code-manager/src/main/resources/META-INF/beans.xml deleted file mode 100644 index a695c672f..000000000 --- a/source-code-manager/src/main/resources/META-INF/beans.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - From 583ead0444a09f9d680d9ce82b4e64254ab62fc3 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Thu, 5 Mar 2026 11:15:03 +0000 Subject: [PATCH 05/23] Fix LoggingFilter --- .../da/rest/filter/MDCLoggingFilter.java | 66 ++++++++++--------- 1 file changed, 34 insertions(+), 32 deletions(-) diff --git a/reports-rest/src/main/java/org/jboss/da/rest/filter/MDCLoggingFilter.java b/reports-rest/src/main/java/org/jboss/da/rest/filter/MDCLoggingFilter.java index 682288a33..0155cd7b4 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/filter/MDCLoggingFilter.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/filter/MDCLoggingFilter.java @@ -17,51 +17,53 @@ */ package org.jboss.da.rest.filter; -import org.jboss.da.communication.auth.AuthenticatorService; +import io.opentelemetry.api.trace.Span; +import jakarta.ws.rs.container.ContainerRequestContext; +import jakarta.ws.rs.container.ContainerRequestFilter; +import jakarta.ws.rs.container.ContainerResponseContext; +import jakarta.ws.rs.container.ContainerResponseFilter; +import jakarta.ws.rs.core.Request; +import jakarta.ws.rs.core.UriInfo; +import jakarta.ws.rs.ext.Provider; import org.jboss.pnc.api.constants.MDCKeys; import org.jboss.pnc.common.log.MDCUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.slf4j.MDC; -import io.opentelemetry.api.trace.Span; - -import jakarta.inject.Inject; -import jakarta.servlet.http.HttpServletRequest; -import jakarta.ws.rs.container.ContainerRequestContext; -import jakarta.ws.rs.container.ContainerRequestFilter; -import jakarta.ws.rs.ext.Provider; -import java.io.IOException; - -/** - * @author Matej Lazar - */ @Provider -public class MDCLoggingFilter implements ContainerRequestFilter { +public class MDCLoggingFilter implements ContainerRequestFilter, ContainerResponseFilter { - private Logger logger = LoggerFactory.getLogger(MDCLoggingFilter.class); + private static final Logger logger = LoggerFactory.getLogger(MDCLoggingFilter.class); + private static final String REQUEST_EXECUTION_START = "request-execution-start"; - @Inject - private AuthenticatorService userService; + @Override + public void filter(ContainerRequestContext requestContext) { - @Inject - private HttpServletRequest sr; + requestContext.setProperty(REQUEST_EXECUTION_START, System.currentTimeMillis()); + MDCUtils.setMDCFromRequestContext(requestContext); + MDCUtils.addMDCFromOtelHeadersWithFallback(requestContext, Span.current().getSpanContext(), false); - @Override - public void filter(ContainerRequestContext containerRequestContext) throws IOException { - MDCUtils.setMDCFromRequestContext(containerRequestContext); - MDCUtils.addMDCFromOtelHeadersWithFallback(containerRequestContext, Span.current().getSpanContext(), true); - addAuditMDC(); + UriInfo uriInfo = requestContext.getUriInfo(); + Request request = requestContext.getRequest(); + logger.info("Requested {} {}.", request.getMethod(), uriInfo.getRequestUri()); } - public void addAuditMDC() { - userService.username().ifPresent(username -> MDC.put(MDCKeys.USER_NAME_KEY, username)); - if (sr != null) { - MDC.put(MDCKeys.SRC_IP_KEY, sr.getRemoteAddr()); - String forwardedFor = sr.getHeader("X-FORWARDED-FOR"); - if (forwardedFor != null) { - MDC.put(MDCKeys.X_FORWARDED_FOR_KEY, forwardedFor); - } + @Override + public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) { + Long startTime = (Long) requestContext.getProperty(REQUEST_EXECUTION_START); + + String took; + if (startTime == null) { + took = "-1"; + } else { + took = Long.toString(System.currentTimeMillis() - startTime); + } + + try (MDC.MDCCloseable ignored = MDC.putCloseable(MDCKeys.REQUEST_TOOK, took); + MDC.MDCCloseable ignored2 = MDC + .putCloseable(MDCKeys.RESPONSE_STATUS, Integer.toString(responseContext.getStatus()));) { + logger.info("Completed {}, took: {}ms.", requestContext.getUriInfo().getPath(), took); } } } From a22030f8a1d4e839c613ae2d775afddd5b648f8f Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Thu, 5 Mar 2026 11:28:02 +0000 Subject: [PATCH 06/23] Fix communication & source-code-manager --- communication/pom.xml | 17 ++--------------- .../auth/impl/JAASAuthenticatorService.java | 9 --------- source-code-manager/pom.xml | 9 ++++----- .../java/org/jboss/da/scm/impl/SCMCache.java | 6 +++--- 4 files changed, 9 insertions(+), 32 deletions(-) diff --git a/communication/pom.xml b/communication/pom.xml index a9cd210c3..1c9e2e84c 100644 --- a/communication/pom.xml +++ b/communication/pom.xml @@ -40,8 +40,7 @@ org.jboss.pnc - rest-api - java-client + rest-client-jakarta @@ -59,23 +58,11 @@ com.fasterxml.jackson.core jackson-databind - - - - - - - - - + io.quarkus quarkus-undertow - - - - org.slf4j diff --git a/communication/src/main/java/org/jboss/da/communication/auth/impl/JAASAuthenticatorService.java b/communication/src/main/java/org/jboss/da/communication/auth/impl/JAASAuthenticatorService.java index f766356e0..ce178e524 100644 --- a/communication/src/main/java/org/jboss/da/communication/auth/impl/JAASAuthenticatorService.java +++ b/communication/src/main/java/org/jboss/da/communication/auth/impl/JAASAuthenticatorService.java @@ -1,14 +1,5 @@ package org.jboss.da.communication.auth.impl; -import org.jboss.da.communication.auth.AuthenticatorService; - -import jakarta.enterprise.context.RequestScoped; -import jakarta.enterprise.inject.Alternative; -import jakarta.inject.Inject; -import jakarta.servlet.http.HttpServletRequest; - -import java.util.Optional; - /** * Authenticator service used for testing purposes. * diff --git a/source-code-manager/pom.xml b/source-code-manager/pom.xml index 61ee0f9d5..d763e0e26 100644 --- a/source-code-manager/pom.xml +++ b/source-code-manager/pom.xml @@ -27,15 +27,14 @@ maven-scm-provider-svnexe + + io.quarkus + quarkus-quartz + jakarta.enterprise jakarta.enterprise.cdi-api - - - - - org.projectlombok diff --git a/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMCache.java b/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMCache.java index 59ded17b0..4fc5c63c2 100644 --- a/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMCache.java +++ b/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMCache.java @@ -14,7 +14,7 @@ import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; -//import io.quarkus.scheduler.Scheduled; +import io.quarkus.scheduler.Scheduled; /** * * @author Honza Brázdil <jbrazdil@redhat.com> @@ -63,7 +63,7 @@ private void checkFutureCache() { } } - // @Scheduled(every="10m") + @Scheduled(every="10m") public void invalidateCache() { checkFutureCache(); Iterator> it = cache.entrySet().iterator(); @@ -76,7 +76,7 @@ public void invalidateCache() { } @PreDestroy - private void cleanup() { + void cleanup() { Iterator> it = cache.entrySet().iterator(); while (it.hasNext()) { it.next().getValue().delete(); From 335d8c5232b18957d65310550ae2359bfdc3aae1 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Thu, 5 Mar 2026 11:58:16 +0000 Subject: [PATCH 07/23] Fix Quarkus CDI warnings --- .../jboss/da/listings/impl/service/ArtifactServiceImpl.java | 4 ++-- .../da/listings/impl/service/BlackArtifactServiceImpl.java | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/reports-backend/src/main/java/org/jboss/da/listings/impl/service/ArtifactServiceImpl.java b/reports-backend/src/main/java/org/jboss/da/listings/impl/service/ArtifactServiceImpl.java index 9f124e939..d41a565c3 100644 --- a/reports-backend/src/main/java/org/jboss/da/listings/impl/service/ArtifactServiceImpl.java +++ b/reports-backend/src/main/java/org/jboss/da/listings/impl/service/ArtifactServiceImpl.java @@ -15,7 +15,7 @@ import static org.jboss.da.reports.impl.ReportsGeneratorImpl.DEFAULT_SUFFIX; /** - * + * * @author Jozef Mrazek <jmrazek@redhat.com> * @author Jakub Bartecek <jbartece@redhat.com> * @@ -28,7 +28,7 @@ public abstract class ArtifactServiceImpl implements Artifac AuthenticatorService auth; @Inject - private UserDAO users; + UserDAO users; protected abstract ArtifactDAO getDAO(); diff --git a/reports-backend/src/main/java/org/jboss/da/listings/impl/service/BlackArtifactServiceImpl.java b/reports-backend/src/main/java/org/jboss/da/listings/impl/service/BlackArtifactServiceImpl.java index 913f8e161..427cdeece 100644 --- a/reports-backend/src/main/java/org/jboss/da/listings/impl/service/BlackArtifactServiceImpl.java +++ b/reports-backend/src/main/java/org/jboss/da/listings/impl/service/BlackArtifactServiceImpl.java @@ -32,10 +32,10 @@ public class BlackArtifactServiceImpl extends ArtifactServiceImpl implements BlackArtifactService { @Inject - private BlackArtifactDAO blackArtifactDAO; + BlackArtifactDAO blackArtifactDAO; @Inject - private GADAO gaDAO; + GADAO gaDAO; @Override protected ArtifactDAO getDAO() { From d376e018e502c513a1c6f92afd8c4e982f6397ef Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Thu, 5 Mar 2026 15:45:17 +0000 Subject: [PATCH 08/23] Move lifecycle to application --- .../org/jboss/da/application/Lifecycle.java | 20 ++++++++++++++++ .../jboss/da/common/logging/AppLifecycle.java | 24 ------------------- 2 files changed, 20 insertions(+), 24 deletions(-) create mode 100644 application/src/main/java/org/jboss/da/application/Lifecycle.java delete mode 100644 common/src/main/java/org/jboss/da/common/logging/AppLifecycle.java diff --git a/application/src/main/java/org/jboss/da/application/Lifecycle.java b/application/src/main/java/org/jboss/da/application/Lifecycle.java new file mode 100644 index 000000000..b138319a1 --- /dev/null +++ b/application/src/main/java/org/jboss/da/application/Lifecycle.java @@ -0,0 +1,20 @@ +package org.jboss.da.application; + +import io.quarkus.logging.Log; +import io.quarkus.runtime.Shutdown; +import io.quarkus.runtime.Startup; +import jakarta.enterprise.context.ApplicationScoped; + +@ApplicationScoped +public class Lifecycle { + + @Startup + void init() { + Log.info("DA started"); + } + + @Shutdown + void shutdown() { + Log.info("DA shutdown"); + } +} diff --git a/common/src/main/java/org/jboss/da/common/logging/AppLifecycle.java b/common/src/main/java/org/jboss/da/common/logging/AppLifecycle.java deleted file mode 100644 index 25dbc5c39..000000000 --- a/common/src/main/java/org/jboss/da/common/logging/AppLifecycle.java +++ /dev/null @@ -1,24 +0,0 @@ -package org.jboss.da.common.logging; - -import lombok.extern.slf4j.Slf4j; - -import jakarta.annotation.PostConstruct; -import jakarta.annotation.PreDestroy; -import jakarta.enterprise.context.ApplicationScoped; -//import io.quarkus.runtime.Startup; - -//@Startup -@ApplicationScoped -@Slf4j -public class AppLifecycle { - - @PostConstruct - public void initialize() { - log.info("The application is starting"); - } - - @PreDestroy - public void destroy() { - log.info("The application is shutting down"); - } -} From f69503e4a2610d8bd237cc7ac4a5908fb3ea87bf Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Fri, 6 Mar 2026 09:16:46 +0000 Subject: [PATCH 09/23] Use Logger rather than lombok --- .../da/products/impl/AggregatedProductProvider.java | 6 ++++-- .../src/main/java/org/jboss/da/rest/LookupImpl.java | 10 +++++----- .../java/org/jboss/da/rest/ReportsRestActivator.java | 2 ++ .../java/org/jboss/da/rest/api/VersionEndpoint.java | 2 +- .../jboss/da/rest/exceptions/AllExceptionsMapper.java | 6 +++++- .../java/org/jboss/da/rest/facade/ReportsFacade.java | 6 +++--- .../java/org/jboss/da/rest/listings/BlackListImpl.java | 4 ++-- .../da/rest/websocket/WebsocketEndpointHandler.java | 6 +++--- .../java/org/jboss/da/rest/ws/ReportsEndpoint.java | 6 +++--- .../src/main/java/org/jboss/da/scm/api/SCMType.java | 4 ++-- .../src/main/java/org/jboss/da/scm/impl/SCMCache.java | 10 ++++++---- .../main/java/org/jboss/da/scm/impl/SCMSpecifier.java | 2 +- 12 files changed, 37 insertions(+), 27 deletions(-) diff --git a/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java b/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java index 7ce6a935a..4c21b5c09 100644 --- a/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java +++ b/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java @@ -1,6 +1,5 @@ package org.jboss.da.products.impl; -import lombok.extern.slf4j.Slf4j; import org.jboss.da.listings.model.ProductSupportStatus; import org.jboss.da.products.api.Artifact; import org.jboss.da.products.api.Product; @@ -11,6 +10,7 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; +import org.slf4j.Logger; import java.util.ArrayList; import java.util.EnumSet; @@ -38,9 +38,11 @@ * @author Honza Brázdil <jbrazdil@redhat.com> */ @ApplicationScoped -@Slf4j public class AggregatedProductProvider implements ProductProvider { + @Inject + Logger log; + public static Set filterArtifacts( Set artifacts, Predicate predicate) { diff --git a/reports-rest/src/main/java/org/jboss/da/rest/LookupImpl.java b/reports-rest/src/main/java/org/jboss/da/rest/LookupImpl.java index d3050ac47..f4d33c402 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/LookupImpl.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/LookupImpl.java @@ -2,7 +2,6 @@ import java.util.Set; -import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; import org.jboss.da.common.CommunicationException; @@ -21,14 +20,15 @@ import io.opentelemetry.instrumentation.annotations.SpanAttribute; import io.opentelemetry.instrumentation.annotations.WithSpan; -import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; -@ApplicationScoped -@Slf4j public class LookupImpl implements Lookup { @Inject - private LookupGenerator lookupGenerator; + Logger log; + + @Inject + LookupGenerator lookupGenerator; @Override diff --git a/reports-rest/src/main/java/org/jboss/da/rest/ReportsRestActivator.java b/reports-rest/src/main/java/org/jboss/da/rest/ReportsRestActivator.java index cdc290003..08dd7304e 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/ReportsRestActivator.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/ReportsRestActivator.java @@ -1,5 +1,6 @@ package org.jboss.da.rest; +import jakarta.enterprise.context.ApplicationScoped; import jakarta.ws.rs.ApplicationPath; import jakarta.ws.rs.core.Application; import org.eclipse.microprofile.openapi.annotations.OpenAPIDefinition; @@ -24,6 +25,7 @@ * */ @ApplicationPath("/rest/v-" + REST_API_VERSION_REPORTS) +@ApplicationScoped @OpenAPIDefinition( info = @Info( title = "Dependency Analyzer", diff --git a/reports-rest/src/main/java/org/jboss/da/rest/api/VersionEndpoint.java b/reports-rest/src/main/java/org/jboss/da/rest/api/VersionEndpoint.java index 765670651..a7dff0217 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/api/VersionEndpoint.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/api/VersionEndpoint.java @@ -24,5 +24,5 @@ public interface VersionEndpoint { @Produces(value = MediaType.APPLICATION_JSON) @Operation(summary = "Get version of Dependency-Analysis") @APIResponse(content = @Content(schema = @Schema(implementation = ComponentVersion.class))) - public ComponentVersion getVersion(); + ComponentVersion getVersion(); } diff --git a/reports-rest/src/main/java/org/jboss/da/rest/exceptions/AllExceptionsMapper.java b/reports-rest/src/main/java/org/jboss/da/rest/exceptions/AllExceptionsMapper.java index facbbce63..64fefe478 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/exceptions/AllExceptionsMapper.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/exceptions/AllExceptionsMapper.java @@ -1,5 +1,6 @@ package org.jboss.da.rest.exceptions; +import jakarta.inject.Inject; import lombok.extern.slf4j.Slf4j; import org.apache.maven.scm.ScmException; @@ -12,6 +13,7 @@ import jakarta.ws.rs.core.Response; import jakarta.ws.rs.ext.ExceptionMapper; import jakarta.ws.rs.ext.Provider; +import org.slf4j.Logger; import java.util.NoSuchElementException; @@ -22,10 +24,12 @@ import static org.jboss.da.model.rest.ErrorMessage.ErrorType.SCM_ENDPOINT; import static org.jboss.da.model.rest.ErrorMessage.ErrorType.UNEXPECTED_SERVER_ERR; -@Slf4j @Provider public class AllExceptionsMapper implements ExceptionMapper { + @Inject + Logger log; + @Override public Response toResponse(Exception e) { if (e instanceof ValidationException) { // order of tests is important diff --git a/reports-rest/src/main/java/org/jboss/da/rest/facade/ReportsFacade.java b/reports-rest/src/main/java/org/jboss/da/rest/facade/ReportsFacade.java index 8ac904f74..b53bcca05 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/facade/ReportsFacade.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/facade/ReportsFacade.java @@ -56,7 +56,7 @@ public Set builtReport(BuiltReportRequest request) public AlignReport alignReport(AlignReportRequest request) throws ScmException, PomAnalysisException, ValidationException, CommunicationException { - validation.validation(request, "Getting allignment report for project specified in a repository URL failed"); + validation.validation(request, "Getting alignment report for project specified in a repository URL failed"); String pomPath = getPomPath(request.getPomPath()); SCMLocator locator = SCMLocator .generic(request.getScmUrl(), request.getRevision(), pomPath, request.getAdditionalRepos()); @@ -85,7 +85,7 @@ public Report scmReport(SCMReportRequest request) throws ScmException, PomAnalys Optional artifactReport = reportsGenerator.getReportFromSCM(request); - return artifactReport.map(Translate::toReport).orElseThrow(() -> new NoSuchElementException()); + return artifactReport.map(Translate::toReport).orElseThrow(NoSuchElementException::new); } public AdvancedReport advancedScmReport(SCMReportRequest request) @@ -107,7 +107,7 @@ public AdvancedReport advancedScmReport(SCMReportRequest request) Optional advancedArtifactReport = reportsGenerator.getAdvancedReportFromSCM(request); - return advancedArtifactReport.map(Translate::toAdvancedReport).orElseThrow(() -> new NoSuchElementException()); + return advancedArtifactReport.map(Translate::toAdvancedReport).orElseThrow(NoSuchElementException::new); } public List gavsReport(LookupGAVsRequest gavRequest) throws CommunicationException { diff --git a/reports-rest/src/main/java/org/jboss/da/rest/listings/BlackListImpl.java b/reports-rest/src/main/java/org/jboss/da/rest/listings/BlackListImpl.java index 3787ff896..72a69c161 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/listings/BlackListImpl.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/listings/BlackListImpl.java @@ -29,10 +29,10 @@ public class BlackListImpl implements BlackList { @Inject - private RestConvert convert; + RestConvert convert; @Inject - private BlackArtifactService blackService; + BlackArtifactService blackService; @Override @WithSpan() diff --git a/reports-rest/src/main/java/org/jboss/da/rest/websocket/WebsocketEndpointHandler.java b/reports-rest/src/main/java/org/jboss/da/rest/websocket/WebsocketEndpointHandler.java index 072729a91..ab90be13c 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/websocket/WebsocketEndpointHandler.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/websocket/WebsocketEndpointHandler.java @@ -4,13 +4,13 @@ public interface WebsocketEndpointHandler { - public void onMessage(Session session, String msg); + void onMessage(Session session, String msg); /** * Provides the methods the instance can handle. - * + * * @param methods */ - public void setMethods(Methods methods); + void setMethods(Methods methods); } diff --git a/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsEndpoint.java b/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsEndpoint.java index 58e6fd043..f69e45f49 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsEndpoint.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsEndpoint.java @@ -18,13 +18,13 @@ public class ReportsEndpoint { @Inject @ReportsWebsocketMethods - private Methods methods; + Methods methods; @Inject - private WebsocketEndpointHandler endpointHandler; + WebsocketEndpointHandler endpointHandler; @PostConstruct - private void init() { + void init() { endpointHandler.setMethods(methods); } diff --git a/source-code-manager/src/main/java/org/jboss/da/scm/api/SCMType.java b/source-code-manager/src/main/java/org/jboss/da/scm/api/SCMType.java index 0631b4772..606b34c8a 100644 --- a/source-code-manager/src/main/java/org/jboss/da/scm/api/SCMType.java +++ b/source-code-manager/src/main/java/org/jboss/da/scm/api/SCMType.java @@ -9,13 +9,13 @@ public enum SCMType { private final String provider; - private SCMType(String provider) { + SCMType(String provider) { this.provider = provider; } /** * Returns provided url in Maven SCM format. - * + * * @param url * @return */ diff --git a/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMCache.java b/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMCache.java index 4fc5c63c2..087b4df61 100644 --- a/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMCache.java +++ b/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMCache.java @@ -1,7 +1,5 @@ package org.jboss.da.scm.impl; -import lombok.extern.slf4j.Slf4j; - import jakarta.annotation.PreDestroy; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; @@ -15,14 +13,18 @@ import java.util.concurrent.TimeoutException; import io.quarkus.scheduler.Scheduled; +import org.slf4j.Logger; + /** * * @author Honza Brázdil <jbrazdil@redhat.com> */ @ApplicationScoped -@Slf4j public class SCMCache { + @Inject + Logger log; + @Inject ScmFacade scm; @@ -63,7 +65,7 @@ private void checkFutureCache() { } } - @Scheduled(every="10m") + @Scheduled(every = "10m") public void invalidateCache() { checkFutureCache(); Iterator> it = cache.entrySet().iterator(); diff --git a/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMSpecifier.java b/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMSpecifier.java index 59ed6c83f..f310eb6bb 100644 --- a/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMSpecifier.java +++ b/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMSpecifier.java @@ -13,7 +13,7 @@ @RequiredArgsConstructor @EqualsAndHashCode @ToString -class SCMSpecifier { +public class SCMSpecifier { @Getter private final SCMType scmType; From 7bc676dad2f38838654b55fdc239fdb850abab67 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Fri, 6 Mar 2026 09:51:17 +0000 Subject: [PATCH 10/23] Add Transactional to REST API --- reports-rest/src/main/java/org/jboss/da/rest/LookupImpl.java | 2 ++ .../src/main/java/org/jboss/da/rest/VersionEndpointImpl.java | 1 + .../src/main/java/org/jboss/da/rest/listings/BlackListImpl.java | 2 ++ .../src/main/java/org/jboss/da/rest/reports/Reports.java | 2 ++ 4 files changed, 7 insertions(+) diff --git a/reports-rest/src/main/java/org/jboss/da/rest/LookupImpl.java b/reports-rest/src/main/java/org/jboss/da/rest/LookupImpl.java index f4d33c402..1a6a3e44a 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/LookupImpl.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/LookupImpl.java @@ -3,6 +3,7 @@ import java.util.Set; import jakarta.inject.Inject; +import jakarta.transaction.Transactional; import org.jboss.da.common.CommunicationException; import org.jboss.da.lookup.model.MavenLatestRequest; @@ -22,6 +23,7 @@ import io.opentelemetry.instrumentation.annotations.WithSpan; import org.slf4j.Logger; +@Transactional public class LookupImpl implements Lookup { @Inject diff --git a/reports-rest/src/main/java/org/jboss/da/rest/VersionEndpointImpl.java b/reports-rest/src/main/java/org/jboss/da/rest/VersionEndpointImpl.java index dc07028ac..89754acc8 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/VersionEndpointImpl.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/VersionEndpointImpl.java @@ -5,6 +5,7 @@ import org.jboss.pnc.api.dto.ComponentVersion; import jakarta.enterprise.context.ApplicationScoped; + import java.time.ZonedDateTime; @ApplicationScoped diff --git a/reports-rest/src/main/java/org/jboss/da/rest/listings/BlackListImpl.java b/reports-rest/src/main/java/org/jboss/da/rest/listings/BlackListImpl.java index 72a69c161..34563b382 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/listings/BlackListImpl.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/listings/BlackListImpl.java @@ -9,6 +9,7 @@ import org.jboss.da.model.rest.ErrorMessage; import jakarta.inject.Inject; +import jakarta.transaction.Transactional; import jakarta.ws.rs.core.Response; import java.util.ArrayList; @@ -26,6 +27,7 @@ * * @author Honza Brázdil <jbrazdil@redhat.com> */ +@Transactional public class BlackListImpl implements BlackList { @Inject diff --git a/reports-rest/src/main/java/org/jboss/da/rest/reports/Reports.java b/reports-rest/src/main/java/org/jboss/da/rest/reports/Reports.java index 2490100ec..d2cd72846 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/reports/Reports.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/reports/Reports.java @@ -30,6 +30,7 @@ import org.slf4j.Logger; import jakarta.inject.Inject; +import jakarta.transaction.Transactional; import jakarta.validation.Valid; import jakarta.ws.rs.Consumes; import jakarta.ws.rs.POST; @@ -51,6 +52,7 @@ @Tag(name = "reports") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) +@Transactional public class Reports { @Inject From 6e19f1e74977405bfea5a7b19c9d9e33ceeb02c2 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Fri, 6 Mar 2026 09:53:06 +0000 Subject: [PATCH 11/23] Move logging code to logging subdirectory --- .../main/java/org/jboss/da/common/logging/AuditLogger.java | 5 ++++- .../jboss/da/common/{util => logging}/LoggerProducer.java | 2 +- .../java/org/jboss/da/common/{util => logging}/UserLog.java | 2 +- common/src/main/resources/da-config.json | 2 +- .../jboss/da/communication/indy/impl/IndyConnectorImpl.java | 2 +- .../org/jboss/da/communication/indy/IndyConnectorTest.java | 2 +- .../org/jboss/da/products/impl/AbstractProductProvider.java | 2 +- .../java/org/jboss/da/reports/impl/ReportsGeneratorImpl.java | 2 +- .../org/jboss/da/reports/impl/ReportsGeneratorImplTest.java | 2 +- 9 files changed, 12 insertions(+), 9 deletions(-) rename common/src/main/java/org/jboss/da/common/{util => logging}/LoggerProducer.java (93%) rename common/src/main/java/org/jboss/da/common/{util => logging}/UserLog.java (95%) diff --git a/common/src/main/java/org/jboss/da/common/logging/AuditLogger.java b/common/src/main/java/org/jboss/da/common/logging/AuditLogger.java index 25b208a1c..d8423d519 100644 --- a/common/src/main/java/org/jboss/da/common/logging/AuditLogger.java +++ b/common/src/main/java/org/jboss/da/common/logging/AuditLogger.java @@ -1,5 +1,8 @@ package org.jboss.da.common.logging; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + public class AuditLogger { - public static final org.slf4j.Logger LOG = org.slf4j.LoggerFactory.getLogger("org.jboss.da._audit_"); + public static final Logger LOG = LoggerFactory.getLogger("org.jboss.da._audit_"); } diff --git a/common/src/main/java/org/jboss/da/common/util/LoggerProducer.java b/common/src/main/java/org/jboss/da/common/logging/LoggerProducer.java similarity index 93% rename from common/src/main/java/org/jboss/da/common/util/LoggerProducer.java rename to common/src/main/java/org/jboss/da/common/logging/LoggerProducer.java index 675b43cb4..c5e61ab15 100644 --- a/common/src/main/java/org/jboss/da/common/util/LoggerProducer.java +++ b/common/src/main/java/org/jboss/da/common/logging/LoggerProducer.java @@ -1,4 +1,4 @@ -package org.jboss.da.common.util; +package org.jboss.da.common.logging; import jakarta.enterprise.inject.Produces; import jakarta.enterprise.inject.spi.InjectionPoint; diff --git a/common/src/main/java/org/jboss/da/common/util/UserLog.java b/common/src/main/java/org/jboss/da/common/logging/UserLog.java similarity index 95% rename from common/src/main/java/org/jboss/da/common/util/UserLog.java rename to common/src/main/java/org/jboss/da/common/logging/UserLog.java index 31b2dea30..63ac9b3b1 100644 --- a/common/src/main/java/org/jboss/da/common/util/UserLog.java +++ b/common/src/main/java/org/jboss/da/common/logging/UserLog.java @@ -3,7 +3,7 @@ * To change this template file, choose Tools | Templates * and open the template in the editor. */ -package org.jboss.da.common.util; +package org.jboss.da.common.logging; import static java.lang.annotation.ElementType.FIELD; import static java.lang.annotation.ElementType.METHOD; diff --git a/common/src/main/resources/da-config.json b/common/src/main/resources/da-config.json index 5f66a0b2f..917b35b31 100644 --- a/common/src/main/resources/da-config.json +++ b/common/src/main/resources/da-config.json @@ -5,7 +5,7 @@ { "@module-group": "global", "indyUrl": "", - "cartographerUrl": "" + "pncUrl": "" }, { "@module-group": "pnc", diff --git a/communication/src/main/java/org/jboss/da/communication/indy/impl/IndyConnectorImpl.java b/communication/src/main/java/org/jboss/da/communication/indy/impl/IndyConnectorImpl.java index 8661cc9cf..d794dcff1 100644 --- a/communication/src/main/java/org/jboss/da/communication/indy/impl/IndyConnectorImpl.java +++ b/communication/src/main/java/org/jboss/da/communication/indy/impl/IndyConnectorImpl.java @@ -31,7 +31,7 @@ import java.util.Optional; import java.util.Set; -import org.jboss.da.common.util.UserLog; +import org.jboss.da.common.logging.UserLog; @ApplicationScoped public class IndyConnectorImpl implements IndyConnector { diff --git a/communication/src/test/java/org/jboss/da/communication/indy/IndyConnectorTest.java b/communication/src/test/java/org/jboss/da/communication/indy/IndyConnectorTest.java index c66d17ba8..bb6aa0bd4 100644 --- a/communication/src/test/java/org/jboss/da/communication/indy/IndyConnectorTest.java +++ b/communication/src/test/java/org/jboss/da/communication/indy/IndyConnectorTest.java @@ -8,7 +8,7 @@ import org.jboss.da.common.json.GlobalConfig; import org.jboss.da.common.util.Configuration; import org.jboss.da.common.util.ConfigurationParseException; -import org.jboss.da.common.util.UserLog; +import org.jboss.da.common.logging.UserLog; import org.jboss.da.communication.indy.impl.IndyConnectorImpl; import org.jboss.da.communication.indy.impl.MetadataFileParser; import org.jboss.da.communication.pom.api.PomAnalyzer; diff --git a/reports-backend/src/main/java/org/jboss/da/products/impl/AbstractProductProvider.java b/reports-backend/src/main/java/org/jboss/da/products/impl/AbstractProductProvider.java index d063609e0..71e12ade4 100644 --- a/reports-backend/src/main/java/org/jboss/da/products/impl/AbstractProductProvider.java +++ b/reports-backend/src/main/java/org/jboss/da/products/impl/AbstractProductProvider.java @@ -11,7 +11,7 @@ import jakarta.inject.Inject; import org.jboss.da.common.json.LookupMode; -import org.jboss.da.common.util.UserLog; +import org.jboss.da.common.logging.UserLog; import org.jboss.da.listings.model.ProductSupportStatus; import org.jboss.da.model.rest.GA; import org.jboss.da.model.rest.GAV; diff --git a/reports-backend/src/main/java/org/jboss/da/reports/impl/ReportsGeneratorImpl.java b/reports-backend/src/main/java/org/jboss/da/reports/impl/ReportsGeneratorImpl.java index 6dbedc776..691f62d69 100644 --- a/reports-backend/src/main/java/org/jboss/da/reports/impl/ReportsGeneratorImpl.java +++ b/reports-backend/src/main/java/org/jboss/da/reports/impl/ReportsGeneratorImpl.java @@ -9,7 +9,7 @@ import org.jboss.da.common.json.LookupMode; import org.jboss.da.common.util.Configuration; import org.jboss.da.common.util.ConfigurationParseException; -import org.jboss.da.common.util.UserLog; +import org.jboss.da.common.logging.UserLog; import org.jboss.da.communication.indy.model.GAVDependencyTree; import org.jboss.da.communication.pom.PomAnalysisException; import org.jboss.da.communication.pom.api.PomAnalyzer; diff --git a/reports-backend/src/test/java/org/jboss/da/reports/impl/ReportsGeneratorImplTest.java b/reports-backend/src/test/java/org/jboss/da/reports/impl/ReportsGeneratorImplTest.java index 527c32713..40e7a3e93 100644 --- a/reports-backend/src/test/java/org/jboss/da/reports/impl/ReportsGeneratorImplTest.java +++ b/reports-backend/src/test/java/org/jboss/da/reports/impl/ReportsGeneratorImplTest.java @@ -5,7 +5,7 @@ import org.jboss.da.common.json.LookupMode; import org.jboss.da.common.util.Configuration; import org.jboss.da.common.util.ConfigurationParseException; -import org.jboss.da.common.util.UserLog; +import org.jboss.da.common.logging.UserLog; import org.jboss.da.communication.indy.FindGAVDependencyException; import org.jboss.da.communication.indy.api.IndyConnector; import org.jboss.da.communication.indy.model.GAVDependencyTree; From 6e59dc0c31a882cb4464d32d40a41fe91093e0aa Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Fri, 6 Mar 2026 15:17:08 +0000 Subject: [PATCH 12/23] Use native junit assertions --- reports-model/pom.xml | 5 --- .../model/response/DeserializationTest.java | 39 ++++++++++--------- 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/reports-model/pom.xml b/reports-model/pom.xml index 9b4662096..d9b84cc43 100644 --- a/reports-model/pom.xml +++ b/reports-model/pom.xml @@ -37,11 +37,6 @@ jsonassert test - - org.assertj - assertj-core - test - diff --git a/reports-model/src/test/java/org/jboss/da/reports/model/response/DeserializationTest.java b/reports-model/src/test/java/org/jboss/da/reports/model/response/DeserializationTest.java index 5e56f657b..12eb149a1 100644 --- a/reports-model/src/test/java/org/jboss/da/reports/model/response/DeserializationTest.java +++ b/reports-model/src/test/java/org/jboss/da/reports/model/response/DeserializationTest.java @@ -1,6 +1,5 @@ package org.jboss.da.reports.model.response; -import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import org.jboss.da.lookup.model.MavenLookupResult; @@ -12,10 +11,12 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; -import java.util.List; import java.util.stream.Collectors; -import static org.assertj.core.api.Assertions.*; + import static org.jboss.da.reports.model.request.VersionsNPMRequest.VersionFilter.MAJOR_MINOR; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertNotNull; public class DeserializationTest { @@ -30,9 +31,9 @@ public void deserializeLookupReport() throws IOException { ObjectMapper mapper = new ObjectMapper(); LookupReport reported = mapper.readValue(content, LookupReport.class); - assertThat(reported.getGav()).isNotNull(); - assertThat(reported.getGav().getArtifactId()).isEqualTo("xom"); - assertThat(reported.getGav().getVersion()).isEqualTo("1.2.5"); + assertNotNull(reported.getGav()); + assertEquals("xom", reported.getGav().getArtifactId()); + assertEquals("1.2.5", reported.getGav().getVersion()); } @Test @@ -44,9 +45,9 @@ public void deserializeLookupResult() throws IOException { ObjectMapper mapper = new ObjectMapper(); MavenLookupResult reported = mapper.readValue(content, MavenLookupResult.class); - assertThat(reported.getGav()).isNotNull(); - assertThat(reported.getGav().getArtifactId()).isEqualTo("xom"); - assertThat(reported.getGav().getVersion()).isEqualTo("1.2.5"); + assertNotNull(reported.getGav()); + assertEquals("xom", reported.getGav().getArtifactId()); + assertEquals("1.2.5", reported.getGav().getVersion()); } @Test @@ -57,8 +58,8 @@ public void deserializeNPMLookupReport() throws IOException { ObjectMapper mapper = new ObjectMapper(); NPMLookupReport reported = mapper.readValue(content, NPMLookupReport.class); - assertThat(reported.getNpmPackage()).isNotNull(); - assertThat(reported.getNpmPackage().getVersion()).isEqualTo("1.2.3"); + assertNotNull(reported.getNpmPackage()); + assertEquals("1.2.3", reported.getNpmPackage().getVersion()); } @Test @@ -69,8 +70,8 @@ public void deserializeNPMLookupResult() throws IOException { ObjectMapper mapper = new ObjectMapper(); NPMLookupResult reported = mapper.readValue(content, NPMLookupResult.class); - assertThat(reported.getNpmPackage()).isNotNull(); - assertThat(reported.getNpmPackage().getVersion()).isEqualTo("1.2.3"); + assertNotNull(reported.getNpmPackage()); + assertEquals("1.2.3", reported.getNpmPackage().getVersion()); } @Test @@ -80,12 +81,12 @@ public void deserializeVersionsNPMRequest() throws IOException { ObjectMapper mapper = new ObjectMapper(); VersionsNPMRequest request = mapper.readValue(content, VersionsNPMRequest.class); - assertThat(request.getMode()).isEqualTo("FOO"); - assertThat(request.getVersionFilter()).isEqualTo(MAJOR_MINOR); - assertThat(request.getPackages()).hasSize(1); - assertThat(request.getPackages().get(0).getName()).isEqualTo("abab"); - assertThat(request.getPackages().get(0).getVersion()).isEqualTo("1.2.3"); - assertThat(request.isIncludeAll()).isFalse(); + assertEquals("FOO", request.getMode()); + assertEquals(MAJOR_MINOR, request.getVersionFilter()); + assertEquals(1, request.getPackages().size()); + assertEquals("abab", request.getPackages().get(0).getName()); + assertEquals("1.2.3", request.getPackages().get(0).getVersion()); + assertFalse(request.isIncludeAll()); } protected Path getJsonResponseFile(String path, String variant) { From 841a6a30bf166f8584d3b99addaf6593c795fa87 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Fri, 6 Mar 2026 14:08:55 +0000 Subject: [PATCH 13/23] NCL-9544 - convert tests to QuarkusTest, Junit5 and in-memory H2. --- application/pom.xml | 49 +-- communication/pom.xml | 30 +- .../da/communication/GalleyMavenProducer.java | 5 - .../indy/impl/MetadataFileParser.java | 3 +- .../communication/pnc/PncConnectorImpl.java | 4 +- pom.xml | 105 ++++-- reports-backend/pom.xml | 27 -- .../da/reports/impl/ReportsGeneratorImpl.java | 20 +- reports-rest/pom.xml | 22 +- testsuite/pom.xml | 137 +++----- .../da/test/ArquillianDeploymentFactory.java | 318 +++++++++--------- .../da/test/client/AbstractClientApiTest.java | 31 +- .../test/client/rest/AbstractRestApiTest.java | 34 +- .../client/rest/AbstractRestReportsTest.java | 13 +- .../test/client/rest/RestApiIndexTestIT.java | 14 +- .../listings/AbstractRestApiListingTest.java | 16 +- .../listings/BugReporoducerRemoteTestIT.java | 10 +- .../rest/listings/RequestGenerator.java | 2 +- .../rest/listings/RestApiListingsTestIT.java | 22 +- ...cklist.java => LookupBlocklistTestIT.java} | 29 +- .../test/client/rest/lookup/LookupTestIT.java | 14 +- .../rest/reports/AlignRemoteTestIT.java | 13 +- .../reports/BugReporoducerRemoteTestIT.java | 16 +- .../reports/RestApiReportsRemoteTestIT.java | 24 +- .../client/ws/AbstractWebsocketApiTest.java | 38 +-- .../reports/AbstractWebsocketReportsTest.java | 12 +- .../ws/reports/WebsocketApiReportsTestIT.java | 6 +- .../da/test/server/AbstractServerTest.java | 18 +- .../da/test/server/DeploymentTestIT.java | 28 -- .../GAVComparatorRemoteTestIT.java | 15 +- .../communication/GalleyWrapperTestIT.java | 33 +- .../communication/IndyRemoteTestIT.java | 129 ++++--- .../server/communication/SCMRemoteTestIT.java | 46 +-- .../jboss/da/test/server/scm/SCMTestIT.java | 14 +- .../src/test/resources/application.properties | 26 ++ 35 files changed, 635 insertions(+), 688 deletions(-) rename testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/{LookupTestITBlocklist.java => LookupBlocklistTestIT.java} (54%) delete mode 100644 testsuite/src/test/java/org/jboss/da/test/server/DeploymentTestIT.java create mode 100644 testsuite/src/test/resources/application.properties diff --git a/application/pom.xml b/application/pom.xml index 59db1449e..1c3d2725e 100644 --- a/application/pom.xml +++ b/application/pom.xml @@ -21,40 +21,22 @@ - - - - io.quarkus - quarkus-hibernate-orm + quarkus-config-yaml io.quarkus quarkus-jdbc-postgresql - - io.quarkus - quarkus-arc - - - io.quarkus - quarkus-smallrye-openapi - - - io.quarkus - quarkus-oidc - - - - io.quarkus - quarkus-jaxb - - - - io.quarkus - quarkus-websockets - + + + + + + + + @@ -65,19 +47,6 @@ dependency-analysis - - - - - - - - - - - - - diff --git a/communication/pom.xml b/communication/pom.xml index 1c9e2e84c..674776e7c 100644 --- a/communication/pom.xml +++ b/communication/pom.xml @@ -26,12 +26,12 @@ org.jboss.pnc common - - - org.commonjava.atlas - atlas-identities - - + + + + + + org.jboss.pnc @@ -44,15 +44,10 @@ - - jakarta.xml.bind - jakarta.xml.bind-api - - - org.glassfish.jaxb - jaxb-runtime - test - + + + + com.fasterxml.jackson.core @@ -130,6 +125,11 @@ wiremock-standalone test + + org.glassfish.jaxb + jaxb-runtime + test + diff --git a/communication/src/main/java/org/jboss/da/communication/GalleyMavenProducer.java b/communication/src/main/java/org/jboss/da/communication/GalleyMavenProducer.java index f6455e3e7..1c4f460a9 100644 --- a/communication/src/main/java/org/jboss/da/communication/GalleyMavenProducer.java +++ b/communication/src/main/java/org/jboss/da/communication/GalleyMavenProducer.java @@ -160,11 +160,6 @@ public GlobalHttpConfiguration getGlobalHttpConfiguration() { return globalHttpConfiguration; } - // @Produces - // public MetricRegistry getMetricRegistry() { - // return metricRegistry; - // } - @Produces public TransportMetricConfig getTransportMetricConfig() { return transportMetricConfig; diff --git a/communication/src/main/java/org/jboss/da/communication/indy/impl/MetadataFileParser.java b/communication/src/main/java/org/jboss/da/communication/indy/impl/MetadataFileParser.java index a7fbe4add..467e5b400 100644 --- a/communication/src/main/java/org/jboss/da/communication/indy/impl/MetadataFileParser.java +++ b/communication/src/main/java/org/jboss/da/communication/indy/impl/MetadataFileParser.java @@ -1,6 +1,5 @@ package org.jboss.da.communication.indy.impl; -import org.jboss.da.common.CommunicationException; import org.jboss.da.communication.indy.model.VersionResponse; import org.jboss.da.communication.indy.model.npm.NpmMetadata; @@ -23,7 +22,7 @@ public class MetadataFileParser { @Inject - private ObjectMapper om; + ObjectMapper om; public static VersionResponse parseMavenMetadata(InputStream in) throws JAXBException { JAXBContext jaxbContext = JAXBContext.newInstance(VersionResponse.class); diff --git a/communication/src/main/java/org/jboss/da/communication/pnc/PncConnectorImpl.java b/communication/src/main/java/org/jboss/da/communication/pnc/PncConnectorImpl.java index d148c28ca..8f6d39a67 100644 --- a/communication/src/main/java/org/jboss/da/communication/pnc/PncConnectorImpl.java +++ b/communication/src/main/java/org/jboss/da/communication/pnc/PncConnectorImpl.java @@ -53,8 +53,8 @@ private Collection getArtifacts(String identifierPattern, Reposito repoType, mode.getBuildCategories()); } catch (RemoteResourceException ex) { - log.debug("Error when reading artifacts from PNC: " + ex, ex); - throw new RepositoryException("Error when reading artifacts from PNC: " + ex, ex); + log.error("Caught error when reading artifacts from PNC from {}", globalConfig.getPncUrl(), ex); + throw new RepositoryException("Error when reading artifacts from PNC from " + globalConfig.getPncUrl(), ex); } return artCollection.getAll(); } diff --git a/pom.xml b/pom.xml index d167542e1..c6370b246 100644 --- a/pom.xml +++ b/pom.xml @@ -103,6 +103,11 @@ + + org.jboss.da + application + ${project.version} + org.jboss.da common @@ -156,6 +161,16 @@ pnc-common ${version.pnc-common} jakarta + + + org.jboss.pnc + pnc-api + + + org.jboss.pnc + pnc-api-constants + + @@ -176,29 +191,49 @@ org.jboss.pnc common ${version.pnc} + + + + org.jboss.pnc + pnc-api + + org.jboss.pnc dto ${version.pnc} + + + + org.jboss.pnc + pnc-api + + org.jboss.pnc - rest-api - ${version.pnc} - - - org.jboss.pnc - rest-api - java-client - ${version.pnc} - - - org.jboss.pnc - rest-client + rest-client-jakarta ${version.pnc} + + + + + + + + + + + + + + + + + jakarta.annotation jakarta.annotation-api @@ -663,29 +698,29 @@ - - excludeRemoteTests - - - excludeRemoteTests - - - - testsuite - - - - - maven-failsafe-plugin - - - **/**RemoteTestIT.java - - - - - - + + + + + + + + + + + + + + + + + + + + + + + release diff --git a/reports-backend/pom.xml b/reports-backend/pom.xml index 2e05025e0..ab8901c8c 100644 --- a/reports-backend/pom.xml +++ b/reports-backend/pom.xml @@ -42,32 +42,6 @@ jakarta.ws.rs-api - - - - - - - - - - - - - - - - - - - - - - - - - - org.projectlombok lombok @@ -85,7 +59,6 @@ quarkus-junit5-mockito test - diff --git a/reports-backend/src/main/java/org/jboss/da/reports/impl/ReportsGeneratorImpl.java b/reports-backend/src/main/java/org/jboss/da/reports/impl/ReportsGeneratorImpl.java index 691f62d69..bef9d151f 100644 --- a/reports-backend/src/main/java/org/jboss/da/reports/impl/ReportsGeneratorImpl.java +++ b/reports-backend/src/main/java/org/jboss/da/reports/impl/ReportsGeneratorImpl.java @@ -91,37 +91,37 @@ public class ReportsGeneratorImpl implements ReportsGenerator { public static final String DEFAULT_SUFFIX = "redhat"; @Inject - private Logger log; + Logger log; @Inject @UserLog - private Logger userLog; + Logger userLog; @Inject - private BlackArtifactService blackArtifactService; + BlackArtifactService blackArtifactService; @Inject - private DependencyTreeGenerator dependencyTreeGenerator; + DependencyTreeGenerator dependencyTreeGenerator; @Inject - private SCM scmManager; + SCM scmManager; @Inject - private PomAnalyzer pomAnalyzer; + PomAnalyzer pomAnalyzer; @Inject - private SCMConnector scmConnector; + SCMConnector scmConnector; @Inject - private AggregatedProductProvider aggProductProvider; + AggregatedProductProvider aggProductProvider; @Inject @Pnc - private PncProductProvider pncProductProvider; + PncProductProvider pncProductProvider; @Inject @Repository - private RepositoryProductProvider repositoryProductProvider; + RepositoryProductProvider repositoryProductProvider; private Map modes; diff --git a/reports-rest/pom.xml b/reports-rest/pom.xml index b478e4a34..f60b157f3 100644 --- a/reports-rest/pom.xml +++ b/reports-rest/pom.xml @@ -24,6 +24,10 @@ provided + + io.quarkus + quarkus-rest-jackson + io.quarkus quarkus-websockets @@ -41,24 +45,10 @@ com.thetransactioncompany jsonrpc2-base - - - - - - - - - - - - - com.fasterxml.jackson.datatype jackson-datatype-jsr310 - @@ -68,10 +58,6 @@ io.smallrye jandex-maven-plugin - - - - diff --git a/testsuite/pom.xml b/testsuite/pom.xml index fc6f668e6..ae1e101a9 100644 --- a/testsuite/pom.xml +++ b/testsuite/pom.xml @@ -11,94 +11,68 @@ org.jboss.da - communication - + application + + + + + + + + + + + + + + + + + - org.jboss.da - source-code-manager - + org.projectlombok + lombok + provided + + - org.jboss.da - reports-backend - + io.quarkus + quarkus-junit5 + test + + + io.quarkiverse.wiremock + quarkus-wiremock-test + test - org.commonjava.atlas - atlas-identities + io.quarkiverse.wiremock + quarkus-wiremock + test - - io.quarkus - quarkus-junit5 + quarkus-test-h2 test - org.jboss.resteasy - resteasy-client + io.quarkus + quarkus-jdbc-h2 test - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + org.wiremock + wiremock-standalone + test + + + org.jboss.arquillian.junit5 + arquillian-junit5-container + test + org.jboss.resteasy resteasy-jackson2-provider @@ -109,11 +83,6 @@ jackson-databind test - - org.projectlombok - lombok - provided - org.skyscreamer jsonassert @@ -135,14 +104,12 @@ - maven-failsafe-plugin + org.apache.maven.plugins + maven-surefire-plugin - - ${testsuiteContainer} - 9154 - -Djboss.socket.binding.port-offset=100 - -Djboss.management.native.port=9054 - + + **/*TestIT.java + diff --git a/testsuite/src/test/java/org/jboss/da/test/ArquillianDeploymentFactory.java b/testsuite/src/test/java/org/jboss/da/test/ArquillianDeploymentFactory.java index ddf68e879..0749d28af 100644 --- a/testsuite/src/test/java/org/jboss/da/test/ArquillianDeploymentFactory.java +++ b/testsuite/src/test/java/org/jboss/da/test/ArquillianDeploymentFactory.java @@ -1,17 +1,17 @@ package org.jboss.da.test; -import org.jboss.arquillian.container.test.api.Testable; -import org.jboss.shrinkwrap.api.Archive; -import org.jboss.shrinkwrap.api.Assignable; -import org.jboss.shrinkwrap.api.ShrinkWrap; -import org.jboss.shrinkwrap.api.asset.FileAsset; -import org.jboss.shrinkwrap.api.exporter.ZipExporter; -import org.jboss.shrinkwrap.api.importer.ArchiveImportException; -import org.jboss.shrinkwrap.api.importer.ZipImporter; -import org.jboss.shrinkwrap.api.spec.EnterpriseArchive; -import org.jboss.shrinkwrap.api.spec.JavaArchive; -import org.jboss.shrinkwrap.api.spec.WebArchive; -import org.jboss.shrinkwrap.resolver.api.maven.Maven; +//import org.jboss.arquillian.container.test.api.Testable; +//import org.jboss.shrinkwrap.api.Archive; +//import org.jboss.shrinkwrap.api.Assignable; +//import org.jboss.shrinkwrap.api.ShrinkWrap; +//import org.jboss.shrinkwrap.api.asset.FileAsset; +//import org.jboss.shrinkwrap.api.exporter.ZipExporter; +//import org.jboss.shrinkwrap.api.importer.ArchiveImportException; +//import org.jboss.shrinkwrap.api.importer.ZipImporter; +//import org.jboss.shrinkwrap.api.spec.EnterpriseArchive; +//import org.jboss.shrinkwrap.api.spec.JavaArchive; +//import org.jboss.shrinkwrap.api.spec.WebArchive; +//import org.jboss.shrinkwrap.resolver.api.maven.Maven; import java.io.File; import java.io.IOException; @@ -37,150 +37,152 @@ public enum TestSide { private static final String TEST_EAR = DEPLOYMENT_NAME + ".ear"; - public EnterpriseArchive createDeployment(DepType type, TestSide testSide) { - File earProjectBuildDir = new File(new File(getProjectTopLevelDir(), "application"), "target"); - File earFile = new File(earProjectBuildDir, "dependency-analysis.ear"); - EnterpriseArchive ear = createFromZipFile(EnterpriseArchive.class, earFile, TEST_EAR); - updateEar(ear, type); - switch (testSide) { - case SERVER: - updateEarServer(ear); - } - if (isCreateArchiveCopy()) { - writeArchiveToFile(ear, new File("target", ear.getName())); - } - return ear; - } - - private void updateEarServer(EnterpriseArchive ear) { - File wiremockJar = Maven.resolver() - .loadPomFromFile("pom.xml") - .resolve("com.github.tomakehurst:wiremock-standalone") - .withoutTransitivity() - .asSingleFile(); - ear.addAsLibraries(wiremockJar); - } - - private void updateEar(EnterpriseArchive ear, DepType type) { - updateManifestResource(ear, "persistence.xml"); - updateManifestResource(ear, "application.xml"); - updateManifestResource(ear, "jboss-deployment-structure.xml"); - JavaArchive communicationJar = ear.getAsType(JavaArchive.class, "communication.jar"); - JavaArchive reportsBackendJar = ear.getAsType(JavaArchive.class, "reports-backend.jar"); - WebArchive reportsRestWar; - switch (type) { - case REPORTS: { - reportsRestWar = Testable.archiveToTest(ear.getAsType(WebArchive.class, "reports-rest.war")); - break; - } - default: - throw new IllegalArgumentException("Unknown dependency type " + type); - } - updateArchiveWithReplacements(communicationJar, "communication"); - updateArchiveWithReplacements(reportsBackendJar, "reports-backend"); - updateArchiveWithReplacements(reportsRestWar, "reports-rest"); - ear.addAsModule(createTestsuiteJar()); - } - - private void updateManifestResource(EnterpriseArchive ear, String resource) { - ear.delete("META-INF/" + resource); - ear.addAsManifestResource(new File("src/test/resources/META-INF/" + resource)); - } - - private void updateArchiveWithReplacements(Archive archive, String name) { - try { - Path replacements = Paths.get("src/test/replacements", name).toAbsolutePath(); - Files.find(replacements, Integer.MAX_VALUE, (p, a) -> a.isRegularFile()).forEach(p -> { - String relpath = replacements.relativize(p).toString(); - archive.delete(relpath); - archive.add(new FileAsset(p.toFile()), relpath); - }); - } catch (IOException ex) { - throw new RuntimeException(ex); - } - } - - private JavaArchive createTestsuiteJar() { - JavaArchive testsuiteJar = ShrinkWrap.create(JavaArchive.class, TEST_JAR); - testsuiteJar.addPackages(true, "org.jboss.da.test.server"); - testsuiteJar.addAsManifestResource(new File("src/test/resources/META-INF/beans.xml")); - return testsuiteJar; - } - - private File getProjectTopLevelDir() { - File projectTopLevelDir = new File("").getAbsoluteFile(); - if (!isProjectTopLevelDir(projectTopLevelDir)) { - projectTopLevelDir = projectTopLevelDir.getParentFile(); - if (!isProjectTopLevelDir(projectTopLevelDir)) { - throw new IllegalStateException( - "Can not find project top level directory from " + projectTopLevelDir.getAbsolutePath()); - } - } - return projectTopLevelDir; - } - - private boolean isProjectTopLevelDir(File dir) { - File testModule = dir == null ? null : new File(dir, "testsuite"); - return testModule != null && testModule.exists() && testModule.isDirectory(); - } - - private boolean isCreateArchiveCopy() { - return System.getProperty("createArchiveCopy") != null; - } - - private void writeArchiveToFile(Archive archive, File file) { - archive.as(ZipExporter.class).exportTo(file, true); - } - - // copied from org.jboss.shrinkwrap.api.ArchiveFactory.createFromZipFile(final Class type, final File - // archiveFile) - - // added parameter archiveName - /** - * Creates a new archive of the specified type as imported from the specified {@link File}. The file is expected to - * be encoded as ZIP (ie. JAR/WAR/EAR). The name of the archive will be set to {@link File#getName()}. The archive - * will be be backed by the {@link org.jboss.shrinkwrap.api.Configuration} specific to this - * {@link org.jboss.shrinkwrap.api.ArchiveFactory}. - * - * @param type The type of the archive e.g. {@link org.jboss.shrinkwrap.api.spec.WebArchive} - * @param archiveFile the archiveFile to use - * @param archiveName the name of created archive - * @return An {@link Assignable} view - * @throws IllegalArgumentException If either argument is not supplied, if the specified {@link File} does not - * exist, or is not a valid ZIP file - * @throws org.jboss.shrinkwrap.api.importer.ArchiveImportException If an error occurred during the import process - */ - public T createFromZipFile(final Class type, final File archiveFile, String archiveName) - throws IllegalArgumentException, ArchiveImportException { - // Precondition checks - if (type == null) { - throw new IllegalArgumentException("Type must be specified"); - } - if (archiveFile == null) { - throw new IllegalArgumentException("File must be specified"); - } - if (!archiveFile.exists()) { - throw new IllegalArgumentException("File for import does not exist: " + archiveFile.getAbsolutePath()); - } - if (archiveFile.isDirectory()) { - throw new IllegalArgumentException( - "File for import must not be a directory: " + archiveFile.getAbsolutePath()); - } - - // Construct ZipFile - final ZipFile zipFile; - try { - zipFile = new ZipFile(archiveFile); - } catch (final ZipException ze) { - throw new IllegalArgumentException( - "Does not appear to be a valid ZIP file: " + archiveFile.getAbsolutePath()); - } catch (final IOException ioe) { - throw new RuntimeException( - "I/O Error in importing new archive from ZIP: " + archiveFile.getAbsolutePath(), - ioe); - } - - // Import - return ShrinkWrap.create(type, archiveName).as(ZipImporter.class).importFrom(zipFile).as(type); - - } + // public EnterpriseArchive createDeployment(DepType type, TestSide testSide) { + // File earProjectBuildDir = new File(new File(getProjectTopLevelDir(), "application"), "target"); + // File earFile = new File(earProjectBuildDir, "dependency-analysis.ear"); + // EnterpriseArchive ear = createFromZipFile(EnterpriseArchive.class, earFile, TEST_EAR); + // updateEar(ear, type); + // switch (testSide) { + // case SERVER: + // updateEarServer(ear); + // } + // if (isCreateArchiveCopy()) { + // writeArchiveToFile(ear, new File("target", ear.getName())); + // } + // return ear; + // } + + // private void updateEarServer(EnterpriseArchive ear) { + // // File wiremockJar = Maven.resolver() + // // .loadPomFromFile("pom.xml") + // // .resolve("com.github.tomakehurst:wiremock-standalone") + // // .withoutTransitivity() + // // .asSingleFile(); + // // ear.addAsLibraries(wiremockJar); + // } + // + // private void updateEar(EnterpriseArchive ear, DepType type) { + // updateManifestResource(ear, "persistence.xml"); + // updateManifestResource(ear, "application.xml"); + // updateManifestResource(ear, "jboss-deployment-structure.xml"); + // JavaArchive communicationJar = ear.getAsType(JavaArchive.class, "communication.jar"); + // JavaArchive reportsBackendJar = ear.getAsType(JavaArchive.class, "reports-backend.jar"); + // WebArchive reportsRestWar; + // switch (type) { + // case REPORTS: { + // reportsRestWar = Testable.archiveToTest(ear.getAsType(WebArchive.class, "reports-rest.war")); + // break; + // } + // default: + // throw new IllegalArgumentException("Unknown dependency type " + type); + // } + // updateArchiveWithReplacements(communicationJar, "communication"); + // updateArchiveWithReplacements(reportsBackendJar, "reports-backend"); + // updateArchiveWithReplacements(reportsRestWar, "reports-rest"); + // ear.addAsModule(createTestsuiteJar()); + // } + // + // private void updateManifestResource(EnterpriseArchive ear, String resource) { + // ear.delete("META-INF/" + resource); + // ear.addAsManifestResource(new File("src/test/resources/META-INF/" + resource)); + // } + // + // private void updateArchiveWithReplacements(Archive archive, String name) { + // try { + // Path replacements = Paths.get("src/test/replacements", name).toAbsolutePath(); + // Files.find(replacements, Integer.MAX_VALUE, (p, a) -> a.isRegularFile()).forEach(p -> { + // String relpath = replacements.relativize(p).toString(); + // archive.delete(relpath); + // archive.add(new FileAsset(p.toFile()), relpath); + // }); + // } catch (IOException ex) { + // throw new RuntimeException(ex); + // } + // } + // + // private JavaArchive createTestsuiteJar() { + // JavaArchive testsuiteJar = ShrinkWrap.create(JavaArchive.class, TEST_JAR); + // testsuiteJar.addPackages(true, "org.jboss.da.test.server"); + // testsuiteJar.addAsManifestResource(new File("src/test/resources/META-INF/beans.xml")); + // return testsuiteJar; + // } + // + // private File getProjectTopLevelDir() { + // File projectTopLevelDir = new File("").getAbsoluteFile(); + // if (!isProjectTopLevelDir(projectTopLevelDir)) { + // projectTopLevelDir = projectTopLevelDir.getParentFile(); + // if (!isProjectTopLevelDir(projectTopLevelDir)) { + // throw new IllegalStateException( + // "Can not find project top level directory from " + projectTopLevelDir.getAbsolutePath()); + // } + // } + // return projectTopLevelDir; + // } + // + // private boolean isProjectTopLevelDir(File dir) { + // File testModule = dir == null ? null : new File(dir, "testsuite"); + // return testModule != null && testModule.exists() && testModule.isDirectory(); + // } + // + // private boolean isCreateArchiveCopy() { + // return System.getProperty("createArchiveCopy") != null; + // } + // + // private void writeArchiveToFile(Archive archive, File file) { + // archive.as(ZipExporter.class).exportTo(file, true); + // } + // + // // copied from org.jboss.shrinkwrap.api.ArchiveFactory.createFromZipFile(final Class type, final File + // // archiveFile) - + // // added parameter archiveName + // /** + // * Creates a new archive of the specified type as imported from the specified {@link File}. The file is expected + // to + // * be encoded as ZIP (ie. JAR/WAR/EAR). The name of the archive will be set to {@link File#getName()}. The archive + // * will be be backed by the {@link org.jboss.shrinkwrap.api.Configuration} specific to this + // * {@link org.jboss.shrinkwrap.api.ArchiveFactory}. + // * + // * @param type The type of the archive e.g. {@link org.jboss.shrinkwrap.api.spec.WebArchive} + // * @param archiveFile the archiveFile to use + // * @param archiveName the name of created archive + // * @return An {@link Assignable} view + // * @throws IllegalArgumentException If either argument is not supplied, if the specified {@link File} does not + // * exist, or is not a valid ZIP file + // * @throws org.jboss.shrinkwrap.api.importer.ArchiveImportException If an error occurred during the import process + // */ + // public T createFromZipFile(final Class type, final File archiveFile, String + // archiveName) + // throws IllegalArgumentException, ArchiveImportException { + // // Precondition checks + // if (type == null) { + // throw new IllegalArgumentException("Type must be specified"); + // } + // if (archiveFile == null) { + // throw new IllegalArgumentException("File must be specified"); + // } + // if (!archiveFile.exists()) { + // throw new IllegalArgumentException("File for import does not exist: " + archiveFile.getAbsolutePath()); + // } + // if (archiveFile.isDirectory()) { + // throw new IllegalArgumentException( + // "File for import must not be a directory: " + archiveFile.getAbsolutePath()); + // } + // + // // Construct ZipFile + // final ZipFile zipFile; + // try { + // zipFile = new ZipFile(archiveFile); + // } catch (final ZipException ze) { + // throw new IllegalArgumentException( + // "Does not appear to be a valid ZIP file: " + archiveFile.getAbsolutePath()); + // } catch (final IOException ioe) { + // throw new RuntimeException( + // "I/O Error in importing new archive from ZIP: " + archiveFile.getAbsolutePath(), + // ioe); + // } + // + // // Import + // return ShrinkWrap.create(type, archiveName).as(ZipImporter.class).importFrom(zipFile).as(type); + // + // } } diff --git a/testsuite/src/test/java/org/jboss/da/test/client/AbstractClientApiTest.java b/testsuite/src/test/java/org/jboss/da/test/client/AbstractClientApiTest.java index 8d32ff788..e2dda194d 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/AbstractClientApiTest.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/AbstractClientApiTest.java @@ -1,31 +1,26 @@ package org.jboss.da.test.client; +import com.github.tomakehurst.wiremock.junit5.WireMockExtension; import org.apache.http.entity.ContentType; -import org.jboss.arquillian.container.test.api.RunAsClient; -import org.jboss.arquillian.junit.Arquillian; import org.json.JSONException; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.RegisterExtension; import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; -import static org.junit.Assert.*; -import org.junit.Rule; - import java.io.File; import java.nio.file.Path; import java.nio.file.Paths; import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options; -import com.github.tomakehurst.wiremock.junit.WireMockRule; +import static org.junit.jupiter.api.Assertions.fail; -@RunWith(Arquillian.class) -@RunAsClient public abstract class AbstractClientApiTest { - @Rule - public WireMockRule wireMockRule = new WireMockRule( - options().port(8081).usingFilesUnderDirectory("src/test/resources/wiremock")); + @RegisterExtension + public static final WireMockExtension wireMockRule = WireMockExtension.newInstance() + .options(options().port(8081).usingFilesUnderDirectory("src/test/resources/wiremock")) + .build(); protected static final String ENCODING = "utf-8"; @@ -66,7 +61,7 @@ protected String readConfigurationValue(String name) { return System.getProperty(name); } - // TODO convert to builder pattern appropriatelly + // TODO convert to builder pattern appropriately protected static class ExpectedResponseFilenameBuilder { protected static final String DEFAULT_VARIANT = ""; @@ -120,7 +115,7 @@ private String convertContentType(ContentType contentType) { } - // TODO convert to builder pattern apropriatelly + // TODO convert to builder pattern appropriately protected static class RequestFilenameBuilder { protected static final String DEFAULT_VARIANT = ""; @@ -175,7 +170,7 @@ private String convertContentType(ContentType contentType) { } private String readHostUrl() { - return readConfigurationValue("testsuite.hostUrl", "localhost:8180"); + return readConfigurationValue("testsuite.hostUrl", "localhost:8083"); } protected abstract String readRestApiVersion(); @@ -208,12 +203,12 @@ protected void assertEqualsJson(String expected, String actual) { try { JSONAssert.assertEquals(expected, actual, JSONCompareMode.NON_EXTENSIBLE); } catch (JSONException ex) { - fail("The test wasn't able to compare JSON strings" + ex); + fail("The test wasn't able to compare JSON strings", ex); } } @Test - final public void testJsonEquals() throws JSONException { + final void testJsonEquals() throws JSONException { String s1 = "[{\"groupId\": \"com.google.guava\", \"artifactId\": \"guava\", \"version\": \"13.0.1\"}]"; String s2 = "[{\"groupId\": \"com.google.guava\", \"version\": \"13.0.1\", \"artifactId\": \"guava\"}]"; assertEqualsJson(s1, s2); diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/AbstractRestApiTest.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/AbstractRestApiTest.java index 6b7a9139e..420e68ae8 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/AbstractRestApiTest.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/AbstractRestApiTest.java @@ -1,19 +1,20 @@ package org.jboss.da.test.client.rest; +import io.quarkus.logging.Log; import org.apache.commons.io.FileUtils; import org.jboss.da.test.client.AbstractClientApiTest; -import org.jboss.resteasy.client.jaxrs.BasicAuthentication; -import javax.ws.rs.client.ClientBuilder; -import javax.ws.rs.client.ClientRequestFilter; -import javax.ws.rs.client.Entity; -import javax.ws.rs.client.Invocation; -import javax.ws.rs.client.WebTarget; -import javax.ws.rs.core.MediaType; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.client.ClientBuilder; +import jakarta.ws.rs.client.ClientRequestFilter; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.client.Invocation; +import jakarta.ws.rs.client.WebTarget; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; import java.io.File; import java.io.IOException; +import java.nio.charset.Charset; /** * @@ -33,8 +34,8 @@ public AbstractRestApiTest() { String userId = "user"; String password = "pass.1234"; - ClientRequestFilter crf = new BasicAuthentication(userId, password); - builder = ClientBuilder.newBuilder().register(crf); + ClientRequestFilter crf = null;// new BasicAuthentication(userId, password); + builder = ClientBuilder.newBuilder();// .register(crf); } private String readRestApiUrl() { @@ -49,22 +50,29 @@ protected WebTarget createWebTarget(String relativePath) { } protected Invocation.Builder createClientRequest(String relativePath) { + Log.warn("### Using request target " + restApiURL + relativePath); WebTarget target = builder.build().target(restApiURL + relativePath); return target.request(MediaType.APPLICATION_JSON_TYPE); } protected Response getResponseForRequest(String endpoint, String requestFile) throws IOException { File jsonRequestFile = getJsonRequestFile(endpoint, requestFile); + System.out.println( + "### Using file " + jsonRequestFile + " containing " + + FileUtils.readFileToString(jsonRequestFile, ENCODING)); final String entity = FileUtils.readFileToString(jsonRequestFile, ENCODING); return createClientRequest(endpoint).post(Entity.json(entity)); } - protected Response assertResponseForRequest(String endpoint, String requestFile) throws IOException, Exception { + protected Response assertResponseForRequest(String endpoint, String requestFile) throws Exception { Response response = getResponseForRequest(endpoint, requestFile); File expectedResponseFile = getJsonResponseFile(endpoint, requestFile); + System.out.println( + "### Expected from file " + expectedResponseFile + " is: " + + FileUtils.readFileToString(expectedResponseFile, Charset.defaultCharset())); final String actual = response.readEntity(String.class).trim(); - System.out.println("Actual: " + actual); - assertEqualsJson(FileUtils.readFileToString(expectedResponseFile).trim(), actual); + System.out.println("### Actual: " + actual); + assertEqualsJson(FileUtils.readFileToString(expectedResponseFile, Charset.defaultCharset()).trim(), actual); return response; } } diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/AbstractRestReportsTest.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/AbstractRestReportsTest.java index 22ae71baa..4d46bb82f 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/AbstractRestReportsTest.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/AbstractRestReportsTest.java @@ -2,24 +2,13 @@ import static org.jboss.da.common.Constants.REST_API_VERSION_REPORTS; -import org.jboss.arquillian.container.test.api.Deployment; -import org.jboss.da.test.ArquillianDeploymentFactory; -import org.jboss.da.test.ArquillianDeploymentFactory.DepType; -import org.jboss.da.test.ArquillianDeploymentFactory.TestSide; -import org.jboss.shrinkwrap.api.spec.EnterpriseArchive; - public abstract class AbstractRestReportsTest extends AbstractRestApiTest { private static final String DEFAULT_REST_API_VERSION = "v-" + REST_API_VERSION_REPORTS; - @Deployment - public static EnterpriseArchive createDeployment() { - return new ArquillianDeploymentFactory().createDeployment(DepType.REPORTS, TestSide.CLIENT); - } - @Override protected String getContextRoot() { - return ArquillianDeploymentFactory.DEPLOYMENT_NAME; + return "";// ArquillianDeploymentFactory.DEPLOYMENT_NAME; } @Override diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/RestApiIndexTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/RestApiIndexTestIT.java index 6c19965ae..4a823d05b 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/RestApiIndexTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/RestApiIndexTestIT.java @@ -1,19 +1,23 @@ package org.jboss.da.test.client.rest; -import org.junit.Test; +import io.quarkus.test.common.QuarkusTestResource; +import io.quarkus.test.h2.H2DatabaseTestResource; +import io.quarkus.test.junit.QuarkusTest; +import jakarta.ws.rs.core.Response; +import org.junit.jupiter.api.Test; import static org.jboss.da.common.Constants.COMMIT_HASH; import static org.jboss.da.common.Constants.DA_VERSION; import static org.jboss.da.common.Constants.REST_API_VERSION_BC; import static org.jboss.da.common.Constants.REST_API_VERSION_REPORTS; -import static org.junit.Assert.assertEquals; - -import javax.ws.rs.core.Response; +import static org.junit.jupiter.api.Assertions.assertEquals; +@QuarkusTest +@QuarkusTestResource(value = H2DatabaseTestResource.class, restrictToAnnotatedClass = true) public class RestApiIndexTestIT extends AbstractRestReportsTest { @Test - public void testIndexHtml() throws Exception { + public void testIndexHtml() { String path = "/"; Response response = createWebTarget(path).request().get(); diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/AbstractRestApiListingTest.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/AbstractRestApiListingTest.java index 142d7f768..2111ae37d 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/AbstractRestApiListingTest.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/AbstractRestApiListingTest.java @@ -2,19 +2,19 @@ import org.apache.commons.io.FileUtils; import org.jboss.da.test.client.rest.AbstractRestReportsTest; -import org.junit.After; +import org.junit.jupiter.api.AfterEach; import java.io.File; import java.io.IOException; import java.util.List; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; -import javax.ws.rs.client.Entity; -import javax.ws.rs.client.Invocation; -import javax.ws.rs.core.GenericType; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.client.Invocation; +import jakarta.ws.rs.core.GenericType; +import jakarta.ws.rs.core.Response; /** * @@ -38,7 +38,7 @@ protected enum OperationType { protected static final String PATH_BLACK_LISTINGS_GA = "/listings/blacklist/ga"; - @After + @AfterEach public void dropTables() throws Exception { List blacklistedArtifacts = getAllArtifactsFromList(PATH_BLACK_LIST); blacklistedArtifacts.forEach(gav -> removeGavFromList(PATH_BLACK_LISTINGS_GAV, gav)); diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/BugReporoducerRemoteTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/BugReporoducerRemoteTestIT.java index 8ad4e4829..507af8ea4 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/BugReporoducerRemoteTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/BugReporoducerRemoteTestIT.java @@ -5,18 +5,18 @@ */ package org.jboss.da.test.client.rest.listings; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.core.Response; /** * * @author Honza Brázdil <jbrazdil@redhat.com> */ -@Ignore +@Disabled public class BugReporoducerRemoteTestIT extends AbstractRestApiListingTest { private static final String PATH_LOOKUP_GAVS = "/reports/lookup/gavs"; diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/RequestGenerator.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/RequestGenerator.java index 046c14f5a..29ddd83fe 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/RequestGenerator.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/RequestGenerator.java @@ -1,6 +1,6 @@ package org.jboss.da.test.client.rest.listings; -import javax.enterprise.context.ApplicationScoped; +import jakarta.enterprise.context.ApplicationScoped; @ApplicationScoped public class RequestGenerator { diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/RestApiListingsTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/RestApiListingsTestIT.java index 949e1c3c0..af93244fb 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/RestApiListingsTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/RestApiListingsTestIT.java @@ -1,22 +1,26 @@ package org.jboss.da.test.client.rest.listings; +import io.quarkus.test.common.QuarkusTestResource; +import io.quarkus.test.h2.H2DatabaseTestResource; +import io.quarkus.test.junit.QuarkusTest; +import jakarta.ws.rs.core.Response; import org.json.JSONException; -import org.junit.Test; +import org.junit.jupiter.api.Test; import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; -import javax.ws.rs.core.Response; import java.io.File; import java.io.IOException; +import java.nio.charset.Charset; import static org.apache.commons.io.FileUtils.readFileToString; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.fail; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; +@QuarkusTest +@QuarkusTestResource(value = H2DatabaseTestResource.class, restrictToAnnotatedClass = true) public class RestApiListingsTestIT extends AbstractRestApiListingTest { - private final RequestGenerator generator = new RequestGenerator(); - @Test public void testAddBlackArtifact() throws Exception { Response response = manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gav", true); @@ -184,7 +188,7 @@ private Response getBlacklisted(String groupId, String artifactId) { /** * Non RedHat but OSGi compliant black artifact test - * + * * @throws Exception */ @Test @@ -198,7 +202,7 @@ public void testCheckNonRHBlackArtifact() throws Exception { /** * Non RedHat non OSGi compliant black artifact test - * + * * @throws Exception */ @Test @@ -222,7 +226,7 @@ protected void assertEqualsJson(String expected, String actual) { private void checkExpectedResponse(Response response, String expectedFile) throws IOException { File expectedResponseFile = getJsonResponseFile(PATH_FILES_LISTINGS_GAV, expectedFile); - assertEqualsJson(readFileToString(expectedResponseFile), response.readEntity(String.class)); + assertEqualsJson(readFileToString(expectedResponseFile, Charset.defaultCharset()), response.readEntity(String.class)); } } diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupTestITBlocklist.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupBlocklistTestIT.java similarity index 54% rename from testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupTestITBlocklist.java rename to testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupBlocklistTestIT.java index c61efa0c2..834729ee1 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupTestITBlocklist.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupBlocklistTestIT.java @@ -1,20 +1,24 @@ package org.jboss.da.test.client.rest.lookup; +import io.quarkus.test.common.QuarkusTestResource; +import io.quarkus.test.h2.H2DatabaseTestResource; +import io.quarkus.test.junit.QuarkusTest; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.Response; import org.jboss.da.test.client.rest.AbstractRestReportsTest; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Response; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import static org.jboss.da.test.client.rest.listings.AbstractRestApiListingTest.PATH_BLACK_LISTINGS_GAV; import static org.jboss.da.test.client.rest.lookup.LookupTestIT.PATH_LOOKUP_MAVEN; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; -public class LookupTestITBlocklist extends AbstractRestReportsTest { +@QuarkusTest +@QuarkusTestResource(value = H2DatabaseTestResource.class, restrictToAnnotatedClass = true) +public class LookupBlocklistTestIT extends AbstractRestReportsTest { - @Before + @BeforeEach public void prepareBlocklist() { String blocklist = "{\"groupId\":\"com.google.guava\",\"artifactId\":\"guava\",\"version\":\"13.0.1-redhat-2\"}"; createClientRequest(PATH_BLACK_LISTINGS_GAV).post(Entity.json(blocklist)).close(); @@ -22,11 +26,12 @@ public void prepareBlocklist() { @Test public void testGavLookupSingleWithBlocklist() throws Exception { - Response response = assertResponseForRequest(PATH_LOOKUP_MAVEN, "guava13Blocklist"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_LOOKUP_MAVEN, "guava13Blocklist")) { + assertEquals(200, response.getStatus()); + } } - @After + @AfterEach public void cleanBlocklist() { String blocklist = "{\"groupId\":\"com.google.guava\",\"artifactId\":\"guava\",\"version\":\"13.0.1-redhat-2\"}"; createClientRequest(PATH_BLACK_LISTINGS_GAV).method("DELTE", Entity.json(blocklist)).close(); diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupTestIT.java index 3326655e6..c3b36175f 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupTestIT.java @@ -1,14 +1,16 @@ package org.jboss.da.test.client.rest.lookup; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Response; - +import io.quarkus.test.common.QuarkusTestResource; +import io.quarkus.test.h2.H2DatabaseTestResource; +import io.quarkus.test.junit.QuarkusTest; +import jakarta.ws.rs.core.Response; import org.jboss.da.test.client.rest.AbstractRestReportsTest; -import org.junit.Test; +import org.junit.jupiter.api.Test; -import static org.jboss.da.test.client.rest.listings.AbstractRestApiListingTest.PATH_BLACK_LISTINGS_GAV; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +@QuarkusTest +@QuarkusTestResource(value = H2DatabaseTestResource.class, restrictToAnnotatedClass = true) public class LookupTestIT extends AbstractRestReportsTest { static final String PATH_LOOKUP_MAVEN = "/lookup/maven"; diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/AlignRemoteTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/AlignRemoteTestIT.java index 7e24570f5..4ab50b5a4 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/AlignRemoteTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/AlignRemoteTestIT.java @@ -5,16 +5,23 @@ */ package org.jboss.da.test.client.rest.reports; +import io.quarkus.test.common.QuarkusTestResource; +import io.quarkus.test.h2.H2DatabaseTestResource; +import io.quarkus.test.junit.QuarkusTest; import org.jboss.da.test.client.rest.AbstractRestReportsTest; -import static org.junit.Assert.assertEquals; -import org.junit.Test; -import javax.ws.rs.core.Response; +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Test; + +import jakarta.ws.rs.core.Response; /** * * @author sknot */ +@QuarkusTest +@QuarkusTestResource(value = H2DatabaseTestResource.class, restrictToAnnotatedClass = true) public class AlignRemoteTestIT extends AbstractRestReportsTest { @Test diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/BugReporoducerRemoteTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/BugReporoducerRemoteTestIT.java index dcd8613ac..9a46e0e76 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/BugReporoducerRemoteTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/BugReporoducerRemoteTestIT.java @@ -4,19 +4,19 @@ import org.apache.commons.io.FileUtils; import org.jboss.da.test.client.rest.AbstractRestReportsTest; -import static org.junit.Assert.assertEquals; -import org.junit.Assume; -import org.junit.Ignore; -import org.junit.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; +import org.junit.jupiter.api.Assumptions; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.Response; /** * * @author Honza Brázdil <jbrazdil@redhat.com> */ -@Ignore +@Disabled public class BugReporoducerRemoteTestIT extends AbstractRestReportsTest { private static final String ENCODING = "utf-8"; @@ -27,7 +27,7 @@ public class BugReporoducerRemoteTestIT extends AbstractRestReportsTest { @Test public void testDA176() throws Exception { final String repo = System.getenv("DA_hosted_repo"); - Assume.assumeTrue(repo != null); + Assumptions.assumeTrue(repo != null); String gavNonexisting = "keycloak-1.6.0.Final"; File jsonRequestFile = getJsonRequestFile(PATH_SCM, gavNonexisting); String json = FileUtils.readFileToString(jsonRequestFile, ENCODING); diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/RestApiReportsRemoteTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/RestApiReportsRemoteTestIT.java index 833c36a1e..94ecc722a 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/RestApiReportsRemoteTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/RestApiReportsRemoteTestIT.java @@ -1,22 +1,28 @@ package org.jboss.da.test.client.rest.reports; -import static org.junit.Assert.assertEquals; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; +import io.quarkus.test.common.QuarkusTestResource; +import io.quarkus.test.h2.H2DatabaseTestResource; +import io.quarkus.test.junit.QuarkusTest; +import jakarta.transaction.Transactional; import org.apache.commons.io.FileUtils; import org.jboss.da.test.client.rest.AbstractRestReportsTest; import org.json.JSONException; -import static org.junit.Assert.fail; -import org.junit.Assume; -import org.junit.Before; -import org.junit.Test; +import org.junit.jupiter.api.Assumptions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; -import javax.ws.rs.client.Entity; -import javax.ws.rs.core.Response; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.Response; import java.io.File; +@QuarkusTest +@QuarkusTestResource(value = H2DatabaseTestResource.class, restrictToAnnotatedClass = true) public class RestApiReportsRemoteTestIT extends AbstractRestReportsTest { private static final String ENCODING = "utf-8"; @@ -31,7 +37,7 @@ public class RestApiReportsRemoteTestIT extends AbstractRestReportsTest { private static final String PATH_SCM = "/reports/scm"; - @Before + @BeforeEach public void workaroundNoHttpResponseException() throws InterruptedException { Thread.sleep(2000); } @@ -87,7 +93,7 @@ public void testAlignReportBasic() throws Exception { @Test public void testScmOptionalRepository() throws Exception { final String repo = System.getenv("DA_hosted_repo"); - Assume.assumeTrue(repo != null); + Assumptions.assumeTrue(repo != null); File jsonRequestFile = getJsonRequestFile(PATH_SCM, "keycloak-1.6.0.Final"); String json = FileUtils.readFileToString(jsonRequestFile, ENCODING); json = json.replace("${DA-hosted-repo}", repo); diff --git a/testsuite/src/test/java/org/jboss/da/test/client/ws/AbstractWebsocketApiTest.java b/testsuite/src/test/java/org/jboss/da/test/client/ws/AbstractWebsocketApiTest.java index 0aa161726..bff24eed4 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/ws/AbstractWebsocketApiTest.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/ws/AbstractWebsocketApiTest.java @@ -1,26 +1,26 @@ package org.jboss.da.test.client.ws; import org.jboss.arquillian.container.test.api.RunAsClient; -import org.jboss.arquillian.junit.Arquillian; -import org.junit.runner.RunWith; +import org.jboss.arquillian.junit5.ArquillianExtension; +import org.junit.jupiter.api.extension.ExtendWith; -import static org.junit.Assert.*; +import static org.junit.jupiter.api.Assertions.*; import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.jboss.da.test.client.AbstractClientApiTest; -import org.junit.After; -import org.junit.Before; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; -import javax.websocket.ClientEndpointConfig; -import javax.websocket.CloseReason; -import javax.websocket.ContainerProvider; -import javax.websocket.DeploymentException; -import javax.websocket.Endpoint; -import javax.websocket.EndpointConfig; -import javax.websocket.MessageHandler; +import jakarta.websocket.ClientEndpointConfig; +import jakarta.websocket.CloseReason; +import jakarta.websocket.ContainerProvider; +import jakarta.websocket.DeploymentException; +import jakarta.websocket.Endpoint; +import jakarta.websocket.EndpointConfig; +import jakarta.websocket.MessageHandler; import java.net.URI; import java.net.URISyntaxException; @@ -40,8 +40,8 @@ import com.thetransactioncompany.jsonrpc2.JSONRPC2Request; import com.thetransactioncompany.jsonrpc2.JSONRPC2Response; -@RunWith(Arquillian.class) -@RunAsClient +//@ExtendWith(ArquillianExtension.class) +//@RunAsClient public abstract class AbstractWebsocketApiTest extends AbstractClientApiTest { protected final String webSocketUrl; @@ -52,7 +52,7 @@ public AbstractWebsocketApiTest() { this.webSocketUrl = readWebsocketApiUrl(); } - @Before + @BeforeEach public void setup() throws URISyntaxException, DeploymentException, IOException { URI uri = new URI(webSocketUrl); @@ -61,7 +61,7 @@ public void setup() throws URISyntaxException, DeploymentException, IOException ContainerProvider.getWebSocketContainer().connectToServer(endpoint, cec, uri); } - @After + @AfterEach public void cleanup() throws InterruptedException, IOException { if (endpoint != null) { endpoint.close(5, TimeUnit.SECONDS); @@ -96,10 +96,10 @@ protected static class JSONRPCWebsocketEndpoint extends Endpoint { private final AtomicLong sequence = new AtomicLong(); - private javax.websocket.Session session; + private jakarta.websocket.Session session; @Override - public void onOpen(javax.websocket.Session session, EndpointConfig config) { + public void onOpen(jakarta.websocket.Session session, EndpointConfig config) { System.out.printf("Got connect: %s%n", session); this.session = session; session.addMessageHandler(String.class, (MessageHandler.Whole) (String message) -> { @@ -122,7 +122,7 @@ public boolean close(int duration, TimeUnit unit) throws InterruptedException, I } @Override - public void onClose(javax.websocket.Session session, CloseReason closeReason) { + public void onClose(jakarta.websocket.Session session, CloseReason closeReason) { System.out.printf("Connection closed: %d - %s%n", closeReason); this.session = null; this.closeLatch.countDown(); // trigger latch diff --git a/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/AbstractWebsocketReportsTest.java b/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/AbstractWebsocketReportsTest.java index 283d04a27..56c030728 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/AbstractWebsocketReportsTest.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/AbstractWebsocketReportsTest.java @@ -2,21 +2,21 @@ import static org.jboss.da.common.Constants.REST_API_VERSION_BC; -import org.jboss.arquillian.container.test.api.Deployment; +//import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.da.test.ArquillianDeploymentFactory; import org.jboss.da.test.ArquillianDeploymentFactory.DepType; import org.jboss.da.test.ArquillianDeploymentFactory.TestSide; import org.jboss.da.test.client.ws.AbstractWebsocketApiTest; -import org.jboss.shrinkwrap.api.spec.EnterpriseArchive; +//import org.jboss.shrinkwrap.api.spec.EnterpriseArchive; public abstract class AbstractWebsocketReportsTest extends AbstractWebsocketApiTest { private static final String DEFAULT_REST_API_VERSION = "v-" + REST_API_VERSION_BC; - @Deployment - public static EnterpriseArchive createDeployment() { - return new ArquillianDeploymentFactory().createDeployment(DepType.REPORTS, TestSide.CLIENT); - } + // @Deployment + // public static EnterpriseArchive createDeployment() { + // return new ArquillianDeploymentFactory().createDeployment(DepType.REPORTS, TestSide.CLIENT); + // } @Override protected String getContextRoot() { diff --git a/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/WebsocketApiReportsTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/WebsocketApiReportsTestIT.java index d0b2ed725..d1884f7f8 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/WebsocketApiReportsTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/WebsocketApiReportsTestIT.java @@ -1,8 +1,10 @@ package org.jboss.da.test.client.ws.reports; import org.json.JSONException; -import static org.junit.Assert.fail; -import org.junit.Test; + +import static org.junit.jupiter.api.Assertions.fail; + +import org.junit.jupiter.api.Test; import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; diff --git a/testsuite/src/test/java/org/jboss/da/test/server/AbstractServerTest.java b/testsuite/src/test/java/org/jboss/da/test/server/AbstractServerTest.java index b72046277..5025e7867 100644 --- a/testsuite/src/test/java/org/jboss/da/test/server/AbstractServerTest.java +++ b/testsuite/src/test/java/org/jboss/da/test/server/AbstractServerTest.java @@ -5,10 +5,11 @@ import org.jboss.da.test.ArquillianDeploymentFactory.DepType; import org.jboss.da.test.ArquillianDeploymentFactory.TestSide; import org.jboss.shrinkwrap.api.spec.EnterpriseArchive; -import org.junit.Rule; +import org.junit.jupiter.api.extension.RegisterExtension; + +import com.github.tomakehurst.wiremock.junit5.WireMockExtension; import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options; -import com.github.tomakehurst.wiremock.junit.WireMockRule; /** * @@ -16,13 +17,8 @@ */ public class AbstractServerTest { - @Rule - public WireMockRule wireMockRule = new WireMockRule( - options().port(8081).usingFilesUnderDirectory("src/test/resources/wiremock")); - - @Deployment - public static EnterpriseArchive createDeployment() { - return new ArquillianDeploymentFactory().createDeployment(DepType.REPORTS, TestSide.SERVER); - } - + @RegisterExtension + public static final WireMockExtension wireMockRule = WireMockExtension.newInstance() + .options(options().port(8081).usingFilesUnderDirectory("src/test/resources/wiremock")) + .build(); } diff --git a/testsuite/src/test/java/org/jboss/da/test/server/DeploymentTestIT.java b/testsuite/src/test/java/org/jboss/da/test/server/DeploymentTestIT.java deleted file mode 100644 index 3cd7f1fdf..000000000 --- a/testsuite/src/test/java/org/jboss/da/test/server/DeploymentTestIT.java +++ /dev/null @@ -1,28 +0,0 @@ -package org.jboss.da.test.server; - -import org.jboss.arquillian.container.test.api.Deployment; -import org.jboss.arquillian.junit.Arquillian; -import org.jboss.da.test.ArquillianDeploymentFactory; -import org.jboss.da.test.ArquillianDeploymentFactory.DepType; -import org.jboss.da.test.ArquillianDeploymentFactory.TestSide; -import org.jboss.shrinkwrap.api.spec.EnterpriseArchive; -import org.junit.Test; -import org.junit.runner.RunWith; - -/** - * - * @author Honza Brázdil <jbrazdil@redhat.com> - */ -@RunWith(Arquillian.class) -public class DeploymentTestIT { - - @Deployment - public static EnterpriseArchive createDeployment() { - return new ArquillianDeploymentFactory().createDeployment(DepType.REPORTS, TestSide.SERVER); - } - - @Test - public void testDeployment() { - } - -} diff --git a/testsuite/src/test/java/org/jboss/da/test/server/communication/GAVComparatorRemoteTestIT.java b/testsuite/src/test/java/org/jboss/da/test/server/communication/GAVComparatorRemoteTestIT.java index fe1a6d8a2..989a86af4 100644 --- a/testsuite/src/test/java/org/jboss/da/test/server/communication/GAVComparatorRemoteTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/server/communication/GAVComparatorRemoteTestIT.java @@ -1,14 +1,19 @@ package org.jboss.da.test.server.communication; +import io.quarkus.test.junit.QuarkusTest; import org.jboss.da.model.rest.GAV; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; -import org.junit.Test; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; + +import org.junit.jupiter.api.Test; /** * * @author Stanislav Knot <sknot@redhat.com> */ +@QuarkusTest public class GAVComparatorRemoteTestIT { @Test @@ -16,7 +21,7 @@ public void test() { // identical strings GAV gav1 = new GAV("com.megginson.sax", "xml-writer", "0.2"); GAV gav2 = new GAV("com.megginson.sax", "xml-writer", "0.2"); - assertTrue(gav1.compareTo(gav2) == 0); + assertEquals(0, gav1.compareTo(gav2)); // first string is less gav1 = new GAV("com.megginson.sax", "xml-writer", "0.2"); @@ -52,7 +57,5 @@ public void test2() { assertTrue(gav2.compareTo(gav3) < 0); assertTrue(gav3.compareTo(gav4) < 0); assertTrue(gav4.compareTo(gav5) > 0); - } - } diff --git a/testsuite/src/test/java/org/jboss/da/test/server/communication/GalleyWrapperTestIT.java b/testsuite/src/test/java/org/jboss/da/test/server/communication/GalleyWrapperTestIT.java index 3977a13ac..cbbd9894b 100644 --- a/testsuite/src/test/java/org/jboss/da/test/server/communication/GalleyWrapperTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/server/communication/GalleyWrapperTestIT.java @@ -1,11 +1,12 @@ package org.jboss.da.test.server.communication; +import io.quarkus.test.junit.QuarkusTest; import org.apache.maven.scm.ScmException; import org.commonjava.maven.galley.maven.parse.MavenPomReader; import org.commonjava.maven.galley.maven.rel.MavenModelProcessor; import org.commonjava.maven.galley.maven.rel.ModelProcessorConfig; import org.commonjava.maven.galley.maven.spi.type.TypeMapper; -import org.jboss.arquillian.junit.Arquillian; +import org.jboss.arquillian.junit5.ArquillianExtension; import org.jboss.da.common.util.Configuration; import org.jboss.da.communication.indy.model.GAVDependencyTree; import org.jboss.da.communication.pom.GalleyWrapper; @@ -16,26 +17,26 @@ import org.jboss.da.scm.api.SCM; import org.jboss.da.scm.api.SCMType; import org.jboss.da.test.server.AbstractServerTest; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.extension.ExtendWith; -import javax.inject.Inject; +import jakarta.inject.Inject; import java.io.File; import java.io.IOException; import java.util.Collections; import java.util.HashSet; import java.util.Set; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; /** * * @author Honza Brázdil <jbrazdil@redhat.com> */ -@RunWith(Arquillian.class) +@QuarkusTest public class GalleyWrapperTestIT extends AbstractServerTest { private static final String VERSION = "0.5.1"; @@ -47,7 +48,7 @@ public class GalleyWrapperTestIT extends AbstractServerTest { private static final GAV TESTSUITE_GAV = new GAV("org.jboss.da", "testsuite", VERSION); @Inject - private SCM scm; + SCM scm; @Inject MavenPomReader mavenPomReader; @@ -56,23 +57,23 @@ public class GalleyWrapperTestIT extends AbstractServerTest { TypeMapper typeMapper; @Inject - private PomReader pomReader; + PomReader pomReader; @Inject - private PomAnalyzer pomAnalyzer; + PomAnalyzer pomAnalyzer; @Inject - private Configuration config; + Configuration config; @Inject - private ModelProcessorConfig disConf; + ModelProcessorConfig disConf; @Inject - private MavenModelProcessor processor; + MavenModelProcessor processor; private File clonedRepository; - @Before + @BeforeEach public void cloneRepo() throws ScmException { clonedRepository = scm .cloneRepository(SCMType.GIT, "https://github.com/project-ncl/dependency-analysis.git", VERSION); diff --git a/testsuite/src/test/java/org/jboss/da/test/server/communication/IndyRemoteTestIT.java b/testsuite/src/test/java/org/jboss/da/test/server/communication/IndyRemoteTestIT.java index 4b0eb1a1d..337da877a 100644 --- a/testsuite/src/test/java/org/jboss/da/test/server/communication/IndyRemoteTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/server/communication/IndyRemoteTestIT.java @@ -1,31 +1,29 @@ package org.jboss.da.test.server.communication; -import org.jboss.arquillian.junit.Arquillian; +import io.quarkus.test.junit.QuarkusTest; +import jakarta.inject.Inject; import org.jboss.da.common.CommunicationException; import org.jboss.da.communication.indy.api.IndyConnector; import org.jboss.da.model.rest.GA; import org.jboss.da.model.rest.GAV; import org.jboss.da.test.server.AbstractServerTest; -import org.junit.Before; -import org.junit.Test; -import org.junit.runner.RunWith; - -import javax.inject.Inject; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; import java.util.Arrays; import java.util.List; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertTrue; -@RunWith(Arquillian.class) +@QuarkusTest public class IndyRemoteTestIT extends AbstractServerTest { @Inject - private IndyConnector indyConnector; + IndyConnector indyConnector; - @Before + @BeforeEach public void workaroundNoHttpResponseException() throws InterruptedException { Thread.sleep(2000); } @@ -34,9 +32,9 @@ public void workaroundNoHttpResponseException() throws InterruptedException { public void testGetVersionsOfGA() throws CommunicationException { GA ga = new GA("org.jboss.ballroom", "ballroom"); List ballroomTest = Arrays - .asList(new String[] { "1.3.0.Final-redhat-1", "1.4.0.Final-redhat-1", "1.6.0.Final-redhat-1" }); + .asList("1.3.0.Final-redhat-1", "1.4.0.Final-redhat-1", "1.6.0.Final-redhat-1"); List result = indyConnector.getVersionsOfGA(ga); - assertTrue(result.size() > 0); + assertFalse(result.isEmpty()); // future releases might make the size of result to be bigger assertTrue(ballroomTest.size() <= result.size()); assertTrue(result.containsAll(ballroomTest)); @@ -45,58 +43,57 @@ public void testGetVersionsOfGA() throws CommunicationException { @Test public void testGetVersionsOfNpm() throws CommunicationException { List jqueryVersions = Arrays.asList( - new String[] { - "1.11.0", - "1.11.0-beta3", - "1.11.0-rc1", - "1.11.1", - "1.11.1-beta1", - "1.11.1-rc1", - "1.11.1-rc2", - "1.11.2", - "1.11.3", - "1.12.0", - "1.12.1", - "1.12.2", - "1.12.3", - "1.12.4", - "1.5.1", - "1.5.1-redhat-1", - "1.5.2", - "1.6.2-redhat-1", - "1.6.2", - "1.6.3", - "1.7.2", - "1.7.3", - "1.8.2", - "1.8.3", - "1.9.1", - "2.1.0", - "2.1.0-beta2", - "2.1.0-beta3", - "2.1.0-rc1", - "2.1.1", - "2.1.1-beta1", - "2.1.1-rc1", - "2.1.1-rc2", - "2.1.2", - "2.1.3", - "2.1.4", - "2.2.0", - "2.2.1", - "2.2.2", - "2.2.3", - "2.2.4", - "3.0.0", - "3.0.0-alpha1", - "3.0.0-beta1", - "3.0.0-rc1", - "3.1.0", - "3.1.1", - "3.2.0", - "3.2.1", - "3.3.0", - "3.3.1" }); + "1.11.0", + "1.11.0-beta3", + "1.11.0-rc1", + "1.11.1", + "1.11.1-beta1", + "1.11.1-rc1", + "1.11.1-rc2", + "1.11.2", + "1.11.3", + "1.12.0", + "1.12.1", + "1.12.2", + "1.12.3", + "1.12.4", + "1.5.1", + "1.5.1-redhat-1", + "1.5.2", + "1.6.2-redhat-1", + "1.6.2", + "1.6.3", + "1.7.2", + "1.7.3", + "1.8.2", + "1.8.3", + "1.9.1", + "2.1.0", + "2.1.0-beta2", + "2.1.0-beta3", + "2.1.0-rc1", + "2.1.1", + "2.1.1-beta1", + "2.1.1-rc1", + "2.1.1-rc2", + "2.1.2", + "2.1.3", + "2.1.4", + "2.2.0", + "2.2.1", + "2.2.2", + "2.2.3", + "2.2.4", + "3.0.0", + "3.0.0-alpha1", + "3.0.0-beta1", + "3.0.0-rc1", + "3.1.0", + "3.1.1", + "3.2.0", + "3.2.1", + "3.3.0", + "3.3.1"); List result = indyConnector.getVersionsOfNpm("jquery"); assertEquals(jqueryVersions.size(), result.size()); assertTrue(result.containsAll(jqueryVersions)); diff --git a/testsuite/src/test/java/org/jboss/da/test/server/communication/SCMRemoteTestIT.java b/testsuite/src/test/java/org/jboss/da/test/server/communication/SCMRemoteTestIT.java index 109bce2a2..cedef5b23 100644 --- a/testsuite/src/test/java/org/jboss/da/test/server/communication/SCMRemoteTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/server/communication/SCMRemoteTestIT.java @@ -1,33 +1,31 @@ package org.jboss.da.test.server.communication; -import org.jboss.da.test.server.AbstractServerTest; - -import javax.inject.Inject; - +import io.quarkus.test.junit.QuarkusTest; +import jakarta.inject.Inject; import org.apache.maven.scm.ScmException; -import org.jboss.arquillian.junit.Arquillian; import org.jboss.da.communication.indy.model.GAVDependencyTree; import org.jboss.da.communication.pom.PomAnalysisException; import org.jboss.da.communication.scm.api.SCMConnector; import org.jboss.da.model.rest.GAV; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertTrue; - -import org.junit.Test; -import org.junit.runner.RunWith; +import org.jboss.da.test.server.AbstractServerTest; +import org.junit.jupiter.api.Test; import java.util.Collections; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertFalse; +import static org.junit.jupiter.api.Assertions.assertThrows; +import static org.junit.jupiter.api.Assertions.assertTrue; + /** * * @author Honza Brázdil <jbrazdil@redhat.com> */ -@RunWith(Arquillian.class) +@QuarkusTest public class SCMRemoteTestIT extends AbstractServerTest { @Inject - private SCMConnector scmConnector; + SCMConnector scmConnector; @Test public void testGetDependencyTreeOfRevision() throws ScmException, PomAnalysisException { @@ -40,34 +38,38 @@ public void testGetDependencyTreeOfRevision() throws ScmException, PomAnalysisEx GAVDependencyTree tree = scmConnector .getDependencyTreeOfRevision(scmUrl, revision, "", Collections.emptyList()); - assertTrue(tree.getGav().equals(new GAV("org.jboss.da", "parent", "0.3.0"))); + assertEquals(tree.getGav(), new GAV("org.jboss.da", "parent", "0.3.0")); assertTrue(tree.getDependencies().isEmpty()); // with a slash in the pomPath GAVDependencyTree treeWithSlash = scmConnector .getDependencyTreeOfRevision(scmUrl, revision, "/", Collections.emptyList()); - assertTrue(treeWithSlash.getGav().equals(new GAV("org.jboss.da", "parent", "0.3.0"))); + assertEquals(treeWithSlash.getGav(), new GAV("org.jboss.da", "parent", "0.3.0")); assertTrue(treeWithSlash.getDependencies().isEmpty()); // with application in the pomPath GAVDependencyTree treeApplication = scmConnector .getDependencyTreeOfRevision(scmUrl, revision, "application", Collections.emptyList()); - assertTrue(treeApplication.getGav().equals(new GAV("org.jboss.da", "application", "0.3.0"))); + assertEquals(treeApplication.getGav(), new GAV("org.jboss.da", "application", "0.3.0")); assertFalse(treeApplication.getDependencies().isEmpty()); } - @Test(expected = ScmException.class) - public void testDependencyTreeOfRevisionWrongRevision() throws ScmException, PomAnalysisException { + @Test + public void testDependencyTreeOfRevisionWrongRevision() { String scmUrl = "https://github.com/project-ncl/does_not_exist.git"; - scmConnector.getDependencyTreeOfRevision(scmUrl, "", "", Collections.emptyList()); + assertThrows( + ScmException.class, + () -> scmConnector.getDependencyTreeOfRevision(scmUrl, "", "", Collections.emptyList())); } - @Test(expected = ScmException.class) - public void testDependencyTreeOfRevisionWrongRevision2() throws ScmException, PomAnalysisException { + @Test + public void testDependencyTreeOfRevisionWrongRevision2() { String scmUrl = "https://github.com/project-ncl/dependency-analysis.git"; String revision = "doesnotexist"; - scmConnector.getDependencyTreeOfRevision(scmUrl, revision, "", Collections.emptyList()); + assertThrows( + ScmException.class, + () -> scmConnector.getDependencyTreeOfRevision(scmUrl, revision, "", Collections.emptyList())); } } diff --git a/testsuite/src/test/java/org/jboss/da/test/server/scm/SCMTestIT.java b/testsuite/src/test/java/org/jboss/da/test/server/scm/SCMTestIT.java index 78890e695..17ad8d8c4 100644 --- a/testsuite/src/test/java/org/jboss/da/test/server/scm/SCMTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/server/scm/SCMTestIT.java @@ -1,14 +1,15 @@ package org.jboss.da.test.server.scm; -import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.assertTrue; +import io.quarkus.test.junit.QuarkusTest; import org.apache.commons.io.FileUtils; import org.apache.maven.scm.ScmException; import org.jboss.da.scm.api.SCMType; import org.jboss.da.scm.impl.ScmFacade; -import org.junit.Ignore; -import org.junit.Test; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; import java.io.BufferedReader; import java.io.InputStreamReader; @@ -19,6 +20,7 @@ import java.nio.file.Paths; import java.util.Scanner; +@QuarkusTest public class SCMTestIT { private void testDaGitClone(String scmUrl) throws Exception { @@ -51,7 +53,7 @@ private void testDaGitClone(String scmUrl) throws Exception { } @Test - @Ignore("Github discontinued support for git://") + @Disabled("Github discontinued support for git://") public void shouldCloneGitRepository_Git() throws Exception { testDaGitClone("git://github.com/project-ncl/dependency-analysis.git"); } @@ -110,7 +112,7 @@ public void shouldBeAbleToCloneGitTag() throws Exception { } } - @Ignore + @Disabled @Test public void shouldCloneSvnRepository() throws Exception { Path tempDir = Files.createTempDirectory("da_temp_svn_checkout"); diff --git a/testsuite/src/test/resources/application.properties b/testsuite/src/test/resources/application.properties new file mode 100644 index 000000000..d2e6abe16 --- /dev/null +++ b/testsuite/src/test/resources/application.properties @@ -0,0 +1,26 @@ + +# Datasource +quarkus.datasource.db-kind=h2 +quarkus.datasource.jdbc.url=jdbc:h2:mem:test +#quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:test +#quarkus.datasource.db-kind = postgresql +#quarkus.datasource.username=postgres +#quarkus.datasource.password= +#quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:62537/ +quarkus.datasource.username=admin +quarkus.datasource.password=admin + + +# Hibernate / JPA +quarkus.hibernate-orm.database.generation=${persistence.hibernate.hbm2ddl.auto:update} +quarkus.hibernate-orm.log.sql=false +quarkus.hibernate-orm.dialect=org.hibernate.dialect.H2Dialect + + +# Testing +quarkus.http.test-port=8083 + +# Logging +quarkus.log.level=DEBUG +#quarkus.log.console.level=DEBUG +#quarkus.log.console.format=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n From 4e435b6fde72f6ed95ea90e9f85ae8c87498214c Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Tue, 10 Mar 2026 17:16:32 +0000 Subject: [PATCH 14/23] Fix QuarkusTransaction issues --- .../org/jboss/da/products/api/ProductProvider.java | 2 +- .../da/products/impl/AggregatedProductProvider.java | 12 ++++++------ .../jboss/da/products/impl/PncProductProvider.java | 2 +- .../da/products/impl/RepositoryProductProvider.java | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/reports-backend/src/main/java/org/jboss/da/products/api/ProductProvider.java b/reports-backend/src/main/java/org/jboss/da/products/api/ProductProvider.java index 11548e6e2..05e31fd6b 100644 --- a/reports-backend/src/main/java/org/jboss/da/products/api/ProductProvider.java +++ b/reports-backend/src/main/java/org/jboss/da/products/api/ProductProvider.java @@ -8,7 +8,7 @@ /** * Product Provider is used for providing information about products and their artifacts. Each product is defined by its - * name and version and can have differen level of support. + * name and version and can have different level of support. * * @author Honza Brázdil <jbrazdil@redhat.com> */ diff --git a/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java b/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java index 4c21b5c09..59f47a40f 100644 --- a/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java +++ b/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java @@ -1,15 +1,15 @@ package org.jboss.da.products.impl; +import io.quarkus.narayana.jta.QuarkusTransaction; +import jakarta.enterprise.context.ApplicationScoped; +import jakarta.inject.Inject; import org.jboss.da.listings.model.ProductSupportStatus; import org.jboss.da.products.api.Artifact; import org.jboss.da.products.api.Product; import org.jboss.da.products.api.ProductArtifacts; import org.jboss.da.products.api.ProductProvider; -import org.jboss.da.products.impl.RepositoryProductProvider.Repository; import org.jboss.da.products.impl.PncProductProvider.Pnc; - -import jakarta.enterprise.context.ApplicationScoped; -import jakarta.inject.Inject; +import org.jboss.da.products.impl.RepositoryProductProvider.Repository; import org.slf4j.Logger; import java.util.ArrayList; @@ -125,7 +125,7 @@ private CompletableFuture aggregate( results.add(getter.apply(pncProductProvider)); CompletableFuture ret = new CompletableFuture<>(); - scheduler.schedule((Runnable) () -> tryToComplete(ret, results, collector), 1, TimeUnit.MILLISECONDS); + scheduler.schedule(() -> QuarkusTransaction.requiringNew().run(() -> tryToComplete(ret, results, collector)), 1, TimeUnit.MILLISECONDS); return ret; } @@ -154,7 +154,7 @@ private void tryToComplete( Thread.currentThread().interrupt(); } } else { - scheduler.schedule((Runnable) () -> tryToComplete(ret, results, collector), 1, TimeUnit.MILLISECONDS); + scheduler.schedule(() -> QuarkusTransaction.requiringNew().run(() -> tryToComplete(ret, results, collector)), 1, TimeUnit.MILLISECONDS); } } diff --git a/reports-backend/src/main/java/org/jboss/da/products/impl/PncProductProvider.java b/reports-backend/src/main/java/org/jboss/da/products/impl/PncProductProvider.java index 639d49b6f..f1c84303f 100644 --- a/reports-backend/src/main/java/org/jboss/da/products/impl/PncProductProvider.java +++ b/reports-backend/src/main/java/org/jboss/da/products/impl/PncProductProvider.java @@ -64,7 +64,7 @@ Stream getVersionsStreamNPM(String name) { @Qualifier @Retention(RUNTIME) @Target({ TYPE, METHOD, FIELD, PARAMETER }) - public static @interface Pnc { + public @interface Pnc { } } diff --git a/reports-backend/src/main/java/org/jboss/da/products/impl/RepositoryProductProvider.java b/reports-backend/src/main/java/org/jboss/da/products/impl/RepositoryProductProvider.java index 731c17c23..2000ab897 100644 --- a/reports-backend/src/main/java/org/jboss/da/products/impl/RepositoryProductProvider.java +++ b/reports-backend/src/main/java/org/jboss/da/products/impl/RepositoryProductProvider.java @@ -31,7 +31,7 @@ public class RepositoryProductProvider extends AbstractProductProvider { @Inject - private IndyConnector indyConnector; + IndyConnector indyConnector; @Override Stream getVersionsStreamMaven(GA ga) { From 3dcb90c11055638f8b068c8937b373400fed5043 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Tue, 10 Mar 2026 17:16:54 +0000 Subject: [PATCH 15/23] Remove META-INFO --- .../main/application/META-INF/application.xml | 28 --------------- .../src/main/application/META-INF/beans.xml | 7 ---- .../META-INF/jboss-deployment-structure.xml | 30 ---------------- .../main/application/META-INF/persistence.xml | 18 ---------- .../test/resources/META-INF/application.xml | 35 ------------------- .../src/test/resources/META-INF/beans.xml | 7 ---- .../META-INF/jboss-deployment-structure.xml | 33 ----------------- .../test/resources/META-INF/persistence.xml | 18 ---------- 8 files changed, 176 deletions(-) delete mode 100644 application/src/main/application/META-INF/application.xml delete mode 100644 application/src/main/application/META-INF/beans.xml delete mode 100644 application/src/main/application/META-INF/jboss-deployment-structure.xml delete mode 100644 application/src/main/application/META-INF/persistence.xml delete mode 100644 testsuite/src/test/resources/META-INF/application.xml delete mode 100644 testsuite/src/test/resources/META-INF/beans.xml delete mode 100644 testsuite/src/test/resources/META-INF/jboss-deployment-structure.xml delete mode 100644 testsuite/src/test/resources/META-INF/persistence.xml diff --git a/application/src/main/application/META-INF/application.xml b/application/src/main/application/META-INF/application.xml deleted file mode 100644 index 3b2c89c6f..000000000 --- a/application/src/main/application/META-INF/application.xml +++ /dev/null @@ -1,28 +0,0 @@ - - - Dependency-Analysis - Dependency-Analysis - - - common.jar - - - source-code-manager.jar - - - communication.jar - - - reports-model.jar - - - reports-backend.jar - - - - reports-rest.war - da - - - lib - diff --git a/application/src/main/application/META-INF/beans.xml b/application/src/main/application/META-INF/beans.xml deleted file mode 100644 index a695c672f..000000000 --- a/application/src/main/application/META-INF/beans.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/application/src/main/application/META-INF/jboss-deployment-structure.xml b/application/src/main/application/META-INF/jboss-deployment-structure.xml deleted file mode 100644 index 59c30dede..000000000 --- a/application/src/main/application/META-INF/jboss-deployment-structure.xml +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/application/src/main/application/META-INF/persistence.xml b/application/src/main/application/META-INF/persistence.xml deleted file mode 100644 index b72e7221d..000000000 --- a/application/src/main/application/META-INF/persistence.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - org.hibernate.jpa.HibernatePersistenceProvider - java:jboss/datasources/PostgresDA - org.jboss.da.listings.api.model.BlackArtifact - org.jboss.da.listings.api.model.GA - - - - - - - - - diff --git a/testsuite/src/test/resources/META-INF/application.xml b/testsuite/src/test/resources/META-INF/application.xml deleted file mode 100644 index 3ed90ab64..000000000 --- a/testsuite/src/test/resources/META-INF/application.xml +++ /dev/null @@ -1,35 +0,0 @@ - - - - Dependency-Analysis testsuite - Dependency-Analysis testsuite - - - common.jar - - - communication.jar - - - source-code-manager.jar - - - reports-model.jar - - - reports-backend.jar - - - - reports-rest.war - testsuite - - - - testsuite.jar - - lib - diff --git a/testsuite/src/test/resources/META-INF/beans.xml b/testsuite/src/test/resources/META-INF/beans.xml deleted file mode 100644 index a695c672f..000000000 --- a/testsuite/src/test/resources/META-INF/beans.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/testsuite/src/test/resources/META-INF/jboss-deployment-structure.xml b/testsuite/src/test/resources/META-INF/jboss-deployment-structure.xml deleted file mode 100644 index c99cfca56..000000000 --- a/testsuite/src/test/resources/META-INF/jboss-deployment-structure.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/testsuite/src/test/resources/META-INF/persistence.xml b/testsuite/src/test/resources/META-INF/persistence.xml deleted file mode 100644 index 65f2732d1..000000000 --- a/testsuite/src/test/resources/META-INF/persistence.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - org.hibernate.jpa.HibernatePersistenceProvider - java:jboss/datasources/ExampleDS - org.jboss.da.listings.api.model.BlackArtifact - org.jboss.da.listings.api.model.GA - - - - - - - - - From e05222ee45dd72ca76d5c5991d95dad8ed93fe04 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Wed, 11 Mar 2026 13:12:37 +0000 Subject: [PATCH 16/23] Remove unused code --- .../src/main/webapp/WEB-INF/beans.xml | 7 -- .../src/main/webapp/WEB-INF/jboss-web.xml | 5 - .../src/main/webapp/WEB-INF/oidc.json | 7 -- reports-rest/src/main/webapp/WEB-INF/web.xml | 95 ------------------- .../communication/META-INF/beans.xml | 10 -- .../reports-backend/META-INF/beans.xml | 10 -- .../reports-rest/WEB-INF/beans.xml | 10 -- .../replacements/reports-rest/WEB-INF/web.xml | 72 -------------- 8 files changed, 216 deletions(-) delete mode 100644 reports-rest/src/main/webapp/WEB-INF/beans.xml delete mode 100644 reports-rest/src/main/webapp/WEB-INF/jboss-web.xml delete mode 100644 reports-rest/src/main/webapp/WEB-INF/oidc.json delete mode 100644 reports-rest/src/main/webapp/WEB-INF/web.xml delete mode 100644 testsuite/src/test/replacements/communication/META-INF/beans.xml delete mode 100644 testsuite/src/test/replacements/reports-backend/META-INF/beans.xml delete mode 100644 testsuite/src/test/replacements/reports-rest/WEB-INF/beans.xml delete mode 100644 testsuite/src/test/replacements/reports-rest/WEB-INF/web.xml diff --git a/reports-rest/src/main/webapp/WEB-INF/beans.xml b/reports-rest/src/main/webapp/WEB-INF/beans.xml deleted file mode 100644 index a695c672f..000000000 --- a/reports-rest/src/main/webapp/WEB-INF/beans.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - diff --git a/reports-rest/src/main/webapp/WEB-INF/jboss-web.xml b/reports-rest/src/main/webapp/WEB-INF/jboss-web.xml deleted file mode 100644 index 90133e5ae..000000000 --- a/reports-rest/src/main/webapp/WEB-INF/jboss-web.xml +++ /dev/null @@ -1,5 +0,0 @@ - - true - \ No newline at end of file diff --git a/reports-rest/src/main/webapp/WEB-INF/oidc.json b/reports-rest/src/main/webapp/WEB-INF/oidc.json deleted file mode 100644 index 3c80b231d..000000000 --- a/reports-rest/src/main/webapp/WEB-INF/oidc.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "client-id" : "${env.OIDC_CLIENT_ID:myclient}", - "provider-url" : "${env.OIDC_PROVIDER_URL:http://localhost:8080/realms/myrealm}", - "public-client" : "true", - "principal-attribute" : "preferred_username", - "ssl-required" : "EXTERNAL" -} \ No newline at end of file diff --git a/reports-rest/src/main/webapp/WEB-INF/web.xml b/reports-rest/src/main/webapp/WEB-INF/web.xml deleted file mode 100644 index d53e4152d..000000000 --- a/reports-rest/src/main/webapp/WEB-INF/web.xml +++ /dev/null @@ -1,95 +0,0 @@ - - - reports-rest - - - BASIC?silent=true,OIDC - - - - - - All Access for users on GET - /rest/* - GET - OPTIONS - - - - - - - Access to reports for all users on POST - /rest/v-${version.reports.rest}/reports/* - POST - - - - - Access to lookups for all users on POST - /rest/v-${version.reports.rest}/lookup/* - POST - - - - - - Access to lookups for all users on POST - /rest/v-${version.reports.rest}/listings/blacklist/gav - POST - DELETE - - - pnc-app-da-user - - - - - - - Authorized users Access - /rest/* - DELETE - PUT - TRACE - POST - - - * - - - - - * - - - pnc-app-da-user - - - - - cross-origin - org.eclipse.jetty.servlets.CrossOriginFilter - - allowedMethods - GET,POST,OPTIONS,HEAD - - - allowedHeaders - X-Requested-With,Content-Type,Accept,Origin,Authorization - - - chainPreflight - false - - - - cross-origin - ${corsUrlPattern} - - - org.wildfly.security.http.oidc.OidcConfigurationServletListener - - diff --git a/testsuite/src/test/replacements/communication/META-INF/beans.xml b/testsuite/src/test/replacements/communication/META-INF/beans.xml deleted file mode 100644 index 71cb733ab..000000000 --- a/testsuite/src/test/replacements/communication/META-INF/beans.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - org.jboss.da.communication.auth.impl.JAASAuthenticatorService - - diff --git a/testsuite/src/test/replacements/reports-backend/META-INF/beans.xml b/testsuite/src/test/replacements/reports-backend/META-INF/beans.xml deleted file mode 100644 index 71cb733ab..000000000 --- a/testsuite/src/test/replacements/reports-backend/META-INF/beans.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - org.jboss.da.communication.auth.impl.JAASAuthenticatorService - - diff --git a/testsuite/src/test/replacements/reports-rest/WEB-INF/beans.xml b/testsuite/src/test/replacements/reports-rest/WEB-INF/beans.xml deleted file mode 100644 index 71cb733ab..000000000 --- a/testsuite/src/test/replacements/reports-rest/WEB-INF/beans.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - org.jboss.da.communication.auth.impl.JAASAuthenticatorService - - diff --git a/testsuite/src/test/replacements/reports-rest/WEB-INF/web.xml b/testsuite/src/test/replacements/reports-rest/WEB-INF/web.xml deleted file mode 100644 index c8f2e3e3d..000000000 --- a/testsuite/src/test/replacements/reports-rest/WEB-INF/web.xml +++ /dev/null @@ -1,72 +0,0 @@ - - - - reports-rest - - - - - All Access for users on GET - /rest/* - GET - OPTIONS - - - - - - - Access to blacklist for Authorized users on GET - /rest/v-${version.reports.rest}/reports/* - POST - - - - - - - Authorized users Access - /rest/* - DELETE - PUT - TRACE - POST - - - * - - - - - BASIC - ApplicationRealm - - - - * - - - - - cross-origin - org.eclipse.jetty.servlets.CrossOriginFilter - - allowedMethods - GET,POST,OPTIONS,HEAD - - - allowedHeaders - X-Requested-With,Content-Type,Accept,Origin,Authorization - - - chainPreflight - false - - - - cross-origin - ${corsUrlPattern} - - From 35a2fbb4270e543355afb8f667a085af65e60975 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Wed, 11 Mar 2026 09:40:51 +0000 Subject: [PATCH 17/23] Update application.yaml and beans.xml --- .../src/main/resources/META-INF/beans.xml | 6 ++++ .../src/main/resources/application.yaml | 30 +++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 application/src/main/resources/META-INF/beans.xml create mode 100644 application/src/main/resources/application.yaml diff --git a/application/src/main/resources/META-INF/beans.xml b/application/src/main/resources/META-INF/beans.xml new file mode 100644 index 000000000..9120302dc --- /dev/null +++ b/application/src/main/resources/META-INF/beans.xml @@ -0,0 +1,6 @@ + + + diff --git a/application/src/main/resources/application.yaml b/application/src/main/resources/application.yaml new file mode 100644 index 000000000..00eb703d2 --- /dev/null +++ b/application/src/main/resources/application.yaml @@ -0,0 +1,30 @@ +quarkus: + http: + enable-compression: true + enable-decompression: true + websocket: + dispatch-to-worker: true + hibernate-orm: + log: + sql: false + database: + generation: ${persistence.hibernate.hbm2ddl.auto:update} + # graceful shutdown in case Quarkus is still processing requests + shutdown: + timeout: 30 + index-dependency: + pnc-jandex: + group-id: "org.jboss.pnc" + log: + console: + format: "%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c{3.}] (%t) %s%e%n" + json: + ~: false + exception-output-type: formatted + category: + "org.jboss.pnc": + level: DEBUG + "com.arjuna.ats.jta": + # Set to WARN if you want to see all the exceptions + level: ERROR + level: INFO From 448c04f223b4074a077a4cd72fe810747cd26687 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Tue, 10 Mar 2026 17:17:53 +0000 Subject: [PATCH 18/23] Fix wiremock dependencies --- pom.xml | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/pom.xml b/pom.xml index c6370b246..b3a049275 100644 --- a/pom.xml +++ b/pom.xml @@ -91,6 +91,8 @@ 17 17 3.21.4 + 1.5.3 + 1.11.2 /* @@ -475,11 +477,13 @@ org.skyscreamer jsonassert 1.2.3 + test org.wiremock wiremock-standalone - 3.13.2 + + 3.6.0 org.jboss.arquillian.junit5 @@ -487,9 +491,16 @@ 1.10.0.Final - org.assertj - assertj-core - 3.11.1 + io.quarkiverse.wiremock + quarkus-wiremock-test + 1.5.3 + test + + + io.quarkiverse.wiremock + quarkus-wiremock + 1.5.3 + test From 28c7a7b4d0e407f9ed201b95f93b35bf5c23ddc5 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Wed, 11 Mar 2026 09:25:34 +0000 Subject: [PATCH 19/23] Fix tests and code cleanup --- .../impl/AggregatedProductProvider.java | 10 +- .../da/reports/impl/LookupGeneratorImpl.java | 8 +- .../da/reports/impl/ReportsGeneratorImpl.java | 58 +++--- .../jboss/da/rest/facade/ReportsFacade.java | 6 +- .../org/jboss/da/rest/reports/Reports.java | 27 ++- .../DefaultWebsocketEndpointHandler.java | 4 +- .../org/jboss/da/rest/websocket/Method.java | 10 +- testsuite/pom.xml | 22 -- .../da/test/ArquillianDeploymentFactory.java | 188 ------------------ .../client/rest/AbstractRestReportsTest.java | 2 +- .../rest/listings/RestApiListingsTestIT.java | 4 +- .../reports/RestApiReportsRemoteTestIT.java | 12 +- .../client/ws/AbstractWebsocketApiTest.java | 48 +++-- .../reports/AbstractWebsocketReportsTest.java | 16 +- .../ws/reports/WebsocketApiReportsTestIT.java | 3 + .../da/test/server/AbstractServerTest.java | 8 +- .../server/communication/SCMRemoteTestIT.java | 6 +- .../src/test/resources/application.properties | 12 +- testsuite/src/test/resources/arquillian.xml | 24 --- 19 files changed, 104 insertions(+), 364 deletions(-) delete mode 100644 testsuite/src/test/java/org/jboss/da/test/ArquillianDeploymentFactory.java delete mode 100644 testsuite/src/test/resources/arquillian.xml diff --git a/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java b/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java index 59f47a40f..345f26fe8 100644 --- a/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java +++ b/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java @@ -125,7 +125,10 @@ private CompletableFuture aggregate( results.add(getter.apply(pncProductProvider)); CompletableFuture ret = new CompletableFuture<>(); - scheduler.schedule(() -> QuarkusTransaction.requiringNew().run(() -> tryToComplete(ret, results, collector)), 1, TimeUnit.MILLISECONDS); + scheduler.schedule( + () -> QuarkusTransaction.requiringNew().run(() -> tryToComplete(ret, results, collector)), + 1, + TimeUnit.MILLISECONDS); return ret; } @@ -154,7 +157,10 @@ private void tryToComplete( Thread.currentThread().interrupt(); } } else { - scheduler.schedule(() -> QuarkusTransaction.requiringNew().run(() -> tryToComplete(ret, results, collector)), 1, TimeUnit.MILLISECONDS); + scheduler.schedule( + () -> QuarkusTransaction.requiringNew().run(() -> tryToComplete(ret, results, collector)), + 1, + TimeUnit.MILLISECONDS); } } diff --git a/reports-backend/src/main/java/org/jboss/da/reports/impl/LookupGeneratorImpl.java b/reports-backend/src/main/java/org/jboss/da/reports/impl/LookupGeneratorImpl.java index e5d43600b..fce5b59db 100644 --- a/reports-backend/src/main/java/org/jboss/da/reports/impl/LookupGeneratorImpl.java +++ b/reports-backend/src/main/java/org/jboss/da/reports/impl/LookupGeneratorImpl.java @@ -48,17 +48,17 @@ public class LookupGeneratorImpl implements LookupGenerator { @Inject @RepositoryProductProvider.Repository - private RepositoryProductProvider repositoryProductProvider; + RepositoryProductProvider repositoryProductProvider; @Inject @PncProductProvider.Pnc - private PncProductProvider pncProductProvider; + PncProductProvider pncProductProvider; @Inject - private AggregatedProductProvider aggProductProvider; + AggregatedProductProvider aggProductProvider; @Inject - private BlackArtifactService blackArtifactService; + BlackArtifactService blackArtifactService; private Map modes; diff --git a/reports-backend/src/main/java/org/jboss/da/reports/impl/ReportsGeneratorImpl.java b/reports-backend/src/main/java/org/jboss/da/reports/impl/ReportsGeneratorImpl.java index bef9d151f..cfcec4723 100644 --- a/reports-backend/src/main/java/org/jboss/da/reports/impl/ReportsGeneratorImpl.java +++ b/reports-backend/src/main/java/org/jboss/da/reports/impl/ReportsGeneratorImpl.java @@ -19,6 +19,7 @@ import org.jboss.da.model.rest.GA; import org.jboss.da.model.rest.GAV; import org.jboss.da.model.rest.NPMPackage; +import org.jboss.da.products.api.Artifact; import org.jboss.da.products.api.MavenArtifact; import org.jboss.da.products.api.NPMArtifact; import org.jboss.da.products.api.Product; @@ -67,6 +68,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.TreeSet; @@ -90,9 +92,6 @@ public class ReportsGeneratorImpl implements ReportsGenerator { public static final String DEFAULT_SUFFIX = "redhat"; - @Inject - Logger log; - @Inject @UserLog Logger userLog; @@ -123,7 +122,7 @@ public class ReportsGeneratorImpl implements ReportsGenerator { @Repository RepositoryProductProvider repositoryProductProvider; - private Map modes; + private final Map modes; @Inject public ReportsGeneratorImpl(Configuration config) throws ConfigurationParseException { @@ -162,7 +161,7 @@ private Optional createReport(GAVDependencyTree dt) throws Commu private void addDependencyReports( ArtifactReport ar, Set dependencyTree, - Set nodesVisited) throws CommunicationException { + Set nodesVisited) { for (GAVDependencyTree dt : dependencyTree) { ArtifactReport dar = new ArtifactReport(dt.getGav()); @@ -200,7 +199,7 @@ private CompletableFuture fillArtifactReport(ArtifactReport report) { CompletableFuture fillWhitelist = artifacts.thenAccept(pas -> { List whiteProducts = pas.stream() - .map(pa -> pa.getProduct()) + .map(ProductArtifacts::getProduct) .filter(p -> !UNKNOWN.equals(p)) .collect(Collectors.toList()); report.setWhitelisted(whiteProducts); @@ -217,7 +216,7 @@ private CompletableFuture analyzeVersions( return availableArtifacts.thenApply(pas -> { List versions = pas.stream() .flatMap(as -> as.getArtifacts().stream()) - .map(a -> a.getVersion()) + .map(Artifact::getVersion) .collect(Collectors.toList()); Optional bmv = va.findBiggestMatchingVersion(version, versions); @@ -313,7 +312,7 @@ public Set getAligmentReport( scml.getRepositories()); List> futures = new ArrayList<>(); - Set ret = new TreeSet<>(Comparator.comparing(x -> x.getModule())); + Set ret = new TreeSet<>(Comparator.comparing(AlignmentReportModule::getModule)); for (Map.Entry> e : dependenciesOfModules.entrySet()) { AlignmentReportModule module = new AlignmentReportModule(e.getKey()); Map> internallyBuilt = module.getInternallyBuilt(); @@ -384,7 +383,7 @@ private CompletableFuture> filterProducts( Predicate pred = p -> p.getStatus() == SUPPORTED || p.getStatus() == SUPERSEDED; if (useUnknownProduct) { - pred = pred.or(p -> UNKNOWN.equals(p)); + pred = pred.or(UNKNOWN::equals); } artifacts = filterProductArtifacts(artifacts, pred); @@ -437,14 +436,11 @@ private void fillNotBuilt( private CompletableFuture copyCompletedMap( Map>> futures, Map> result) { - CompletableFuture diffDone = CompletableFuture - .allOf(futures.values().toArray(new CompletableFuture[futures.size()])) - .thenAccept(x -> { - for (Map.Entry>> e : futures.entrySet()) { - result.put(e.getKey(), e.getValue().join()); - } - }); - return diffDone; + return CompletableFuture.allOf(futures.values().toArray(new CompletableFuture[0])).thenAccept(x -> { + for (Map.Entry>> e : futures.entrySet()) { + result.put(e.getKey(), e.getValue().join()); + } + }); } @Override @@ -472,7 +468,7 @@ public Set getBuiltReport(SCMLocator scml) private BuiltReportModule toBuiltReportModule(GAV gav, VersionAnalysisResult vlr) { BuiltReportModule report = new BuiltReportModule(gav); report.setAvailableVersions(vlr.getAvailableVersions()); - vlr.getBestMatchVersion().ifPresent(bmv -> report.setBuiltVersion(bmv)); + vlr.getBestMatchVersion().ifPresent(report::setBuiltVersion); return report; } @@ -484,7 +480,7 @@ public List getLookupReports(LookupNPMRequest request) throws C LookupMode lookupMode = getLookupMode(mode, versionSuffix); pncProductProvider.setLookupMode(lookupMode); - Set uniqueNames = request.getPackages().stream().map(x -> x.getName()).collect(Collectors.toSet()); + Set uniqueNames = request.getPackages().stream().map(NPMPackage::getName).collect(Collectors.toSet()); Map>> artifactsMap = getProductArtifactsNPM(uniqueNames); @@ -501,17 +497,15 @@ public List getVersionsReports(VersionsNPMRequest request) th final VersionsNPMRequest.VersionFilter versionFilter = request.getVersionFilter(); Function> predicateProvider; - switch (versionFilter) { - case MAJOR_MINOR: - predicateProvider = this::majorMinorFilter; - break; - default: - throw new UnsupportedOperationException("Unknown filter " + versionFilter); + if (Objects.requireNonNull(versionFilter) == VersionsNPMRequest.VersionFilter.MAJOR_MINOR) { + predicateProvider = this::majorMinorFilter; + } else { + throw new UnsupportedOperationException("Unknown filter " + versionFilter); } ProductProvider productProvider = setupProductProvider(false, null, request.getMode(), request.isIncludeAll()); - Set uniqueNames = request.getPackages().stream().map(x -> x.getName()).collect(Collectors.toSet()); + Set uniqueNames = request.getPackages().stream().map(NPMPackage::getName).collect(Collectors.toSet()); Map>> artifactsMap = new HashMap<>(); for (String name : uniqueNames) { @@ -578,9 +572,9 @@ private List createVersionsReports( @Override public List getLookupReportsForGavs(LookupGAVsRequest request) throws CommunicationException { - userLog.info("Starting lookup report for: " + request); + userLog.info("Starting lookup report for: {}", request); - /** Get set of GAs */ + // Get set of GAs Set uniqueGAs = request.getGavs().stream().map(GAV::getGA).collect(Collectors.toSet()); Map>> gaProductArtifactsMap; @@ -618,7 +612,7 @@ private ProductProvider setupProductProvider( private Map>> getProductArtifactsPerGA( ProductProvider productProvider, LookupGAVsRequest request, - Set uniqueGAs) throws CommunicationException { + Set uniqueGAs) { Map>> gaProductArtifactsMap = new HashMap<>(); for (GA ga : uniqueGAs) { @@ -651,9 +645,7 @@ private List createLookupReports( lr.setBestMatchVersion(v.getBestMatchVersion().orElse(null)); })); - futures.add(artifacts.thenAccept(pas -> { - lr.setWhitelisted(toWhitelisted(pas)); - })); + futures.add(artifacts.thenAccept(pas -> lr.setWhitelisted(toWhitelisted(pas)))); lr.setBlacklisted(blackArtifactService.isArtifactPresent(gav)); }); @@ -708,7 +700,7 @@ private CompletableFuture> filterBuiltArtifacts( private static List toWhitelisted(Set whitelisted) { return whitelisted.stream() - .map(pa -> pa.getProduct()) + .map(ProductArtifacts::getProduct) .filter(p -> !UNKNOWN.equals(p)) .map(p -> new RestProductInput(p.getName(), p.getVersion(), p.getStatus())) .collect(Collectors.toList()); diff --git a/reports-rest/src/main/java/org/jboss/da/rest/facade/ReportsFacade.java b/reports-rest/src/main/java/org/jboss/da/rest/facade/ReportsFacade.java index b53bcca05..f2cbeacaf 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/facade/ReportsFacade.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/facade/ReportsFacade.java @@ -1,6 +1,7 @@ package org.jboss.da.rest.facade; import jakarta.enterprise.context.ApplicationScoped; +import jakarta.transaction.Transactional; import org.apache.maven.scm.ScmException; import org.jboss.da.common.CommunicationException; import org.jboss.da.communication.pom.PomAnalysisException; @@ -35,13 +36,14 @@ import java.util.Set; @ApplicationScoped +@Transactional public class ReportsFacade { @Inject - private ReportsGenerator reportsGenerator; + ReportsGenerator reportsGenerator; @Inject - private Validation validation; + Validation validation; public Set builtReport(BuiltReportRequest request) throws ScmException, PomAnalysisException, CommunicationException, ValidationException { diff --git a/reports-rest/src/main/java/org/jboss/da/rest/reports/Reports.java b/reports-rest/src/main/java/org/jboss/da/rest/reports/Reports.java index d2cd72846..b6cfafef8 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/reports/Reports.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/reports/Reports.java @@ -2,11 +2,20 @@ import io.opentelemetry.instrumentation.annotations.SpanAttribute; import io.opentelemetry.instrumentation.annotations.WithSpan; +import jakarta.inject.Inject; +import jakarta.validation.Valid; +import jakarta.ws.rs.Consumes; +import jakarta.ws.rs.POST; +import jakarta.ws.rs.Path; +import jakarta.ws.rs.Produces; +import jakarta.ws.rs.core.MediaType; +import jakarta.ws.rs.core.Response; +import jakarta.ws.rs.core.Response.Status; import org.apache.maven.scm.ScmException; import org.eclipse.microprofile.openapi.annotations.Operation; +import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; import org.eclipse.microprofile.openapi.annotations.media.Content; import org.eclipse.microprofile.openapi.annotations.media.Schema; -import org.eclipse.microprofile.openapi.annotations.enums.SchemaType; import org.eclipse.microprofile.openapi.annotations.parameters.Parameter; import org.eclipse.microprofile.openapi.annotations.responses.APIResponse; import org.eclipse.microprofile.openapi.annotations.tags.Tag; @@ -29,17 +38,6 @@ import org.jboss.da.validation.ValidationException; import org.slf4j.Logger; -import jakarta.inject.Inject; -import jakarta.transaction.Transactional; -import jakarta.validation.Valid; -import jakarta.ws.rs.Consumes; -import jakarta.ws.rs.POST; -import jakarta.ws.rs.Path; -import jakarta.ws.rs.Produces; -import jakarta.ws.rs.core.MediaType; -import jakarta.ws.rs.core.Response; -import jakarta.ws.rs.core.Response.Status; - import java.util.List; /** @@ -52,14 +50,13 @@ @Tag(name = "reports") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) -@Transactional public class Reports { @Inject - private Logger log; + Logger log; @Inject - private ReportsFacade facade; + ReportsFacade facade; @POST @Path("/scm") diff --git a/reports-rest/src/main/java/org/jboss/da/rest/websocket/DefaultWebsocketEndpointHandler.java b/reports-rest/src/main/java/org/jboss/da/rest/websocket/DefaultWebsocketEndpointHandler.java index a388444a5..d1da7cff3 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/websocket/DefaultWebsocketEndpointHandler.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/websocket/DefaultWebsocketEndpointHandler.java @@ -26,10 +26,10 @@ public class DefaultWebsocketEndpointHandler implements WebsocketEndpointHandler { @Inject - private Logger log; + Logger log; @Inject - private ObjectMapper mapper; + ObjectMapper mapper; private Methods methods; diff --git a/reports-rest/src/main/java/org/jboss/da/rest/websocket/Method.java b/reports-rest/src/main/java/org/jboss/da/rest/websocket/Method.java index f18963308..12b6cd4d1 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/websocket/Method.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/websocket/Method.java @@ -3,7 +3,7 @@ /** * * @author Honza Brázdil <jbrazdil@redhat.com> - * + * * @param parameter type * @param return type after method execution * @param Json output type (e.g. Map, Set, ..) @@ -11,11 +11,11 @@ public interface Method { - public String getName(); + String getName(); - public Class getParameterClass(); + Class getParameterClass(); - public Class getJsonOutputClass(); + Class getJsonOutputClass(); - public S execute(T params) throws Exception; + S execute(T params) throws Exception; } diff --git a/testsuite/pom.xml b/testsuite/pom.xml index ae1e101a9..693704096 100644 --- a/testsuite/pom.xml +++ b/testsuite/pom.xml @@ -13,22 +13,6 @@ org.jboss.da application - - - - - - - - - - - - - - - - org.projectlombok @@ -93,12 +77,6 @@ jsonrpc2-base test - - - - - - diff --git a/testsuite/src/test/java/org/jboss/da/test/ArquillianDeploymentFactory.java b/testsuite/src/test/java/org/jboss/da/test/ArquillianDeploymentFactory.java deleted file mode 100644 index 0749d28af..000000000 --- a/testsuite/src/test/java/org/jboss/da/test/ArquillianDeploymentFactory.java +++ /dev/null @@ -1,188 +0,0 @@ -package org.jboss.da.test; - -//import org.jboss.arquillian.container.test.api.Testable; -//import org.jboss.shrinkwrap.api.Archive; -//import org.jboss.shrinkwrap.api.Assignable; -//import org.jboss.shrinkwrap.api.ShrinkWrap; -//import org.jboss.shrinkwrap.api.asset.FileAsset; -//import org.jboss.shrinkwrap.api.exporter.ZipExporter; -//import org.jboss.shrinkwrap.api.importer.ArchiveImportException; -//import org.jboss.shrinkwrap.api.importer.ZipImporter; -//import org.jboss.shrinkwrap.api.spec.EnterpriseArchive; -//import org.jboss.shrinkwrap.api.spec.JavaArchive; -//import org.jboss.shrinkwrap.api.spec.WebArchive; -//import org.jboss.shrinkwrap.resolver.api.maven.Maven; - -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.nio.file.Path; -import java.nio.file.Paths; -import java.util.zip.ZipException; -import java.util.zip.ZipFile; - -public class ArquillianDeploymentFactory { - - public enum DepType { - REPORTS - } - - public enum TestSide { - CLIENT, SERVER - } - - public static final String DEPLOYMENT_NAME = "testsuite"; - - private static final String TEST_JAR = "testsuite.jar"; - - private static final String TEST_EAR = DEPLOYMENT_NAME + ".ear"; - - // public EnterpriseArchive createDeployment(DepType type, TestSide testSide) { - // File earProjectBuildDir = new File(new File(getProjectTopLevelDir(), "application"), "target"); - // File earFile = new File(earProjectBuildDir, "dependency-analysis.ear"); - // EnterpriseArchive ear = createFromZipFile(EnterpriseArchive.class, earFile, TEST_EAR); - // updateEar(ear, type); - // switch (testSide) { - // case SERVER: - // updateEarServer(ear); - // } - // if (isCreateArchiveCopy()) { - // writeArchiveToFile(ear, new File("target", ear.getName())); - // } - // return ear; - // } - - // private void updateEarServer(EnterpriseArchive ear) { - // // File wiremockJar = Maven.resolver() - // // .loadPomFromFile("pom.xml") - // // .resolve("com.github.tomakehurst:wiremock-standalone") - // // .withoutTransitivity() - // // .asSingleFile(); - // // ear.addAsLibraries(wiremockJar); - // } - // - // private void updateEar(EnterpriseArchive ear, DepType type) { - // updateManifestResource(ear, "persistence.xml"); - // updateManifestResource(ear, "application.xml"); - // updateManifestResource(ear, "jboss-deployment-structure.xml"); - // JavaArchive communicationJar = ear.getAsType(JavaArchive.class, "communication.jar"); - // JavaArchive reportsBackendJar = ear.getAsType(JavaArchive.class, "reports-backend.jar"); - // WebArchive reportsRestWar; - // switch (type) { - // case REPORTS: { - // reportsRestWar = Testable.archiveToTest(ear.getAsType(WebArchive.class, "reports-rest.war")); - // break; - // } - // default: - // throw new IllegalArgumentException("Unknown dependency type " + type); - // } - // updateArchiveWithReplacements(communicationJar, "communication"); - // updateArchiveWithReplacements(reportsBackendJar, "reports-backend"); - // updateArchiveWithReplacements(reportsRestWar, "reports-rest"); - // ear.addAsModule(createTestsuiteJar()); - // } - // - // private void updateManifestResource(EnterpriseArchive ear, String resource) { - // ear.delete("META-INF/" + resource); - // ear.addAsManifestResource(new File("src/test/resources/META-INF/" + resource)); - // } - // - // private void updateArchiveWithReplacements(Archive archive, String name) { - // try { - // Path replacements = Paths.get("src/test/replacements", name).toAbsolutePath(); - // Files.find(replacements, Integer.MAX_VALUE, (p, a) -> a.isRegularFile()).forEach(p -> { - // String relpath = replacements.relativize(p).toString(); - // archive.delete(relpath); - // archive.add(new FileAsset(p.toFile()), relpath); - // }); - // } catch (IOException ex) { - // throw new RuntimeException(ex); - // } - // } - // - // private JavaArchive createTestsuiteJar() { - // JavaArchive testsuiteJar = ShrinkWrap.create(JavaArchive.class, TEST_JAR); - // testsuiteJar.addPackages(true, "org.jboss.da.test.server"); - // testsuiteJar.addAsManifestResource(new File("src/test/resources/META-INF/beans.xml")); - // return testsuiteJar; - // } - // - // private File getProjectTopLevelDir() { - // File projectTopLevelDir = new File("").getAbsoluteFile(); - // if (!isProjectTopLevelDir(projectTopLevelDir)) { - // projectTopLevelDir = projectTopLevelDir.getParentFile(); - // if (!isProjectTopLevelDir(projectTopLevelDir)) { - // throw new IllegalStateException( - // "Can not find project top level directory from " + projectTopLevelDir.getAbsolutePath()); - // } - // } - // return projectTopLevelDir; - // } - // - // private boolean isProjectTopLevelDir(File dir) { - // File testModule = dir == null ? null : new File(dir, "testsuite"); - // return testModule != null && testModule.exists() && testModule.isDirectory(); - // } - // - // private boolean isCreateArchiveCopy() { - // return System.getProperty("createArchiveCopy") != null; - // } - // - // private void writeArchiveToFile(Archive archive, File file) { - // archive.as(ZipExporter.class).exportTo(file, true); - // } - // - // // copied from org.jboss.shrinkwrap.api.ArchiveFactory.createFromZipFile(final Class type, final File - // // archiveFile) - - // // added parameter archiveName - // /** - // * Creates a new archive of the specified type as imported from the specified {@link File}. The file is expected - // to - // * be encoded as ZIP (ie. JAR/WAR/EAR). The name of the archive will be set to {@link File#getName()}. The archive - // * will be be backed by the {@link org.jboss.shrinkwrap.api.Configuration} specific to this - // * {@link org.jboss.shrinkwrap.api.ArchiveFactory}. - // * - // * @param type The type of the archive e.g. {@link org.jboss.shrinkwrap.api.spec.WebArchive} - // * @param archiveFile the archiveFile to use - // * @param archiveName the name of created archive - // * @return An {@link Assignable} view - // * @throws IllegalArgumentException If either argument is not supplied, if the specified {@link File} does not - // * exist, or is not a valid ZIP file - // * @throws org.jboss.shrinkwrap.api.importer.ArchiveImportException If an error occurred during the import process - // */ - // public T createFromZipFile(final Class type, final File archiveFile, String - // archiveName) - // throws IllegalArgumentException, ArchiveImportException { - // // Precondition checks - // if (type == null) { - // throw new IllegalArgumentException("Type must be specified"); - // } - // if (archiveFile == null) { - // throw new IllegalArgumentException("File must be specified"); - // } - // if (!archiveFile.exists()) { - // throw new IllegalArgumentException("File for import does not exist: " + archiveFile.getAbsolutePath()); - // } - // if (archiveFile.isDirectory()) { - // throw new IllegalArgumentException( - // "File for import must not be a directory: " + archiveFile.getAbsolutePath()); - // } - // - // // Construct ZipFile - // final ZipFile zipFile; - // try { - // zipFile = new ZipFile(archiveFile); - // } catch (final ZipException ze) { - // throw new IllegalArgumentException( - // "Does not appear to be a valid ZIP file: " + archiveFile.getAbsolutePath()); - // } catch (final IOException ioe) { - // throw new RuntimeException( - // "I/O Error in importing new archive from ZIP: " + archiveFile.getAbsolutePath(), - // ioe); - // } - // - // // Import - // return ShrinkWrap.create(type, archiveName).as(ZipImporter.class).importFrom(zipFile).as(type); - // - // } -} diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/AbstractRestReportsTest.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/AbstractRestReportsTest.java index 4d46bb82f..ee57a141a 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/AbstractRestReportsTest.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/AbstractRestReportsTest.java @@ -8,7 +8,7 @@ public abstract class AbstractRestReportsTest extends AbstractRestApiTest { @Override protected String getContextRoot() { - return "";// ArquillianDeploymentFactory.DEPLOYMENT_NAME; + return ""; } @Override diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/RestApiListingsTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/RestApiListingsTestIT.java index af93244fb..40864fef0 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/RestApiListingsTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/RestApiListingsTestIT.java @@ -226,7 +226,9 @@ protected void assertEqualsJson(String expected, String actual) { private void checkExpectedResponse(Response response, String expectedFile) throws IOException { File expectedResponseFile = getJsonResponseFile(PATH_FILES_LISTINGS_GAV, expectedFile); - assertEqualsJson(readFileToString(expectedResponseFile, Charset.defaultCharset()), response.readEntity(String.class)); + assertEqualsJson( + readFileToString(expectedResponseFile, Charset.defaultCharset()), + response.readEntity(String.class)); } } diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/RestApiReportsRemoteTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/RestApiReportsRemoteTestIT.java index 94ecc722a..0964efe0d 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/RestApiReportsRemoteTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/RestApiReportsRemoteTestIT.java @@ -1,12 +1,10 @@ package org.jboss.da.test.client.rest.reports; -import static org.junit.jupiter.api.Assertions.assertEquals; -import static org.junit.jupiter.api.Assertions.fail; - import io.quarkus.test.common.QuarkusTestResource; import io.quarkus.test.h2.H2DatabaseTestResource; import io.quarkus.test.junit.QuarkusTest; -import jakarta.transaction.Transactional; +import jakarta.ws.rs.client.Entity; +import jakarta.ws.rs.core.Response; import org.apache.commons.io.FileUtils; import org.jboss.da.test.client.rest.AbstractRestReportsTest; import org.json.JSONException; @@ -16,11 +14,11 @@ import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; -import jakarta.ws.rs.client.Entity; -import jakarta.ws.rs.core.Response; - import java.io.File; +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.junit.jupiter.api.Assertions.fail; + @QuarkusTest @QuarkusTestResource(value = H2DatabaseTestResource.class, restrictToAnnotatedClass = true) public class RestApiReportsRemoteTestIT extends AbstractRestReportsTest { diff --git a/testsuite/src/test/java/org/jboss/da/test/client/ws/AbstractWebsocketApiTest.java b/testsuite/src/test/java/org/jboss/da/test/client/ws/AbstractWebsocketApiTest.java index bff24eed4..da695d84a 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/ws/AbstractWebsocketApiTest.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/ws/AbstractWebsocketApiTest.java @@ -1,19 +1,9 @@ package org.jboss.da.test.client.ws; -import org.jboss.arquillian.container.test.api.RunAsClient; -import org.jboss.arquillian.junit5.ArquillianExtension; -import org.junit.jupiter.api.extension.ExtendWith; - -import static org.junit.jupiter.api.Assertions.*; - -import java.io.File; -import java.io.IOException; - -import org.apache.commons.io.FileUtils; -import org.jboss.da.test.client.AbstractClientApiTest; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeEach; - +import com.fasterxml.jackson.databind.ObjectMapper; +import com.thetransactioncompany.jsonrpc2.JSONRPC2ParseException; +import com.thetransactioncompany.jsonrpc2.JSONRPC2Request; +import com.thetransactioncompany.jsonrpc2.JSONRPC2Response; import jakarta.websocket.ClientEndpointConfig; import jakarta.websocket.CloseReason; import jakarta.websocket.ContainerProvider; @@ -21,7 +11,14 @@ import jakarta.websocket.Endpoint; import jakarta.websocket.EndpointConfig; import jakarta.websocket.MessageHandler; +import jakarta.websocket.Session; +import org.apache.commons.io.FileUtils; +import org.jboss.da.test.client.AbstractClientApiTest; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; +import java.io.File; +import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; import java.util.Map; @@ -35,19 +32,16 @@ import java.util.logging.Level; import java.util.logging.Logger; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.thetransactioncompany.jsonrpc2.JSONRPC2ParseException; -import com.thetransactioncompany.jsonrpc2.JSONRPC2Request; -import com.thetransactioncompany.jsonrpc2.JSONRPC2Response; +import static org.junit.jupiter.api.Assertions.assertTrue; -//@ExtendWith(ArquillianExtension.class) -//@RunAsClient public abstract class AbstractWebsocketApiTest extends AbstractClientApiTest { protected final String webSocketUrl; protected JSONRPCWebsocketEndpoint endpoint; + protected Session session; + public AbstractWebsocketApiTest() { this.webSocketUrl = readWebsocketApiUrl(); } @@ -55,10 +49,9 @@ public AbstractWebsocketApiTest() { @BeforeEach public void setup() throws URISyntaxException, DeploymentException, IOException { URI uri = new URI(webSocketUrl); - endpoint = new JSONRPCWebsocketEndpoint(); ClientEndpointConfig cec = ClientEndpointConfig.Builder.create().build(); - ContainerProvider.getWebSocketContainer().connectToServer(endpoint, cec, uri); + session = ContainerProvider.getWebSocketContainer().connectToServer(endpoint, cec, uri); } @AfterEach @@ -66,6 +59,9 @@ public void cleanup() throws InterruptedException, IOException { if (endpoint != null) { endpoint.close(5, TimeUnit.SECONDS); } + if (session != null) { + session.close(); + } } private String readWebsocketApiUrl() { @@ -116,14 +112,16 @@ public void onOpen(jakarta.websocket.Session session, EndpointConfig config) { } public boolean close(int duration, TimeUnit unit) throws InterruptedException, IOException { - System.out.printf("Closing endpint"); - session.close(); + System.out.println("Closing endpoint"); + if (session != null) { + session.close(); + } return this.closeLatch.await(duration, unit); } @Override public void onClose(jakarta.websocket.Session session, CloseReason closeReason) { - System.out.printf("Connection closed: %d - %s%n", closeReason); + System.out.printf("Connection closed: - %s%n", closeReason); this.session = null; this.closeLatch.countDown(); // trigger latch } diff --git a/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/AbstractWebsocketReportsTest.java b/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/AbstractWebsocketReportsTest.java index 56c030728..b1355f03a 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/AbstractWebsocketReportsTest.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/AbstractWebsocketReportsTest.java @@ -1,26 +1,16 @@ package org.jboss.da.test.client.ws.reports; -import static org.jboss.da.common.Constants.REST_API_VERSION_BC; - -//import org.jboss.arquillian.container.test.api.Deployment; -import org.jboss.da.test.ArquillianDeploymentFactory; -import org.jboss.da.test.ArquillianDeploymentFactory.DepType; -import org.jboss.da.test.ArquillianDeploymentFactory.TestSide; import org.jboss.da.test.client.ws.AbstractWebsocketApiTest; -//import org.jboss.shrinkwrap.api.spec.EnterpriseArchive; + +import static org.jboss.da.common.Constants.REST_API_VERSION_BC; public abstract class AbstractWebsocketReportsTest extends AbstractWebsocketApiTest { private static final String DEFAULT_REST_API_VERSION = "v-" + REST_API_VERSION_BC; - // @Deployment - // public static EnterpriseArchive createDeployment() { - // return new ArquillianDeploymentFactory().createDeployment(DepType.REPORTS, TestSide.CLIENT); - // } - @Override protected String getContextRoot() { - return "testsuite"; + return ""; } @Override diff --git a/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/WebsocketApiReportsTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/WebsocketApiReportsTestIT.java index d1884f7f8..b2da34ad3 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/WebsocketApiReportsTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/WebsocketApiReportsTestIT.java @@ -1,15 +1,18 @@ package org.jboss.da.test.client.ws.reports; +import io.quarkus.test.junit.QuarkusTest; import org.json.JSONException; import static org.junit.jupiter.api.Assertions.fail; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; import java.io.IOException; +@QuarkusTest public class WebsocketApiReportsTestIT extends AbstractWebsocketReportsTest { private static final String PATH_REPORTS_ALIGN = "/reports/align"; diff --git a/testsuite/src/test/java/org/jboss/da/test/server/AbstractServerTest.java b/testsuite/src/test/java/org/jboss/da/test/server/AbstractServerTest.java index 5025e7867..c6dbd5bcf 100644 --- a/testsuite/src/test/java/org/jboss/da/test/server/AbstractServerTest.java +++ b/testsuite/src/test/java/org/jboss/da/test/server/AbstractServerTest.java @@ -1,13 +1,7 @@ package org.jboss.da.test.server; -import org.jboss.arquillian.container.test.api.Deployment; -import org.jboss.da.test.ArquillianDeploymentFactory; -import org.jboss.da.test.ArquillianDeploymentFactory.DepType; -import org.jboss.da.test.ArquillianDeploymentFactory.TestSide; -import org.jboss.shrinkwrap.api.spec.EnterpriseArchive; -import org.junit.jupiter.api.extension.RegisterExtension; - import com.github.tomakehurst.wiremock.junit5.WireMockExtension; +import org.junit.jupiter.api.extension.RegisterExtension; import static com.github.tomakehurst.wiremock.core.WireMockConfiguration.options; diff --git a/testsuite/src/test/java/org/jboss/da/test/server/communication/SCMRemoteTestIT.java b/testsuite/src/test/java/org/jboss/da/test/server/communication/SCMRemoteTestIT.java index cedef5b23..b0bbddb42 100644 --- a/testsuite/src/test/java/org/jboss/da/test/server/communication/SCMRemoteTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/server/communication/SCMRemoteTestIT.java @@ -38,21 +38,21 @@ public void testGetDependencyTreeOfRevision() throws ScmException, PomAnalysisEx GAVDependencyTree tree = scmConnector .getDependencyTreeOfRevision(scmUrl, revision, "", Collections.emptyList()); - assertEquals(tree.getGav(), new GAV("org.jboss.da", "parent", "0.3.0")); + assertEquals(new GAV("org.jboss.da", "parent", "0.3.0"), tree.getGav()); assertTrue(tree.getDependencies().isEmpty()); // with a slash in the pomPath GAVDependencyTree treeWithSlash = scmConnector .getDependencyTreeOfRevision(scmUrl, revision, "/", Collections.emptyList()); - assertEquals(treeWithSlash.getGav(), new GAV("org.jboss.da", "parent", "0.3.0")); + assertEquals(new GAV("org.jboss.da", "parent", "0.3.0"), treeWithSlash.getGav()); assertTrue(treeWithSlash.getDependencies().isEmpty()); // with application in the pomPath GAVDependencyTree treeApplication = scmConnector .getDependencyTreeOfRevision(scmUrl, revision, "application", Collections.emptyList()); - assertEquals(treeApplication.getGav(), new GAV("org.jboss.da", "application", "0.3.0")); + assertEquals(new GAV("org.jboss.da", "application", "0.3.0"), treeApplication.getGav()); assertFalse(treeApplication.getDependencies().isEmpty()); } diff --git a/testsuite/src/test/resources/application.properties b/testsuite/src/test/resources/application.properties index d2e6abe16..f10a80038 100644 --- a/testsuite/src/test/resources/application.properties +++ b/testsuite/src/test/resources/application.properties @@ -2,25 +2,17 @@ # Datasource quarkus.datasource.db-kind=h2 quarkus.datasource.jdbc.url=jdbc:h2:mem:test -#quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:test -#quarkus.datasource.db-kind = postgresql -#quarkus.datasource.username=postgres -#quarkus.datasource.password= -#quarkus.datasource.jdbc.url=jdbc:postgresql://localhost:62537/ quarkus.datasource.username=admin quarkus.datasource.password=admin - # Hibernate / JPA -quarkus.hibernate-orm.database.generation=${persistence.hibernate.hbm2ddl.auto:update} -quarkus.hibernate-orm.log.sql=false +# Other hibernate configuration in application.yaml quarkus.hibernate-orm.dialect=org.hibernate.dialect.H2Dialect - # Testing quarkus.http.test-port=8083 # Logging -quarkus.log.level=DEBUG +quarkus.log.level=INFO #quarkus.log.console.level=DEBUG #quarkus.log.console.format=%d{yyyy-MM-dd HH:mm:ss,SSS} %-5p [%c] (%t) %s%e%n diff --git a/testsuite/src/test/resources/arquillian.xml b/testsuite/src/test/resources/arquillian.xml deleted file mode 100644 index 74792692f..000000000 --- a/testsuite/src/test/resources/arquillian.xml +++ /dev/null @@ -1,24 +0,0 @@ - - - - - 8180 - MANAGED - - - ${jboss.home} - -Xmx1024m -XX:MaxPermSize=512m -Xrunjdwp:transport=dt_socket,address=8787,server=y,suspend=n - -Djboss.socket.binding.port-offset=100 - -Djboss.management.http.port=9054 -DtestMode - - 127.0.0.1 - ${jboss.port} - true - - - - /tmp/test-PNC/ - - From dc7c165ffac60a63defd454f74fc4a1e6af6beb9 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Wed, 11 Mar 2026 09:40:24 +0000 Subject: [PATCH 20/23] Code and pom cleanup and fix warnings --- .../org/jboss/da/common/util/FileUtils.java | 25 ---- .../indy/model/GAVDependencyTree.java | 6 +- .../da/communication/pom/GalleyWrapper.java | 39 +++--- .../jboss/da/communication/pom/LocalRepo.java | 4 +- .../da/communication/pom/PomAnalyzerImpl.java | 18 ++- .../jboss/da/communication/pom/PomReader.java | 2 +- .../pom/impl/DependencyTreeBuilder.java | 2 +- .../scm/impl/SCMConnectorImpl.java | 4 +- .../communication/MetadataFileParserTest.java | 9 +- .../communication/indy/IndyConnectorTest.java | 4 +- .../model/BackwardCompatibilityTest.java | 4 +- .../da/communication/pom/GetPomTest.java | 5 +- pom.xml | 113 ------------------ .../jboss/da/products/api/ArtifactDiff.java | 2 +- .../impl/AbstractProductProvider.java | 32 ++--- .../impl/AggregatedProductProvider.java | 18 +-- .../da/products/impl/PncProductProvider.java | 2 +- .../jboss/da/reports/impl/FuturesUtil.java | 4 +- .../da/reports/impl/LookupGeneratorTest.java | 4 +- .../impl/ReportsGeneratorImplTest.java | 16 +-- .../da/lookup/model/MavenLatestRequest.java | 1 - .../da/lookup/model/NPMLookupResult.java | 3 - .../da/lookup/model/NPMVersionsResult.java | 2 - .../org/jboss/da/model/rest/NPMPackage.java | 4 +- .../model/request/LookupNPMRequest.java | 6 +- .../model/request/VersionsNPMRequest.java | 8 +- .../model/response/striped/AlignReport.java | 1 - .../response/striped/RestVersionProduct.java | 1 - .../da/model/rest/VersionComparatorTest.java | 17 +-- .../jboss/da/rest/SwaggerConfiguration.java | 12 +- .../rest/exceptions/AllExceptionsMapper.java | 1 - .../jboss/da/rest/listings/BlackListImpl.java | 4 +- .../jboss/da/rest/listings/RestConvert.java | 5 +- .../DefaultWebsocketEndpointHandler.java | 19 ++- .../org/jboss/da/rest/ws/ReportsEndpoint.java | 1 - .../jboss/da/rest/ws/ReportsMethodsImpl.java | 29 +---- .../java/org/jboss/da/scm/impl/SCMCache.java | 4 +- .../java/org/jboss/da/scm/impl/SCMImpl.java | 4 +- .../java/org/jboss/da/scm/impl/ScmFacade.java | 12 +- testsuite/pom.xml | 15 --- .../da/test/client/AbstractClientApiTest.java | 4 +- .../test/client/rest/AbstractRestApiTest.java | 25 ++-- .../listings/AbstractRestApiListingTest.java | 65 +++------- .../listings/BugReporoducerRemoteTestIT.java | 46 ------- .../listings/BugReproducerRemoteTestIT.java | 42 +++++++ .../rest/listings/RestApiListingsTestIT.java | 53 ++++---- .../rest/lookup/LookupBlocklistTestIT.java | 6 +- .../test/client/rest/lookup/LookupTestIT.java | 60 ++++++---- .../rest/reports/AlignRemoteTestIT.java | 7 +- ...IT.java => BugReproducerRemoteTestIT.java} | 29 ++--- .../reports/RestApiReportsRemoteTestIT.java | 46 ++++--- .../client/ws/AbstractWebsocketApiTest.java | 13 +- .../ws/reports/WebsocketApiReportsTestIT.java | 7 +- .../communication/GalleyWrapperTestIT.java | 4 +- .../lookup/maven/versions/guava13Closest.json | 2 +- 55 files changed, 316 insertions(+), 555 deletions(-) delete mode 100644 common/src/main/java/org/jboss/da/common/util/FileUtils.java delete mode 100644 testsuite/src/test/java/org/jboss/da/test/client/rest/listings/BugReporoducerRemoteTestIT.java create mode 100644 testsuite/src/test/java/org/jboss/da/test/client/rest/listings/BugReproducerRemoteTestIT.java rename testsuite/src/test/java/org/jboss/da/test/client/rest/reports/{BugReporoducerRemoteTestIT.java => BugReproducerRemoteTestIT.java} (71%) diff --git a/common/src/main/java/org/jboss/da/common/util/FileUtils.java b/common/src/main/java/org/jboss/da/common/util/FileUtils.java deleted file mode 100644 index dfacd439f..000000000 --- a/common/src/main/java/org/jboss/da/common/util/FileUtils.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.jboss.da.common.util; - -import java.io.File; - -/** - * Library class, which helps with the common file operations - * - * @author Jakub Bartecek <jbartece@redhat.com> - * - */ -public class FileUtils { - - /** - * Deletes directory and its content - */ - public static void deleteDirectory(File directory) { - for (File file : directory.listFiles()) { - if (file.isDirectory()) - deleteDirectory(file); - else - file.delete(); - } - directory.delete(); - } -} diff --git a/communication/src/main/java/org/jboss/da/communication/indy/model/GAVDependencyTree.java b/communication/src/main/java/org/jboss/da/communication/indy/model/GAVDependencyTree.java index bc5cda2de..6cbeff327 100644 --- a/communication/src/main/java/org/jboss/da/communication/indy/model/GAVDependencyTree.java +++ b/communication/src/main/java/org/jboss/da/communication/indy/model/GAVDependencyTree.java @@ -46,7 +46,7 @@ public void prune() { Map> candidates = forest.entrySet() .stream() .filter(e -> e.getValue().size() > 1) - .collect(Collectors.toMap(e -> e.getKey(), e -> e.getValue())); + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); int previous; do { @@ -70,9 +70,7 @@ private static void pruneLeaves(GAVDependencyTree tree, Map getDependencies(Artifact artifact) throws PomAnalysisException { return allDirectDependencies.stream() .map(GalleyWrapper::generateGAV) - .filter(x -> x != null) + .filter(Objects::nonNull) .collect(Collectors.toSet()); } @@ -212,11 +215,11 @@ public void addLocationsFromPoms(PomReader pomReader) throws IOException { .map(pomReader::analyze) // parse pom file .filter(Optional::isPresent) .map(Optional::get) // filter sucessfuly parsed - .map(p -> p.getMavenRepositories()) - .filter(r -> r != null) // get - .flatMap(r -> r.stream()) // stream of + .map(MavenProject::getMavenRepositories) + .filter(Objects::nonNull) // get + .flatMap(Collection::stream) // stream of .map(r -> new SimpleLocation(r.getId(), r.getUrl())) - .forEach(l -> locations.add(l)); + .forEach(locations::add); } /** @@ -236,7 +239,7 @@ public void addDefaultLocations(Configuration config) { } @Override - public void close() { + public void close() throws IOException { localRepo.delete(); } @@ -274,8 +277,7 @@ public Set getAllDependencies(Artifact artifact, boolean URI src = localRepo.getUri(); - Queue work = new LinkedList<>(); - work.addAll(getDeps(artifact.ref, processor, src, disConf)); + Queue work = new LinkedList<>(getDeps(artifact.ref, processor, src, disConf)); while (!work.isEmpty()) { DependencyRelationship dr = work.remove(); @@ -321,21 +323,12 @@ private Set getDeps( * @return */ public static boolean shouldAnalyzeDependencies(DependencyRelationship dr, boolean testDeps, boolean providedDeps) { - switch (dr.getScope()) { - case _import: - case embedded: - case system: - case toolchain: - return false; - case test: - return testDeps; - case provided: - return providedDeps; - case compile: - case runtime: - default: - return true; - } + return switch (dr.getScope()) { + case _import, embedded, system, toolchain -> false; + case test -> testDeps; + case provided -> providedDeps; + default -> true; + }; } private static GAV generateGAV(MavenGAVView dep) { diff --git a/communication/src/main/java/org/jboss/da/communication/pom/LocalRepo.java b/communication/src/main/java/org/jboss/da/communication/pom/LocalRepo.java index f0a4119e5..6abe9217f 100644 --- a/communication/src/main/java/org/jboss/da/communication/pom/LocalRepo.java +++ b/communication/src/main/java/org/jboss/da/communication/pom/LocalRepo.java @@ -1,5 +1,6 @@ package org.jboss.da.communication.pom; +import org.apache.commons.io.FileUtils; import org.commonjava.atlas.maven.ident.ref.ProjectVersionRef; import org.commonjava.maven.galley.TransferException; import org.commonjava.maven.galley.maven.parse.PomPeek; @@ -7,7 +8,6 @@ import org.commonjava.maven.galley.maven.util.ArtifactPathUtils; import org.commonjava.maven.galley.model.Location; import org.commonjava.maven.galley.model.SimpleLocation; -import org.jboss.da.common.util.FileUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -97,7 +97,7 @@ public synchronized Set getAllPoms() throws IOException { .collect(Collectors.toSet()); } - protected void delete() { + protected void delete() throws IOException { File f; synchronized (this) { f = path.toFile(); diff --git a/communication/src/main/java/org/jboss/da/communication/pom/PomAnalyzerImpl.java b/communication/src/main/java/org/jboss/da/communication/pom/PomAnalyzerImpl.java index f972a50ce..6b01750b2 100644 --- a/communication/src/main/java/org/jboss/da/communication/pom/PomAnalyzerImpl.java +++ b/communication/src/main/java/org/jboss/da/communication/pom/PomAnalyzerImpl.java @@ -10,7 +10,6 @@ import org.commonjava.maven.galley.maven.spi.type.TypeMapper; import org.commonjava.maven.galley.model.Location; import org.commonjava.maven.galley.model.SimpleLocation; -import org.jboss.da.common.json.DAConfig; import org.jboss.da.common.json.GlobalConfig; import org.jboss.da.common.util.Configuration; import org.jboss.da.common.util.ConfigurationParseException; @@ -39,10 +38,10 @@ public class PomAnalyzerImpl implements PomAnalyzer { @Inject - private Logger log; + Logger log; @Inject - private PomReader pomReader; + PomReader pomReader; @Inject MavenPomReader mavenPomReader; @@ -51,16 +50,16 @@ public class PomAnalyzerImpl implements PomAnalyzer { TypeMapper typeMapper; @Inject - private Configuration config; + Configuration config; @Inject - private DependencyTreeBuilder dtb; + DependencyTreeBuilder dtb; @Inject - private ModelProcessorConfig disConf; + ModelProcessorConfig disConf; @Inject - private MavenModelProcessor processor; + MavenModelProcessor processor; @Override public GAVDependencyTree readRelationships(File pomRepoDir, String pomPath, List repositories) @@ -171,7 +170,6 @@ public MavenPomView getMavenPomView(InputStream is) throws ConfigurationParseExc } StringBuilder query = new StringBuilder(); GlobalConfig globalCfg = this.config.getGlobalConfig(); - DAConfig cfg = this.config.getConfig(); query.append(globalCfg.getIndyUrl()); query.append("/api/content/maven/group/"); query.append(config.getConfig().getIndyGroupPublic()); @@ -181,9 +179,7 @@ public MavenPomView getMavenPomView(InputStream is) throws ConfigurationParseExc List repos = new ArrayList<>(); repos.add(repoLocation); - MavenPomView pomView = mavenPomReader.read(pom.getKey(), repos); - - return pomView; + return mavenPomReader.read(pom.getKey(), repos); } @Override diff --git a/communication/src/main/java/org/jboss/da/communication/pom/PomReader.java b/communication/src/main/java/org/jboss/da/communication/pom/PomReader.java index 5c782a7b0..53d669dc0 100644 --- a/communication/src/main/java/org/jboss/da/communication/pom/PomReader.java +++ b/communication/src/main/java/org/jboss/da/communication/pom/PomReader.java @@ -25,7 +25,7 @@ public class PomReader { @Inject - private Logger log; + Logger log; public Optional analyze(File pomFile) { try { diff --git a/communication/src/main/java/org/jboss/da/communication/pom/impl/DependencyTreeBuilder.java b/communication/src/main/java/org/jboss/da/communication/pom/impl/DependencyTreeBuilder.java index 30c834247..f42bb47eb 100644 --- a/communication/src/main/java/org/jboss/da/communication/pom/impl/DependencyTreeBuilder.java +++ b/communication/src/main/java/org/jboss/da/communication/pom/impl/DependencyTreeBuilder.java @@ -32,7 +32,7 @@ public class DependencyTreeBuilder { @Inject - private Logger log; + Logger log; /** * Transforms DependencyRelationships into GAVDependencyTree. diff --git a/communication/src/main/java/org/jboss/da/communication/scm/impl/SCMConnectorImpl.java b/communication/src/main/java/org/jboss/da/communication/scm/impl/SCMConnectorImpl.java index 9b5b085d0..9103f8c6a 100644 --- a/communication/src/main/java/org/jboss/da/communication/scm/impl/SCMConnectorImpl.java +++ b/communication/src/main/java/org/jboss/da/communication/scm/impl/SCMConnectorImpl.java @@ -29,10 +29,10 @@ public class SCMConnectorImpl implements SCMConnector { @Inject - private SCM scmManager; + SCM scmManager; @Inject - private PomAnalyzer pomAnalyzer; + PomAnalyzer pomAnalyzer; @Override public GAVDependencyTree getDependencyTreeOfRevision(String scmUrl, String revision, GAV gav) diff --git a/communication/src/test/java/org/jboss/da/communication/MetadataFileParserTest.java b/communication/src/test/java/org/jboss/da/communication/MetadataFileParserTest.java index 090b1b7e9..72f53abcd 100644 --- a/communication/src/test/java/org/jboss/da/communication/MetadataFileParserTest.java +++ b/communication/src/test/java/org/jboss/da/communication/MetadataFileParserTest.java @@ -1,6 +1,5 @@ package org.jboss.da.communication; -import org.jboss.da.common.CommunicationException; import org.jboss.da.communication.indy.impl.MetadataFileParser; import org.jboss.da.communication.indy.model.VersionResponse; @@ -24,14 +23,14 @@ public class MetadataFileParserTest { private static VersionResponse versionResponse; @BeforeAll - public static void init() throws JAXBException, IOException, CommunicationException { + public static void init() throws JAXBException, IOException { try (InputStream in = getResourceSteam("maven-metadata.xml")) { versionResponse = MetadataFileParser.parseMavenMetadata(in); } } @Test - public void availableVersionsTest() throws JAXBException, IOException, CommunicationException { + public void availableVersionsTest() { // given List availableVersions = versionResponse.getVersioning().getVersions().getVersion(); @@ -45,7 +44,7 @@ public void availableVersionsTest() throws JAXBException, IOException, Communica } @Test - public void latestTest() throws JAXBException, IOException, CommunicationException { + public void latestTest() { // given String latestVersion = versionResponse.getVersioning().getLatestVersion(); @@ -54,7 +53,7 @@ public void latestTest() throws JAXBException, IOException, CommunicationExcepti } @Test - public void releaseTest() throws JAXBException, IOException, CommunicationException { + public void releaseTest() { // given String latestReleaseVersion = versionResponse.getVersioning().getLatestRelease(); diff --git a/communication/src/test/java/org/jboss/da/communication/indy/IndyConnectorTest.java b/communication/src/test/java/org/jboss/da/communication/indy/IndyConnectorTest.java index bb6aa0bd4..53510273f 100644 --- a/communication/src/test/java/org/jboss/da/communication/indy/IndyConnectorTest.java +++ b/communication/src/test/java/org/jboss/da/communication/indy/IndyConnectorTest.java @@ -95,7 +95,7 @@ private static Configuration initConfig() { } @Test - public void testGetVersionsOfGA() throws ConfigurationParseException, CommunicationException { + public void testGetVersionsOfGA() throws CommunicationException { stubFor( get(urlEqualTo("/api/content/maven/group/DA-TEST-GROUP/foo/bar/baz/maven-metadata.xml")).willReturn( aResponse().withStatus(200) @@ -115,7 +115,7 @@ public void testGetVersionsOfGA() throws ConfigurationParseException, Communicat } @Test - public void testGetVersionsOfNpm() throws ConfigurationParseException, CommunicationException { + public void testGetVersionsOfNpm() throws CommunicationException { stubFor( get(urlEqualTo("/api/content/npm/group/DA-TEST-GROUP/jquery/package.json")).willReturn( aResponse().withStatus(200) diff --git a/communication/src/test/java/org/jboss/da/communication/model/BackwardCompatibilityTest.java b/communication/src/test/java/org/jboss/da/communication/model/BackwardCompatibilityTest.java index 958b6ed84..3b9eaa34c 100644 --- a/communication/src/test/java/org/jboss/da/communication/model/BackwardCompatibilityTest.java +++ b/communication/src/test/java/org/jboss/da/communication/model/BackwardCompatibilityTest.java @@ -38,14 +38,14 @@ public void testVersionResponse() throws IOException { } @Test - public void testVersioning() throws IOException, NoSuchFieldException { + public void testVersioning() throws IOException { Versioning verisoning = new Versioning(); compare(verisoning, "Versioning"); } @Test - public void testVersions() throws IOException, NoSuchFieldException { + public void testVersions() throws IOException { Versions versions = new Versions(); compare(versions, "Versions"); diff --git a/communication/src/test/java/org/jboss/da/communication/pom/GetPomTest.java b/communication/src/test/java/org/jboss/da/communication/pom/GetPomTest.java index fb63ad5db..9410634cd 100644 --- a/communication/src/test/java/org/jboss/da/communication/pom/GetPomTest.java +++ b/communication/src/test/java/org/jboss/da/communication/pom/GetPomTest.java @@ -4,7 +4,6 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; -import org.jboss.da.common.CommunicationException; import org.jboss.da.communication.pom.api.PomAnalyzer; import org.jboss.da.communication.pom.model.MavenProject; @@ -45,7 +44,7 @@ public class GetPomTest { private final static String SCM_REVISION = "0.4"; @Test - public void testGetPom1() throws CommunicationException, FileNotFoundException { + public void testGetPom1() throws FileNotFoundException { File file = new File(getClass().getClassLoader().getResource("pom/test1.xml").getFile()); MavenProject pom; @@ -59,7 +58,7 @@ public void testGetPom1() throws CommunicationException, FileNotFoundException { } @Test - public void testGetPom2() throws CommunicationException, FileNotFoundException { + public void testGetPom2() { File file = new File(getClass().getClassLoader().getResource("pom/test2.xml").getFile()); MavenProject pom; diff --git a/pom.xml b/pom.xml index b3a049275..c07b9fb6d 100644 --- a/pom.xml +++ b/pom.xml @@ -219,23 +219,6 @@ ${version.pnc} - - - - - - - - - - - - - - - - - jakarta.annotation jakarta.annotation-api @@ -246,16 +229,6 @@ jakarta.transaction-api 2.0.1 - - - - - - - - - - commons-validator @@ -485,11 +458,6 @@ 3.6.0 - - org.jboss.arquillian.junit5 - arquillian-junit5-container - 1.10.0.Final - io.quarkiverse.wiremock quarkus-wiremock-test @@ -648,90 +616,9 @@ - - - org.apache.maven.plugins - maven-enforcer-plugin - - - org.commonjava.maven.enforcer - enforce-managed-deps-rule - 1.2 - - - - - enforce-plugin-versions - - enforce - - - - - - - - - - no-managed-deps - - enforce - - initialize - - - - true - true - - [{] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - release diff --git a/reports-backend/src/main/java/org/jboss/da/products/api/ArtifactDiff.java b/reports-backend/src/main/java/org/jboss/da/products/api/ArtifactDiff.java index 7f44f430c..a1a256391 100644 --- a/reports-backend/src/main/java/org/jboss/da/products/api/ArtifactDiff.java +++ b/reports-backend/src/main/java/org/jboss/da/products/api/ArtifactDiff.java @@ -56,6 +56,6 @@ public boolean isChanged() { } public boolean isUnchanged() { - return leftVersion != null && rightVersion != null && leftVersion.equals(rightVersion); + return leftVersion != null && leftVersion.equals(rightVersion); } } diff --git a/reports-backend/src/main/java/org/jboss/da/products/impl/AbstractProductProvider.java b/reports-backend/src/main/java/org/jboss/da/products/impl/AbstractProductProvider.java index 71e12ade4..1b9cd622b 100644 --- a/reports-backend/src/main/java/org/jboss/da/products/impl/AbstractProductProvider.java +++ b/reports-backend/src/main/java/org/jboss/da/products/impl/AbstractProductProvider.java @@ -133,33 +133,25 @@ public CompletableFuture>> getVersions(Artifact artifac @Override public CompletableFuture> getAllVersions(Artifact artifact) { - switch (artifact.getType()) { - case MAVEN: { + return switch (artifact.getType()) { + case MAVEN -> { GA ga = ((MavenArtifact) artifact).getGav().getGA(); - return supplyAsync(() -> getVersionsStreamMaven(ga).collect(Collectors.toSet())); - } - case NPM: { - return supplyAsync(() -> getVersionsStreamNPM(artifact.getName()).collect(Collectors.toSet())); + yield supplyAsync(() -> getVersionsStreamMaven(ga).collect(Collectors.toSet())); } - default: { - return CompletableFuture.completedFuture(Collections.emptySet()); - } - } + case NPM -> supplyAsync(() -> getVersionsStreamNPM(artifact.getName()).collect(Collectors.toSet())); + default -> CompletableFuture.completedFuture(Collections.emptySet()); + }; } private CompletableFuture> getArtifacts0(Artifact artifact) { - switch (artifact.getType()) { - case MAVEN: { + return switch (artifact.getType()) { + case MAVEN -> { GA ga = ((MavenArtifact) artifact).getGav().getGA(); - return supplyAsync(() -> getArtifactsMaven(ga)); - } - case NPM: { - return supplyAsync(() -> getArtifactsNPM(artifact.getName())); + yield supplyAsync(() -> getArtifactsMaven(ga)); } - default: { - return CompletableFuture.completedFuture(Collections.emptySet()); - } - } + case NPM -> supplyAsync(() -> getArtifactsNPM(artifact.getName())); + default -> CompletableFuture.completedFuture(Collections.emptySet()); + }; } private Set getArtifactsMaven(GA ga) { diff --git a/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java b/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java index 345f26fe8..818491700 100644 --- a/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java +++ b/reports-backend/src/main/java/org/jboss/da/products/impl/AggregatedProductProvider.java @@ -21,6 +21,7 @@ import java.util.Set; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; +import java.util.concurrent.Executors; import java.util.concurrent.Future; import java.util.concurrent.ScheduledExecutorService; import java.util.concurrent.TimeUnit; @@ -73,8 +74,7 @@ public static CompletableFuture> filterProducts( @Pnc PncProductProvider pncProductProvider; - @Inject - ScheduledExecutorService scheduler; + ScheduledExecutorService scheduler = Executors.newScheduledThreadPool(2); @Override public CompletableFuture> getAllProducts() { @@ -175,7 +175,7 @@ private static class ProductArtifactsCollector @Override public Supplier> supplier() { - return () -> new HashMap<>(); + return HashMap::new; } @Override @@ -218,7 +218,7 @@ public Set characteristics() { } } - private static abstract class AbstractColector implements Collector { + private static abstract class AbstractCollector implements Collector { @Override public BinaryOperator combiner() { @@ -240,7 +240,7 @@ public Set characteristics() { } - private static class MapCol extends AbstractColector> { + private static class MapCol extends AbstractCollector> { private final BiFunction remappingFunction; @@ -250,7 +250,7 @@ public MapCol(BiFunction remappingFunction) { @Override public Supplier> supplier() { - return () -> new HashMap<>(); + return HashMap::new; } @Override @@ -263,16 +263,16 @@ public BiConsumer, Map> accumulator() { } } - private static class SetCollector extends AbstractColector> { + private static class SetCollector extends AbstractCollector> { @Override public Supplier> supplier() { - return () -> new HashSet<>(); + return HashSet::new; } @Override public BiConsumer, Set> accumulator() { - return (h, s) -> h.addAll(s); + return Set::addAll; } } } diff --git a/reports-backend/src/main/java/org/jboss/da/products/impl/PncProductProvider.java b/reports-backend/src/main/java/org/jboss/da/products/impl/PncProductProvider.java index f1c84303f..c93a846be 100644 --- a/reports-backend/src/main/java/org/jboss/da/products/impl/PncProductProvider.java +++ b/reports-backend/src/main/java/org/jboss/da/products/impl/PncProductProvider.java @@ -30,7 +30,7 @@ public class PncProductProvider extends AbstractProductProvider { @Inject - private PncConnector pncConnector; + PncConnector pncConnector; @Override Stream getVersionsStreamMaven(GA ga) { diff --git a/reports-backend/src/main/java/org/jboss/da/reports/impl/FuturesUtil.java b/reports-backend/src/main/java/org/jboss/da/reports/impl/FuturesUtil.java index 2872d8888..cf832c2a1 100644 --- a/reports-backend/src/main/java/org/jboss/da/reports/impl/FuturesUtil.java +++ b/reports-backend/src/main/java/org/jboss/da/reports/impl/FuturesUtil.java @@ -11,7 +11,7 @@ public class FuturesUtil { static List joinFutures(List> futures) throws CommunicationException { try { - return futures.stream().map(r -> r.join()).collect(Collectors.toList()); + return futures.stream().map(CompletableFuture::join).collect(Collectors.toList()); } catch (CompletionException ex) { if (ex.getCause() instanceof CommunicationException) { throw (CommunicationException) ex.getCause(); @@ -22,7 +22,7 @@ static List joinFutures(List> futures) throws Commun static Set joinFutures(Set> futures) throws CommunicationException { try { - return futures.stream().map(r -> r.join()).collect(Collectors.toSet()); + return futures.stream().map(CompletableFuture::join).collect(Collectors.toSet()); } catch (CompletionException ex) { if (ex.getCause() instanceof CommunicationException) { throw (CommunicationException) ex.getCause(); diff --git a/reports-backend/src/test/java/org/jboss/da/reports/impl/LookupGeneratorTest.java b/reports-backend/src/test/java/org/jboss/da/reports/impl/LookupGeneratorTest.java index a52d1d25b..d3ca28f98 100644 --- a/reports-backend/src/test/java/org/jboss/da/reports/impl/LookupGeneratorTest.java +++ b/reports-backend/src/test/java/org/jboss/da/reports/impl/LookupGeneratorTest.java @@ -65,14 +65,14 @@ public LookupGeneratorTest() throws ConfigurationParseException { DAConfig daConfig = new DAConfig(); LookupMode mode = new LookupMode(); mode.setName(PERSISTENT); - mode.setSuffixes(Arrays.asList("redhat")); + mode.setSuffixes(List.of("redhat")); daConfig.setModes(Collections.singletonList(mode)); when(config.getConfig()).thenReturn(daConfig); lookupGenerator = new LookupGeneratorImpl(config); } @BeforeAll - public static void initMocks() throws ConfigurationParseException { + public static void initMocks() { } @Test diff --git a/reports-backend/src/test/java/org/jboss/da/reports/impl/ReportsGeneratorImplTest.java b/reports-backend/src/test/java/org/jboss/da/reports/impl/ReportsGeneratorImplTest.java index 40e7a3e93..bfa12a46d 100644 --- a/reports-backend/src/test/java/org/jboss/da/reports/impl/ReportsGeneratorImplTest.java +++ b/reports-backend/src/test/java/org/jboss/da/reports/impl/ReportsGeneratorImplTest.java @@ -6,7 +6,6 @@ import org.jboss.da.common.util.Configuration; import org.jboss.da.common.util.ConfigurationParseException; import org.jboss.da.common.logging.UserLog; -import org.jboss.da.communication.indy.FindGAVDependencyException; import org.jboss.da.communication.indy.api.IndyConnector; import org.jboss.da.communication.indy.model.GAVDependencyTree; import org.jboss.da.listings.api.service.BlackArtifactService; @@ -83,7 +82,6 @@ public class ReportsGeneratorImplTest { private Logger userLog; @InjectMocks - // @Spy private final DependencyTreeGenerator dependencyTreeGenerator = Mockito.spy(DependencyTreeGeneratorImpl.class); @InjectMocks @@ -121,7 +119,7 @@ public ReportsGeneratorImplTest() throws ConfigurationParseException { DAConfig daConfig = new DAConfig(); LookupMode mode = new LookupMode(); mode.setName("PERSISTENT"); - mode.setSuffixes(Arrays.asList("redhat")); + mode.setSuffixes(List.of("redhat")); daConfig.setModes(Collections.singletonList(mode)); when(config.getConfig()).thenReturn(daConfig); generator = new ReportsGeneratorImpl(config); @@ -160,16 +158,12 @@ private Set toProductArtifacts(GA ga, List versions) { return Collections.singleton(new ProductArtifacts(Product.UNKNOWN, artifacts)); } - private void prepare( - List whitelisted, - boolean blacklisted, - List versions, - GAVDependencyTree dependencyTree) throws CommunicationException, FindGAVDependencyException { + private void prepare(List whitelisted, List versions) { lenient().when(productProvider.getArtifacts(matchingGAV(daCoreGAV))) .thenReturn(CompletableFuture.completedFuture(toProductArtifacts(daCoreGAV.getGA(), versions))); prepareProductProvider(versions, whitelisted, daCoreGAV); - lenient().when(blackArtifactService.isArtifactPresent(daCoreGAV)).thenReturn(blacklisted); + lenient().when(blackArtifactService.isArtifactPresent(daCoreGAV)).thenReturn(true); DAConfig daConfig = new DAConfig(); daConfig.setIndyGroup("DA"); @@ -212,8 +206,8 @@ public void testDistinctOnGavsStream() { } @Test - public void testBlacklistedLookupReport() throws CommunicationException, FindGAVDependencyException { - prepare(Collections.emptyList(), true, daCoreVersionsBest, daCoreNoDT); + public void testBlacklistedLookupReport() throws CommunicationException { + prepare(Collections.emptyList(), daCoreVersionsBest); LookupGAVsRequest lgr = new LookupGAVsRequest( Collections.emptySet(), Collections.emptySet(), diff --git a/reports-model/src/main/java/org/jboss/da/lookup/model/MavenLatestRequest.java b/reports-model/src/main/java/org/jboss/da/lookup/model/MavenLatestRequest.java index 24f1ac6c6..fc1c8ef58 100644 --- a/reports-model/src/main/java/org/jboss/da/lookup/model/MavenLatestRequest.java +++ b/reports-model/src/main/java/org/jboss/da/lookup/model/MavenLatestRequest.java @@ -5,7 +5,6 @@ import org.jboss.da.model.rest.GAV; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; import lombok.Builder; import lombok.Data; diff --git a/reports-model/src/main/java/org/jboss/da/lookup/model/NPMLookupResult.java b/reports-model/src/main/java/org/jboss/da/lookup/model/NPMLookupResult.java index 2e34cb950..0daa7d156 100644 --- a/reports-model/src/main/java/org/jboss/da/lookup/model/NPMLookupResult.java +++ b/reports-model/src/main/java/org/jboss/da/lookup/model/NPMLookupResult.java @@ -1,15 +1,12 @@ package org.jboss.da.lookup.model; -import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; import lombok.NonNull; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonUnwrapped; -import org.jboss.da.model.rest.GAV; import org.jboss.da.model.rest.NPMPackage; @EqualsAndHashCode(callSuper = true) diff --git a/reports-model/src/main/java/org/jboss/da/lookup/model/NPMVersionsResult.java b/reports-model/src/main/java/org/jboss/da/lookup/model/NPMVersionsResult.java index 7aa6d9266..2c6572ec7 100644 --- a/reports-model/src/main/java/org/jboss/da/lookup/model/NPMVersionsResult.java +++ b/reports-model/src/main/java/org/jboss/da/lookup/model/NPMVersionsResult.java @@ -16,8 +16,6 @@ package org.jboss.da.lookup.model; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonUnwrapped; -import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.NoArgsConstructor; diff --git a/reports-model/src/main/java/org/jboss/da/model/rest/NPMPackage.java b/reports-model/src/main/java/org/jboss/da/model/rest/NPMPackage.java index 37d5f4e2c..0abce35a4 100644 --- a/reports-model/src/main/java/org/jboss/da/model/rest/NPMPackage.java +++ b/reports-model/src/main/java/org/jboss/da/model/rest/NPMPackage.java @@ -32,9 +32,9 @@ @JsonDeserialize(builder = NPMPackage.Builder.class) public class NPMPackage { - private final String name; + String name; - private final String version; + String version; @JsonPOJOBuilder(withPrefix = "") public static final class Builder { diff --git a/reports-model/src/main/java/org/jboss/da/reports/model/request/LookupNPMRequest.java b/reports-model/src/main/java/org/jboss/da/reports/model/request/LookupNPMRequest.java index 7aecff405..f45db0408 100644 --- a/reports-model/src/main/java/org/jboss/da/reports/model/request/LookupNPMRequest.java +++ b/reports-model/src/main/java/org/jboss/da/reports/model/request/LookupNPMRequest.java @@ -38,13 +38,13 @@ @JsonIgnoreProperties(ignoreUnknown = true) public class LookupNPMRequest { - private final String versionSuffix; + String versionSuffix; @NotNull - private final String mode; + String mode; @NonNull - private final List packages; + List packages; @JsonIgnoreProperties(ignoreUnknown = true) @JsonPOJOBuilder(withPrefix = "") diff --git a/reports-model/src/main/java/org/jboss/da/reports/model/request/VersionsNPMRequest.java b/reports-model/src/main/java/org/jboss/da/reports/model/request/VersionsNPMRequest.java index 9287d4f78..4e89a50b3 100644 --- a/reports-model/src/main/java/org/jboss/da/reports/model/request/VersionsNPMRequest.java +++ b/reports-model/src/main/java/org/jboss/da/reports/model/request/VersionsNPMRequest.java @@ -42,15 +42,15 @@ public enum VersionFilter { MAJOR_MINOR } - private final VersionFilter versionFilter; + VersionFilter versionFilter; @NotNull - private final String mode; + String mode; @NonNull - private final List packages; + List packages; - private final boolean includeAll; + boolean includeAll; @JsonIgnoreProperties(ignoreUnknown = true) @JsonPOJOBuilder(withPrefix = "") diff --git a/reports-model/src/main/java/org/jboss/da/reports/model/response/striped/AlignReport.java b/reports-model/src/main/java/org/jboss/da/reports/model/response/striped/AlignReport.java index f063d5249..e79b94106 100644 --- a/reports-model/src/main/java/org/jboss/da/reports/model/response/striped/AlignReport.java +++ b/reports-model/src/main/java/org/jboss/da/reports/model/response/striped/AlignReport.java @@ -5,7 +5,6 @@ import lombok.NonNull; import org.jboss.da.reports.model.response.RestGA2GAVs; -import java.util.ArrayList; import java.util.List; /** diff --git a/reports-model/src/main/java/org/jboss/da/reports/model/response/striped/RestVersionProduct.java b/reports-model/src/main/java/org/jboss/da/reports/model/response/striped/RestVersionProduct.java index 56bc20a5b..94a64a6b1 100644 --- a/reports-model/src/main/java/org/jboss/da/reports/model/response/striped/RestVersionProduct.java +++ b/reports-model/src/main/java/org/jboss/da/reports/model/response/striped/RestVersionProduct.java @@ -1,7 +1,6 @@ package org.jboss.da.reports.model.response.striped; import lombok.*; -import org.jboss.da.listings.model.rest.RestProductInput; /** * diff --git a/reports-model/src/test/java/org/jboss/da/model/rest/VersionComparatorTest.java b/reports-model/src/test/java/org/jboss/da/model/rest/VersionComparatorTest.java index d9dc7971e..27ee39d5b 100644 --- a/reports-model/src/test/java/org/jboss/da/model/rest/VersionComparatorTest.java +++ b/reports-model/src/test/java/org/jboss/da/model/rest/VersionComparatorTest.java @@ -2,6 +2,7 @@ import org.junit.jupiter.api.Test; +import static org.junit.jupiter.api.Assertions.assertEquals; import static org.junit.jupiter.api.Assertions.assertTrue; /** @@ -19,15 +20,17 @@ public void testCompareVersion() { assertTrue(vc.compare("3.4.2.Final", "3.4.1.Final") > 0); assertTrue(vc.compare("3.4.2.Final", "3.4.2.Beta") > 0); - assertTrue(vc.compare("3.0.0.Final", "3.Final") == 0); - assertTrue(vc.compare("3.0.0.Final", "3.0.Final") == 0); - assertTrue(vc.compare("3.0.0.Final", "3.0.0.Final") == 0); + assertEquals(0, vc.compare("3.0.0.Final", "3.Final")); + assertEquals(0, vc.compare("3.0.0.Final", "3.0.Final")); + // noinspection EqualsWithItself + assertEquals(0, vc.compare("3.0.0.Final", "3.0.0.Final")); - assertTrue(vc.compare("3.0.0", "3") == 0); - assertTrue(vc.compare("3.0.0", "3.0") == 0); - assertTrue(vc.compare("3.0.0", "3.0.0") == 0); + assertEquals(0, vc.compare("3.0.0", "3")); + assertEquals(0, vc.compare("3.0.0", "3.0")); + // noinspection EqualsWithItself + assertEquals(0, vc.compare("3.0.0", "3.0.0")); - assertTrue(vc.compare("b10", "0.0.0.b10") == 0); + assertEquals(0, vc.compare("b10", "0.0.0.b10")); assertTrue(vc.compare("3.4.2.Final", "4.4.2.Final") < 0); assertTrue(vc.compare("3.4.2.Final", "3.5.2.Final") < 0); diff --git a/reports-rest/src/main/java/org/jboss/da/rest/SwaggerConfiguration.java b/reports-rest/src/main/java/org/jboss/da/rest/SwaggerConfiguration.java index 697dfa6bd..005d8b9e8 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/SwaggerConfiguration.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/SwaggerConfiguration.java @@ -1,16 +1,8 @@ package org.jboss.da.rest; -import org.eclipse.microprofile.openapi.annotations.OpenAPIDefinition; -import org.eclipse.microprofile.openapi.annotations.info.Info; -import org.eclipse.microprofile.openapi.annotations.info.License; -import org.eclipse.microprofile.openapi.annotations.servers.Server; -import org.eclipse.microprofile.openapi.annotations.tags.Tag; - -import static org.jboss.da.common.Constants.DA_VERSION; - /** * @author Honza Brázdil <jbrazdil@redhat.com> - * + * * @OpenAPIDefinition( info = @Info( title = "Dependency Analyzer", license = @License(name = "Apache 2.0", url * = "https://www.apache.org/licenses/LICENSE-2.0.html"), version = DA_VERSION), servers = { @Server(url = * "/da", description = "Dependency Analyzer") }, tags = { @@ -18,6 +10,6 @@ * @Tag(name = "blocklist", description = "Listings of blocklisted artifacts"), * @Tag(name = "reports", description = "Get report of dependencies of projects"), * @Tag(name = "deprecated", description = "Deprecated endpoints.") }) public interface SwaggerConfiguration { - * + * * } */ \ No newline at end of file diff --git a/reports-rest/src/main/java/org/jboss/da/rest/exceptions/AllExceptionsMapper.java b/reports-rest/src/main/java/org/jboss/da/rest/exceptions/AllExceptionsMapper.java index 64fefe478..e7c42a41d 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/exceptions/AllExceptionsMapper.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/exceptions/AllExceptionsMapper.java @@ -1,7 +1,6 @@ package org.jboss.da.rest.exceptions; import jakarta.inject.Inject; -import lombok.extern.slf4j.Slf4j; import org.apache.maven.scm.ScmException; import org.jboss.da.common.CommunicationException; diff --git a/reports-rest/src/main/java/org/jboss/da/rest/listings/BlackListImpl.java b/reports-rest/src/main/java/org/jboss/da/rest/listings/BlackListImpl.java index 34563b382..b7c18f909 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/listings/BlackListImpl.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/listings/BlackListImpl.java @@ -39,9 +39,7 @@ public class BlackListImpl implements BlackList { @Override @WithSpan() public Collection getAllBlackArtifacts() { - List artifacts = new ArrayList<>(); - artifacts.addAll(convert.toRestArtifacts(blackService.getAll())); - return artifacts; + return new ArrayList<>(convert.toRestArtifacts(blackService.getAll())); } @Override diff --git a/reports-rest/src/main/java/org/jboss/da/rest/listings/RestConvert.java b/reports-rest/src/main/java/org/jboss/da/rest/listings/RestConvert.java index 3bd3208b9..b227fd311 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/listings/RestConvert.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/listings/RestConvert.java @@ -2,18 +2,15 @@ import org.jboss.da.listings.api.model.Artifact; import org.jboss.da.listings.model.rest.RestArtifact; -import org.jboss.da.listings.model.rest.RestProduct; -import org.jboss.da.listings.model.rest.RestProductGAV; import jakarta.enterprise.context.ApplicationScoped; -import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.stream.Collectors; /** - * + * * @author Jozef Mrazek <jmrazek@redhat.com> * */ diff --git a/reports-rest/src/main/java/org/jboss/da/rest/websocket/DefaultWebsocketEndpointHandler.java b/reports-rest/src/main/java/org/jboss/da/rest/websocket/DefaultWebsocketEndpointHandler.java index d1da7cff3..ef66e3745 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/websocket/DefaultWebsocketEndpointHandler.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/websocket/DefaultWebsocketEndpointHandler.java @@ -110,19 +110,14 @@ private JSONRPC2Request getRequest(Basic remote, String msg) throws IOException try { return JSONRPC2Request.parse(msg); } catch (JSONRPC2ParseException ex) { - JSONRPC2Error error; - switch (ex.getCauseType()) { - case JSONRPC2ParseException.PROTOCOL: - error = JSONRPC2Error.INVALID_REQUEST; - break; - case JSONRPC2ParseException.JSON: - error = JSONRPC2Error.PARSE_ERROR; - break; - default: + JSONRPC2Error error = switch (ex.getCauseType()) { + case JSONRPC2ParseException.PROTOCOL -> JSONRPC2Error.INVALID_REQUEST; + case JSONRPC2ParseException.JSON -> JSONRPC2Error.PARSE_ERROR; + default -> { log.warn("Unknown exception cause type " + ex.getCauseType() + "."); - error = JSONRPC2Error.PARSE_ERROR; - break; - } + yield JSONRPC2Error.PARSE_ERROR; + } + }; error = error.setData(ex.getMessage()); remote.sendText(new JSONRPC2Response(error, null).toString()); log.warn("Failed to parse JSON RPC message", ex); diff --git a/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsEndpoint.java b/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsEndpoint.java index f69e45f49..c37cedd49 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsEndpoint.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsEndpoint.java @@ -3,7 +3,6 @@ import org.jboss.da.common.logging.AuditLogger; import org.jboss.da.rest.websocket.Methods; import org.jboss.da.rest.websocket.WebsocketEndpointHandler; -import org.slf4j.MDC; import jakarta.annotation.PostConstruct; import jakarta.inject.Inject; diff --git a/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsMethodsImpl.java b/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsMethodsImpl.java index ac34cb8b3..256eba282 100644 --- a/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsMethodsImpl.java +++ b/reports-rest/src/main/java/org/jboss/da/rest/ws/ReportsMethodsImpl.java @@ -40,40 +40,21 @@ public class ReportsMethodsImpl implements Methods { @Inject public ReportsMethodsImpl(ReportsFacade facade) { - SCM = put( - new DefaultMethod<>( - "reports.scm", - SCMReportRequest.class, - Map.class, - params -> facade.scmReport(params))); + SCM = put(new DefaultMethod<>("reports.scm", SCMReportRequest.class, Map.class, facade::scmReport)); SCM_ADVANCED = put( new DefaultMethod<>( "reports.scmAdvanced", SCMReportRequest.class, Map.class, - params -> facade.advancedScmReport(params))); + facade::advancedScmReport)); - BUILT = put( - new DefaultMethod<>( - "reports.built", - BuiltReportRequest.class, - Set.class, - params -> facade.builtReport(params))); + BUILT = put(new DefaultMethod<>("reports.built", BuiltReportRequest.class, Set.class, facade::builtReport)); - ALIGN = put( - new DefaultMethod<>( - "reports.align", - AlignReportRequest.class, - Map.class, - params -> facade.alignReport(params))); + ALIGN = put(new DefaultMethod<>("reports.align", AlignReportRequest.class, Map.class, facade::alignReport)); LOOKUP_GAV = put( - new DefaultMethod<>( - "reports.lookup.gav", - LookupGAVsRequest.class, - List.class, - params -> facade.gavsReport(params))); + new DefaultMethod<>("reports.lookup.gav", LookupGAVsRequest.class, List.class, facade::gavsReport)); } private DefaultMethod put(DefaultMethod method) { diff --git a/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMCache.java b/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMCache.java index 087b4df61..e49df9eb9 100644 --- a/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMCache.java +++ b/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMCache.java @@ -14,6 +14,7 @@ import io.quarkus.scheduler.Scheduled; import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * @@ -22,8 +23,7 @@ @ApplicationScoped public class SCMCache { - @Inject - Logger log; + private static final Logger log = LoggerFactory.getLogger(SCMCache.class); @Inject ScmFacade scm; diff --git a/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMImpl.java b/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMImpl.java index 8034ec4ee..0e4533968 100644 --- a/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMImpl.java +++ b/source-code-manager/src/main/java/org/jboss/da/scm/impl/SCMImpl.java @@ -15,6 +15,7 @@ import java.util.concurrent.TimeoutException; import org.slf4j.Logger; import org.apache.commons.io.FileUtils; +import org.slf4j.LoggerFactory; /** * @@ -23,8 +24,7 @@ @ApplicationScoped public class SCMImpl implements SCM { - @Inject - Logger log; + private static final Logger log = LoggerFactory.getLogger(SCMImpl.class); @Inject ScmFacade scm; diff --git a/source-code-manager/src/main/java/org/jboss/da/scm/impl/ScmFacade.java b/source-code-manager/src/main/java/org/jboss/da/scm/impl/ScmFacade.java index 1b535927e..bb3ab2199 100644 --- a/source-code-manager/src/main/java/org/jboss/da/scm/impl/ScmFacade.java +++ b/source-code-manager/src/main/java/org/jboss/da/scm/impl/ScmFacade.java @@ -18,6 +18,7 @@ import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; +import org.slf4j.LoggerFactory; import java.io.File; import java.io.IOException; @@ -26,13 +27,12 @@ /** * Facade, which simplifies operations with the SCM repositories - * + * */ @ApplicationScoped public class ScmFacade { - @Inject - private Logger logger; + private static final Logger logger = LoggerFactory.getLogger(ScmFacade.class); private final ScmManager scmManager; @@ -47,7 +47,7 @@ public ScmFacade() { /** * Tries to do a shallow clone (clone only the requested revision) of the remote repository to the local directory. * If it is not possible to do that, then it does the full clone. - * + * * @param scmType Type of the repository * @param scmUrl URL to the repository * @param revision Revision of the repository, which should be cloned @@ -69,7 +69,7 @@ public void shallowCloneRepository(SCMType scmType, String scmUrl, String revisi /** * Process full clone of the remote repository to the local directory. - * + * * @param scmType Type of the repository * @param scmUrl URL to the repository * @param revision Revision of the repository, which should be cloned @@ -87,7 +87,7 @@ public void cloneRepository(SCMType scmType, String scmUrl, String revision, Fil /** * Stages selected local files in the SCM repository and pushes them to the remote repository. - * + * * @param scmType Type of the repository * @param scmUrl URL to the repository * @param baseDir Directory of the local repository diff --git a/testsuite/pom.xml b/testsuite/pom.xml index 693704096..144298a32 100644 --- a/testsuite/pom.xml +++ b/testsuite/pom.xml @@ -52,21 +52,6 @@ wiremock-standalone test - - org.jboss.arquillian.junit5 - arquillian-junit5-container - test - - - org.jboss.resteasy - resteasy-jackson2-provider - test - - - com.fasterxml.jackson.core - jackson-databind - test - org.skyscreamer jsonassert diff --git a/testsuite/src/test/java/org/jboss/da/test/client/AbstractClientApiTest.java b/testsuite/src/test/java/org/jboss/da/test/client/AbstractClientApiTest.java index e2dda194d..4e67f731d 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/AbstractClientApiTest.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/AbstractClientApiTest.java @@ -54,7 +54,7 @@ private Path readRestApiExpectedResponseFolder() { protected String readConfigurationValue(String name, String defaultValue) { String value = readConfigurationValue(name); - return value == null || "".equals(value.trim()) ? defaultValue : value; + return value == null || value.trim().isEmpty() ? defaultValue : value; } protected String readConfigurationValue(String name) { @@ -208,7 +208,7 @@ protected void assertEqualsJson(String expected, String actual) { } @Test - final void testJsonEquals() throws JSONException { + final void testJsonEquals() { String s1 = "[{\"groupId\": \"com.google.guava\", \"artifactId\": \"guava\", \"version\": \"13.0.1\"}]"; String s2 = "[{\"groupId\": \"com.google.guava\", \"version\": \"13.0.1\", \"artifactId\": \"guava\"}]"; assertEqualsJson(s1, s2); diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/AbstractRestApiTest.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/AbstractRestApiTest.java index 420e68ae8..904b1f02a 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/AbstractRestApiTest.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/AbstractRestApiTest.java @@ -1,6 +1,7 @@ package org.jboss.da.test.client.rest; import io.quarkus.logging.Log; +import jakarta.ws.rs.client.Client; import org.apache.commons.io.FileUtils; import org.jboss.da.test.client.AbstractClientApiTest; @@ -11,6 +12,8 @@ import jakarta.ws.rs.client.WebTarget; import jakarta.ws.rs.core.MediaType; import jakarta.ws.rs.core.Response; +import org.junit.jupiter.api.AutoClose; +import org.junit.jupiter.api.BeforeEach; import java.io.File; import java.io.IOException; @@ -28,6 +31,9 @@ public abstract class AbstractRestApiTest extends AbstractClientApiTest { private final ClientBuilder builder; + @AutoClose + private Client client; + public AbstractRestApiTest() { this.restApiVersion = readRestApiVersion(); this.restApiURL = readRestApiUrl(); @@ -38,6 +44,11 @@ public AbstractRestApiTest() { builder = ClientBuilder.newBuilder();// .register(crf); } + @BeforeEach + public void setup() { + client = builder.build(); + } + private String readRestApiUrl() { return readConfigurationValue( "testsuite.restApiUrl", @@ -46,20 +57,15 @@ private String readRestApiUrl() { } protected WebTarget createWebTarget(String relativePath) { - return builder.build().target(restApiURL + relativePath); + return client.target(restApiURL + relativePath); } protected Invocation.Builder createClientRequest(String relativePath) { - Log.warn("### Using request target " + restApiURL + relativePath); - WebTarget target = builder.build().target(restApiURL + relativePath); - return target.request(MediaType.APPLICATION_JSON_TYPE); + return createWebTarget(relativePath).request(MediaType.APPLICATION_JSON_TYPE); } protected Response getResponseForRequest(String endpoint, String requestFile) throws IOException { File jsonRequestFile = getJsonRequestFile(endpoint, requestFile); - System.out.println( - "### Using file " + jsonRequestFile + " containing " - + FileUtils.readFileToString(jsonRequestFile, ENCODING)); final String entity = FileUtils.readFileToString(jsonRequestFile, ENCODING); return createClientRequest(endpoint).post(Entity.json(entity)); } @@ -67,11 +73,8 @@ protected Response getResponseForRequest(String endpoint, String requestFile) th protected Response assertResponseForRequest(String endpoint, String requestFile) throws Exception { Response response = getResponseForRequest(endpoint, requestFile); File expectedResponseFile = getJsonResponseFile(endpoint, requestFile); - System.out.println( - "### Expected from file " + expectedResponseFile + " is: " - + FileUtils.readFileToString(expectedResponseFile, Charset.defaultCharset())); final String actual = response.readEntity(String.class).trim(); - System.out.println("### Actual: " + actual); + Log.info("Actual: " + actual); assertEqualsJson(FileUtils.readFileToString(expectedResponseFile, Charset.defaultCharset()).trim(), actual); return response; } diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/AbstractRestApiListingTest.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/AbstractRestApiListingTest.java index 2111ae37d..68e5b0155 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/AbstractRestApiListingTest.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/AbstractRestApiListingTest.java @@ -12,7 +12,6 @@ import static org.junit.jupiter.api.Assertions.fail; import jakarta.ws.rs.client.Entity; -import jakarta.ws.rs.client.Invocation; import jakarta.ws.rs.core.GenericType; import jakarta.ws.rs.core.Response; @@ -23,11 +22,11 @@ public abstract class AbstractRestApiListingTest extends AbstractRestReportsTest { protected enum ListEntityType { - BLACK; + BLACK } protected enum OperationType { - POST, DELETE, PUT; + POST, DELETE, PUT } protected static final String PATH_FILES_LISTINGS_GAV = "/listings"; @@ -39,7 +38,7 @@ protected enum OperationType { protected static final String PATH_BLACK_LISTINGS_GA = "/listings/blacklist/ga"; @AfterEach - public void dropTables() throws Exception { + public void dropTables() { List blacklistedArtifacts = getAllArtifactsFromList(PATH_BLACK_LIST); blacklistedArtifacts.forEach(gav -> removeGavFromList(PATH_BLACK_LISTINGS_GAV, gav)); } @@ -52,20 +51,16 @@ private void removeGavFromList(String listUrl, RestArtifact gav) { } } - private String toRestProductRequest(RestProduct p) { - return "{" + "\"name\":" + "\"" + p.getName() + "\"," + "\"version\":" + "\"" + p.getVersion() + "\"" + "}"; - } - - protected List getAllArtifactsFromList(String listUrl) throws Exception { - return processGetRequest(new GenericType>() { + protected List getAllArtifactsFromList(String listUrl) { + return processGetRequest(new GenericType<>() { }, listUrl); } - private T processGetRequest(GenericType type, String url) throws Exception { + private T processGetRequest(GenericType type, String url) { Response response = createClientRequest(url).get(); if (response.getStatus() != 200) { - System.out.println("Respose: " + response.readEntity(String.class)); + System.out.println("Response: " + response.readEntity(String.class)); fail("Failed to get entity via REST API. Status " + response.getStatusInfo()); } @@ -77,44 +72,18 @@ protected String readJsonFile(String file) throws IOException { return FileUtils.readFileToString(jsonRequestFile, ENCODING); } - protected Response manipulateEntityFile( - ListEntityType entity, - OperationType operation, - String file, - Boolean checkSuccess) throws Exception { - return manipulateEntityString(entity, operation, readJsonFile(file), checkSuccess); + protected Response manipulateEntityFile(OperationType operation, String file) throws Exception { + return manipulateEntityString(operation, readJsonFile(file)); } - protected Response manipulateEntityString( - ListEntityType entity, - OperationType operation, - String requestString, - Boolean checkSuccess) throws Exception { - String path = null; - switch (entity) { - case BLACK: - path = PATH_BLACK_LISTINGS_GAV; - break; - } - - Invocation.Builder request = createClientRequest(path); - Response response; - switch (operation) { - case POST: - response = request.post(Entity.json(requestString)); - break; - - case DELETE: - response = request.method("DELETE", Entity.json(requestString)); - break; - case PUT: - response = request.put(Entity.json(requestString)); - break; - default: - throw new UnsupportedOperationException("Unknonw operation " + operation); - } - if (checkSuccess) - assertEquals(200, response.getStatus()); + protected Response manipulateEntityString(OperationType operation, String requestString) { + String path = PATH_BLACK_LISTINGS_GAV; + Response response = switch (operation) { + case POST -> createClientRequest(path).post(Entity.json(requestString)); + case DELETE -> createClientRequest(path).method("DELETE", Entity.json(requestString)); + case PUT -> createClientRequest(path).put(Entity.json(requestString)); + }; + assertEquals(200, response.getStatus()); return response; } diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/BugReporoducerRemoteTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/BugReporoducerRemoteTestIT.java deleted file mode 100644 index 507af8ea4..000000000 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/BugReporoducerRemoteTestIT.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * To change this license header, choose License Headers in Project Properties. - * To change this template file, choose Tools | Templates - * and open the template in the editor. - */ -package org.jboss.da.test.client.rest.listings; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -import org.junit.jupiter.api.Disabled; -import org.junit.jupiter.api.Test; - -import jakarta.ws.rs.core.Response; - -/** - * - * @author Honza Brázdil <jbrazdil@redhat.com> - */ -@Disabled -public class BugReporoducerRemoteTestIT extends AbstractRestApiListingTest { - - private static final String PATH_LOOKUP_GAVS = "/reports/lookup/gavs"; - private static final String PATH_LOOKUP_MAVEN = "/lookup/maven"; - - @Test - public void testNCL5035() throws Exception { - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gavParent", true); - - Response response = assertResponseForRequest(PATH_LOOKUP_GAVS, "ncl5035"); - // File jsonRequestFile = getJsonRequestFile(PATH_LOOKUP_GAVS, "parent"); - // Response response = createClientRequest(PATH_LOOKUP_GAVS).post( - // Entity.json(FileUtils.readFileToString(jsonRequestFile, ENCODING))); - // System.out.println("Response: " + response.readEntity(String.class)); - - assertEquals(200, response.getStatus()); - } - - @Test - public void testNCL5035OnLookupEndpoint() throws Exception { - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gavParent", true); - - Response response = assertResponseForRequest(PATH_LOOKUP_MAVEN, "ncl5035"); - - assertEquals(200, response.getStatus()); - } -} diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/BugReproducerRemoteTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/BugReproducerRemoteTestIT.java new file mode 100644 index 000000000..fd5224b0c --- /dev/null +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/BugReproducerRemoteTestIT.java @@ -0,0 +1,42 @@ +/* + * To change this license header, choose License Headers in Project Properties. + * To change this template file, choose Tools | Templates + * and open the template in the editor. + */ +package org.jboss.da.test.client.rest.listings; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import jakarta.ws.rs.core.Response; + +/** + * + * @author Honza Brázdil <jbrazdil@redhat.com> + */ +@Disabled +public class BugReproducerRemoteTestIT extends AbstractRestApiListingTest { + + private static final String PATH_LOOKUP_GAVS = "/reports/lookup/gavs"; + private static final String PATH_LOOKUP_MAVEN = "/lookup/maven"; + + @Test + public void testNCL5035() throws Exception { + manipulateEntityFile(OperationType.POST, "gavParent").close(); + + try (Response response = assertResponseForRequest(PATH_LOOKUP_GAVS, "ncl5035")) { + assertEquals(200, response.getStatus()); + } + } + + @Test + public void testNCL5035OnLookupEndpoint() throws Exception { + manipulateEntityFile(OperationType.POST, "gavParent").close(); + + try (Response response = assertResponseForRequest(PATH_LOOKUP_MAVEN, "ncl5035")) { + assertEquals(200, response.getStatus()); + } + } +} diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/RestApiListingsTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/RestApiListingsTestIT.java index 40864fef0..ebb3f5e20 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/RestApiListingsTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/listings/RestApiListingsTestIT.java @@ -23,7 +23,7 @@ public class RestApiListingsTestIT extends AbstractRestApiListingTest { @Test public void testAddBlackArtifact() throws Exception { - Response response = manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gav", true); + Response response = manipulateEntityFile(OperationType.POST, "gav"); checkExpectedResponse(response, "success"); } @@ -31,10 +31,10 @@ public void testAddBlackArtifact() throws Exception { @Test public void testDeleteBlackArtifact() throws Exception { // add artifact - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gav", true); + manipulateEntityFile(OperationType.POST, "gav").close(); // delete artifact - Response response = manipulateEntityFile(ListEntityType.BLACK, OperationType.DELETE, "gav", true); + Response response = manipulateEntityFile(OperationType.DELETE, "gav"); checkExpectedResponse(response, "success"); } @@ -44,7 +44,7 @@ public void shouldBlackListSpecificRedhatBuild() throws Exception { String g = "org.jboss.da"; String a = "dependency-analyzer"; String v = "0.3.0"; - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gavRh", true); + manipulateEntityFile(OperationType.POST, "gavRh").close(); Response response = getBlacklistedGAV(g, a, v); assertEquals(404, response.getStatus()); @@ -61,7 +61,7 @@ public void shouldBlacklistWholeVersions() throws Exception { // String g = "org.jboss.da"; String a = "dependency-analyzer"; String v = "0.3.0"; - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gav", true); + manipulateEntityFile(OperationType.POST, "gav").close(); Response response = getBlacklistedGAV(g, a, v + "-redhat-1"); assertEquals(200, response.getStatus()); @@ -79,8 +79,8 @@ public void shouldUnBlacklistWithoutAndWithRHSuffix() throws Exception { String g = "org.jboss.da"; String a = "dependency-analyzer"; String v = "0.3.0"; - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gavRh", true); - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gav", true); + manipulateEntityFile(OperationType.POST, "gavRh").close(); + manipulateEntityFile(OperationType.POST, "gav").close(); Response response = getBlacklistedGAV(g, a, v); checkExpectedResponse(response, "gavNonRhResponse"); response = getBlacklistedGAV(g, a, v + "-redhat-1"); @@ -88,7 +88,7 @@ public void shouldUnBlacklistWithoutAndWithRHSuffix() throws Exception { response = getBlacklistedGAV(g, a, v + "-redhat-2"); checkExpectedResponse(response, "gavNonRhResponse"); - manipulateEntityFile(ListEntityType.BLACK, OperationType.DELETE, "gav", true); + manipulateEntityFile(OperationType.DELETE, "gav").close(); response = getBlacklistedGAV(g, a, v); assertEquals(404, response.getStatus()); response = getBlacklistedGAV(g, a, v + ".redhat-2"); @@ -97,7 +97,7 @@ public void shouldUnBlacklistWithoutAndWithRHSuffix() throws Exception { assertEquals(200, response.getStatus()); checkExpectedResponse(response, "gavRhNonOSGiResponse"); - manipulateEntityFile(ListEntityType.BLACK, OperationType.DELETE, "gavRh", true); + manipulateEntityFile(OperationType.DELETE, "gavRh").close(); response = getBlacklistedGAV(g, a, v); assertEquals(404, response.getStatus()); response = getBlacklistedGAV(g, a, v + ".redhat-2"); @@ -108,7 +108,7 @@ public void shouldUnBlacklistWithoutAndWithRHSuffix() throws Exception { @Test public void testDeleteNonExistingBlackArtifact() throws Exception { - Response response = manipulateEntityFile(ListEntityType.BLACK, OperationType.DELETE, "gav", true); + Response response = manipulateEntityFile(OperationType.DELETE, "gav"); checkExpectedResponse(response, "successFalse"); } @@ -116,10 +116,10 @@ public void testDeleteNonExistingBlackArtifact() throws Exception { @Test public void testAlreadyAddedBlackArtifact() throws Exception { // add first black artifact - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gav", true); + manipulateEntityFile(OperationType.POST, "gav").close(); // add second black artifact - Response response = manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gav", true); + Response response = manipulateEntityFile(OperationType.POST, "gav"); checkExpectedResponse(response, "successFalse"); } @@ -127,9 +127,9 @@ public void testAlreadyAddedBlackArtifact() throws Exception { @Test public void testGetAllBlackArtifacts() throws Exception { // Add artifacts to blacklist - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gav", true); + manipulateEntityFile(OperationType.POST, "gav").close(); - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gav2", true); + manipulateEntityFile(OperationType.POST, "gav2").close(); // Get list Response response = createClientRequest(PATH_BLACK_LIST).get(); @@ -144,11 +144,11 @@ public void testGetGABlackArtifacts() throws Exception { checkExpectedResponse(getBlacklisted("foo", "bar"), "gaBlacklistEmpty"); // Add artifacts - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gavFoobar", true); - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gavFoobaz-1", true); - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gavFoobaz-2", true); - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gavFoobarbaz", true); - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gavFoobarbaz-4", true); + manipulateEntityFile(OperationType.POST, "gavFoobar").close(); + manipulateEntityFile(OperationType.POST, "gavFoobaz-1").close(); + manipulateEntityFile(OperationType.POST, "gavFoobaz-2").close(); + manipulateEntityFile(OperationType.POST, "gavFoobarbaz").close(); + manipulateEntityFile(OperationType.POST, "gavFoobarbaz-4").close(); // Check responses checkExpectedResponse(getBlacklisted("foo", "bar"), "gaBlacklistFoobar"); @@ -158,7 +158,7 @@ public void testGetGABlackArtifacts() throws Exception { @Test public void testCheckRHBlackArtifact() throws Exception { - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gav", true); + manipulateEntityFile(OperationType.POST, "gav").close(); Response response = getBlacklisted("org.jboss.da", "dependency-analyzer", "0.3.0.redhat-1"); @@ -166,10 +166,9 @@ public void testCheckRHBlackArtifact() throws Exception { } private Response getBlacklistedGAV(String groupId, String artifactId, String version) { - Response response = createClientRequest( + return createClientRequest( PATH_BLACK_LISTINGS_GAV + "?groupid=" + groupId + "&artifactid=" + artifactId + "&version=" + version) .get(); - return response; } private Response getBlacklisted(String groupId, String artifactId, String version) { @@ -188,12 +187,10 @@ private Response getBlacklisted(String groupId, String artifactId) { /** * Non RedHat but OSGi compliant black artifact test - * - * @throws Exception */ @Test public void testCheckNonRHBlackArtifact() throws Exception { - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gav", true); + manipulateEntityFile(OperationType.POST, "gav").close(); Response response = getBlacklisted("org.jboss.da", "dependency-analyzer", "0.3.0"); @@ -202,12 +199,10 @@ public void testCheckNonRHBlackArtifact() throws Exception { /** * Non RedHat non OSGi compliant black artifact test - * - * @throws Exception */ @Test public void testCheckNonRHNonOSGiBlackArtifact() throws Exception { - manipulateEntityFile(ListEntityType.BLACK, OperationType.POST, "gav", true); + manipulateEntityFile(OperationType.POST, "gav").close(); Response response = getBlacklisted("org.jboss.da", "dependency-analyzer", "0.3"); @@ -229,6 +224,6 @@ private void checkExpectedResponse(Response response, String expectedFile) throw assertEqualsJson( readFileToString(expectedResponseFile, Charset.defaultCharset()), response.readEntity(String.class)); + response.close(); } - } diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupBlocklistTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupBlocklistTestIT.java index 834729ee1..764db0cb0 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupBlocklistTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupBlocklistTestIT.java @@ -21,7 +21,8 @@ public class LookupBlocklistTestIT extends AbstractRestReportsTest { @BeforeEach public void prepareBlocklist() { String blocklist = "{\"groupId\":\"com.google.guava\",\"artifactId\":\"guava\",\"version\":\"13.0.1-redhat-2\"}"; - createClientRequest(PATH_BLACK_LISTINGS_GAV).post(Entity.json(blocklist)).close(); + Response response = createClientRequest(PATH_BLACK_LISTINGS_GAV).post(Entity.json(blocklist)); + response.close(); } @Test @@ -34,6 +35,7 @@ public void testGavLookupSingleWithBlocklist() throws Exception { @AfterEach public void cleanBlocklist() { String blocklist = "{\"groupId\":\"com.google.guava\",\"artifactId\":\"guava\",\"version\":\"13.0.1-redhat-2\"}"; - createClientRequest(PATH_BLACK_LISTINGS_GAV).method("DELTE", Entity.json(blocklist)).close(); + Response response = createClientRequest(PATH_BLACK_LISTINGS_GAV).method("DELTE", Entity.json(blocklist)); + response.close(); } } diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupTestIT.java index c3b36175f..2fd579a9b 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/lookup/LookupTestIT.java @@ -22,42 +22,50 @@ public class LookupTestIT extends AbstractRestReportsTest { @Test public void testGavLookupSingle() throws Exception { - Response response = assertResponseForRequest(PATH_LOOKUP_MAVEN, "guava13"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_LOOKUP_MAVEN, "guava13")) { + assertEquals(200, response.getStatus()); + } } @Test public void testGavLookupSingleTemporary() throws Exception { - Response response = assertResponseForRequest(PATH_LOOKUP_MAVEN, "guava13Temp"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_LOOKUP_MAVEN, "guava13Temp")) { + assertEquals(200, response.getStatus()); + } } @Test public void testGavLatestTemporary() throws Exception { - Response response = assertResponseForRequest(PATH_LATEST_MAVEN, "guava13Temp"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_LATEST_MAVEN, "guava13Temp")) { + assertEquals(200, response.getStatus()); + } } @Test public void testGavLatestMissingTemporary() throws Exception { - Response response = assertResponseForRequest(PATH_LATEST_MAVEN, "guava13Temp2"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_LATEST_MAVEN, "guava13Temp2")) { + assertEquals(200, response.getStatus()); + } } @Test public void testGavLookupList() throws Exception { - Response response = assertResponseForRequest(PATH_LOOKUP_MAVEN, "guava13List"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_LOOKUP_MAVEN, "guava13List")) { + assertEquals(200, response.getStatus()); + } } @Test public void testGavVersions() throws Exception { - Response response = assertResponseForRequest(PATH_MAVEN_VERSIONS, "guava13"); - assertEquals(200, response.getStatus()); - response = assertResponseForRequest(PATH_MAVEN_VERSIONS, "guava13Minor"); - assertEquals(200, response.getStatus()); - response = assertResponseForRequest(PATH_MAVEN_VERSIONS, "guava13Closest"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_MAVEN_VERSIONS, "guava13")) { + assertEquals(200, response.getStatus()); + } + try (Response response = assertResponseForRequest(PATH_MAVEN_VERSIONS, "guava13Minor")) { + assertEquals(200, response.getStatus()); + } + try (Response response = assertResponseForRequest(PATH_MAVEN_VERSIONS, "guava13Closest")) { + assertEquals(200, response.getStatus()); + } } @Test @@ -68,21 +76,25 @@ public void testGavLookupInvalidMode() throws Exception { @Test public void testPackageVersions() throws Exception { - Response response = assertResponseForRequest(PATH_NPM_VERSIONS, "jquery151"); - assertEquals(200, response.getStatus()); - response = assertResponseForRequest(PATH_NPM_VERSIONS, "jquery151Major"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_NPM_VERSIONS, "jquery151")) { + assertEquals(200, response.getStatus()); + } + try (Response response = assertResponseForRequest(PATH_NPM_VERSIONS, "jquery151Major")) { + assertEquals(200, response.getStatus()); + } } @Test public void testNCLSUP132() throws Exception { - Response response = assertResponseForRequest(PATH_LOOKUP_MAVEN, "NCLSUP132"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_LOOKUP_MAVEN, "NCLSUP132")) { + assertEquals(200, response.getStatus()); + } } @Test public void testNPMLookupSingle() throws Exception { - Response response = assertResponseForRequest(PATH_LOOKUP_NPM, "jquery151"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_LOOKUP_NPM, "jquery151")) { + assertEquals(200, response.getStatus()); + } } } diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/AlignRemoteTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/AlignRemoteTestIT.java index 4ab50b5a4..392d57da3 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/AlignRemoteTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/AlignRemoteTestIT.java @@ -26,7 +26,10 @@ public class AlignRemoteTestIT extends AbstractRestReportsTest { @Test public void test() throws Exception { - Response response = assertResponseForRequest(RestApiReportsRemoteTestIT.PATH_REPORTS_ALIGN, "align-test-wrong"); - assertEquals(500, response.getStatus()); + try (Response response = assertResponseForRequest( + RestApiReportsRemoteTestIT.PATH_REPORTS_ALIGN, + "align-test-wrong")) { + assertEquals(500, response.getStatus()); + } } } diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/BugReporoducerRemoteTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/BugReproducerRemoteTestIT.java similarity index 71% rename from testsuite/src/test/java/org/jboss/da/test/client/rest/reports/BugReporoducerRemoteTestIT.java rename to testsuite/src/test/java/org/jboss/da/test/client/rest/reports/BugReproducerRemoteTestIT.java index 9a46e0e76..e84d9505d 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/BugReporoducerRemoteTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/BugReproducerRemoteTestIT.java @@ -17,7 +17,7 @@ * @author Honza Brázdil <jbrazdil@redhat.com> */ @Disabled -public class BugReporoducerRemoteTestIT extends AbstractRestReportsTest { +public class BugReproducerRemoteTestIT extends AbstractRestReportsTest { private static final String ENCODING = "utf-8"; @@ -33,9 +33,9 @@ public void testDA176() throws Exception { String json = FileUtils.readFileToString(jsonRequestFile, ENCODING); json = json.replace("${DA-hosted-repo}", repo); - Response response = createClientRequest(PATH_SCM).post(Entity.json(json)); - - assertEquals(200, response.getStatus()); + try (Response response = createClientRequest(PATH_SCM).post(Entity.json(json))) { + assertEquals(200, response.getStatus()); + } } @Test @@ -43,10 +43,10 @@ public void testDA179() throws Exception { String gavNonexisting = "pnc-3de7ed5"; File jsonRequestFile = getJsonRequestFile(PATH_SCM, gavNonexisting); - Response response = createClientRequest(PATH_SCM) - .post(Entity.json(FileUtils.readFileToString(jsonRequestFile, ENCODING))); - - assertEquals(200, response.getStatus()); + try (Response response = createClientRequest(PATH_SCM) + .post(Entity.json(FileUtils.readFileToString(jsonRequestFile, ENCODING)))) { + assertEquals(200, response.getStatus()); + } } @Test @@ -54,15 +54,16 @@ public void testNCL5377() throws Exception { String nonOSGiDependency = "NCL5377"; File jsonRequestFile = getJsonRequestFile(PATH_SCM, nonOSGiDependency); - Response response = createClientRequest(PATH_SCM) - .post(Entity.json(FileUtils.readFileToString(jsonRequestFile, ENCODING))); - - assertEquals(200, response.getStatus()); + try (Response response = createClientRequest(PATH_SCM) + .post(Entity.json(FileUtils.readFileToString(jsonRequestFile, ENCODING)))) { + assertEquals(200, response.getStatus()); + } } @Test public void testNCLSUP132() throws Exception { - Response response = assertResponseForRequest(PATH_LOOKUP_GAVS, "NCLSUP132"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_LOOKUP_GAVS, "NCLSUP132")) { + assertEquals(200, response.getStatus()); + } } } diff --git a/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/RestApiReportsRemoteTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/RestApiReportsRemoteTestIT.java index 0964efe0d..b7e5e8d72 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/RestApiReportsRemoteTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/rest/reports/RestApiReportsRemoteTestIT.java @@ -42,50 +42,58 @@ public void workaroundNoHttpResponseException() throws InterruptedException { @Test public void testNPMLookupSingle() throws Exception { - Response response = assertResponseForRequest(PATH_LOOKUP_NPM, "jquery151"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_LOOKUP_NPM, "jquery151")) { + assertEquals(200, response.getStatus()); + } } @Test public void testNPMVersionsSingle() throws Exception { - Response response = assertResponseForRequest(PATH_VERSIONS_NPM, "jquery151"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_VERSIONS_NPM, "jquery151")) { + assertEquals(200, response.getStatus()); + } } @Test public void testNPMVersionsSingleIncludeAll() throws Exception { - Response response = assertResponseForRequest(PATH_VERSIONS_NPM, "jquery151-2"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_VERSIONS_NPM, "jquery151-2")) { + assertEquals(200, response.getStatus()); + } } @Test public void testGavLookupSingle() throws Exception { - Response response = assertResponseForRequest(PATH_LOOKUP_GAVS, "guava13"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_LOOKUP_GAVS, "guava13")) { + assertEquals(200, response.getStatus()); + } } @Test public void testGavLookupSingleTemporary() throws Exception { - Response response = assertResponseForRequest(PATH_LOOKUP_GAVS, "guava13Temp"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_LOOKUP_GAVS, "guava13Temp")) { + assertEquals(200, response.getStatus()); + } } @Test public void testGavLookupList() throws Exception { - Response response = assertResponseForRequest(PATH_LOOKUP_GAVS, "guava13List"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_LOOKUP_GAVS, "guava13List")) { + assertEquals(200, response.getStatus()); + } } @Test public void testScmReportBasic() throws Exception { - Response response = assertResponseForRequest(PATH_SCM, "dependency-analysis"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_SCM, "dependency-analysis")) { + assertEquals(200, response.getStatus()); + } } @Test public void testAlignReportBasic() throws Exception { - Response response = assertResponseForRequest(PATH_REPORTS_ALIGN, "dependency-analysis"); - assertEquals(200, response.getStatus()); + try (Response response = assertResponseForRequest(PATH_REPORTS_ALIGN, "dependency-analysis")) { + assertEquals(200, response.getStatus()); + } } @Test @@ -96,9 +104,9 @@ public void testScmOptionalRepository() throws Exception { String json = FileUtils.readFileToString(jsonRequestFile, ENCODING); json = json.replace("${DA-hosted-repo}", repo); - Response response = createClientRequest(PATH_SCM).post(Entity.json(json)); - - assertEquals(200, response.getStatus()); + try (Response response = createClientRequest(PATH_SCM).post(Entity.json(json))) { + assertEquals(200, response.getStatus()); + } } @Override diff --git a/testsuite/src/test/java/org/jboss/da/test/client/ws/AbstractWebsocketApiTest.java b/testsuite/src/test/java/org/jboss/da/test/client/ws/AbstractWebsocketApiTest.java index da695d84a..414673cff 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/ws/AbstractWebsocketApiTest.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/ws/AbstractWebsocketApiTest.java @@ -10,7 +10,6 @@ import jakarta.websocket.DeploymentException; import jakarta.websocket.Endpoint; import jakarta.websocket.EndpointConfig; -import jakarta.websocket.MessageHandler; import jakarta.websocket.Session; import org.apache.commons.io.FileUtils; import org.jboss.da.test.client.AbstractClientApiTest; @@ -21,11 +20,11 @@ import java.io.IOException; import java.net.URI; import java.net.URISyntaxException; +import java.nio.charset.Charset; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import java.util.concurrent.CountDownLatch; -import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeoutException; import java.util.concurrent.atomic.AtomicLong; @@ -69,7 +68,7 @@ private String readWebsocketApiUrl() { } protected JSONRPC2Response assertResponseForRequest(String path, String requestFile, String method) - throws IOException, InterruptedException, ExecutionException, TimeoutException { + throws IOException, InterruptedException, TimeoutException { File jsonRequestFile = getJsonRequestFile(path, requestFile); ObjectMapper mapper = new ObjectMapper(); Map parameters = mapper.readValue(jsonRequestFile, Map.class); @@ -80,7 +79,9 @@ protected JSONRPC2Response assertResponseForRequest(String path, String requestF assertTrue(response.indicatesSuccess()); File expectedResponseFile = getJsonResponseFile(path, requestFile); - assertEqualsJson(FileUtils.readFileToString(expectedResponseFile).trim(), responseString.trim()); + assertEqualsJson( + FileUtils.readFileToString(expectedResponseFile, Charset.defaultCharset()).trim(), + responseString.trim()); return response; } @@ -98,7 +99,7 @@ protected static class JSONRPCWebsocketEndpoint extends Endpoint { public void onOpen(jakarta.websocket.Session session, EndpointConfig config) { System.out.printf("Got connect: %s%n", session); this.session = session; - session.addMessageHandler(String.class, (MessageHandler.Whole) (String message) -> { + session.addMessageHandler(String.class, (String message) -> { System.out.printf("Got message: " + message); try { JSONRPC2Response parse = JSONRPC2Response.parse(message); @@ -127,7 +128,7 @@ public void onClose(jakarta.websocket.Session session, CloseReason closeReason) } public JSONRPC2Response sendRequest(JSONRPC2Request request) - throws InterruptedException, ExecutionException, TimeoutException, IOException { + throws InterruptedException, TimeoutException, IOException { System.out.println("Sending message"); Long id = sequence.incrementAndGet(); request.setID(id); diff --git a/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/WebsocketApiReportsTestIT.java b/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/WebsocketApiReportsTestIT.java index b2da34ad3..72dae0710 100644 --- a/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/WebsocketApiReportsTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/client/ws/reports/WebsocketApiReportsTestIT.java @@ -5,7 +5,6 @@ import static org.junit.jupiter.api.Assertions.fail; -import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.skyscreamer.jsonassert.JSONAssert; import org.skyscreamer.jsonassert.JSONCompareMode; @@ -28,17 +27,17 @@ public class WebsocketApiReportsTestIT extends AbstractWebsocketReportsTest { private static final String METHOD_REPORTS_LOOKUP = "reports.lookup.gav"; @Test - public void testAlignReportBasic() throws IOException, Exception { + public void testAlignReportBasic() throws Exception { assertResponseForRequest(PATH_REPORTS_ALIGN, "dependency-analysis", METHOD_REPORTS_ALIGN); } @Test - public void testBuiltReportBasic() throws IOException, Exception { + public void testBuiltReportBasic() throws Exception { assertResponseForRequest(PATH_REPORTS_BUILT, "dependency-analysis", METHOD_REPORTS_BUILT); } @Test - public void testLookupReportBasic() throws IOException, Exception { + public void testLookupReportBasic() throws Exception { assertResponseForRequest(PATH_REPORTS_LOOKUP, "guava13", METHOD_REPORTS_LOOKUP); } diff --git a/testsuite/src/test/java/org/jboss/da/test/server/communication/GalleyWrapperTestIT.java b/testsuite/src/test/java/org/jboss/da/test/server/communication/GalleyWrapperTestIT.java index cbbd9894b..2274174ec 100644 --- a/testsuite/src/test/java/org/jboss/da/test/server/communication/GalleyWrapperTestIT.java +++ b/testsuite/src/test/java/org/jboss/da/test/server/communication/GalleyWrapperTestIT.java @@ -1,12 +1,12 @@ package org.jboss.da.test.server.communication; import io.quarkus.test.junit.QuarkusTest; +import jakarta.inject.Inject; import org.apache.maven.scm.ScmException; import org.commonjava.maven.galley.maven.parse.MavenPomReader; import org.commonjava.maven.galley.maven.rel.MavenModelProcessor; import org.commonjava.maven.galley.maven.rel.ModelProcessorConfig; import org.commonjava.maven.galley.maven.spi.type.TypeMapper; -import org.jboss.arquillian.junit5.ArquillianExtension; import org.jboss.da.common.util.Configuration; import org.jboss.da.communication.indy.model.GAVDependencyTree; import org.jboss.da.communication.pom.GalleyWrapper; @@ -19,9 +19,7 @@ import org.jboss.da.test.server.AbstractServerTest; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import jakarta.inject.Inject; import java.io.File; import java.io.IOException; import java.util.Collections; diff --git a/testsuite/src/test/rest/v-1/expectedResponse/lookup/maven/versions/guava13Closest.json b/testsuite/src/test/rest/v-1/expectedResponse/lookup/maven/versions/guava13Closest.json index 61a7f1a7b..e58954ed8 100644 --- a/testsuite/src/test/rest/v-1/expectedResponse/lookup/maven/versions/guava13Closest.json +++ b/testsuite/src/test/rest/v-1/expectedResponse/lookup/maven/versions/guava13Closest.json @@ -14,7 +14,7 @@ "18.0.0.redhat-1", "19.0.0.redhat-1", "20.0.0.redhat-1", - "25.0.0.redhat-1", + "25.0.0.redhat-1" ] } ] From 9105c7657841316349d3e04e0ac885fb6084565e Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Thu, 12 Mar 2026 09:23:04 +0000 Subject: [PATCH 21/23] Add test da-config.json and fix .gitignore --- .gitignore | 21 ++++------ testsuite/src/test/resources/da-config.json | 44 +++++++++++++++++++++ 2 files changed, 51 insertions(+), 14 deletions(-) create mode 100644 testsuite/src/test/resources/da-config.json diff --git a/.gitignore b/.gitignore index ed33846a6..7b9eadf6d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1,10 @@ -.gitignore -.classpath -.project -.settings -.factorypath -*~ -*/target -/target/ +# Maven +target/ +settings.xml + +# IntelliJ *.iml -*.pyc .idea -da-config.json -testsuite/random -testsuite/**/arquillian.properties + +# auto-generated java code /common/src/main/java/org/jboss/da/common/Constants.java -nb-configuration.xml -nbactions-*.xml diff --git a/testsuite/src/test/resources/da-config.json b/testsuite/src/test/resources/da-config.json new file mode 100644 index 000000000..cb2248915 --- /dev/null +++ b/testsuite/src/test/resources/da-config.json @@ -0,0 +1,44 @@ +{ + "@class": "ModuleConfigJson", + "name": "pnc-config", + "configs": [ + { + "@module-group": "global", + "indyUrl": "http://localhost:8081", + "pncUrl": "http://localhost:8081/pnc-rest/v2", + "config": [ + ] + }, + { + "@module-group": "pnc", + "configs": [] + }, + { + "@module-group": "da", + "configs": [ + { + "@module-config": "da-config", + "indyGroup": "test-DA", + "indyGroupPublic": "DApublic", + "indyRequestTimeout": 600000, + "modes": [ + { + "name": "PERSISTENT", + "suffixes": [ "redhat" ], + "incrementSuffix": "redhat", + "buildCategories": [ "STANDARD" ], + "artifactQualities": [ "NEW", "VERIFIED", "TESTED"] + }, + { + "name": "TEMPORARY", + "suffixes": ["temporary-redhat", "redhat" ], + "incrementSuffix": "temporary-redhat", + "buildCategories": [ "STANDARD" ], + "artifactQualities": [ "NEW", "VERIFIED", "TESTED", "TEMPORARY" ] + } + ] + } + ] + } + ] +} From 42b36f583c7e3fdb496615b5ad0596b4a13d2cd1 Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Thu, 12 Mar 2026 11:45:08 +0000 Subject: [PATCH 22/23] Exclude o11yphant from dependencies --- .../da/communication/GalleyMavenProducer.java | 2 - pom.xml | 77 ++++++------------- 2 files changed, 22 insertions(+), 57 deletions(-) diff --git a/communication/src/main/java/org/jboss/da/communication/GalleyMavenProducer.java b/communication/src/main/java/org/jboss/da/communication/GalleyMavenProducer.java index 1c4f460a9..3bbe813a3 100644 --- a/communication/src/main/java/org/jboss/da/communication/GalleyMavenProducer.java +++ b/communication/src/main/java/org/jboss/da/communication/GalleyMavenProducer.java @@ -88,8 +88,6 @@ void init() { globalHttpConfiguration = new GlobalHttpConfiguration(); - // metricRegistry = new MetricRegistry(); - } catch (IOException e) { throw new RuntimeException(e); } diff --git a/pom.xml b/pom.xml index c07b9fb6d..a43c6d84f 100644 --- a/pom.xml +++ b/pom.xml @@ -85,8 +85,6 @@ 3.4.1-SNAPSHOT 3.4.2 1.1.9 - - 1.22-SNAPSHOT 17 17 @@ -98,7 +96,8 @@ 1.22.0 - update + + update @@ -173,16 +172,6 @@ pnc-api-constants - - - - - - - - - - org.jboss.pnc @@ -240,22 +229,6 @@ keycloak-core 18.0.9.redhat-00001 - - - - - - - - - - - - - - - - @@ -263,12 +236,6 @@ galley-api ${version.galley} jakarta - - - - - - org.commonjava.maven.galley @@ -286,10 +253,16 @@ org.commonjava.maven.galley * - - - - + + + + org.commonjava.util + o11yphant-trace-core + + + org.commonjava.util + o11yphant-trace-helper-jhttpc + @@ -338,10 +311,16 @@ org.commonjava.maven.galley * - - - - + + + + org.commonjava.util + o11yphant-trace-core + + + org.commonjava.util + o11yphant-trace-helper-jhttpc + @@ -382,12 +361,6 @@ provided - - - - - - org.apache.maven.scm @@ -398,12 +371,6 @@ org.apache.maven.scm maven-scm-provider-jgit ${mvn-scm.version} - - - - - - org.eclipse.jgit From 41eea30ce3a0bef06bd74801bc70efdcdaac634a Mon Sep 17 00:00:00 2001 From: Nick Cross Date: Thu, 12 Mar 2026 11:52:28 +0000 Subject: [PATCH 23/23] Update skyscreamer:jsonassert --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a43c6d84f..27feee261 100644 --- a/pom.xml +++ b/pom.xml @@ -416,7 +416,7 @@ org.skyscreamer jsonassert - 1.2.3 + 2.0-rc1 test