diff --git a/todolist/fxui/src/main/java/todolist/ui/TodoModelController.java b/todolist/fxui/src/main/java/todolist/ui/TodoModelController.java index 3ee55054dc5babf6b1f65449e42dbb7c1bdece13..0de7779dc5720d8c077faba2170f987e95c6562e 100644 --- a/todolist/fxui/src/main/java/todolist/ui/TodoModelController.java +++ b/todolist/fxui/src/main/java/todolist/ui/TodoModelController.java @@ -6,7 +6,6 @@ import java.util.Objects; import javafx.fxml.FXML; import javafx.scene.control.ComboBox; import todolist.core.TodoList; -import todolist.json.TodoPersistence; public class TodoModelController { diff --git a/todolist/integrationtests/pom.xml b/todolist/integrationtests/pom.xml index fac265c964f1524ed7b236648cb2f3f07f7764a8..5defffce66e38a8a31810e0a54697f2212df6d70 100644 --- a/todolist/integrationtests/pom.xml +++ b/todolist/integrationtests/pom.xml @@ -80,15 +80,24 @@ <plugin> <artifactId>maven-compiler-plugin</artifactId> </plugin> + + <!-- Reservere porter og tilordne dem til variabler --> <plugin> - <groupId>org.apache.maven.plugins</groupId> - <artifactId>maven-failsafe-plugin</artifactId> - <version>3.0.0-M1</version> + <groupId>org.codehaus.mojo</groupId> + <artifactId>build-helper-maven-plugin</artifactId> + <version>3.2.0</version> + <configuration> + <portNames> + <portName>jetty.port</portName> + <portName>jetty.port.stop</portName> + </portNames> + </configuration> <executions> <execution> + <id>reserve-port</id> + <phase>pre-integration-test</phase> <goals> - <goal>integration-test</goal> - <goal>verify</goal> + <goal>reserve-network-port</goal> </goals> </execution> </executions> @@ -99,10 +108,10 @@ <version>9.4.31.v20200723</version> <configuration> <httpConnector> - <port>8999</port> + <port>${jetty.port}</port> </httpConnector> <stopKey>quit</stopKey> - <stopPort>9000</stopPort> + <stopPort>${jetty.port.stop}</stopPort> </configuration> <executions> <execution> @@ -121,6 +130,25 @@ </execution> </executions> </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-failsafe-plugin</artifactId> + <version>3.0.0-M1</version> + <executions> + <execution> + <goals> + <goal>integration-test</goal> + <goal>verify</goal> + </goals> + <configuration> + <!-- System.getProperty("todo.port") gir riktig port --> + <systemPropertyVariables> + <todo.port>${jetty.port}</todo.port> + </systemPropertyVariables> + </configuration> + </execution> + </executions> + </plugin> </plugins> </build> </project> diff --git a/todolist/integrationtests/src/main/resources/simplelogger.properties b/todolist/integrationtests/src/main/resources/simplelogger.properties new file mode 100644 index 0000000000000000000000000000000000000000..01c31021f87b6c4e3c756d89dc343252c47a9f8a --- /dev/null +++ b/todolist/integrationtests/src/main/resources/simplelogger.properties @@ -0,0 +1,4 @@ +# http://www.slf4j.org/api/org/slf4j/impl/SimpleLogger.html + +org.slf4j.simpleLogger.defaultLogLevel=INFO +org.slf4j.simpleLogger.log.todolist.restapi=DEBUG diff --git a/todolist/integrationtests/src/test/java/todolist/ui/TodoAppIT.java b/todolist/integrationtests/src/test/java/todolist/ui/TodoAppIT.java index 23b1c049410c085909741fa2a0cdbf86b6528a0e..659860a79ccf1781af61baf38d15138aed4756b1 100644 --- a/todolist/integrationtests/src/test/java/todolist/ui/TodoAppIT.java +++ b/todolist/integrationtests/src/test/java/todolist/ui/TodoAppIT.java @@ -10,6 +10,8 @@ import static org.junit.jupiter.api.Assertions.fail; import java.io.IOException; import java.io.InputStreamReader; import java.io.Reader; +import java.net.URI; +import java.net.URISyntaxException; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.testfx.framework.junit5.ApplicationTest; @@ -26,15 +28,16 @@ public class TodoAppIT extends ApplicationTest { stage.setScene(new Scene(root)); stage.show(); } - - private TodoPersistence todoPersistence = new TodoPersistence(); @BeforeEach - public void setupItems() { + public void setupItems() throws URISyntaxException { // same as in test-todolist.json (should perhaps read it instead) try (Reader reader = new InputStreamReader(getClass().getResourceAsStream("it-todomodel.json"))) { - // TODO: implement and use remote todo model access - this.controller.setTodoModelAccess(new DirectTodoModelAccess(todoPersistence.readTodoModel(reader))); + String port = System.getProperty("todo.port"); + assertNotNull(port, "No todo.port system property set"); + URI baseUri = new URI("http://localhost:" + port + "/todo/"); + System.out.println("Base RemoteTodoModelAcces URI: " + baseUri); + this.controller.setTodoModelAccess(new RemoteTodoModelAccess(baseUri)); } catch (IOException ioe) { fail(ioe.getMessage()); } diff --git a/todolist/restapi/src/main/java/todolist/restapi/TodoListResource.java b/todolist/restapi/src/main/java/todolist/restapi/TodoListResource.java index 9b40de1b2bfcf66317633a0e02223697eb1ef2f3..850234b5fc4ac8e1b32c663013a5448a70c986db 100644 --- a/todolist/restapi/src/main/java/todolist/restapi/TodoListResource.java +++ b/todolist/restapi/src/main/java/todolist/restapi/TodoListResource.java @@ -45,7 +45,7 @@ public class TodoListResource { @Produces(MediaType.APPLICATION_JSON) public TodoList getTodoList() { checkTodoList(); - LOG.debug("getTodoList(%s)", name); + LOG.debug("getTodoList({})", name); return this.todoList; } @@ -59,7 +59,7 @@ public class TodoListResource { @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public boolean putTodoList(TodoList todoListArg) { - LOG.debug("putTodoList(%s)", todoListArg); + LOG.debug("putTodoList({})", todoListArg); return this.todoModel.putTodoList(todoListArg) == null; } diff --git a/todolist/restserver/src/main/java/todolist/restserver/TodoConfig.java b/todolist/restserver/src/main/java/todolist/restserver/TodoConfig.java index 6fb60e9d401a30c86fe424fc67a2ca3fdc8e760a..f01ab81072b3aecbe6838e1488fc598eec1bfd8c 100644 --- a/todolist/restserver/src/main/java/todolist/restserver/TodoConfig.java +++ b/todolist/restserver/src/main/java/todolist/restserver/TodoConfig.java @@ -7,8 +7,6 @@ import java.nio.charset.StandardCharsets; import org.glassfish.hk2.utilities.binding.AbstractBinder; import org.glassfish.jersey.jackson.JacksonFeature; import org.glassfish.jersey.server.ResourceConfig; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import todolist.core.TodoList; import todolist.core.TodoModel; import todolist.json.TodoPersistence;