Skip to content

Commit a753acb

Browse files
committed
fixes and documentation
1 parent c834613 commit a753acb

File tree

6 files changed

+42
-12
lines changed

6 files changed

+42
-12
lines changed

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ For simplicity, all schemas are also available as JSON/YML files under the folde
7070
> **IMPORTANT**: More details (e.g., #LOCs and used databases) on these APIs can be found [in this table](statistics/table_emb.md).
7171
7272

73-
### REST: Java/Kotlin (35)
73+
### REST: Java/Kotlin (36)
7474

7575
* **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)
7676

@@ -96,6 +96,8 @@ For simplicity, all schemas are also available as JSON/YML files under the folde
9696

9797
* **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)
9898

99+
* **Microcks** (Apache), [jdk_21_maven/cs/rest-gui/microcks](jdk_21_maven/cs/rest-gui/microcks), from [https://github.com/microcks/microcks](https://github.com/microcks/microcks)
100+
99101
* **NCS**, [jdk_8_maven/cs/rest/artificial/ncs](jdk_8_maven/cs/rest/artificial/ncs), (not-known license, artificial numerical examples coming from different sources)
100102

101103
* **News** (LGPL), [jdk_8_maven/cs/rest/artificial/news](jdk_8_maven/cs/rest/artificial/news), from [https://github.com/arcuri82/testing_security_development_enterprise_systems](https://github.com/arcuri82/testing_security_development_enterprise_systems)

jdk_21_maven/em/embedded/rest-gui/microcks/src/main/java/em/embedded/microcks/EmbeddedEvoMasterController.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,21 +111,20 @@ public String startSut() {
111111

112112
mongoClient = MongoClients.create("mongodb://" + mongodbContainer.getContainerIpAddress() + ":" + mongodbContainer.getMappedPort(MONGODB_PORT));
113113

114-
System.setProperty("SPRING_PROFILES_ACTIVE", "prod");
115-
System.setProperty("SPRING_DATA_MONGODB_URI", "mongodb://" + mongodbContainer.getContainerIpAddress() + ":" + mongodbContainer.getMappedPort(MONGODB_PORT));
116-
System.setProperty("SPRING_DATA_MONGODB_DATABASE", MONGODB_DATABASE_NAME);
117114
System.setProperty("POSTMAN_RUNNER_URL", "http://" + postmanContainer.getContainerIpAddress() + ":" + postmanContainer.getMappedPort(POSTMAN_PORT));
118115
System.setProperty("SERVICES_UPDATE_INTERVAL", "0 0 0/2 * * *");
119116
System.setProperty("KEYCLOAK_URL", "http://" + keycloakContainer.getContainerIpAddress() + ":" + keycloakContainer.getMappedPort(KEYCLOAK_PORT));
120117
System.setProperty("KEYCLOAK_PUBLIC_URL", "http://localhost:" + keycloakContainer.getMappedPort(KEYCLOAK_PORT));
121-
System.setProperty("JAVA_OPTIONS", "-Dspring.security.oauth2.resourceserver.jwt.issuer-uri=http://localhost:" + keycloakContainer.getMappedPort(KEYCLOAK_PORT) + "/realms/microcks -Dspring.security.oauth2.resourceserver.jwt.jwk-set-uri=http://" + keycloakContainer.getContainerIpAddress() + ":" + keycloakContainer.getMappedPort(KEYCLOAK_PORT) + "/realms/microcks/protocol/openid-connect/certs");
122118
System.setProperty("ENABLE_CORS_POLICY", "false");
123119
System.setProperty("CORS_REST_ALLOW_CREDENTIALS", "true");
124120

125121
ctx = SpringApplication.run(MicrocksApplication.class,
126122
new String[]{"--server.port=0",
127123
"--spring.profiles.active=prod",
128-
"--grpc.server.port=0"
124+
"--grpc.server.port=0",
125+
"--spring.data.mongodb.uri=" + "mongodb://" + mongodbContainer.getContainerIpAddress() + ":" + mongodbContainer.getMappedPort(MONGODB_PORT) + "/" + MONGODB_DATABASE_NAME,
126+
"--spring.security.oauth2.resourceserver.jwt.issuer-uri=http://" + keycloakContainer.getContainerIpAddress() + ":" + keycloakContainer.getMappedPort(KEYCLOAK_PORT) + "/realms/microcks",
127+
"--spring.security.oauth2.resourceserver.jwt.jwk-set-uri=http://" + keycloakContainer.getContainerIpAddress() + ":" + keycloakContainer.getMappedPort(KEYCLOAK_PORT) + "/realms/microcks/protocol/openid-connect/certs"
129128
});
130129

131130
System.setProperty("TEST_CALLBACK_URL", "http://localhost:" + getSutPort());

jdk_21_maven/em/external/rest-gui/microcks/src/main/java/em/external/microcks/ExternalEvoMasterController.java

Lines changed: 30 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package em.external.microcks;
22

33

4+
import com.github.dockerjava.api.model.ExposedPort;
5+
import com.github.dockerjava.api.model.HostConfig;
6+
import com.github.dockerjava.api.model.PortBinding;
7+
import com.github.dockerjava.api.model.Ports;
48
import com.mongodb.client.MongoClient;
59
import com.mongodb.client.MongoClients;
610
import org.evomaster.client.java.controller.AuthUtils;
@@ -109,11 +113,25 @@ public ExternalEvoMasterController(int controllerPort, String jarLocation, int s
109113

110114
this.mongodb = new GenericContainer<>("mongo:" + MONGODB_VERSION)
111115
.withTmpFs(Collections.singletonMap("/data/db", "rw"))
116+
.withCreateContainerCmdModifier(cmd -> cmd.withHostConfig(
117+
new HostConfig()
118+
.withPortBindings(new PortBinding(
119+
Ports.Binding.bindPort(sutPort + 3),
120+
new ExposedPort(MONGODB_PORT)
121+
))
122+
))
112123
.withExposedPorts(MONGODB_PORT);
113124

114-
this.keycloakContainer = new GenericContainer(
125+
this.keycloakContainer = new GenericContainer<>(
115126
DockerImageName.parse("quay.io/keycloak/keycloak:26.0.0")
116127
)
128+
.withCreateContainerCmdModifier(cmd -> cmd.withHostConfig(
129+
new HostConfig()
130+
.withPortBindings(new PortBinding(
131+
Ports.Binding.bindPort(sutPort + 2),
132+
new ExposedPort(KEYCLOAK_PORT)
133+
))
134+
))
117135
.withExposedPorts(KEYCLOAK_PORT)
118136
.withEnv("KEYCLOAK_ADMIN", ADMIN_USER)
119137
.withEnv("KEYCLOAK_ADMIN_PASSWORD", ADMIN_PASSWORD)
@@ -129,6 +147,13 @@ public ExternalEvoMasterController(int controllerPort, String jarLocation, int s
129147
.waitingFor(Wait.forListeningPort());
130148

131149
this.postmanContainer = new GenericContainer<>(DockerImageName.parse(POSTMAN_IMAGE))
150+
.withCreateContainerCmdModifier(cmd -> cmd.withHostConfig(
151+
new HostConfig()
152+
.withPortBindings(new PortBinding(
153+
Ports.Binding.bindPort(sutPort + 1),
154+
new ExposedPort(POSTMAN_PORT)
155+
))
156+
))
132157
.withExposedPorts(POSTMAN_PORT)
133158
.waitingFor(Wait.forHttp("/health")
134159
.forPort(POSTMAN_PORT)
@@ -142,21 +167,20 @@ public ExternalEvoMasterController(int controllerPort, String jarLocation, int s
142167
public String[] getInputParameters() {
143168
return new String[]{"--server.port="+sutPort,
144169
"--spring.profiles.active=prod",
145-
"--grpc.server.port=0"
170+
"--grpc.server.port=0",
171+
"--spring.data.mongodb.uri=" + "mongodb://" + mongodb.getContainerIpAddress() + ":" + mongodb.getMappedPort(MONGODB_PORT) + "/" + MONGODB_DATABASE_NAME,
172+
"--spring.security.oauth2.resourceserver.jwt.issuer-uri=http://" + keycloakContainer.getContainerIpAddress() + ":" + keycloakContainer.getMappedPort(KEYCLOAK_PORT) + "/realms/microcks",
173+
"--spring.security.oauth2.resourceserver.jwt.jwk-set-uri=http://" + keycloakContainer.getContainerIpAddress() + ":" + keycloakContainer.getMappedPort(KEYCLOAK_PORT) + "/realms/microcks/protocol/openid-connect/certs"
146174
};
147175
}
148176

149177
@Override
150178
public String[] getJVMParameters() {
151179
return new String[]{
152-
"-DSPRING_PROFILES_ACTIVE=prod",
153-
"-DSPRING_DATA_MONGODB_URI="+"mongodb://" + mongodb.getContainerIpAddress() + ":" + mongodb.getMappedPort(MONGODB_PORT),
154-
"-DSPRING_DATA_MONGODB_DATABASE="+MONGODB_DATABASE_NAME,
155180
"-DPOSTMAN_RUNNER_URL="+"http://" + postmanContainer.getContainerIpAddress() + ":" + postmanContainer.getMappedPort(POSTMAN_PORT),
156181
"-DSERVICES_UPDATE_INTERVAL='0 0 0/2 * * *'",
157182
"-DKEYCLOAK_URL=" + "http://" + keycloakContainer.getContainerIpAddress() + ":" + keycloakContainer.getMappedPort(KEYCLOAK_PORT),
158183
"-DKEYCLOAK_PUBLIC_URL=" + "http://localhost:" + keycloakContainer.getMappedPort(KEYCLOAK_PORT),
159-
"-DJAVA_OPTIONS="+"-Dspring.security.oauth2.resourceserver.jwt.issuer-uri=http://localhost:" + keycloakContainer.getMappedPort(KEYCLOAK_PORT) + "/realms/microcks -Dspring.security.oauth2.resourceserver.jwt.jwk-set-uri=http://" + keycloakContainer.getContainerIpAddress() + ":" + keycloakContainer.getMappedPort(KEYCLOAK_PORT) + "/realms/microcks/protocol/openid-connect/certs",
160184
"-DENABLE_CORS_POLICY=false",
161185
"-DCORS_REST_ALLOW_CREDENTIALS=true",
162186
"-DTEST_CALLBACK_URL=" + "http://localhost:" + sutPort

scripts/dist.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -292,6 +292,9 @@ def build_jdk_21_maven():
292292
copy(folder + "/cs/rest-gui/webgoat/target/webgoat-sut.jar", DIST)
293293
copy(folder + "/em/external/rest-gui/webgoat/target/webgoat-evomaster-runner.jar", DIST)
294294

295+
copy(folder + "/cs/rest-gui/microcks/webapp/target/microcks-sut.jar", DIST)
296+
copy(folder + "/em/external/rest-gui/microcks/target/microcks-evomaster-runner.jar", DIST)
297+
295298
####################
296299
def call_gradle(java_home, folder):
297300
env_vars = os.environ.copy()

statistics/data.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ TRUE,spring-rest-example,REST,Java,JDK 17,Maven,32,1426,MySQL,MIT,9,FALSE,https:
3333
TRUE,swagger-petstore,REST,Java,JDK 8,Maven,23,1631,,Apache,19,FALSE,https://github.com/swagger-api/swagger-petstore
3434
TRUE,genome-nexus,REST,Java,JDK 8,Maven,405,30004,MongoDB,MIT,23,FALSE,https://github.com/genome-nexus/genome-nexus
3535
TRUE,market,REST,Java,JDK 11,Maven,124,9861,H2,MIT,13,TRUE,https://github.com/aleksey-lukyanets/market
36+
TRUE,microcks,REST,Java,JDK 21,Maven,471,66186,MongoDB,Apache,88,TRUE,https://github.com/microcks/microcks
3637
TRUE,petclinic-graphql,GraphQL,Java,JDK 8,Maven,89,5212,PostgreSQL,Apache,15,FALSE,https://github.com/spring-petclinic/spring-petclinic-graphql
3738
TRUE,patio-api,GraphQL,Java,JDK 11,Gradle,178,18048,PostgreSQL,GPL,20,TRUE,https://github.com/patio-team/patio-api
3839
TRUE,timbuctoo,GraphQL,Java,JDK 11,Maven,1113,107729,Neo4j,GPL,18,TRUE,https://github.com/HuygensING/timbuctoo

statistics/table_emb.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
|__graphql-scs__|GraphQL|577|13|11|Kotlin|JDK 8|Maven|||
77
|__graphql-ncs__|GraphQL|548|8|6|Kotlin|JDK 8|Maven|||
88
|__languagetool__|REST|174781|1385|2|Java|JDK 8|Maven|||
9+
|__microcks__|REST|66186|471|88|Java|JDK 21|Maven|MongoDB|&check;|
910
|__ocvn__|REST|45521|526|258|Java|JDK 8|Maven|H2, MongoDB|&check;|
1011
|__pay-publicapi__|REST|34576|377|10|Java|JDK 11|Maven|Redis|&check;|
1112
|__genome-nexus__|REST|30004|405|23|Java|JDK 8|Maven|MongoDB||

0 commit comments

Comments
 (0)