All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.crnk.spring.boot.autoconfigure.CrnkMetaAutoConfiguration Maven / Gradle / Ivy

package io.crnk.spring.boot.autoconfigure;

import java.util.List;

import io.crnk.meta.MetaModule;
import io.crnk.meta.MetaModuleConfig;
import io.crnk.meta.provider.resource.ResourceMetaProvider;
import io.crnk.spring.boot.CrnkMetaProperties;
import io.crnk.spring.boot.MetaModuleConfigurer;
import io.crnk.spring.boot.v3.CrnkConfigV3;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Import;

/**
 * @link EnableAutoConfiguration Auto-configuration} for Crnk' Meta module.
 * 

* Activates when there is a {@link MetaModule} on the classpath and there is no other existing * {@link MetaModule} configured. *

* Disable with the property crnk.meta.enabled = false */ @Configuration @ConditionalOnProperty(prefix = "crnk.meta", name = "enabled", havingValue = "true", matchIfMissing = true) @ConditionalOnClass(MetaModule.class) @ConditionalOnMissingBean(MetaModule.class) @EnableConfigurationProperties({ CrnkMetaProperties.class }) @Import({ CrnkConfigV3.class }) public class CrnkMetaAutoConfiguration { @Autowired private CrnkMetaProperties metaProperties; @Autowired(required = false) private List configurers; @Bean public MetaModuleConfig metaModuleConfig() { MetaModuleConfig config = new MetaModuleConfig(); if (metaProperties.getListResources()) { config.addMetaProvider(new ResourceMetaProvider()); } return config; } @Bean public MetaModule metaModule(MetaModuleConfig config) { if (configurers != null) { for (MetaModuleConfigurer configurer : configurers) { configurer.configure(config); } } return MetaModule.createServerModule(config); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy