Skip to content
This repository has been archived by the owner on Oct 7, 2022. It is now read-only.

Commit

Permalink
(#241) Use official YouTrack docker image
Browse files Browse the repository at this point in the history
  • Loading branch information
llorllale committed Sep 22, 2019
1 parent d469f2e commit 637e414
Show file tree
Hide file tree
Showing 45 changed files with 3,792 additions and 1,590 deletions.
4 changes: 1 addition & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,5 @@
sudo: required
dist: trusty
# issue #107: using deprecated image
group: deprecated-2017Q4
dist: bionic

services:
- docker
Expand Down
40 changes: 16 additions & 24 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -87,10 +87,10 @@
<maven.compiler.target>1.8</maven.compiler.target>
<netbeans.hint.license>apache20</netbeans.hint.license>
<netbeans.hint.projectversion>${project.version}</netbeans.hint.projectversion>
<youtrackVersion>2017.3.35488</youtrackVersion>
<youtrack.test.docker.name>${project.artifactId}-integration-tests</youtrack.test.docker.name>
<youtrackVersion>2018.1.39916</youtrackVersion>
<youtrack.test.docker.name>jetbrains/youtrack:${youtrackVersion}</youtrack.test.docker.name>
<youtrack.test.user>root</youtrack.test.user>
<youtrack.test.user.token>perm:cm9vdA==.eW91dHJhY2stYXBpLXRlc3Q=.nOe5IYpv520S120tK18hc2tkm8oCI4</youtrack.test.user.token>
<youtrack.test.user.token>perm:cm9vdA==.dGVzdA==.xpLtCBhsf0k2tmOK1GwW4VNijaXvPN</youtrack.test.user.token>
<youtrack.test.pwd>youtrack</youtrack.test.pwd>
<youtrack.test.baseUrl>http://localhost:18080</youtrack.test.baseUrl>
<youtrack.test.url>${youtrack.test.baseUrl}/rest</youtrack.test.url>
Expand Down Expand Up @@ -308,9 +308,13 @@
<filtering>true</filtering>
<includes>
<include>integration-tests-config.properties</include>
<include>**/Dockerfile</include>
</includes>
</testResource>
<testResource>
<directory>${basedir}/src/test/resources/docker/youtrack</directory>
<filtering>false</filtering>
<targetPath>${project.build.directory}/youtrack</targetPath>
</testResource>
</testResources>
<pluginManagement>
<plugins>
Expand All @@ -332,27 +336,9 @@
<artifactId>docker-maven-plugin</artifactId>
<version>0.21.0</version>
<configuration>
<!--<showLogs>true</showLogs>-->
<showLogs>true</showLogs>
</configuration>
<executions>
<execution>
<id>youtrack-build</id>
<phase>pre-integration-test</phase>
<goals>
<goal>build</goal>
</goals>
<configuration>
<images>
<image>
<alias>youtrack-api-integration-test</alias>
<name>${youtrack.test.docker.name}</name>
<build>
<dockerFileDir>${basedir}/src/test/resources/docker</dockerFileDir>
</build>
</image>
</images>
</configuration>
</execution>
<execution>
<id>youtrack-start</id>
<phase>pre-integration-test</phase>
Expand All @@ -366,8 +352,14 @@
<name>${youtrack.test.docker.name}</name>
<run>
<ports>
<port>18080:80</port>
<port>18080:8080</port>
</ports>
<volumes>
<bind>
<volume>${project.build.directory}/youtrack/data:/opt/youtrack/data</volume>
<volume>${project.build.directory}/youtrack/conf:/opt/youtrack/conf</volume>
</bind>
</volumes>
<wait>
<http>
<url>${youtrack.test.baseUrl}</url>
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/org/llorllale/youtrack/api/Authenticated.java
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,9 @@ final class Authenticated extends HttpEntityEnclosingRequestBase {
*/
Authenticated(Session session, HttpRequestBase request) {
this.base = request;
// @todo #241 figure out whether to support both XML and JSON payloads. Also, set this header
// via a decorator. I think youtrack may transition to json-only in the near future.
this.base.addHeader("Accept", "application/xml");
session.cookies().stream()
.map(c -> new BasicHeader(c.name(), c.value()))
.forEach(this::addHeader);
Expand Down
3 changes: 3 additions & 0 deletions src/main/java/org/llorllale/youtrack/api/Response.java
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,9 @@
*
* @author George Aristy (george.aristy@gmail.com)
* @since 0.1.0
* @todo #241 Create a Response decorator that asserts a status code was received. If a different
* code was received then it should throw an error with all details of the response: status code,
* headers, and body (if any).
*/
interface Response {
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
import static org.junit.Assert.assertThat;

import org.junit.BeforeClass;
import org.junit.Ignore;
import org.junit.Test;
import org.llorllale.youtrack.api.mock.MockUser;
import org.llorllale.youtrack.api.session.Login;
Expand All @@ -33,6 +34,9 @@
* @checkstyle AbbreviationAsWordInName (500 lines)
* @checkstyle MethodName (500 lines)
* @checkstyle MultipleStringLiterals (500 lines)
* @todo #241 Both testAssignToAndUpdater and testAssignToAndAssignee stopped working after
* upgrading to YouTrack 2018.1.39916. Fix them and re-enable them. The API has probably
* changed, braking these tests.
*/
public final class XmlUsersOfIssueIT {
private static IntegrationTestsConfig config;
Expand Down Expand Up @@ -70,6 +74,7 @@ public void testCreator() throws Exception {
* Returns the issue's new updater.
* @throws Exception unexpected
*/
@Ignore
@Test
public void testAssignToAndUpdater() throws Exception {
final Issue issue =
Expand All @@ -92,6 +97,7 @@ public void testAssignToAndUpdater() throws Exception {
* Returns the issue's new assignee.
* @throws Exception unexpected
*/
@Ignore
@Test
public void testAssignToAndAssignee() throws Exception {
final Issue issue =
Expand Down
33 changes: 0 additions & 33 deletions src/test/resources/docker/Dockerfile

This file was deleted.

9 changes: 0 additions & 9 deletions src/test/resources/docker/supervisor/youtrack.conf

This file was deleted.

Empty file.
56 changes: 56 additions & 0 deletions src/test/resources/docker/youtrack/conf/hub/hub.jvmoptions.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
## This file contains additional Hub JVM options.
## To edit it please first copy it to the "hub.jvmoptions" file.
## Each option must be on a separate line; empty lines are ignored.
## Use "#" at the beginning of the line to comment it.
##
## Use "*D" instead of "-D" to not pass the specified system property explicitly via the command-line,
## but to set it implicitly from inside the Hub process via System#setProperty().
##
## Use "+" instead of "-" or "*" at the begin of the option to remove it (can be used to remove a default option).
## "+<option>:<value>", "+XX:<option>=<value>" and "+D<property>=<value>" remove the corresponding option only if it
## has exactly the same value, while "+<option>", "+XX:<option>" and "+D<property>" remove it regardless of the value.
##
## Use "@" to define the aliases. For example, after defining the alias "@devMode=-Ddev.mode=true" you can use
## it like "-devMode" (will be expanded to "-Ddev.mode=true") or "+devMode" (will be expanded to "+Ddev.mode").
## Alias can also have a parameter: you can define the alias as "@devMode=-Ddev.mode=$//" and use it then as
## "-devMode:false" (will be expanded to "-Ddev.mode=false"). To provide a default alias value use the following
## definition: "@devMode=-Ddev.mode=$/true/". All occurrences of the "$/.../" place holder will be replaced.
## Use "$$" to escape the dollar sign. Any pair of equal symbols can be used instead of slashes.
## To remove the alias define it with empty definition: "@devMode".
##
## Variables wrapped with the "%" sign are internal and are substituted automatically so you do not need to replace
## them by the actual values manually. Besides, they are subject to change so you should not use them in your options.
## Use "%%" to escape the "%" sign.
##
## Any option can be wrapped with double quotes to avoid space trimming at the line end.
##----------------------------------------------------------------------------------------------------------------------

## Here is the list of the default (pre-defined) Hub JVM option aliases.
## To change the default alias either uncomment the corresponding line or add an overriding alias below.
#@debug=-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=$/%DEBUG_PORT%/
#@sdebug=-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=$/%DEBUG_PORT%/
#@yourkit=-agentpath:%YOURKIT_AGENT_LIBRARY_PATH%=port=$/%YOURKIT_AGENT_PORT%/,sessionname=hub,dir=%APP_LOGS_DIR%,logdir=%APP_LOGS_DIR%

## Here is the list of the default (pre-defined) Hub JVM options.
## To change the default option either uncomment the corresponding line or add an overriding option below.
#-ea
#-XX:+HeapDumpOnOutOfMemoryError
#-XX:HeapDumpPath=%APP_LOGS_DIR%
#-XX:ErrorFile=%APP_LOGS_DIR%%FILE_SEPARATOR%hs_err_pid%%p.log
#-Dfile.encoding=UTF-8
#*Djava.awt.headless=true
#-XX:MaxPermSize=150m
#-XX:MaxMetaspaceSize=150m
#-Xmx600m

## Uncomment the following line to run Hub with enabled debug
## You can also just run the "configure -J-debug" command of the Hub script
#-debug

## Uncomment the following line to run Hub with enabled debug and suspend it
## You can also just run the "configure -J-sdebug" command of the Hub script
#-sdebug

## Uncomment the following line to run Hub with enabled YourKit profiling ("yourkit-home" property must be specified)
## You can also just run the "configure -J-yourkit" command of the Hub script
#-yourkit
47 changes: 47 additions & 0 deletions src/test/resources/docker/youtrack/conf/hub/hub.launch.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
## This file contains Hub launch configuration.
## To edit it please first copy it to the "hub.launch.config" file.
## To change the setting uncomment it first.
## To apply the changes you made in this file, please restart Hub using its scripts from the "bin" folder.

## Hub display name
#display-name=Hub

## Hub description
#description=Common Authentication Service

## Hub Windows service name
## If you want to change this setting, please uninstall the current Hub Windows service,
## then change the service name here and then install it again using "..\bin\hub.bat service install" command.
#win-service-name=hub

## Hub Mac OS daemon label
## If you want to change this setting, please unload the current Hub Mac OS daemon,
## then change the daemon label here and then load it again using "../bin/hub.sh daemon start" command.
#mac-daemon-label=Hub

## Hub Mac OS daemon user
## If you want to change this setting, please unload the current Hub Mac OS daemon,
## then change the daemon user here and then load it again using "../bin/hub.sh daemon start" command.
#mac-daemon-user=root

## Hub start timeout in seconds
#start-timeout-seconds=300

## Hub stop timeout in seconds
#stop-timeout-seconds=300

## Hub Java libraries directory.
## The path should be either absolute or relative to the Hub home directory.
#lib-dir=lib

## Hub logs directory.
## The path should be either absolute or relative to the Hub home directory.
logs-dir=/opt/youtrack/logs/hub

## Hub launcher logs directory.
## The path should be either absolute or relative to the Hub logs directory.
#launcher.logs-dir=.

## Path to the YourKit installation to use to profile Hub.
## The path should be either absolute or relative to the Hub home directory.
#yourkit-home=
47 changes: 47 additions & 0 deletions src/test/resources/docker/youtrack/conf/hub/hub.launch.config.dist
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
## This file contains Hub launch configuration.
## To edit it please first copy it to the "hub.launch.config" file.
## To change the setting uncomment it first.
## To apply the changes you made in this file, please restart Hub using its scripts from the "bin" folder.

## Hub display name
#display-name=Hub

## Hub description
#description=Common Authentication Service

## Hub Windows service name
## If you want to change this setting, please uninstall the current Hub Windows service,
## then change the service name here and then install it again using "..\bin\hub.bat service install" command.
#win-service-name=hub

## Hub Mac OS daemon label
## If you want to change this setting, please unload the current Hub Mac OS daemon,
## then change the daemon label here and then load it again using "../bin/hub.sh daemon start" command.
#mac-daemon-label=Hub

## Hub Mac OS daemon user
## If you want to change this setting, please unload the current Hub Mac OS daemon,
## then change the daemon user here and then load it again using "../bin/hub.sh daemon start" command.
#mac-daemon-user=root

## Hub start timeout in seconds
#start-timeout-seconds=300

## Hub stop timeout in seconds
#stop-timeout-seconds=300

## Hub Java libraries directory.
## The path should be either absolute or relative to the Hub home directory.
#lib-dir=lib

## Hub logs directory.
## The path should be either absolute or relative to the Hub home directory.
#logs-dir=logs

## Hub launcher logs directory.
## The path should be either absolute or relative to the Hub logs directory.
#launcher.logs-dir=.

## Path to the YourKit installation to use to profile Hub.
## The path should be either absolute or relative to the Hub home directory.
#yourkit-home=
Loading

0 comments on commit 637e414

Please sign in to comment.