diff --git a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/boot/JerseyConfig.java b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/boot/JerseyConfig.java index 01dda4652..bed46f64a 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/boot/JerseyConfig.java +++ b/fineract-provider/src/main/java/org/apache/fineract/infrastructure/core/boot/JerseyConfig.java @@ -19,19 +19,36 @@ package org.apache.fineract.infrastructure.core.boot; +import javax.annotation.PostConstruct; import javax.ws.rs.ApplicationPath; +import javax.ws.rs.Path; +import javax.ws.rs.ext.Provider; import org.glassfish.jersey.server.ResourceConfig; import org.glassfish.jersey.server.ServerProperties; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Configuration; @Configuration @ApplicationPath("/api/v1") public class JerseyConfig extends ResourceConfig { + private static final Logger LOG = LoggerFactory.getLogger(JerseyConfig.class); + JerseyConfig() { register(org.glassfish.jersey.media.multipart.MultiPartFeature.class); property(ServerProperties.WADL_FEATURE_DISABLE, true); + } - packages("org.apache.fineract"); + @Autowired + ApplicationContext appCtx; + + @PostConstruct + public void setup() { + appCtx.getBeansWithAnnotation(Path.class).values().forEach(component -> register(component.getClass())); + + appCtx.getBeansWithAnnotation(Provider.class).values().forEach(this::register); } }