- 03 Nov, 2014 3 commits
-
-
Stephane Nicoll authored
Update the `spring-boot`, `spring-boot-autoconfigure` and `spring-boot-actuator` project to generate configuration meta-data files during compilation. See gh-1001
-
Phillip Webb authored
Update `ConfigurationMetadataAnnotationProcessor` to include the 'defaultValue' of a property when possible. For example the 'defaultValue' or 'server.port' is '8080'. Default values are detected by inspecting the field assignments of @ConfigurationProperties items. In order to detect field values some internals of the Java compiler are used. To save a dependency on 'tools.jar' internal javac classes are accessed using reflection. See gh-1001
-
Stephane Nicoll authored
Adds an annotation processor to generates a JSON meta-data file at compile time from @ConfigurationProperties items. Each meta-data file can include an array or 'properties' and 'groups'. A 'property' is a single item that may appear in a Spring Boot 'application.properties' file with a given value. For example, 'server.port' and 'server.context-path' are properties. Each property may optionally include 'type' and 'description' attributes to provide the data type (e.g. `java.lang.Integer`, `java.lang.String`) and some short documentation (taken from the field javadoc) about what the property is for. For consistency, the type of a primitive is translated to its wrapper counterpart, i.e. `boolean` becomes `java.lang.Boolean`. A 'group' provides a higher level grouping of properties. For example the 'server.port' and 'server.context-path' properties are in the 'server' group. Both 'property' and 'group' items may additional have 'sourceType' and 'sourceMethod' attributes to indicate the source that contributed them. Users may use `META-INF/additional-spring-configuration-metadata.json` to manually provide additionally meta-data that is not covered by @ConfigurationProperties objects. The contents of this file will be read and merged with harvested items. The complete meta-data file is finally written to `META-INF/spring-configuration-metadata.json`. See gh-1001
-
- 02 Nov, 2014 5 commits
-
-
Phillip Webb authored
Update OnBeanCondition to use a new BeanTypeRegistry which includes optimized code when using a DefaultListableBeanFactory. The optimized version calculates bean types only once per bean and caches the result. Prior to this change the sample "pet clinic" application would spend 400-500 milliseconds evaluating OnBeanConditions, after this change it spends around 120 milliseconds. Fixes gh-1803
-
Phillip Webb authored
-
Phillip Webb authored
Update ManagementSecurityAutoConfiguration to return IgnoredPathsWebSecurityConfigurerAdapter rather than WebSecurityConfigurer<WebSecurity>.
-
Phillip Webb authored
Conflicts: spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/security/SecurityAutoConfigurationTests.java
-
Phillip Webb authored
-
- 01 Nov, 2014 6 commits
-
-
Dave Syer authored
Instead of just blindly creating the default authentication manager, after thic change we count the beans of type GlobalAuthenticationManagerConfigurer and assume that if we detect more than we expect (one from Boot and one from Spring Security) then the user is telling us they want to configure the AuthenticationManager themselves. Fixes gh-1801
-
Phillip Webb authored
Change InitializrService to use a late binding CloseableHttpClient since the calling `HttpClientBuilder.create().build()` is slow. Fixes gh-1764
-
Phillip Webb authored
Rename a few classes and methods and extract some logic into helper classes. Also change 2 char shortcuts to a single char. Closes gh-1751
-
Phillip Webb authored
Apply eclipse formatting rules to b2fe2dd9. See gh-1751
-
Phillip Webb authored
-
Dave Syer authored
See gh-1801
-
- 31 Oct, 2014 4 commits
-
-
Dave Syer authored
Fixes gh-1775
-
Dave Syer authored
-
Dave Syer authored
All metrics in the MetricRegistry have been added unconditionally for now. Fixes gh-1795
-
Stephane Nicoll authored
This commit adds a new command to the CLI that allows to initialize a new project from the command line. It uses the Spring initializr service to actually generate the project. The command offers two main operations: 1. Listing the capabilities of the service (--list or -l). This basically dumps the defaults of a given service and the list of dependencies and project types it supports 2. Generating a project. By default, http://start.spring.io is used and its configured defaults are applied. Running spring init would therefore have the same effect as clicking the 'generate project' on the UI without entering any extra information. No file is overwritten by default. The generation can be customized with the following options: * --boot-version (-bv) Spring Boot version the project should use * --dependencies (-d) comma separated list of dependencies to add to the generated project * --java-version (-jv) Java version to use * --packaging (-p) the packaging for the project (jar, war) * --target the url of the service to use The actual type of the project can be defined in several ways: 1. Using the --type (-t) option that identifies a type that is supported by the service 2. A combination of --build and/or --format that can be used to uniquely identify matching these tags. Build represents the build system to use (e.g. maven or gradle) while --format defines the format of the generated project. The project is saved on disk with the name provided by the server through the Content-Disposition header, if any. It is possible to force it with the --output option. It is possible to overwrite existing files by adding the --force (-f) flag. The --extract (-x) option allows to extract the project instead of saving the zip archive. By default, the project is extracted in the current working directory but it is possible to specify an alternate directory using the --output option. Fixes gh-1751
-
- 30 Oct, 2014 6 commits
-
-
Phillip Webb authored
-
Phillip Webb authored
Update LogbackLoggingSystem to programmatically configure logback defaults rather than parsing XML. This change shaves about 100ms off the start up time. Fixes gh-1796
-
Andy Wilkinson authored
-
Andy Wilkinson authored
GroovyWebConfiguration creates a GroovyTemplateViewResolver which is a UrlBasedViewResolver sub-class. UrlBasedViewResolver is provided by spring-webmvc. Previously, if a user configured a web application but did not have spring-webmvc on the classpath, the application would fail to start with a NoClassDefFoundError for UrlBasedViewResolver. This commit makes GroovyWebConfiguration conditional on UrlBasedViewResolver being on the classpath so that it backs of in the absence of spring-webmvc. Fixes gh-1793
-
Andy Wilkinson authored
Previously, Spring Security's filter had no configured order. Due to the use of AnnotationAwareOrderComparater this meant that its order defaulted to LOWEST_PRECEDENCE. This meant that a user had to declare a FilterRegistrationBean for the filter and explicitly set its order if they want another filter to run after Spring Security's. This commit updates the security auto-configuration to assign a default order of zero to Spring Security's filter, allowing filters to be easily configured to run before it or after it. This default value can overridden using the server.filter-order property. The default order is also exposed as a constant on SecurityProperties, allowing it to be referenced from other filter declarations. Closes gh-1640
-
Phillip Webb authored
Prior to this commit LoggingSystem initialization would happen multiple times. Once to configure "quiet" logging, and again to configure correct settings once the Application was initialized. This could cause problems if `logging.groovy` logback files were used. The logging system is now only initialized once (when possible) by following these steps: - Standard logging initialization occurs via the actual logging implementation used (e.g. logback will load a logback.xml file if it exists) - beforeInitization() is called to prevent early log output. Implementations now either use a Filter or simply set the root logging level. - initialize() is called with an optional log configuration file (e.g a custom logback.xml location) and an optional log output file (the default is null indicating console only output). The initialize() method will attempt to prevent double initialization by checking if a standard configuration file exists. Double initialization now only occurs in the following situations: - The user has a standard configuration file (e.g. classpath:logback.xml) but also specifies a logging.config property. Double initialization is required since the specified configuration file supersedes the default. - The user has a standard configuration file (e.g. classpath:logback.xml) and specifies a logging.file property. Double initialization is required since the standard configuration may use a ${LOG_FILE} reference. In addition this commit removes the `logging.console` option and now assumes that logging either occurs only to console or to both the console and a file. This restriction helps simplify the LoggingSystem implementations. If file only logging is required a custom logback.xml can be used. Fixes gh-1091 See gh-1612, gh-1770
-
- 29 Oct, 2014 12 commits
-
-
Phillip Webb authored
-
Andy Wilkinson authored
-
Andy Wilkinson authored
Closes gh-1787
-
Andy Wilkinson authored
-
Andy Wilkinson authored
Closes gh-1774
-
Andy Wilkinson authored
Closes gh-1767
-
Andy Wilkinson authored
Spring IO Platform already provides dependency management for JavaMail. This commit updates Boot’s new JavaMail dependency management to align with the Platform, thereby allowing the Platform to inherit Boot’s dependency management instead of defining its own.
-
Stephane Nicoll authored
-
Stephane Nicoll authored
This commit adds a new starter to auto-configure a MailSender when the necessary classes are present and when the property "spring.mail.host" is set. The auto-configuration also accepts any arbitrary properties that JavaMail might need using the "spring.mail.properties" prefix. Fixes gh-1760
-
Dave Syer authored
There actually isn't anything much we can (or should) change here. Spring always copies PropertySources and profiles down into the child context when you set its parent. That seems sensible. So you can add a new profile in a child context but it will always "inherit" from its parent. See gh-1776
-
Stephane Nicoll authored
* whitelabel-typo: Fix a typo in error.whitelabel.enabled
-
Sebastien Deleuze authored
-
- 28 Oct, 2014 4 commits
-
-
Andy Wilkinson authored
Conflicts: spring-boot-dependencies/pom.xml
-
Andy Wilkinson authored
Closes gh-1782
-
Andy Wilkinson authored
Fixes #1781
-
Andy Wilkinson authored
-