Skip to content

Commit 25c64f7

Browse files
authored
Merge pull request #126 from WebFuzzing/ohsome-drivers
Ohsome drivers
2 parents 1e12cbc + 72e2cc5 commit 25c64f7

File tree

15 files changed

+455
-3
lines changed

15 files changed

+455
-3
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -328,3 +328,5 @@ scripts/dockerize/dockerfiles
328328
/jdk_17_maven/em/external/rest/tiltaksgjennomforing-api/target/
329329

330330
jdk_17_maven/cs/rest/ohsome-api/target/
331+
jdk_17_maven/em/embedded/rest/ohsome-api/target/
332+
jdk_17_maven/em/external/rest/ohsome-api/target/

dockerfiles/ohsome-api.dockerfile

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
FROM amazoncorretto:17-alpine-jdk
2+
3+
COPY ./dist/ohsome-api-sut.jar .
4+
COPY ./dist/jacocoagent.jar .
5+
6+
7+
8+
9+
COPY ./scripts/dockerize/data/additional_files/ohsome-api/heidelberg.mv.db .
10+
11+
12+
13+
#ENV TOOL="undefined"
14+
#ENV RUN="0"
15+
16+
ENTRYPOINT \
17+
java \
18+
# unfortunately dumponexit is completely unreliable in Docker :(
19+
# -javaagent:jacocoagent.jar=destfile=./jacoco/ohsome-api__${TOOL}__${RUN}__jacoco.exec,append=false,dumponexit=true \
20+
-javaagent:jacocoagent.jar=output=tcpserver,address=*,port=6300,append=false,dumponexit=false \
21+
-jar ohsome-api-sut.jar \
22+
--server.port=8080 --database.db=heidelberg

dockerfiles/ohsome-api.yaml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
services:
2+
sut-ohsome-api:
3+
build:
4+
dockerfile: ./dockerfiles/ohsome-api.dockerfile
5+
context: ..
6+
# environment:
7+
# TOOL: ${TOOL:-undefined}
8+
# RUN: ${RUN:-0}
9+
ports:
10+
- "${HOST_PORT:-8080}:8080"
11+
- "${JACOCO_PORT:-6300}:6300"
12+
# volumes:
13+
# default env does not work on volumes
14+
# - ${JACOCODIR}:/jacoco
15+
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>org.evomaster</groupId>
8+
<artifactId>evomaster-benchmark-jdk17-em-embedded-rest</artifactId>
9+
<version>3.4.1-SNAPSHOT</version>
10+
</parent>
11+
12+
<artifactId>evomaster-benchmark-jdk17-em-embedded-rest-ohsome-api</artifactId>
13+
<packaging>jar</packaging>
14+
15+
<dependencyManagement>
16+
<dependencies>
17+
<dependency>
18+
<groupId>org.springframework.boot</groupId>
19+
<artifactId>spring-boot-dependencies</artifactId>
20+
<version>2.5.14</version>
21+
<type>pom</type>
22+
<scope>import</scope>
23+
</dependency>
24+
</dependencies>
25+
</dependencyManagement>
26+
27+
<dependencies>
28+
<dependency>
29+
<groupId>org.heigit.ohsome</groupId>
30+
<artifactId>ohsome-api</artifactId>
31+
<version>1.11.0-SNAPSHOT</version>
32+
</dependency>
33+
<dependency>
34+
<groupId>org.testcontainers</groupId>
35+
<artifactId>testcontainers</artifactId>
36+
<version>1.19.1</version>
37+
<scope>compile</scope>
38+
</dependency>
39+
<dependency>
40+
<groupId>org.springframework</groupId>
41+
<artifactId>spring-context</artifactId>
42+
</dependency>
43+
</dependencies>
44+
45+
</project>
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
package em.embedded.ohsome;
2+
3+
import org.evomaster.client.java.controller.EmbeddedSutController;
4+
import org.evomaster.client.java.controller.InstrumentedSutStarter;
5+
import org.evomaster.client.java.controller.api.dto.SutInfoDto;
6+
import org.evomaster.client.java.controller.api.dto.auth.AuthenticationDto;
7+
import org.evomaster.client.java.controller.problem.ProblemInfo;
8+
import org.evomaster.client.java.controller.problem.RestProblem;
9+
import org.evomaster.client.java.sql.DbSpecification;
10+
import org.heigit.ohsome.ohsomeapi.Application;
11+
import org.springframework.context.ConfigurableApplicationContext;
12+
import java.util.*;
13+
14+
public class EmbeddedEvoMasterController extends EmbeddedSutController {
15+
16+
private ConfigurableApplicationContext ctx;
17+
18+
public EmbeddedEvoMasterController() {
19+
this(40100);
20+
}
21+
22+
public EmbeddedEvoMasterController(int port) {
23+
setControllerPort(port);
24+
}
25+
26+
public static void main(String[] args) {
27+
int port = 40100;
28+
if (args.length > 0) {
29+
port = Integer.parseInt(args[0]);
30+
}
31+
32+
EmbeddedEvoMasterController controller = new EmbeddedEvoMasterController(port);
33+
InstrumentedSutStarter starter = new InstrumentedSutStarter(controller);
34+
35+
starter.start();
36+
}
37+
38+
@Override
39+
public boolean isSutRunning() {
40+
return ctx!=null && ctx.isRunning();
41+
}
42+
43+
@Override
44+
public String getPackagePrefixesToCover() {
45+
return "org.heigit.ohsome.ohsomeapi.";
46+
}
47+
48+
@Override
49+
public List<AuthenticationDto> getInfoForAuthentication() {
50+
return null;
51+
}
52+
53+
@Override
54+
public ProblemInfo getProblemInfo() {
55+
return new RestProblem(
56+
"http://localhost:" + getSutPort() + "/docs?group=Data%20Aggregation",
57+
null
58+
);
59+
}
60+
61+
@Override
62+
public SutInfoDto.OutputFormat getPreferredOutputFormat() {
63+
return SutInfoDto.OutputFormat.JAVA_JUNIT_5;
64+
}
65+
66+
@Override
67+
public String startSut() {
68+
Application application = new Application();
69+
70+
application.main(new String[]{
71+
"--server.port=0",
72+
"--spring.profiles.active=dev",
73+
"--management.server.port=-1",
74+
"--logging.level.org.springframework=INFO",
75+
"--logging.level.root=OFF",
76+
"--database.db=em/external/rest/ohsome-api/src/main/resources/heidelberg.mv.db",
77+
});
78+
79+
ctx = (ConfigurableApplicationContext) application.getApplicationContext();
80+
return "http://localhost:" + getSutPort();
81+
}
82+
83+
protected int getSutPort() {
84+
return (Integer) ((Map) ctx.getEnvironment()
85+
.getPropertySources().get("server.ports").getSource())
86+
.get("local.server.port");
87+
}
88+
89+
@Override
90+
public void stopSut() {
91+
if(ctx!=null) ctx.stop();
92+
}
93+
94+
@Override
95+
public void resetStateOfSUT() {
96+
}
97+
98+
@Override
99+
public List<DbSpecification> getDbSpecifications() {
100+
return null;
101+
}
102+
}

