89 lines
3.0 KiB
Java
89 lines
3.0 KiB
Java
package eu.dnetlib;
|
|
|
|
import org.springdoc.core.GroupedOpenApi;
|
|
import org.springframework.boot.SpringApplication;
|
|
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
|
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
|
import org.springframework.boot.autoconfigure.solr.SolrAutoConfiguration;
|
|
import org.springframework.cache.annotation.EnableCaching;
|
|
import org.springframework.context.annotation.Bean;
|
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
|
|
|
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;
|
|
|
|
@EnableCaching
|
|
@EnableScheduling
|
|
@SpringBootApplication
|
|
@EnableAutoConfiguration(exclude = {
|
|
SolrAutoConfiguration.class
|
|
})
|
|
public class DNetOpenaireExporterApplication extends AbstractDnetApp {
|
|
|
|
public static final String V1 = "1.0.0";
|
|
|
|
public static void main(final String[] args) throws Exception {
|
|
SpringApplication.run(DNetOpenaireExporterApplication.class, args);
|
|
}
|
|
|
|
@Override
|
|
protected String swaggerTitle() {
|
|
return "D-Net Exporter APIs";
|
|
}
|
|
|
|
@Override
|
|
protected String swaggerVersion() {
|
|
return V1;
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnProperty(value = "openaire.exporter.enable.dsm", havingValue = "true")
|
|
public GroupedOpenApi dsm() {
|
|
return newGroupedOpenApi("Datasource Manager", DsmApiController.class.getPackage().getName());
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnProperty(value = "openaire.exporter.enable.project", havingValue = "true")
|
|
public GroupedOpenApi projects() {
|
|
return newGroupedOpenApi("OpenAIRE Projects", ProjectsController.class.getPackage().getName());
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnProperty(value = "openaire.exporter.enable.funders", havingValue = "true")
|
|
public GroupedOpenApi funders() {
|
|
return newGroupedOpenApi("OpenAIRE Funders", FundersApiController.class.getPackage().getName());
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnProperty(value = "openaire.exporter.enable.community", havingValue = "true")
|
|
public GroupedOpenApi communities() {
|
|
return newGroupedOpenApi("OpenAIRE Communities", CommunityApiController.class.getPackage().getName());
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnProperty(value = "openaire.exporter.enable.context", havingValue = "true")
|
|
public GroupedOpenApi contexts() {
|
|
return newGroupedOpenApi("OpenAIRE Contexts", ContextApiController.class.getPackage().getName());
|
|
}
|
|
|
|
@Bean
|
|
@ConditionalOnProperty(value = "openaire.exporter.enable.info", havingValue = "true")
|
|
public GroupedOpenApi info() {
|
|
return newGroupedOpenApi("OpenAIRE Info", InfoController.class.getPackage().getName());
|
|
}
|
|
|
|
private GroupedOpenApi newGroupedOpenApi(final String groupName, final String controllerPackage) {
|
|
return GroupedOpenApi.builder()
|
|
.group(groupName)
|
|
.packagesToScan(controllerPackage)
|
|
.build();
|
|
}
|
|
|
|
}
|