nevermind, figured it out, i mixed up two approaches.
To add custom api, do this:
-
define interface:
@Produces(MediaType.APPLICATION_JSON) public interface TaskAssignmentConfigRestService { public static final String PATH = "/task-config"; @GET @Path("/ping") @Produces(MediaType.APPLICATION_JSON) String ping(); }
-
Implement it:
public class TaskAssignmentConfigServiceImpl extends AbstractRestProcessEngineAware implements TaskAssignmentConfigRestService { public TaskAssignmentConfigServiceImpl(String name, ObjectMapper objectMapper) { super(name, objectMapper); } @Override public String ping() { return "pong"; } }
-
Create it:
@Path(DefaultProcessEngineRestServiceImpl.PATH) public class TaskAssignmentConfigDefaultProcessEngineRestServiceImpl extends DefaultProcessEngineRestServiceImpl { @Path(TaskAssignmentConfigRestService.PATH) public TaskAssignmentConfigRestService getTaskAssignmentConfigService() { String rootResourcePath = getRelativeEngineUri(null).toASCIIString(); TaskAssignmentConfigServiceImpl subResource = new TaskAssignmentConfigServiceImpl(null, getObjectMapper()); subResource.setRelativeRootResourceUri(rootResourcePath); return subResource; } }
-
register it:
@Component public class CustomJerseyResourceConfiguration extends CamundaJerseyResourceConfig { private static final Logger log = org.slf4j.LoggerFactory.getLogger(CustomJerseyResourceConfiguration.class); @Override protected void registerCamundaRestResources() { log.info("Configuring camunda rest api."); this.registerClasses(TaskAssignmentConfigDefaultProcessEngineRestServiceImpl.class); this.registerClasses(CamundaRestResources.getConfigurationClasses()); this.register(JacksonFeature.class); log.info("Finished configuring camunda rest api."); } }
-
Easy profit! XD