Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line numberDiff line numberDiff line change
Expand Up@@ -326,6 +326,9 @@ scripts/dockerize/dockerfiles
/jdk_25_maven/cs/rest/commafeed/commafeed-client/target/
/jdk_25_maven/em/external/rest/commafeed/target/
/jdk_25_maven/em/embedded/rest/commafeed/target/
/jdk_25_maven/cs/rest/jasper/target/
/jdk_25_maven/em/external/rest/jasper/target/
/jdk_25_maven/em/embedded/rest/jasper/target/
/jdk_11_maven/em/embedded/rest/tracking-system/target/
/jdk_11_maven/em/external/rest/tracking-system/target/
/jdk_17_maven/em/embedded/rest/tiltaksgjennomforing/target/
Expand Down
4 changes: 3 additions & 1 deletion README.md
Original file line numberDiff line numberDiff line change
Expand Up@@ -85,7 +85,7 @@ How to setup authentication information, based on the current content of the ini
Auth configuration files can found in the [auth](auth) folder.


### REST: Java/Kotlin (37)
### REST: Java/Kotlin (38)

* **Bibliothek** (MIT), [jdk_17_gradle/cs/rest/bibliothek](jdk_17_gradle/cs/rest/bibliothek), from [https://github.com/PaperMC/bibliothek](https://github.com/PaperMC/bibliothek)

Expand All@@ -109,6 +109,8 @@ Auth configuration files can found in the [auth](auth) folder.

* **HTTP Patch Spring** (MIT), [jdk_11_maven/cs/rest/http-patch-spring](jdk_11_maven/cs/rest/http-patch-spring), from [https://github.com/cassiomolin/http-patch-spring](https://github.com/cassiomolin/http-patch-spring)

* **Jasper** (MIT), [jdk_25_maven/cs/rest/jasper](jdk_25_maven/cs/rest/jasper), from [https://github.com/cjmalloy/jasper](https://github.com/cjmalloy/jasper)

* **Languagetool** (LGPL), [jdk_8_maven/cs/rest/original/languagetool](jdk_8_maven/cs/rest/original/languagetool), from [https://github.com/languagetool-org/languagetool](https://github.com/languagetool-org/languagetool)

* **Market** (MIT), [jdk_11_maven/cs/rest-gui/market](jdk_11_maven/cs/rest-gui/market), from [https://github.com/aleksey-lukyanets/market](https://github.com/aleksey-lukyanets/market)
Expand Down
31 changes: 31 additions & 0 deletions auth/jasper-auth.yaml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
auth:
- name: admin
fixedHeaders:
- name: User-Tag
value: +user/admin
- name: User-Role
value: ROLE_ADMIN
- name: X-XSRF-TOKEN
value: evomaster
- name: Cookie
value: XSRF-TOKEN=evomaster
- name: alice
fixedHeaders:
- name: User-Tag
value: +user/alice
- name: User-Role
value: ROLE_USER
- name: X-XSRF-TOKEN
value: evomaster
- name: Cookie
value: XSRF-TOKEN=evomaster
- name: bob
fixedHeaders:
- name: User-Tag
value: +user/bob
- name: User-Role
value: ROLE_USER
- name: X-XSRF-TOKEN
value: evomaster
- name: Cookie
value: XSRF-TOKEN=evomaster
17 changes: 17 additions & 0 deletions dockerfiles/jasper.dockerfile
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
FROM amazoncorretto:25-alpine-jdk

COPY ./dist/jasper-sut.jar .
COPY ./dist/jacocoagent.jar .



#ENV TOOL="undefined"
#ENV RUN="0"

ENTRYPOINT \
java \
# unfortunately dumponexit is completely unreliable in Docker :(
# -javaagent:jacocoagent.jar=destfile=./jacoco/jasper__${TOOL}__${RUN}__jacoco.exec,append=false,dumponexit=true \
-javaagent:jacocoagent.jar=output=tcpserver,address=*,port=6300,append=false,dumponexit=false \
-jar jasper-sut.jar \
--server.port=8080 --spring.profiles.active=api-docs --spring.datasource.url=jdbc:postgresql://db:5432/jasper --spring.datasource.username=postgres --spring.datasource.password=password --spring.datasource.hikari.auto-commit=false --spring.jpa.database-platform=jasper.config.PostgreSQLDialect --springdoc.api-docs.path=/api/v3/api-docs --jasper.allow-user-tag-header=true --jasper.allow-user-role-header=true --jasper.allow-auth-headers=true
37 changes: 37 additions & 0 deletions dockerfiles/jasper.yaml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
services:
mitmproxy:
image: mitmproxy/mitmproxy:10.2.4
user: "0:0"
environment:
MITM_LOG_DIR: /custom-logs
MITM_LOG_FILE: ${MITM_LOG_FILE:-minlog.csv}
command: >
mitmdump
--mode reverse:http://sut-jasper:8080
--listen-host 0.0.0.0
--listen-port 8080
--set keep_host_header=true
-s /addons/minlog.py
volumes:
- ${HOST_LOG_DIR:-./mitm-logs}:/custom-logs
- ./addons:/addons:ro
ports:
- "${HOST_PORT:-8080}:8080"
depends_on:
- sut-jasper
sut-jasper:
build:
dockerfile: ./dockerfiles/jasper.dockerfile
context: ..
environment:
AUTH_PORT: ${AUTH_PORT:-8081}
ports:
- "${JACOCO_PORT:-6300}:6300"
db:
image: postgres:18
tmpfs:
- '/var/lib/postgresql'
environment:
POSTGRES_PASSWORD: password
POSTGRES_HOST_AUTH_METHOD: trust
POSTGRES_DB: jasper
1 change: 1 addition & 0 deletions experiments/wb-exp.py
Original file line numberDiff line numberDiff line change
Expand Up@@ -193,6 +193,7 @@ def __init__(self, name, platform):
Sut("genome-nexus", JDK_8),
Sut("gestaohospital", JDK_8),
Sut("http-patch-spring", JDK_11),
Sut("jasper", JDK_25),
Sut("languagetool", JDK_8),
Sut("market", JDK_11),
Sut("microcks", JDK_21),
Expand Down
6 changes: 6 additions & 0 deletions jdk_25_maven/cs/rest/jasper/pom.xml
Original file line numberDiff line numberDiff line change
Expand Up@@ -455,6 +455,12 @@
</execution>
</executions>
<configuration>
<!-- MODIFIED-->
<!-- EMB expects a single self-contained "jasper-sut.jar". The classifier keeps the
plain jar as the main artifact, which the embedded driver depends on. -->
<finalName>jasper</finalName>
<classifier>sut</classifier>
<!-- MODIFIED-->
<mainClass>${start-class}</mainClass>
<layers>
<enabled>true</enabled>
Expand Down
1 change: 1 addition & 0 deletions jdk_25_maven/cs/rest/pom.xml
Original file line numberDiff line numberDiff line change
Expand Up@@ -14,6 +14,7 @@

<modules>
<module>commafeed</module>
<module>jasper</module>
</modules>


Expand Down
54 changes: 54 additions & 0 deletions jdk_25_maven/em/embedded/rest/jasper/pom.xml
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<artifactId>evomaster-benchmark-jdk25-em-embedded-rest-jasper</artifactId>
<packaging>jar</packaging>

<parent>
<groupId>org.evomaster</groupId>
<artifactId>evomaster-benchmark-jdk25-em-embedded-rest</artifactId>
<version>4.3.1-SNAPSHOT</version>
</parent>

<!-- Embedded mode puts the SUT and the driver on one classpath, and the SUT's BOMs do not
apply here. Without them, transitive dependencies win instead (eg problem-spring-web
drags Spring 6.0.2, then the SUT dies on NoSuchMethodError in SpelParserConfiguration),
and testcontainers' slf4j-api 1.7 replaces the 2.x Spring Boot needs. -->
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>4.1.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>2025.1.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>
<!-- The SUT as a library -->
<dependency>
<groupId>jasper</groupId>
<artifactId>jasper</artifactId>
<version>1.3.0-SNAPSHOT</version>
</dependency>

<dependency>
<groupId>org.testcontainers</groupId>
<artifactId>testcontainers</artifactId>
<scope>compile</scope>
</dependency>
</dependencies>

</project>
Loading
Loading