Skip to content

Commit

Permalink
Closes #696 Elide 7 + Spring boot 3 (#698)
Browse files Browse the repository at this point in the history
Co-authored-by: Brutus5000 <[email protected]>
  • Loading branch information
bukajsytlos and Brutus5000 authored Feb 5, 2023
1 parent 40793d3 commit faa07ea
Show file tree
Hide file tree
Showing 137 changed files with 773 additions and 763 deletions.
2 changes: 1 addition & 1 deletion .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ insert_final_newline = true
[*.java]
ij_java_class_count_to_use_import_on_demand = 999
ij_java_names_count_to_use_import_on_demand = 999
ij_java_imports_layout = *, |, javax.**, java.**, |, $*
ij_java_imports_layout = *, |, jakarta.**, javax.**, java.**, |, $*
ij_java_layout_static_imports_separately = true
ij_java_use_single_class_imports = true

Expand Down
18 changes: 10 additions & 8 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import org.springframework.boot.gradle.plugin.SpringBootPlugin

buildscript {
repositories {
mavenCentral()
Expand All @@ -9,8 +11,7 @@ buildscript {

plugins {
id "java"
id "org.springframework.boot" version "2.7.5"
id "io.spring.dependency-management" version "1.0.14.RELEASE"
id "org.springframework.boot" version "3.0.1"
id "idea"
}

Expand Down Expand Up @@ -210,10 +211,13 @@ ext {

dependencies {
// Spring Boot managed dependencies
implementation(platform(SpringBootPlugin.BOM_COORDINATES))
implementation("org.projectlombok:lombok")
annotationProcessor(platform(SpringBootPlugin.BOM_COORDINATES))
annotationProcessor("org.projectlombok:lombok")
testAnnotationProcessor("org.projectlombok:lombok")
annotationProcessor("org.springframework.boot:spring-boot-configuration-processor")
testAnnotationProcessor(platform(SpringBootPlugin.BOM_COORDINATES))
testAnnotationProcessor("org.projectlombok:lombok")
testAnnotationProcessor("org.springframework.boot:spring-boot-configuration-processor")

implementation("org.springframework.boot:spring-boot-starter-oauth2-resource-server")
Expand All @@ -239,20 +243,18 @@ dependencies {
runtimeOnly("org.mariadb.jdbc:mariadb-java-client")

// Manually managed dependencies
def elideVersion = "6.1.10"
def springdocVersion = "1.6.14"
def elideVersion = "7.0.0-pr2"
def springdocVersion = "2.0.2"
implementation("com.yahoo.elide:elide-core:${elideVersion}")
implementation("com.yahoo.elide:elide-swagger:${elideVersion}")
implementation("com.yahoo.elide:elide-datastore-jpa:${elideVersion}")
implementation("com.yahoo.elide:elide-datastore-multiplex:${elideVersion}")
implementation("org.springdoc:springdoc-openapi-ui:${springdocVersion}")
implementation("org.springdoc:springdoc-openapi-security:${springdocVersion}")
implementation("org.springdoc:springdoc-openapi-starter-webmvc-ui:${springdocVersion}")
implementation("com.github.FAForever:faf-java-commons:0e5d22ffff6e4dea81bac494d532627fcca8ebc4")
implementation("org.kohsuke:github-api:1.313")
implementation("org.eclipse.jgit:org.eclipse.jgit:6.4.0.202211300538-r")
implementation("org.jetbrains:annotations:23.1.0")
implementation("com.google.guava:guava:31.1-jre")
implementation("javax.inject:javax.inject:1")
implementation("org.luaj:luaj-jse:3.0.1")
implementation("io.github.micheljung:nocatch:2.0")
implementation("org.apache.commons:commons-compress:1.22")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
import org.springframework.web.context.WebApplicationContext;
import org.testcontainers.junit.jupiter.Testcontainers;

import javax.transaction.Transactional;
import jakarta.transaction.Transactional;
import java.time.format.DateTimeFormatter;
import java.util.Arrays;
import java.util.Set;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -143,13 +143,13 @@ public void tearDown() throws Exception {
}

private MockMultipartHttpServletRequestBuilder createAvatarUploadRequest() throws IOException {
return MockMvcRequestBuilders.fileUpload("/avatars/upload")
return MockMvcRequestBuilders.multipart("/avatars/upload")
.file(new MockMultipartFile("file", "avatar3.png", MediaType.IMAGE_PNG_VALUE, FileHandlingHelper.loadResourceAsStream("/avatars/donator.png")))
.file(new MockMultipartFile("metadata", "metadata.json", MediaType.APPLICATION_JSON_VALUE, FileHandlingHelper.loadResourceAsStream("/avatars/metadata.json")));
}

private MockMultipartHttpServletRequestBuilder createAvatarReuploadRequest(Integer id) throws IOException {
return MockMvcRequestBuilders.fileUpload("/avatars/{id}/upload", id)
return MockMvcRequestBuilders.multipart("/avatars/{id}/upload", id)
.file(new MockMultipartFile("file", "avatar1.png", MediaType.IMAGE_PNG_VALUE, FileHandlingHelper.loadResourceAsStream("/avatars/donator.png")))
.file(new MockMultipartFile("metadata", "metadata.json", MediaType.APPLICATION_JSON_VALUE, FileHandlingHelper.loadResourceAsStream("/avatars/metadata.json")));
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ public class ClanControllerTest extends AbstractIntegrationTest {
public void meDataWithoutClan() throws Exception {
Player player = playerRepository.getById(USERID_USER);

mockMvc.perform(get("/clans/me/")
mockMvc.perform(get("/clans/me")
.with(getOAuthTokenForUserId(USERID_USER)))
.andExpect(status().isOk())
.andExpect(jsonPath("$.player.id", is(player.getId())))
Expand All @@ -61,7 +61,7 @@ public void meDataWithClan() throws Exception {
Clan clan = clanRepository.getById(1);

mockMvc.perform(
get("/clans/me/")
get("/clans/me")
.with(getOAuthTokenForUserId(USERID_CLAN_MEMBER)))
.andExpect(status().isOk())
.andExpect(jsonPath("$.player.id", is(player.getId())))
Expand Down
4 changes: 2 additions & 2 deletions src/inttest/java/com/faforever/api/data/ClanElideTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,7 @@ public void cannotTransferLeadershipToNonClanMember() throws Exception {
.with(getOAuthTokenForUserId(USERID_CLAN_LEADER))
.header(HttpHeaders.CONTENT_TYPE, JsonApiMediaType.JSON_API_MEDIA_TYPE)
.content(generateTransferLeadershipContent(1, 1))) // magic value from prepClanData.sql
.andExpect(status().is4xxClientError()); // TODO: Catch javax.validation.ConstraintViolationException and wrap it into a regular ApiException
.andExpect(status().is4xxClientError()); // TODO: Catch jakarta.validation.ConstraintViolationException and wrap it into a regular ApiException
}

@SneakyThrows
Expand Down Expand Up @@ -177,7 +177,7 @@ public void canDeleteClanAsLeader() throws Exception {
mockMvc.perform(
delete("/data/clan/1")
.with(getOAuthTokenForUserId(USERID_CLAN_LEADER)))
.andExpect(status().isNoContent()); // TODO: Catch javax.validation.ConstraintViolationException and wrap it into a regular ApiException
.andExpect(status().isNoContent()); // TODO: Catch jakarta.validation.ConstraintViolationException and wrap it into a regular ApiException

assertFalse(clanRepository.findOneByName("Alpha Clan").isPresent());
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
import java.nio.file.Paths;

import static org.junit.Assert.assertTrue;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.fileUpload;
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.multipart;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

@Sql(executionPhase = ExecutionPhase.BEFORE_TEST_METHOD, scripts = "classpath:sql/truncateTables.sql")
Expand All @@ -28,7 +28,7 @@ public void setUp() {

@Test
public void testSuccessUploadBeta() throws Exception {
this.mockMvc.perform(fileUpload("/exe/upload")
this.mockMvc.perform(multipart("/exe/upload")
.file(file)
.param("modName", "fafbeta")
.param("apiKey", SUPER_SECRET)
Expand All @@ -38,7 +38,7 @@ public void testSuccessUploadBeta() throws Exception {

@Test
public void testSuccessUploadDevelop() throws Exception {
this.mockMvc.perform(fileUpload("/exe/upload")
this.mockMvc.perform(multipart("/exe/upload")
.file(file)
.param("modName", "fafdevelop")
.param("apiKey", SUPER_SECRET)
Expand All @@ -48,15 +48,15 @@ public void testSuccessUploadDevelop() throws Exception {

@Test
public void testBadRequestUploadNoModName() throws Exception {
this.mockMvc.perform(fileUpload("/exe/upload")
this.mockMvc.perform(multipart("/exe/upload")
.file(file)
.param("apiKey", SUPER_SECRET)
).andExpect(status().is4xxClientError());
}

@Test
public void testBadRequestUploadNoFile() throws Exception {
this.mockMvc.perform(fileUpload("/exe/upload")
this.mockMvc.perform(multipart("/exe/upload")
.param("modName", "fafdevelop")
.param("apiKey", SUPER_SECRET)
).andExpect(status().is4xxClientError());
Expand All @@ -65,7 +65,7 @@ public void testBadRequestUploadNoFile() throws Exception {
@Test
public void testBadRequestUploadFileWithWrongExeExtension() throws Exception {
MockMultipartFile file = new MockMultipartFile("file", "ForgedAlliance.zip", "application/octet-stream", new byte[]{ 1, 2 ,3, 4 });
this.mockMvc.perform(fileUpload("/exe/upload")
this.mockMvc.perform(multipart("/exe/upload")
.file(file)
.param("modName", "fafbeta")
.param("apiKey", SUPER_SECRET)
Expand All @@ -74,15 +74,15 @@ public void testBadRequestUploadFileWithWrongExeExtension() throws Exception {

@Test
public void testBadRequestUploadWithoutApiKey() throws Exception {
this.mockMvc.perform(fileUpload("/exe/upload")
this.mockMvc.perform(multipart("/exe/upload")
.file(file)
.param("modName", "fafbeta")
).andExpect(status().is4xxClientError());
}

@Test
public void testBadRequestUploadWithWrongApiKey() throws Exception {
this.mockMvc.perform(fileUpload("/exe/upload")
this.mockMvc.perform(multipart("/exe/upload")
.file(file)
.param("modName", "fafbeta")
.param("apiKey", "not a banana")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,11 +44,11 @@ void missingScope() throws Exception {
@Test
void fileMissing() throws Exception {
mockMvc.perform(multipart("/maps/upload")
.with(getOAuthTokenWithActiveUser(OAuthScope._UPLOAD_MAP, NO_AUTHORITIES)))
.with(getOAuthTokenWithActiveUser(OAuthScope._UPLOAD_MAP, NO_AUTHORITIES)))
.andExpect(status().isBadRequest())
.andExpect(jsonPath("$.errors", hasSize(1)))
.andExpect(jsonPath("$.errors[0].title", is("org.springframework.web.multipart.support.MissingServletRequestPartException")))
.andExpect(jsonPath("$.errors[0].detail", is("Required request part 'file' is not present")));
.andExpect(jsonPath("$.errors[0].detail", is("Required part 'file' is not present.")));
}

@Test
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,10 @@
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestTemplate;
import org.springframework.web.servlet.HandlerMapping;
import org.springframework.web.util.DefaultUriTemplateHandler;
import org.springframework.web.util.UriComponentsBuilder;
import org.springframework.web.util.DefaultUriBuilderFactory;
import org.springframework.web.util.UriBuilder;

import javax.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequest;
import java.util.Map;
import java.util.concurrent.CompletableFuture;

Expand Down Expand Up @@ -75,12 +75,12 @@ public CompletableFuture<ResponseEntity<String>> write(@RequestBody(required = f
}

@RequiredArgsConstructor
private static class ChallongeUriTemplateHandler extends DefaultUriTemplateHandler {
private static class ChallongeUriTemplateHandler extends DefaultUriBuilderFactory {
private final String apiKey;

@Override
protected UriComponentsBuilder initUriComponentsBuilder(String uriTemplate) {
return super.initUriComponentsBuilder(uriTemplate).queryParam("api_key", apiKey);
public UriBuilder uriString(String uriTemplate) {
return super.uriString(uriTemplate).queryParam("api_key", apiKey);
}
}
}
14 changes: 7 additions & 7 deletions src/main/java/com/faforever/api/client/OAuthClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@
import org.jetbrains.annotations.Nullable;
import org.springframework.util.Assert;

import javax.persistence.AttributeConverter;
import javax.persistence.Column;
import javax.persistence.Converter;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import jakarta.persistence.AttributeConverter;
import jakarta.persistence.Column;
import jakarta.persistence.Converter;
import jakarta.persistence.Entity;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import jakarta.validation.constraints.NotNull;


@Entity
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/faforever/api/config/CacheConfig.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@
import org.springframework.context.annotation.Profile;
import org.springframework.web.servlet.HandlerMapping;

import javax.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.PlatformTransactionManager;

import javax.persistence.EntityManager;
import jakarta.persistence.EntityManager;
import javax.sql.DataSource;

@Configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.PlatformTransactionManager;

import javax.persistence.EntityManager;
import jakarta.persistence.EntityManager;
import javax.sql.DataSource;

@Configuration
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import org.springframework.context.annotation.Configuration;
import org.springframework.context.support.MessageSourceAccessor;

import javax.inject.Inject;
import jakarta.inject.Inject;

@Configuration
public class LocalizationConfig {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;

import javax.persistence.EntityManager;
import jakarta.persistence.EntityManager;

public class SpringHibernateDataStore extends JpaDataStore {

Expand Down
Loading

0 comments on commit faa07ea

Please sign in to comment.