class SystemController {

    public static final String PATH = "system";

    private final RuntimeEnvironment env = RuntimeEnvironment.getInstance();

    private static final Logger LOGGER = LoggerFactory.getLogger(SystemController.class);

    @PUT
    @Path("/includes/reload")
    public void reloadIncludes() {
        env.getIncludeFiles().reloadIncludeFiles();
    }

    @POST
    @Path("/pathdesc")
    @Consumes(MediaType.APPLICATION_JSON)
    public void loadPathDescriptions(@Valid final PathDescription[] descriptions) throws IOException {
        EftarFile ef = new EftarFile();
        ef.create(Set.of(descriptions), env.getDtagsEftarPath().toString());
        LOGGER.log(Level.INFO, "reloaded path descriptions with {0} entries", descriptions.length);
    }

    @GET
    @Path("/indextime")
    @Produces(MediaType.APPLICATION_JSON)
    public String getIndexTime() throws JsonProcessingException {<FILL_FUNCTION_BODY>}

    @GET
    @Path("/version")
    @Produces(MediaType.TEXT_PLAIN)
    public String getVersion() {
        return String.format("%s (%s)", Info.getVersion(), Info.getRevision());
    }

    @GET
    @Path("/ping")
    public String ping() {
        return "";
    }
}

        Date date = new IndexTimestamp().getDateForLastIndexRun();
        ObjectMapper mapper = new ObjectMapper();
        // StdDateFormat is ISO8601 since jackson 2.9
        mapper.setDateFormat(new StdDateFormat().withColonInTimeZone(true));
        return mapper.writeValueAsString(date);
    
<no_super_class>