Class EMController

java.lang.Object
org.evomaster.client.java.controller.internal.EMController

@Path("") @Produces("application/json;charset=utf8;version=1") public class EMController extends Object
Note: usually a RESTful webservice would be stateless. Here, however, we have state. Reason is that we need it, and the only client is the EvoMaster process. Furthermore, the code of the controller should be as simple as possible, as we might need to re-implement it in different languages.
  • Constructor Details

    • EMController

      public EMController(SutController sutController)
  • Method Details

    • getConnectedClientsSoFar

      public static Set<String> getConnectedClientsSoFar()
      Only used for debugging/testing
      Returns:
      host:port of all clients connected so far
    • resetConnectedClientsSoFar

      public static void resetConnectedClientsSoFar()
      Only used debugging/testing
    • getWarning

      @Path("/") @GET @Produces("text/html") public javax.ws.rs.core.Response getWarning()
    • getSutInfo

      @Path("/infoSUT") @GET public javax.ws.rs.core.Response getSutInfo(@Context javax.servlet.http.HttpServletRequest httpServletRequest)
    • getControllerInfoDto

      @Path("/controllerInfo") @GET public javax.ws.rs.core.Response getControllerInfoDto(@Context javax.servlet.http.HttpServletRequest httpServletRequest, @QueryParam("methodReplacementCategories") String methodReplacementCategories)
    • newSearch

      @Path("/newSearch") @POST public javax.ws.rs.core.Response newSearch(@Context javax.servlet.http.HttpServletRequest httpServletRequest)
    • postSearchAction

      @Path("/postSearchAction") @POST @Consumes("application/json;charset=utf8;version=1") public javax.ws.rs.core.Response postSearchAction(PostSearchActionDto dto, @Context javax.servlet.http.HttpServletRequest httpServletRequest)
    • runSut

      @Path("/runSUT") @PUT @Consumes("application/json;charset=utf8;version=1") public javax.ws.rs.core.Response runSut(SutRunDto dto, @Context javax.servlet.http.HttpServletRequest httpServletRequest)
    • getTestResults

      @Path("/testResults") @GET public javax.ws.rs.core.Response getTestResults(@QueryParam("ids") @DefaultValue("") String idList, @QueryParam("killSwitch") @DefaultValue("false") boolean killSwitch, @QueryParam("fullyCovered") @DefaultValue("false") boolean fullyCovered, @QueryParam("descriptiveIds") @DefaultValue("false") boolean descriptiveIds, @QueryParam("queryFromDatabase") @DefaultValue("true") boolean queryFromDatabase, @Context javax.servlet.http.HttpServletRequest httpServletRequest)
    • scheduleTasksCommand

      @Path("/scheduleTasksCommand") @Consumes("application/json") @POST public javax.ws.rs.core.Response scheduleTasksCommand(ScheduleTaskInvocationsDto command, @QueryParam("killSwitch") @DefaultValue("false") boolean killSwitch, @QueryParam("queryFromDatabase") @DefaultValue("true") boolean queryFromDatabase, @Context javax.servlet.http.HttpServletRequest httpServletRequest)
    • deriveParams

      @Path("/deriveParams") @Consumes("application/json") @POST public javax.ws.rs.core.Response deriveParams(List<DerivedParamChangeReqDto> dtos)
    • newAction

      @Path("/newAction") @Consumes("application/json") @PUT public javax.ws.rs.core.Response newAction(ActionDto dto, @QueryParam("queryFromDatabase") @DefaultValue("true") boolean queryFromDatabase, @Context javax.servlet.http.HttpServletRequest httpServletRequest)
    • executeDatabaseCommand

      @Path("/databaseCommand") @Consumes("application/json;charset=utf8;version=1") @POST public javax.ws.rs.core.Response executeDatabaseCommand(DatabaseCommandDto dto, @Context javax.servlet.http.HttpServletRequest httpServletRequest)
    • executeMongoInsertion

      @Path("/mongoInsertion") @Consumes("application/json;charset=utf8;version=1") @POST public javax.ws.rs.core.Response executeMongoInsertion(MongoDatabaseCommandDto dto, @Context javax.servlet.http.HttpServletRequest httpServletRequest)