Skip to content

Commit

Permalink
Merge branch 'release/2.0.5'
Browse files Browse the repository at this point in the history
  • Loading branch information
Brutus5000 committed Sep 13, 2018
2 parents 656f4d5 + 3b66b80 commit e29e374
Show file tree
Hide file tree
Showing 96 changed files with 3,063 additions and 473 deletions.
3 changes: 3 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Without this, travis fails with "error checking context: 'no permission to read from '/home/travis/build/FAForever/faf-java-server/faf-stack/data/faf-db/ca-key.pem''."
# See also https://github.com/moby/moby/issues/6521
faf-stack/
2 changes: 1 addition & 1 deletion .idea/codeStyles/Project.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion .idea/encodings.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

19 changes: 15 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,25 +13,36 @@ before_install:
- curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-compose-`uname -s`-`uname -m` > /tmp/docker-compose
- chmod +x /tmp/docker-compose
- sudo mv /tmp/docker-compose /usr/local/bin
- VERSION=$([ -z "${TRAVIS_TAG}" ] && echo "${TRAVIS_TAG#*v}" || echo "${TRAVIS_BRANCH##*/}")

install:
- git clone https://github.com/FAForever/faf-stack.git faf-stack
&& pushd faf-stack
&& git checkout 1a37706
&& git checkout 2169c0c
&& cp -r config.template config
&& popd
- docker-compose -f faf-stack/docker-compose.yml up -d faf-db

script:
- chmod +x gradlew && ./gradlew build --info
- chmod +x gradlew && ./gradlew build -Pversion=${VERSION} --info

after_success:
- ./gradlew jacocoTestReport coveralls
- export IMAGE_TAG=faf-java-api;
- export REPO=faforever/faf-java-api;
- if [ -n "${TRAVIS_TAG}" ]; then
./gradlew --stacktrace pushDockerImage;
docker build -t ${IMAGE_TAG} . &&
echo "${DOCKER_PASSWORD}" | docker login -u "${DOCKER_USERNAME}" --password-stdin &&
docker tag ${IMAGE_TAG} ${REPO}:${VERSION} &&
docker push ${REPO};
fi
# TODO Codacy coverage reporter does not yet support Java 9. See https://github.com/codacy/codacy-coverage-reporter/issues/76
# ./gradlew sendCoverageToCodacy;
- if [ "${TRAVIS_BRANCH}" == "develop" ]; then
./gradlew jacocoTestReport sendCoverageToCodacy;
docker build -t ${IMAGE_TAG} . &&
echo "${DOCKER_PASSWORD}" | docker login -u "${DOCKER_USERNAME}" --password-stdin &&
docker tag ${IMAGE_TAG} ${REPO}:${VERSION} &&
docker push ${REPO};
fi

before_cache:
Expand Down
7 changes: 7 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM frolvlad/alpine-oraclejdk8:slim

MAINTAINER Michel Jung <michel.jung89@gmail.com>

