dnet-applications/apps/dnet-exporter-api/src/main/java/eu/dnetlib/DNetOpenaireExporterApplica...

89 lines
3.0 KiB
Java
Raw Normal View History

2022-02-04 10:12:15 +01:00
package eu.dnetlib;
2022-08-19 15:21:40 +02:00
import org.springdoc.core.GroupedOpenApi;
2022-02-04 10:12:15 +01:00
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
2022-02-04 10:12:15 +01:00
import org.springframework.boot.autoconfigure.solr.SolrAutoConfiguration;
import org.springframework.cache.annotation.EnableCaching;
2022-02-07 10:09:18 +01:00
import org.springframework.context.annotation.Bean;
2022-02-04 10:12:15 +01:00
import org.springframework.scheduling.annotation.EnableScheduling;
2022-02-07 10:09:18 +01:00
import eu.dnetlib.common.app.AbstractDnetApp;
import eu.dnetlib.openaire.community.CommunityApiController;
import eu.dnetlib.openaire.context.ContextApiController;
import eu.dnetlib.openaire.dsm.DsmApiController;
import eu.dnetlib.openaire.funders.FundersApiController;
import eu.dnetlib.openaire.info.InfoController;
import eu.dnetlib.openaire.project.ProjectsController;
2022-02-04 10:12:15 +01:00
@EnableCaching
@EnableScheduling
@SpringBootApplication
2022-02-07 10:09:18 +01:00
@EnableAutoConfiguration(exclude = {
SolrAutoConfiguration.class
})
public class DNetOpenaireExporterApplication extends AbstractDnetApp {
2022-02-04 10:12:15 +01:00
2022-02-07 10:09:18 +01:00
public static final String V1 = "1.0.0";
2022-02-04 10:12:15 +01:00
2022-02-07 10:09:18 +01:00
public static void main(final String[] args) throws Exception {
2022-02-04 10:12:15 +01:00
SpringApplication.run(DNetOpenaireExporterApplication.class, args);
}
2022-08-19 15:21:40 +02:00
@Override
2022-08-30 08:59:01 +02:00
protected String swaggerTitle() {
return "D-Net Exporter APIs";
}
@Override
protected String swaggerVersion() {
return V1;
2022-02-07 10:09:18 +01:00
}
@Bean
@ConditionalOnProperty(value = "openaire.exporter.enable.dsm", havingValue = "true")
2022-08-19 15:21:40 +02:00
public GroupedOpenApi dsm() {
return newGroupedOpenApi("Datasource Manager", DsmApiController.class.getPackage().getName());
2022-02-07 10:09:18 +01:00
}
@Bean
@ConditionalOnProperty(value = "openaire.exporter.enable.project", havingValue = "true")
2022-08-19 15:21:40 +02:00
public GroupedOpenApi projects() {
return newGroupedOpenApi("OpenAIRE Projects", ProjectsController.class.getPackage().getName());
2022-02-07 10:09:18 +01:00
}
@Bean
@ConditionalOnProperty(value = "openaire.exporter.enable.funders", havingValue = "true")
2022-08-19 15:21:40 +02:00
public GroupedOpenApi funders() {
return newGroupedOpenApi("OpenAIRE Funders", FundersApiController.class.getPackage().getName());
2022-02-07 10:09:18 +01:00
}
@Bean
@ConditionalOnProperty(value = "openaire.exporter.enable.community", havingValue = "true")
2022-08-19 15:21:40 +02:00
public GroupedOpenApi communities() {
return newGroupedOpenApi("OpenAIRE Communities", CommunityApiController.class.getPackage().getName());
2022-02-07 10:09:18 +01:00
}
2022-08-19 15:21:40 +02:00
@Bean
@ConditionalOnProperty(value = "openaire.exporter.enable.context", havingValue = "true")
2022-08-19 15:21:40 +02:00
public GroupedOpenApi contexts() {
return newGroupedOpenApi("OpenAIRE Contexts", ContextApiController.class.getPackage().getName());
2022-02-07 10:09:18 +01:00
}
2022-08-19 15:21:40 +02:00
@Bean
@ConditionalOnProperty(value = "openaire.exporter.enable.info", havingValue = "true")
2022-08-19 15:21:40 +02:00
public GroupedOpenApi info() {
return newGroupedOpenApi("OpenAIRE Info", InfoController.class.getPackage().getName());
2022-02-07 10:09:18 +01:00
}
2022-08-22 13:03:46 +02:00
private GroupedOpenApi newGroupedOpenApi(final String groupName, final String controllerPackage) {
2022-08-19 15:21:40 +02:00
return GroupedOpenApi.builder()
.group(groupName)
.packagesToScan(controllerPackage)
2022-02-07 10:09:18 +01:00
.build();
}
2022-02-04 10:12:15 +01:00
}