diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..698778f --- /dev/null +++ b/.classpath @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore index 017acc5..fa6ccad 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,11 @@ #* .#* +*# *~ _site .idea *.sw[op] .project sample-pages +spring-cloud-*/ +target/ diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..abdea9a --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,4 @@ +eclipse.preferences.version=1 +encoding//src/main/java=UTF-8 +encoding//src/main/resources=UTF-8 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..ec4300d --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,5 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7 +org.eclipse.jdt.core.compiler.compliance=1.7 +org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning +org.eclipse.jdt.core.compiler.source=1.7 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/_config.yml b/_config.yml index ddc41fb..e05f77a 100644 --- a/_config.yml +++ b/_config.yml @@ -10,24 +10,24 @@ redcarpet: ### The following properties will change on a project-by-project basis # Context path in the remote website (usually /), will be prepended to absolute URLs for static resources -baseurl: /gh-pages +baseurl: /spring-cloud-bus # Name of the project for display in places like page titles -name: Spring Framework +name: Spring Cloud Bus # ID of the project in the metadata API at spring.io (if this is not a # valid project ID the javascript widgets in the home page will not work) -project: spring-framework +project: spring-cloud-bus # Project github URL -github_repo_url: http://github.com/spring-projects/spring-framework +github_repo_url: http://github.com/spring-cloud/spring-cloud-bus # Project forum URL -forum: http://forum.spring.io/forum/spring-projects/container +forum: http://stackoverflow.com/questions/tagged/spring-cloud # If you want to include a custom pom.xml or gradle template set these value to true and add _include files -custom_pom_template: false -custom_gradle_template: false +custom_pom_template: true +custom_gradle_template: true ### The following properties are constant for most projects diff --git a/_includes/build.gradle b/_includes/build.gradle new file mode 100644 index 0000000..5821574 --- /dev/null +++ b/_includes/build.gradle @@ -0,0 +1,3 @@ +dependencies { + compile '{@= groupId @}:spring-cloud-starter-bus-amqp:{@= version @}' +} \ No newline at end of file diff --git a/_includes/pom.xml b/_includes/pom.xml new file mode 100644 index 0000000..1c88cbd --- /dev/null +++ b/_includes/pom.xml @@ -0,0 +1,17 @@ + + + + {@= groupId @} + spring-cloud-starters + {@= version @} + pom + import + + + + + + {@= groupId @} + spring-cloud-starter-bus-amqp + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..71b61bd --- /dev/null +++ b/index.html @@ -0,0 +1,99 @@ +--- +# The name of your project +title: Spring Cloud Bus + +badges: + + # Customize your project's badges. Delete any entries that do not apply. + custom: + - name: Source (GitHub) + url: https://github.com/spring-cloud/spring-cloud-bus + icon: github + + - name: StackOverflow + url: http://stackoverflow.com/questions/tagged/spring-cloud + icon: stackoverflow + +--- + + + + +{% capture parent_link %} +[Spring Cloud]({{ site.projects_site_url }}/spring-cloud) +{% endcapture %} + + +{% capture billboard_description %} + +Spring Cloud Config provides server and client-side support for externalized configuration in a distributed system. With the Config Server you have a central place to manage external properties for applications across all environments. The concepts on both client and server map identically to the Spring Environment and PropertySource abstractions, so they fit very well with Spring applications, but can be used with any application running in any language. As an application moves through the deployment pipeline from dev to test and into production you can manage the configuration between those environments and be certain that applications have everything they need to run when they migrate. The default implementation of the server storage backend uses git so it easily supports labelled versions of configuration environments, as well as being accessible to a wide range of tooling for managing the content. It is easy to add alternative implementations and plug them in with Spring configuration. + +{% endcapture %} + +{% capture main_content %} + +## Features + +Spring Cloud Config Server features: + +* HTTP, resource-based API for external configuration (name-value pairs, or equivalent YAML content) +* Encrypt and decrypt property values (symmetric or asymmetric) +* Embeddable easily in a Spring Boot application using `@EnableConfigServer` + +Config Client features (for Spring applications): + +* Bind to the Config Server and initialize Spring `Environment` with remote property sources +* Encrypt and decrypt property values (symmetric or asymmetric) +* `@RefreshScope` for Spring `@Beans` that want to be re-initialized when configuration changes +* Management endpoints: +** `/env` for updating `Environment` and rebinding `@ConfigurationProperties` and log levels +** `/refresh` for refreshing the `@RefreshScope` beans +** `/restart` for restarting the Spring context (disabled by default) +** `/pause` and `/resume` for calling the `Lifecycle` methods (`stop()` and `start()` on the `ApplicationContext`) +* Bootstrap appplication context: a parent context for the main application that can be trained to do anything (by default it binds to the Config Server, and decrypts property values) + + +## Quick Start + +{% include download_widget.md %} + +As long as Spring Boot Actuator and Spring Config Client are on the +classpath any Spring Boot application will try to contact a config +server on `http://localhost:8888` (the default value of +`spring.cloud.config.uri`): + +```java +@Configuration +@EnableAutoConfiguration +@RestController +public class Application { + + @RequestMapping("/") + String home() { + "Hello World" + } + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + +} +``` + +To run your own server use the `spring-cloud-config-server` dependency and `@EnableConfigServer`. + +{% endcapture %} + +{% capture related_resources %} + +### Sample Projects + +* [Config Server](https://github.com/spring-cloud-samples/configserver) +* [Config Clients](https://github.com/spring-cloud-samples/customers-stores) +* [Minimal (Groovy) Client](https://github.com/spring-cloud-samples/scripts/blob/master/demo/app.groovy) + +{% endcapture %} + + +{% include project_page.html %} +