VOLUME /tmp
COPY build/libs/faf-java-api-*.jar app.jar
ENTRYPOINT ["java", "-server", "-Djava.security.egd=file:/dev/./urandom", "-jar", "app.jar"]
90 changes: 10 additions & 80 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@ buildscript {
maven { url 'http://repo.spring.io/plugins-release' }
}
dependencies {
classpath("com.bmuschko:gradle-docker-plugin:${gradleDockerVersion}")
classpath("org.springframework.build.gradle:propdeps-plugin:${propdepsVersion}")
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
classpath("org.kt3k.gradle.plugin:coveralls-gradle-plugin:${coverallsGradlePluginVersion}")
Expand Down Expand Up @@ -106,11 +105,12 @@ tasks.withType(Test) {

apply plugin: 'java'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
apply plugin: 'propdeps'
apply plugin: 'idea'

group = 'faforever'
version = '1.4.1'
version = 'snapshot'

sourceCompatibility = 1.8
targetCompatibility = 1.8
Expand Down Expand Up @@ -194,73 +194,6 @@ task sendCoverageToCodacy(type: JavaExec, dependsOn: jacocoTestReport) {
args = ["report", "-l", "Java", "-r", "${buildDir}/reports/jacoco/test/jacocoTestReport.xml"]
}

// DOCKER

apply plugin: 'com.bmuschko.docker-remote-api'
apply plugin: 'application'

import com.bmuschko.gradle.docker.DockerRemoteApiPlugin
import com.bmuschko.gradle.docker.tasks.image.DockerBuildImage
import com.bmuschko.gradle.docker.tasks.image.DockerPushImage
import com.bmuschko.gradle.docker.tasks.image.Dockerfile

applicationName = rootProject.name
docker {
if (project.hasProperty('dockerHost')) {
url = dockerHost
}

registryCredentials {
if (project.hasProperty('dockerUsername') && project.hasProperty('dockerPassword')) {
username = dockerUsername
password = dockerPassword
}
}
}

task dockerCopyDistResources(type: Copy, dependsOn: distTar) {
group = DockerRemoteApiPlugin.DEFAULT_TASK_GROUP
description = "Copies the distribution resources to a temporary directory for image creation."

from { distTar.archivePath }
from 'src/main/docker/default-cmd.sh'
into { createDockerfile.destFile.parentFile }
}

task createDockerfile(type: Dockerfile, dependsOn: dockerCopyDistResources) {
group = DockerRemoteApiPlugin.DEFAULT_TASK_GROUP
destFile = file("${buildDir}/docker/Dockerfile")
from 'frolvlad/alpine-oraclejdk8:slim'
maintainer 'Michel Jung "michel.jung89@gmail.com"'

environmentVariable 'user', 'root'

user '${user}'

volume '/tmp'
addFile 'default-cmd.sh', 'default-cmd.sh'
addFile({ distTar.archivePath.name }, { '/' })

runCommand 'chmod +x default-cmd.sh'

exposePort 8010

defaultCommand './default-cmd.sh', "/${project.name}-${project.version}/bin/${project.name}"
}

task buildDockerImage(type: DockerBuildImage, dependsOn: createDockerfile) {
inputDir file(createDockerfile.destFile.parentFile)
tag "${project.group}/${rootProject.name}:${project.version}"
}

task pushDockerImage(type: DockerPushImage, dependsOn: buildDockerImage) {
group = DockerRemoteApiPlugin.DEFAULT_TASK_GROUP
description = "Publishes the created docker image tagged with the project's version."

imageName "${project.group}/${rootProject.name}"
tag project.version
}

configurations.all {
// Cache -SNAPSHOT for 60 seconds only
resolutionStrategy.cacheChangingModulesFor 60, 'seconds'
Expand All @@ -270,41 +203,40 @@ build.dependsOn inttest

dependencyManagement {
dependencies {
dependency("org.hibernate:hibernate-core:${hibernateVersion}")
dependency("org.hibernate:hibernate-entitymanager:${hibernateVersion}")
dependency("org.hibernate:hibernate-validator:${hibernateVersion}")
dependency("org.mockito:mockito-core:${mockitoVersion}")
}
}

dependencies {
compile("org.springframework.boot:spring-boot-starter-actuator")
runtime("io.micrometer:micrometer-registry-prometheus")

compile("org.springframework.boot:spring-boot-starter-jdbc")
compile("org.springframework.boot:spring-boot-starter-data-jpa")
compile("org.springframework.boot:spring-boot-starter-web")
compile("org.springframework.boot:spring-boot-starter-jetty")
compile("org.springframework.boot:spring-boot-starter-security")
compile("org.springframework.boot:spring-boot-starter-thymeleaf")
compile("org.springframework.boot:spring-boot-starter-mail")
compile("de.codecentric:spring-boot-admin-starter-client:${springBootAdminClientVersion}")

compile("com.github.ben-manes.caffeine:caffeine")
compile("com.github.FAForever:faf-java-commons:${fafCommonsVersion}")
compile("org.kohsuke:github-api:${githubApiVersion}")
compile("org.jolokia:jolokia-core")
compile("org.springframework.security:spring-security-jwt:${springSecurityJwtVersion}")
compile("org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:${springSecurityOauth2AutoConfigureVersion}")
compile("org.springframework.security.oauth:spring-security-oauth2:${springSecurityOauth2Version}")
compile("org.springframework:spring-context-support:${springContextSupportVersion}")
compile("org.springframework.security:spring-security-jwt:${springSecurityJwtVersion}")
compile("org.eclipse.jgit:org.eclipse.jgit:${jgitVersionn}")
compile("org.jetbrains:annotations:${jetbrainsAnnotationsVersion}")
compile("com.google.guava:guava:${guavaVersion}")
compile("io.springfox:springfox-swagger-ui:${swaggerVersion}")
compile("io.springfox:springfox-swagger2:${swaggerVersion}")
compile("io.swagger:swagger-core:${swaggerCoreVersion}")
compile("javax.inject:javax.inject:${javaxInjectVersion}")
// When switching from Java 8 to 9, I got "class file for javax.interceptor.interceptorbinding not found". Adding this fixed it, but IDK what caused it.
compile("javax.interceptor:javax.interceptor-api:${javaxInterceptorApiVersion}")
compile("com.yahoo.elide:elide-core:${elideVersion}")
compile("com.yahoo.elide:elide-swagger:${elideVersion}")
compile("com.yahoo.elide:elide-datastore-hibernate5:${elideVersion}")
compile("org.hibernate:hibernate-java8:${hibernateVersion}")
// compile("org.glassfish.jersey.core:jersey-common:2.26")
compile("com.zaxxer:HikariCP:${hikariCpVersion}") {
exclude(module: 'tools')
Expand All @@ -317,9 +249,7 @@ dependencies {
compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:${jacksonDatatypeJsr310Version}")
compile("com.mandrillapp.wrapper.lutung:lutung:${lutungVersion}")
compile("org.apache.commons:commons-compress:${commonsCompressVersion}")
compile("io.prometheus:simpleclient_hotspot:${prometheusVersion}")
compile("io.prometheus:simpleclient_servlet:${prometheusVersion}")
compile("io.prometheus:simpleclient_spring_boot:${prometheusVersion}")
compile("org.json:json:${jsonVersion}")

compile("com.github.jasminb:jsonapi-converter:${jsonapiConverterVersion}")
runtime("mysql:mysql-connector-java:${mysqlConnectorVersion}")
Expand Down
21 changes: 10 additions & 11 deletions gradle.properties
Original file line number Diff line number Diff line change
@@ -1,22 +1,20 @@
profile=dev
springBootVersion=1.5.6.RELEASE
springBootVersion=2.0.4.RELEASE
jjwtVersion=0.7.0
javaxInjectVersion=1
elideVersion=3.1.4
hibernateVersion=5.1.0.Final
elideVersion=4.2.3
mysqlConnectorVersion=6.0.5
gradleDockerVersion=3.2.1
propdepsVersion=0.0.7
swaggerVersion=2.6.1
swaggerCoreVersion=1.5.8
coverallsGradlePluginVersion=2.4.0
hikariCpVersion=2.4.6
springSecurityJwtVersion=1.0.7.RELEASE
springSecurityOauth2Version=2.0.12.RELEASE
springContextSupportVersion=4.2.2.RELEASE
springSecurityJwtVersion=1.0.9.RELEASE
springSecurityOauth2AutoConfigureVersion=2.0.1.RELEASE
springSecurityOauth2Version=2.3.3.RELEASE
guavaVersion=21.0-rc1
jetbrainsAnnotationsVersion=13.0
springBootAdminClientVersion=1.4.5
springBootAdminClientVersion=2.0.0
luajVersion=3.0.1
nocatchVersion=1.1
junitAddonsVersion=1.4
Expand All @@ -25,13 +23,14 @@ githubApiVersion=1.84
jgitVersionn=4.5.0.201609210915-r
fafCommonsVersion=09ffb08f9538f66e6e9bccabceae1e6123a3fa27
h2Version=1.4.193
jacksonDatatypeJsr310Version=2.8.6
mockitoVersion=2.7.0
jacksonDatatypeJsr310Version=2.8.11
mockitoVersion=2.19.0
lutungVersion=0.0.7
commonsCompressVersion=1.13
jsonPath=2.2.0
jsonPathAssert=2.2.0
thymeleafVersion=3.0.5.RELEASE
prometheusVersion=0.0.26
jsonapiConverterVersion=0.8
codacyCoverageReporterVersion=4.0.0
jsonVersion=20180130
javaxInterceptorApiVersion=1.2
Empty file modified gradlew
100644 → 100755
Empty file.
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package com.faforever.api;

import com.faforever.api.config.ApplicationProfile;
import com.faforever.api.config.ElideTestConfig;
import com.faforever.api.error.ErrorCode;
import com.faforever.api.utils.OAuthHelper;
import com.fasterxml.jackson.annotation.JsonInclude.Include;
Expand Down Expand Up @@ -34,7 +33,7 @@
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT)
@ActiveProfiles(ApplicationProfile.INTEGRATION_TEST)
@Import({ElideTestConfig.class, OAuthHelper.class})
@Import(OAuthHelper.class)
@Transactional
@Sql(executionPhase = ExecutionPhase.BEFORE_TEST_METHOD, scripts = "classpath:sql/prepDefaultUser.sql")
public abstract class AbstractIntegrationTest {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public void meDataWithoutClan() throws Exception {
@WithUserDetails(AUTH_CLAN_MEMBER)
public void meDataWithClan() throws Exception {
Player player = getPlayer();
Clan clan = clanRepository.findOne(1);
Clan clan = clanRepository.getOne(1);

mockMvc.perform(
get("/clans/me/"))
Expand Down
19 changes: 0 additions & 19 deletions src/inttest/java/com/faforever/api/config/ElideTestConfig.java

This file was deleted.

6 changes: 3 additions & 3 deletions src/inttest/java/com/faforever/api/data/AvatarElideTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public class AvatarElideTest extends AbstractIntegrationTest {

@Test
public void getUnusedAvatar() throws Exception {
Avatar avatar = avatarRepository.findOne(1);
Avatar avatar = avatarRepository.getOne(1);

mockMvc.perform(get("/data/avatar/1"))
.andExpect(status().isOk())
Expand All @@ -52,7 +52,7 @@ public void getUnusedAvatar() throws Exception {

@Test
public void getAvatarWithPlayer() throws Exception {
Avatar avatar = avatarRepository.findOne(2);
Avatar avatar = avatarRepository.getOne(2);

mockMvc.perform(get("/data/avatar/2"))
.andExpect(status().isOk())
Expand Down Expand Up @@ -80,7 +80,7 @@ public void moderatorCanAssignAvatar() throws Exception {
)
))
).andExpect(status().isCreated());
final Optional<AvatarAssignment> createdAssignment = avatarAssignmentRepository.findOneByAvatarAndPlayer(avatar, player);
Optional<AvatarAssignment> createdAssignment = avatarAssignmentRepository.findOneByAvatarIdAndPlayerId(1, 1);
assertThat(createdAssignment.isPresent(), is(true));
assertThat(createdAssignment.get().getPlayer().getId(), is(player.getId()));
assertThat(createdAssignment.get().getAvatar().getId(), is(avatar.getId()));
Expand Down
Loading

0 comments on commit e29e374

Please sign in to comment.