jdk_17_maven/em/embedded/rest/pom.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
<modules>
1515
<module>familie-ba-sak</module>
1616
<module>tiltaksgjennomforing-api</module>
17+
<module>ohsome-api</module>
1718

1819

1920
<!-- <module>signal-server</module>-->
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
<parent>
7+
<groupId>org.evomaster</groupId>
8+
<artifactId>evomaster-benchmark-jdk17-em-external-rest</artifactId>
9+
<version>3.4.1-SNAPSHOT</version>
10+
</parent>
11+
12+
<artifactId>evomaster-benchmark-jdk17-em-external-rest-ohsome-api</artifactId>
13+
<packaging>jar</packaging>
14+
15+
<dependencies>
16+
<dependency>
17+
<groupId>org.testcontainers</groupId>
18+
<artifactId>testcontainers</artifactId>
19+
<scope>compile</scope>
20+
</dependency>
21+
</dependencies>
22+
23+
<build>
24+
<plugins>
25+
<plugin>
26+
<groupId>org.apache.maven.plugins</groupId>
27+
<artifactId>maven-shade-plugin</artifactId>
28+
<executions>
29+
<execution>
30+
<phase>package</phase>
31+
<goals>
32+
<goal>shade</goal>
33+
</goals>
34+
<configuration>
35+
<finalName>ohsome-api-evomaster-runner</finalName>
36+
<transformers>
37+
<transformer
38+
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
39+
<manifestEntries>
40+
<Main-Class>em.external.ohsome.ExternalEvoMasterController
41+
</Main-Class>
42+
<Premain-Class>org.evomaster.client.java.instrumentation.InstrumentingAgent
43+
</Premain-Class>
44+
<Agent-Class>org.evomaster.client.java.instrumentation.InstrumentingAgent
45+
</Agent-Class>
46+
<Can-Redefine-Classes>true</Can-Redefine-Classes>
47+
<Can-Retransform-Classes>true</Can-Retransform-Classes>
48+
</manifestEntries>
49+
</transformer>
50+
</transformers>
51+
<filters>
52+
<filter>
53+
<!-- to deal with signed jars -->
54+
<artifact>*:*</artifact>
55+
<excludes>
56+
<exclude>META-INF/*.SF</exclude>
57+
<exclude>META-INF/*.DSA</exclude>
58+
<exclude>META-INF/*.RSA</exclude>
59+
</excludes>
60+
</filter>
61+
</filters>
62+
</configuration>
63+
</execution>
64+
</executions>
65+
</plugin>
66+
</plugins>
67+
</build>
68+
69+
70+
</project>

0 commit comments

Comments
 (0)