Auto-generate auto configuration classes tables

This commit is contained in:
Andy Wilkinson 2014-06-05 15:37:32 +01:00
parent dbd0e778c6
commit 65008606ab
3 changed files with 97 additions and 191 deletions

View File

@ -116,6 +116,35 @@
</artifactItems>
</configuration>
</execution>
<execution>
<id>unpack-spring-factories</id>
<phase>generate-resources</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-autoconfigure</artifactId>
<version>${project.version}</version>
<outputDirectory>
${project.build.directory}/auto-config/spring-boot-autoconfigure
</outputDirectory>
<includes>META-INF/spring.factories</includes>
</artifactItem>
<artifactItem>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-actuator</artifactId>
<version>${project.version}</version>
<outputDirectory>
${project.build.directory}/auto-config/spring-boot-actuator
</outputDirectory>
<includes>META-INF/spring.factories</includes>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
@ -144,6 +173,31 @@
</transformationSets>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>1.2</version>
<executions>
<execution>
<goals>
<goal>execute</goal>
</goals>
<phase>generate-resources</phase>
</execution>
</executions>
<configuration>
<scripts>
<script>file:///${project.basedir}/src/main/groovy/generateAutoConfigurationClassTables.groovy</script>
</scripts>
</configuration>
<dependencies>
<dependency>
<groupId>org.codehaus.groovy</groupId>
<artifactId>groovy-all</artifactId>
<version>${groovy.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<groupId>org.asciidoctor</groupId>
<artifactId>asciidoctor-maven-plugin</artifactId>

View File

@ -13,154 +13,7 @@ application for more details of which features are switched on.
=== From the ``spring-boot-autoconfigure'' module
The following auto-configuration classes are from the `spring-boot-autoconfigure` module:
[cols="4,1"]
|===
|Configuration Class | Links
|{sc-spring-boot-autoconfigure}/jms/activemq/ActiveMQAutoConfiguration.{sc-ext}[ActiveMQAutoConfiguration]
|{dc-spring-boot-autoconfigure}/jms/activemq/ActiveMQAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/aop/AopAutoConfiguration.{sc-ext}[AopAutoConfiguration]
|{dc-spring-boot-autoconfigure}/aop/AopAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/batch/BatchAutoConfiguration.{sc-ext}[BatchAutoConfiguration]
|{dc-spring-boot-autoconfigure}/batch/BatchAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/jdbc/DataSourceAutoConfiguration.{sc-ext}[DataSourceAutoConfiguration]
|{dc-spring-boot-autoconfigure}/jdbc/DataSourceAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/jdbc/DataSourceTransactionManagerAutoConfiguration.{sc-ext}[DataSourceTransactionManagerAutoConfiguration]
|{dc-spring-boot-autoconfigure}/jdbc/DataSourceTransactionManagerAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/mobile/DeviceResolverAutoConfiguration.{sc-ext}[DeviceResolverAutoConfiguration]
|{dc-spring-boot-autoconfigure}/mobile/DeviceResolverAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/web/DispatcherServletAutoConfiguration.{sc-ext}[DispatcherServletAutoConfiguration]
|{dc-spring-boot-autoconfigure}/web/DispatcherServletAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/elasticsearch/ElasticsearchAutoConfiguration.{sc-ext}[ElasticsearchAutoConfiguration]
|{dc-spring-boot-autoconfigure}/elasticsearch/ElasticsearchAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/elasticsearch/ElasticsearchDataAutoConfiguration.{sc-ext}[ElasticsearchDataAutoConfiguration]
|{dc-spring-boot-autoconfigure}/elasticsearch/ElasticsearchDataAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/data/ElasticsearchRepositoriesAutoConfiguration.{sc-ext}[ElasticsearchRepositoriesAutoConfiguration]
|{dc-spring-boot-autoconfigure}/data/ElasticsearchRepositoriesAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/web/EmbeddedServletContainerAutoConfiguration.{sc-ext}[EmbeddedServletContainerAutoConfiguration]
|{dc-spring-boot-autoconfigure}/web/EmbeddedServletContainerAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/web/ErrorMvcAutoConfiguration.{sc-ext}[ErrorMvcAutoConfiguration]
|{dc-spring-boot-autoconfigure}/web/ErrorMvcAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/social/FacebookAutoConfiguration.{sc-ext}[FacebookAutoConfiguration]
|{dc-spring-boot-autoconfigure}/social/FacebookAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/security/FallbackWebSecurityAutoConfiguration.{sc-ext}[FallbackWebSecurityAutoConfiguration]
|{dc-spring-boot-autoconfigure}/security/FallbackWebSecurityAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/flyway/FlywayAutoConfiguration.{sc-ext}[FlywayAutoConfiguration]
|{dc-spring-boot-autoconfigure}/flyway/FlywayAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/freemarker/FreeMarkerAutoConfiguration.{sc-ext}[FreeMarkerAutoConfiguration]
|{dc-spring-boot-autoconfigure}/freemarker/FreeMarkerAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/groovy/templates/GroovyTemplateAutoConfiguration.{sc-ext}[GroovyTemplateAutoConfiguration]
|{dc-spring-boot-autoconfigure}/groovy/templates/GroovyTemplateAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/orm/jpa/HibernateJpaAutoConfiguration.{sc-ext}[HibernateJpaAutoConfiguration]
|{dc-spring-boot-autoconfigure}/orm/jpa/HibernateJpaAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/jms/hornetq/HornetQAutoConfiguration.{sc-ext}[HornetQAutoConfiguration]
|{dc-spring-boot-autoconfigure}/jms/hornetq/HornetQAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/web/HttpMessageConvertersAutoConfiguration.{sc-ext}[HttpMessageConvertersAutoConfiguration]
|{dc-spring-boot-autoconfigure}/web/HttpMessageConvertersAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/hateoas/HypermediaAutoConfiguration.{sc-ext}[HypermediaAutoConfiguration]
|{dc-spring-boot-autoconfigure}/hateoas/HypermediaAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/integration/IntegrationAutoConfiguration.{sc-ext}[IntegrationAutoConfiguration]
|{dc-spring-boot-autoconfigure}/integration/IntegrationAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/jms/JmsAutoConfiguration.{sc-ext}[JmsAutoConfiguration]
|{dc-spring-boot-autoconfigure}/jms/JmsAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/jmx/JmxAutoConfiguration.{sc-ext}[JmxAutoConfiguration]
|{dc-spring-boot-autoconfigure}/jmx/JmxAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/data/JpaRepositoriesAutoConfiguration.{sc-ext}[JpaRepositoriesAutoConfiguration]
|{dc-spring-boot-autoconfigure}/data/JpaRepositoriesAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/social/LinkedInAutoConfiguration.{sc-ext}[LinkedInAutoConfiguration]
|{dc-spring-boot-autoconfigure}/social/LinkedInAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/liquibase/LiquibaseAutoConfiguration.{sc-ext}[LiquibaseAutoConfiguration]
|{dc-spring-boot-autoconfigure}/liquibase/LiquibaseAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/MessageSourceAutoConfiguration.{sc-ext}[MessageSourceAutoConfiguration]
|{dc-spring-boot-autoconfigure}/MessageSourceAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/mongo/MongoAutoConfiguration.{sc-ext}[MongoAutoConfiguration]
|{dc-spring-boot-autoconfigure}/mongo/MongoAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/mongo/MongoDataAutoConfiguration.{sc-ext}[MongoDataAutoConfiguration]
|{dc-spring-boot-autoconfigure}/mongo/MongoDataAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/data/MongoRepositoriesAutoConfiguration.{sc-ext}[MongoRepositoriesAutoConfiguration]
|{dc-spring-boot-autoconfigure}/data/MongoRepositoriesAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/web/MultipartAutoConfiguration.{sc-ext}[MultipartAutoConfiguration]
|{dc-spring-boot-autoconfigure}/web/MultipartAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/PropertyPlaceholderAutoConfiguration.{sc-ext}[PropertyPlaceholderAutoConfiguration]
|{dc-spring-boot-autoconfigure}/PropertyPlaceholderAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/amqp/RabbitAutoConfiguration.{sc-ext}[RabbitAutoConfiguration]
|{dc-spring-boot-autoconfigure}/amqp/RabbitAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/reactor/ReactorAutoConfiguration.{sc-ext}[ReactorAutoConfiguration]
|{dc-spring-boot-autoconfigure}/reactor/ReactorAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/redis/RedisAutoConfiguration.{sc-ext}[RedisAutoConfiguration]
|{dc-spring-boot-autoconfigure}/redis/RedisAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/data/rest/RepositoryRestMvcAutoConfiguration.{sc-ext}[RepositoryRestMvcAutoConfiguration]
|{dc-spring-boot-autoconfigure}/data/rest/RepositoryRestMvcAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/security/SecurityAutoConfiguration.{sc-ext}[SecurityAutoConfiguration]
|{dc-spring-boot-autoconfigure}/security/SecurityAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/web/ServerPropertiesAutoConfiguration.{sc-ext}[ServerPropertiesAutoConfiguration]
|{dc-spring-boot-autoconfigure}/web/ServerPropertiesAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/mobile/SitePreferenceAutoConfiguration.{sc-ext}[SitePreferenceAutoConfiguration]
|{dc-spring-boot-autoconfigure}/mobile/SitePreferenceAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/social/SocialWebAutoConfiguration.{sc-ext}[SocialWebAutoConfiguration]
|{dc-spring-boot-autoconfigure}/social/SocialWebAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/solr/SolrAutoConfiguration.{sc-ext}[SolrAutoConfiguration]
|{dc-spring-boot-autoconfigure}/solr/SolrAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/data/SolrRepositoriesAutoConfiguration.{sc-ext}[SolrRepositoriesAutoConfiguration]
|{dc-spring-boot-autoconfigure}/data/SolrRepositoriesAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/thymeleaf/ThymeleafAutoConfiguration.{sc-ext}[ThymeleafAutoConfiguration]
|{dc-spring-boot-autoconfigure}/thymeleaf/ThymeleafAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/social/TwitterAutoConfiguration.{sc-ext}[TwitterAutoConfiguration]
|{dc-spring-boot-autoconfigure}/social/TwitterAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/velocity/VelocityAutoConfiguration.{sc-ext}[VelocityAutoConfiguration]
|{dc-spring-boot-autoconfigure}/velocity/VelocityAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/web/WebMvcAutoConfiguration.{sc-ext}[WebMvcAutoConfiguration]
|{dc-spring-boot-autoconfigure}/web/WebMvcAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-autoconfigure}/websocket/WebSocketAutoConfiguration.{sc-ext}[WebSocketAutoConfiguration]
|{dc-spring-boot-autoconfigure}/websocket/WebSocketAutoConfiguration.{dc-ext}[javadoc]
|===
include::../../../target/generated-resources/auto-configuration-classes-spring-boot-autoconfigure.adoc[]
@ -168,46 +21,4 @@ The following auto-configuration classes are from the `spring-boot-autoconfigure
=== From the ``spring-boot-actuator'' module
The following auto-configuration classes are from the `spring-boot-actuator` module:
[cols="4,1"]
|===
|Configuration Class |Links
|{sc-spring-boot-actuator}/autoconfigure/AuditAutoConfiguration.{sc-ext}[AuditAutoConfiguration]
|{dc-spring-boot-actuator}/autoconfigure/AuditAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-actuator}/autoconfigure/CrshAutoConfiguration.{sc-ext}[CrshAutoConfiguration]
|{dc-spring-boot-actuator}/autoconfigure/CrshAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-actuator}/autoconfigure/EndpointAutoConfiguration.{sc-ext}[EndpointAutoConfiguration]
|{dc-spring-boot-actuator}/autoconfigure/EndpointAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-actuator}/autoconfigure/EndpointMBeanExportAutoConfiguration.{sc-ext}[EndpointMBeanExportAutoConfiguration]
|{dc-spring-boot-actuator}/autoconfigure/EndpointMBeanExportAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-actuator}/autoconfigure/EndpointWebMvcAutoConfiguration.{sc-ext}[EndpointWebMvcAutoConfiguration]
|{dc-spring-boot-actuator}/autoconfigure/EndpointWebMvcAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-actuator}/autoconfigure/HealthIndicatorAutoConfiguration.{sc-ext}[HealthIndicatorAutoConfiguration]
|{dc-spring-boot-actuator}/autoconfigure/HealthIndicatorAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-actuator}/autoconfigure/JolokiaAutoConfiguration.{sc-ext}[JolokiaAutoConfiguration]
|{dc-spring-boot-actuator}/autoconfigure/JolokiaAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-actuator}/autoconfigure/ManagementSecurityAutoConfiguration.{sc-ext}[ManagementSecurityAutoConfiguration]
|{dc-spring-boot-actuator}/autoconfigure/ManagementSecurityAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-actuator}/autoconfigure/ManagementServerPropertiesAutoConfiguration.{sc-ext}[ManagementServerPropertiesAutoConfiguration]
|{dc-spring-boot-actuator}/autoconfigure/ManagementServerPropertiesAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-actuator}/autoconfigure/MetricFilterAutoConfiguration.{sc-ext}[MetricFilterAutoConfiguration]
|{dc-spring-boot-actuator}/autoconfigure/MetricFilterAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-actuator}/autoconfigure/MetricRepositoryAutoConfiguration.{sc-ext}[MetricRepositoryAutoConfiguration]
|{dc-spring-boot-actuator}/autoconfigure/MetricRepositoryAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-actuator}/autoconfigure/TraceRepositoryAutoConfiguration.{sc-ext}[TraceRepositoryAutoConfiguration]
|{dc-spring-boot-actuator}/autoconfigure/TraceRepositoryAutoConfiguration.{dc-ext}[javadoc]
|{sc-spring-boot-actuator}/autoconfigure/TraceWebFilterAutoConfiguration.{sc-ext}[TraceWebFilterAutoConfiguration]
|{dc-spring-boot-actuator}/autoconfigure/TraceWebFilterAutoConfiguration.{dc-ext}[javadoc]
|===
include::../../../target/generated-resources/auto-configuration-classes-spring-boot-actuator.adoc[]

View File

@ -0,0 +1,41 @@
def processModule(File moduleDir, File generatedResourcesDir) {
def moduleName = moduleDir.name
def factoriesFile = new File(moduleDir, 'META-INF/spring.factories')
new File(generatedResourcesDir, "auto-configuration-classes-${moduleName}.adoc")
.withPrintWriter {
generateAutoConfigurationClassTable(moduleName, factoriesFile, it)
}
}
def generateAutoConfigurationClassTable(String module, File factories, PrintWriter writer) {
writer.println '[cols="4,1"]'
writer.println '|==='
writer.println '|Configuration Class | Links'
getAutoConfigurationClasses(factories).each {
writer.println ''
writer.println "|{github-code}/$module/src/main/java/$it.path.{sc-ext}[$it.name]"
writer.println "|{dc-root}/$it.path.{dc-ext}[javadoc]"
}
writer.println '|==='
}
def getAutoConfigurationClasses(File factories) {
factories.withInputStream {
def properties = new Properties()
properties.load(it)
properties.get('org.springframework.boot.autoconfigure.EnableAutoConfiguration')
.split(',')
.collect {
def path = it.replace('.', '/')
def name = it.substring(it.lastIndexOf('.') + 1)
[ 'path': path, 'name': name]
}
.sort {a, b -> a.name.compareTo(b.name)}
}
}
def autoConfigDir = new File(project.build.directory, 'auto-config')
def generatedResourcesDir = new File(project.build.directory, 'generated-resources')
autoConfigDir.eachDir { processModule(it, generatedResourcesDir) }