318 changed files with 9619 additions and 0 deletions
@ -0,0 +1,60 @@
@@ -0,0 +1,60 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.cloudfoundry.customcontextpath |
||||
|
||||
import org.apache.catalina.Host |
||||
import org.apache.catalina.core.StandardContext |
||||
import org.apache.catalina.startup.Tomcat.FixContextListener |
||||
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory |
||||
import org.springframework.boot.web.servlet.ServletContextInitializer |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
import java.io.IOException |
||||
import javax.servlet.* |
||||
import kotlin.jvm.Throws |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
class MyCloudFoundryConfiguration { |
||||
@Bean |
||||
fun servletWebServerFactory(): TomcatServletWebServerFactory { |
||||
return object : TomcatServletWebServerFactory() { |
||||
override fun prepareContext(host: Host, initializers: Array<ServletContextInitializer>) { |
||||
super.prepareContext(host, initializers) |
||||
val child = StandardContext() |
||||
child.addLifecycleListener(FixContextListener()) |
||||
child.path = "/cloudfoundryapplication" |
||||
val initializer = getServletContextInitializer(contextPath) |
||||
child.addServletContainerInitializer(initializer, emptySet()) |
||||
child.crossContext = true |
||||
host.addChild(child) |
||||
} |
||||
} |
||||
} |
||||
|
||||
private fun getServletContextInitializer(contextPath: String): ServletContainerInitializer { |
||||
return ServletContainerInitializer { classes: Set<Class<*>?>?, context: ServletContext -> |
||||
val servlet: Servlet = object : GenericServlet() { |
||||
@Throws(ServletException::class, IOException::class) |
||||
override fun service(req: ServletRequest, res: ServletResponse) { |
||||
val context = req.servletContext.getContext(contextPath) |
||||
context.getRequestDispatcher("/cloudfoundryapplication").forward(req, res) |
||||
} |
||||
} |
||||
context.addServlet("cloudfoundry", servlet).addMapping("/*") |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,40 @@
@@ -0,0 +1,40 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.endpoints.health.reactivehealthindicators |
||||
|
||||
import org.springframework.boot.actuate.health.Health |
||||
import org.springframework.boot.actuate.health.ReactiveHealthIndicator |
||||
import org.springframework.stereotype.Component |
||||
import reactor.core.publisher.Mono |
||||
|
||||
@Component |
||||
class MyReactiveHealthIndicator : ReactiveHealthIndicator { |
||||
override fun health(): Mono<Health> { |
||||
// @formatter:off |
||||
return doHealthCheck()!!.onErrorResume { exception: Throwable? -> |
||||
Mono.just( |
||||
Health.Builder().down(exception).build() |
||||
) |
||||
} |
||||
// @formatter:on |
||||
} |
||||
|
||||
private fun doHealthCheck(): Mono<Health>? { |
||||
// perform some specific health check |
||||
return /**/null |
||||
} |
||||
} |
||||
@ -0,0 +1,36 @@
@@ -0,0 +1,36 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.endpoints.health.writingcustomhealthindicators |
||||
|
||||
import org.springframework.boot.actuate.health.Health |
||||
import org.springframework.boot.actuate.health.HealthIndicator |
||||
import org.springframework.stereotype.Component |
||||
|
||||
@Component |
||||
class MyHealthIndicator : HealthIndicator { |
||||
override fun health(): Health { |
||||
val errorCode = check() |
||||
return if (errorCode != 0) { |
||||
Health.down().withDetail("Error Code", errorCode).build() |
||||
} else Health.up().build() |
||||
} |
||||
|
||||
private fun check(): Int { |
||||
// perform some specific health check |
||||
return /**/0 |
||||
} |
||||
} |
||||
@ -0,0 +1,19 @@
@@ -0,0 +1,19 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.endpoints.implementingcustom |
||||
|
||||
class CustomData(val name: String, val counter: Int) |
||||
@ -0,0 +1,36 @@
@@ -0,0 +1,36 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.endpoints.implementingcustom |
||||
|
||||
import org.springframework.boot.actuate.endpoint.annotation.Endpoint |
||||
import org.springframework.boot.actuate.endpoint.annotation.ReadOperation |
||||
import org.springframework.boot.actuate.endpoint.annotation.WriteOperation |
||||
|
||||
@Endpoint(id = "custom") |
||||
class MyEndpoint { |
||||
// tag::read[] |
||||
@get:ReadOperation |
||||
val data: CustomData |
||||
get() = CustomData("test", 5) |
||||
|
||||
// end::read[] |
||||
// tag::write[] |
||||
@WriteOperation |
||||
fun updateData(name: String?, counter: Int) { |
||||
// injects "test" and 42 |
||||
} // end::write[] |
||||
} |
||||
@ -0,0 +1,29 @@
@@ -0,0 +1,29 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.endpoints.info.writingcustominfocontributors |
||||
|
||||
import org.springframework.boot.actuate.info.Info |
||||
import org.springframework.boot.actuate.info.InfoContributor |
||||
import org.springframework.stereotype.Component |
||||
import java.util.* |
||||
|
||||
@Component |
||||
class MyInfoContributor : InfoContributor { |
||||
override fun contribute(builder: Info.Builder) { |
||||
builder.withDetail("example", Collections.singletonMap("key", "value")) |
||||
} |
||||
} |
||||
@ -0,0 +1,37 @@
@@ -0,0 +1,37 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.endpoints.security.exposeall |
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity |
||||
import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer |
||||
import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry |
||||
import org.springframework.security.web.SecurityFilterChain |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
class MySecurityConfiguration { |
||||
@Bean |
||||
fun securityFilterChain(http: HttpSecurity): SecurityFilterChain { |
||||
http.requestMatcher(EndpointRequest.toAnyEndpoint()) |
||||
.authorizeRequests { requests: ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry -> |
||||
requests.anyRequest().permitAll() |
||||
} |
||||
return http.build() |
||||
} |
||||
} |
||||
@ -0,0 +1,38 @@
@@ -0,0 +1,38 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.endpoints.security.typical |
||||
|
||||
import org.springframework.boot.actuate.autoconfigure.security.servlet.EndpointRequest |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
import org.springframework.security.config.annotation.web.builders.HttpSecurity |
||||
import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer |
||||
import org.springframework.security.config.annotation.web.configurers.ExpressionUrlAuthorizationConfigurer.ExpressionInterceptUrlRegistry |
||||
import org.springframework.security.web.SecurityFilterChain |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
class MySecurityConfiguration { |
||||
@Bean |
||||
fun securityFilterChain(http: HttpSecurity): SecurityFilterChain { |
||||
http.requestMatcher(EndpointRequest.toAnyEndpoint()) |
||||
.authorizeRequests { requests: ExpressionUrlAuthorizationConfigurer<HttpSecurity>.ExpressionInterceptUrlRegistry -> |
||||
requests.anyRequest().hasRole("ENDPOINT_ADMIN") |
||||
} |
||||
http.httpBasic() |
||||
return http.build() |
||||
} |
||||
} |
||||
@ -0,0 +1,29 @@
@@ -0,0 +1,29 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.customizing |
||||
|
||||
import io.micrometer.core.instrument.config.MeterFilter |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
class MyMetricsFilterConfiguration { |
||||
@Bean |
||||
fun renameRegionTagMeterFilter(): MeterFilter { |
||||
return MeterFilter.renameTag("com.example", "mytag.region", "mytag.area") |
||||
} |
||||
} |
||||
@ -0,0 +1,44 @@
@@ -0,0 +1,44 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.export.graphite |
||||
|
||||
import io.micrometer.core.instrument.Clock |
||||
import io.micrometer.core.instrument.Meter |
||||
import io.micrometer.core.instrument.config.NamingConvention |
||||
import io.micrometer.core.instrument.util.HierarchicalNameMapper |
||||
import io.micrometer.graphite.GraphiteConfig |
||||
import io.micrometer.graphite.GraphiteMeterRegistry |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
class MyGraphiteConfiguration { |
||||
@Bean |
||||
fun graphiteMeterRegistry(config: GraphiteConfig, clock: Clock): GraphiteMeterRegistry { |
||||
return GraphiteMeterRegistry(config, clock, |
||||
HierarchicalNameMapper { id: Meter.Id, convention: NamingConvention -> |
||||
toHierarchicalName( |
||||
id, |
||||
convention |
||||
) |
||||
}) |
||||
} |
||||
|
||||
private fun toHierarchicalName(id: Meter.Id, convention: NamingConvention): String { |
||||
return /**/HierarchicalNameMapper.DEFAULT.toHierarchicalName(id, convention) |
||||
} |
||||
} |
||||
@ -0,0 +1,44 @@
@@ -0,0 +1,44 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.export.jmx |
||||
|
||||
import io.micrometer.core.instrument.Clock |
||||
import io.micrometer.core.instrument.Meter |
||||
import io.micrometer.core.instrument.config.NamingConvention |
||||
import io.micrometer.core.instrument.util.HierarchicalNameMapper |
||||
import io.micrometer.jmx.JmxConfig |
||||
import io.micrometer.jmx.JmxMeterRegistry |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
class MyJmxConfiguration { |
||||
@Bean |
||||
fun jmxMeterRegistry(config: JmxConfig, clock: Clock): JmxMeterRegistry { |
||||
return JmxMeterRegistry(config, clock, |
||||
HierarchicalNameMapper { id: Meter.Id, convention: NamingConvention -> |
||||
toHierarchicalName( |
||||
id, |
||||
convention |
||||
) |
||||
}) |
||||
} |
||||
|
||||
private fun toHierarchicalName(id: Meter.Id, convention: NamingConvention): String { |
||||
return /**/HierarchicalNameMapper.DEFAULT.toHierarchicalName(id, convention) |
||||
} |
||||
} |
||||
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.gettingstarted.commontags |
||||
|
||||
import io.micrometer.core.instrument.MeterRegistry |
||||
import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
class MyMeterRegistryConfiguration { |
||||
@Bean |
||||
fun metricsCommonTags(): MeterRegistryCustomizer<MeterRegistry> { |
||||
return MeterRegistryCustomizer { registry: MeterRegistry -> |
||||
registry.config().commonTags("region", "us-east-1") |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,45 @@
@@ -0,0 +1,45 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.gettingstarted.specifictype |
||||
|
||||
import io.micrometer.core.instrument.Meter |
||||
import io.micrometer.core.instrument.config.NamingConvention |
||||
import io.micrometer.graphite.GraphiteMeterRegistry |
||||
import org.springframework.boot.actuate.autoconfigure.metrics.MeterRegistryCustomizer |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
class MyMeterRegistryConfiguration { |
||||
@Bean |
||||
fun graphiteMetricsNamingConvention(): MeterRegistryCustomizer<GraphiteMeterRegistry> { |
||||
return MeterRegistryCustomizer { registry: GraphiteMeterRegistry -> |
||||
registry.config().namingConvention( |
||||
NamingConvention { name: String?, type: Meter.Type?, baseUnit: String? -> |
||||
name( |
||||
name!!, |
||||
type!!, |
||||
baseUnit |
||||
) |
||||
}) |
||||
} |
||||
} |
||||
|
||||
private fun name(name: String, type: Meter.Type, baseUnit: String?): String { |
||||
return /**/NamingConvention.snakeCase.name(name, type, baseUnit) |
||||
} |
||||
} |
||||
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.registeringcustom |
||||
|
||||
internal class Dictionary { |
||||
val words: List<String> |
||||
get() = emptyList() |
||||
|
||||
companion object { |
||||
fun load(): Dictionary { |
||||
return Dictionary() |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.registeringcustom |
||||
|
||||
import io.micrometer.core.instrument.MeterRegistry |
||||
import io.micrometer.core.instrument.Tags |
||||
import org.springframework.stereotype.Component |
||||
|
||||
@Component |
||||
class MyBean(registry: MeterRegistry) { |
||||
private val dictionary: Dictionary |
||||
|
||||
init { |
||||
dictionary = Dictionary.load() |
||||
registry.gauge("dictionary.size", Tags.empty(), dictionary.words.size) |
||||
} |
||||
} |
||||
@ -0,0 +1,33 @@
@@ -0,0 +1,33 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.registeringcustom |
||||
|
||||
import io.micrometer.core.instrument.Gauge |
||||
import io.micrometer.core.instrument.MeterRegistry |
||||
import io.micrometer.core.instrument.binder.MeterBinder |
||||
import org.springframework.context.annotation.Bean |
||||
|
||||
class MyMeterBinderConfiguration { |
||||
@Bean |
||||
fun queueSize(queue: Queue): MeterBinder { |
||||
return MeterBinder { registry: MeterRegistry -> |
||||
Gauge.builder( |
||||
"queueSize" |
||||
) { queue.size() }.register(registry) |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,23 @@
@@ -0,0 +1,23 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.registeringcustom |
||||
|
||||
class Queue { |
||||
fun size(): Int { |
||||
return 5 |
||||
} |
||||
} |
||||
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.supported.mongodb.command |
||||
|
||||
import com.mongodb.event.CommandEvent |
||||
import io.micrometer.core.instrument.Tag |
||||
import io.micrometer.core.instrument.binder.mongodb.MongoCommandTagsProvider |
||||
|
||||
class CustomCommandTagsProvider : MongoCommandTagsProvider { |
||||
override fun commandTags(commandEvent: CommandEvent): Iterable<Tag> { |
||||
return emptyList() |
||||
} |
||||
} |
||||
@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.supported.mongodb.command |
||||
|
||||
import io.micrometer.core.instrument.binder.mongodb.MongoCommandTagsProvider |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
class MyCommandTagsProviderConfiguration { |
||||
|
||||
@Bean |
||||
fun customCommandTagsProvider(): MongoCommandTagsProvider? { |
||||
return CustomCommandTagsProvider() |
||||
} |
||||
|
||||
} |
||||
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.supported.mongodb.connectionpool |
||||
|
||||
import com.mongodb.event.ConnectionPoolCreatedEvent |
||||
import io.micrometer.core.instrument.Tag |
||||
import io.micrometer.core.instrument.binder.mongodb.MongoConnectionPoolTagsProvider |
||||
|
||||
class CustomConnectionPoolTagsProvider : MongoConnectionPoolTagsProvider { |
||||
override fun connectionPoolTags(event: ConnectionPoolCreatedEvent): Iterable<Tag> { |
||||
return emptyList() |
||||
} |
||||
} |
||||
@ -0,0 +1,29 @@
@@ -0,0 +1,29 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.supported.mongodb.connectionpool |
||||
|
||||
import io.micrometer.core.instrument.binder.mongodb.MongoConnectionPoolTagsProvider |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
class MyConnectionPoolTagsProviderConfiguration { |
||||
@Bean |
||||
fun customConnectionPoolTagsProvider(): MongoConnectionPoolTagsProvider { |
||||
return CustomConnectionPoolTagsProvider() |
||||
} |
||||
} |
||||
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.supported.timedannotation.all |
||||
|
||||
class Address { |
||||
} |
||||
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.supported.timedannotation.all |
||||
|
||||
import io.micrometer.core.annotation.Timed |
||||
import org.springframework.web.bind.annotation.GetMapping |
||||
import org.springframework.web.bind.annotation.RestController |
||||
|
||||
@RestController |
||||
@Timed |
||||
class MyController { |
||||
@GetMapping("/api/addresses") |
||||
fun listAddress(): List<Address>? { |
||||
return /**/null |
||||
} |
||||
|
||||
@GetMapping("/api/people") |
||||
fun listPeople(): List<Person>? { |
||||
return /**/null |
||||
} |
||||
} |
||||
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.supported.timedannotation.all |
||||
|
||||
class Person { |
||||
} |
||||
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.supported.timedannotation.change |
||||
|
||||
class Address { |
||||
} |
||||
@ -0,0 +1,36 @@
@@ -0,0 +1,36 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.supported.timedannotation.change |
||||
|
||||
import io.micrometer.core.annotation.Timed |
||||
import org.springframework.web.bind.annotation.GetMapping |
||||
import org.springframework.web.bind.annotation.RestController |
||||
|
||||
@RestController |
||||
@Timed |
||||
class MyController { |
||||
@GetMapping("/api/addresses") |
||||
fun listAddress(): List<Address>? { |
||||
return /**/null |
||||
} |
||||
|
||||
@GetMapping("/api/people") |
||||
@Timed(value = "all.people", longTask = true, extraTags = ["region", "us-east-1"]) |
||||
fun listPeople(): List<Person>? { |
||||
return /**/null |
||||
} |
||||
} |
||||
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.supported.timedannotation.change |
||||
|
||||
class Person { |
||||
} |
||||
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.supported.timedannotation.single |
||||
|
||||
class Address { |
||||
} |
||||
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.supported.timedannotation.single |
||||
|
||||
import io.micrometer.core.annotation.Timed |
||||
import org.springframework.web.bind.annotation.GetMapping |
||||
import org.springframework.web.bind.annotation.RestController |
||||
|
||||
@RestController |
||||
class MyController { |
||||
@GetMapping("/api/addresses") |
||||
fun listAddress(): List<Address>? { |
||||
return /**/null |
||||
} |
||||
|
||||
@GetMapping("/api/people") |
||||
@Timed |
||||
fun listPeople(): List<Person>? { |
||||
return /**/null |
||||
} |
||||
} |
||||
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.actuator.metrics.supported.timedannotation.single |
||||
|
||||
class Person { |
||||
} |
||||
@ -0,0 +1,48 @@
@@ -0,0 +1,48 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.buildtoolplugins.otherbuildsystems.examplerepackageimplementation |
||||
|
||||
import org.springframework.boot.loader.tools.Library |
||||
import org.springframework.boot.loader.tools.LibraryCallback |
||||
import org.springframework.boot.loader.tools.LibraryScope |
||||
import org.springframework.boot.loader.tools.Repackager |
||||
import java.io.File |
||||
import java.io.IOException |
||||
import kotlin.jvm.Throws |
||||
|
||||
class MyBuildTool { |
||||
@Throws(IOException::class) |
||||
fun build() { |
||||
val sourceJarFile: File? = /**/null |
||||
val repackager = Repackager(sourceJarFile) |
||||
repackager.setBackupSource(false) |
||||
repackager.repackage { callback: LibraryCallback -> getLibraries(callback) } |
||||
} |
||||
|
||||
@Throws(IOException::class) |
||||
private fun getLibraries(callback: LibraryCallback) { |
||||
// Build system specific implementation, callback for each dependency |
||||
for (nestedJar in compileScopeJars!!) { |
||||
callback.library(Library(nestedJar, LibraryScope.COMPILE)) |
||||
} |
||||
// ... |
||||
} |
||||
|
||||
/**/ |
||||
private val compileScopeJars: List<File>? |
||||
get() =/**/null |
||||
} |
||||
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.configurationmetadata.annotationprocessor.automaticmetadatageneration |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
import java.util.* |
||||
|
||||
@ConfigurationProperties(prefix = "my.messaging") |
||||
class MyMessagingProperties( |
||||
val addresses: List<String> = ArrayList(Arrays.asList("a", "b")), |
||||
var containerType: ContainerType = ContainerType.SIMPLE) { |
||||
|
||||
enum class ContainerType { |
||||
SIMPLE, DIRECT |
||||
} |
||||
} |
||||
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.configurationmetadata.annotationprocessor.automaticmetadatageneration |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
|
||||
@ConfigurationProperties(prefix = "my.server") |
||||
class MyServerProperties( |
||||
/** |
||||
* Name of the server. |
||||
*/ |
||||
var name: String, |
||||
/** |
||||
* IP address to listen to. |
||||
*/ |
||||
var ip: String = "127.0.0.1", |
||||
/** |
||||
* Port to listen to. |
||||
*/ |
||||
var port: Int = 9797) { |
||||
} |
||||
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.configurationmetadata.annotationprocessor.automaticmetadatageneration.nestedproperties |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
|
||||
@ConfigurationProperties(prefix = "my.server") |
||||
class MyServerProperties( |
||||
var name: String, |
||||
var host: Host) { |
||||
|
||||
class Host(val ip: String, val port: Int = 0) |
||||
} |
||||
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.configurationmetadata.format.group |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
import org.springframework.boot.context.properties.DeprecatedConfigurationProperty |
||||
|
||||
@ConfigurationProperties("my.app") |
||||
class MyProperties(val name: String?) { |
||||
var target: String? = null |
||||
@Deprecated("") @DeprecatedConfigurationProperty(replacement = "my.app.name") get |
||||
@Deprecated("") set |
||||
} |
||||
@ -0,0 +1,7 @@
@@ -0,0 +1,7 @@
|
||||
package org.springframework.boot.docs.configurationmetadata.manualhints.valuehint |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
|
||||
@ConfigurationProperties("my") |
||||
class MyProperties(val contexts: Map<String, Int>) { |
||||
} |
||||
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.cassandra.connecting |
||||
|
||||
import org.springframework.data.cassandra.core.CassandraTemplate |
||||
import org.springframework.stereotype.Component |
||||
|
||||
@Component |
||||
class MyBean(private val template: CassandraTemplate) { |
||||
// @fold:on // ... |
||||
fun someMethod(): Long { |
||||
return template.count(User::class.java) |
||||
} // @fold:off |
||||
} |
||||
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.couchbase.repositories |
||||
|
||||
class CouchbaseProperties { |
||||
} |
||||
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.couchbase.repositories |
||||
|
||||
import org.springframework.data.couchbase.core.CouchbaseTemplate |
||||
import org.springframework.stereotype.Component |
||||
|
||||
@Component |
||||
class MyBean(private val template: CouchbaseTemplate) { |
||||
// @fold:on // ... |
||||
fun someMethod(): String { |
||||
return template.bucketName |
||||
} // @fold:off |
||||
} |
||||
@ -0,0 +1,26 @@
@@ -0,0 +1,26 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.couchbase.repositories |
||||
|
||||
import org.springframework.core.convert.converter.Converter |
||||
|
||||
internal class MyConverter : |
||||
Converter<CouchbaseProperties?, Boolean> { |
||||
override fun convert(value: CouchbaseProperties?): Boolean { |
||||
return true |
||||
} |
||||
} |
||||
@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.couchbase.repositories |
||||
|
||||
import org.assertj.core.util.Arrays |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
import org.springframework.data.couchbase.config.BeanNames |
||||
import org.springframework.data.couchbase.core.convert.CouchbaseCustomConversions |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
class MyCouchbaseConfiguration { |
||||
@Bean(BeanNames.COUCHBASE_CUSTOM_CONVERSIONS) |
||||
fun myCustomConversions(): CouchbaseCustomConversions { |
||||
return CouchbaseCustomConversions(Arrays.asList(MyConverter())) |
||||
} |
||||
} |
||||
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.elasticsearch.connectingusingspringdata |
||||
|
||||
import org.springframework.data.elasticsearch.core.ElasticsearchRestTemplate |
||||
import org.springframework.stereotype.Component |
||||
|
||||
@Component |
||||
class MyBean(private val template: ElasticsearchRestTemplate) { |
||||
// @fold:on // ... |
||||
fun someMethod(id: String): Boolean { |
||||
return template.exists(id, User::class.java) |
||||
} // @fold:off |
||||
} |
||||
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.elasticsearch.connectingusingspringdata |
||||
|
||||
class User { |
||||
} |
||||
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.ldap.repositories |
||||
|
||||
import org.springframework.ldap.core.LdapTemplate |
||||
import org.springframework.stereotype.Component |
||||
|
||||
@Component |
||||
class MyBean(private val template: LdapTemplate) { |
||||
// @fold:on // ... |
||||
fun someMethod(): List<User> { |
||||
return template.findAll(User::class.java) |
||||
} // @fold:off |
||||
} |
||||
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.ldap.repositories |
||||
|
||||
class User { |
||||
} |
||||
@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.mongodb.connecting |
||||
|
||||
import com.mongodb.client.MongoCollection |
||||
import org.bson.Document |
||||
import org.springframework.data.mongodb.MongoDatabaseFactory |
||||
import org.springframework.stereotype.Component |
||||
|
||||
@Component |
||||
class MyBean(private val mongo: MongoDatabaseFactory) { |
||||
// @fold:on // ... |
||||
fun someMethod(): MongoCollection<Document> { |
||||
val db = mongo.mongoDatabase |
||||
return db.getCollection("users") |
||||
} // @fold:off |
||||
} |
||||
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.mongodb.repositories |
||||
|
||||
class City { |
||||
} |
||||
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.mongodb.repositories |
||||
|
||||
import org.springframework.data.domain.Page |
||||
import org.springframework.data.domain.Pageable |
||||
import org.springframework.data.repository.Repository |
||||
|
||||
interface CityRepository : |
||||
Repository<City?, Long?> { |
||||
fun findAll(pageable: Pageable?): Page<City?>? |
||||
fun findByNameAndStateAllIgnoringCase(name: String?, state: String?): City? |
||||
} |
||||
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.mongodb.template |
||||
|
||||
import com.mongodb.client.MongoCollection |
||||
import org.bson.Document |
||||
import org.springframework.data.mongodb.core.MongoTemplate |
||||
import org.springframework.stereotype.Component |
||||
|
||||
@Component |
||||
class MyBean(private val mongoTemplate: MongoTemplate) { |
||||
// @fold:on // ... |
||||
fun someMethod(): MongoCollection<Document> { |
||||
return mongoTemplate.getCollection("users") |
||||
} // @fold:off |
||||
} |
||||
@ -0,0 +1,39 @@
@@ -0,0 +1,39 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.neo4j.connecting |
||||
|
||||
import org.neo4j.driver.Driver |
||||
import org.neo4j.driver.Transaction |
||||
import org.neo4j.driver.Values |
||||
import org.springframework.stereotype.Component |
||||
|
||||
@Component |
||||
class MyBean(private val driver: Driver) { |
||||
// @fold:on // ... |
||||
fun someMethod(message: String?): String { |
||||
driver.session().use { session -> |
||||
return session.writeTransaction { transaction: Transaction -> |
||||
transaction |
||||
.run( |
||||
"CREATE (a:Greeting) SET a.message = \$message RETURN a.message + ', from node ' + id(a)", |
||||
Values.parameters("message", message) |
||||
) |
||||
.single()[0].asString() |
||||
} |
||||
} |
||||
} // @fold:off |
||||
} |
||||
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.neo4j.repositories |
||||
|
||||
class City { |
||||
} |
||||
@ -0,0 +1,25 @@
@@ -0,0 +1,25 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.neo4j.repositories |
||||
|
||||
import org.springframework.data.neo4j.repository.Neo4jRepository |
||||
import java.util.* |
||||
|
||||
interface CityRepository : |
||||
Neo4jRepository<City?, Long?> { |
||||
fun findOneByNameAndState(name: String?, state: String?): Optional<City?>? |
||||
} |
||||
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.neo4j.repositories |
||||
|
||||
import org.neo4j.driver.Driver |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
import org.springframework.data.neo4j.core.ReactiveDatabaseSelectionProvider |
||||
import org.springframework.data.neo4j.core.transaction.ReactiveNeo4jTransactionManager |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
class MyNeo4jConfiguration { |
||||
@Bean |
||||
fun reactiveTransactionManager( |
||||
driver: Driver, |
||||
databaseNameProvider: ReactiveDatabaseSelectionProvider |
||||
): ReactiveNeo4jTransactionManager { |
||||
return ReactiveNeo4jTransactionManager(driver, databaseNameProvider) |
||||
} |
||||
} |
||||
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.redis.connecting |
||||
|
||||
import org.springframework.data.redis.core.StringRedisTemplate |
||||
import org.springframework.stereotype.Component |
||||
|
||||
@Component |
||||
class MyBean(private val template: StringRedisTemplate) { |
||||
// @fold:on // ... |
||||
fun someMethod(): Boolean { |
||||
return template.hasKey("spring") |
||||
} // @fold:off |
||||
} |
||||
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.nosql.solr.connecting |
||||
|
||||
import org.apache.solr.client.solrj.SolrClient |
||||
import org.apache.solr.client.solrj.response.SolrPingResponse |
||||
import org.springframework.stereotype.Component |
||||
|
||||
|
||||
@Component |
||||
class MyBean(private val solr: SolrClient) { |
||||
// @fold:on // ... |
||||
fun someMethod(): SolrPingResponse { |
||||
return solr.ping("users") |
||||
} // @fold:off |
||||
} |
||||
@ -0,0 +1,27 @@
@@ -0,0 +1,27 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.sql.jdbctemplate |
||||
|
||||
import org.springframework.jdbc.core.JdbcTemplate |
||||
import org.springframework.stereotype.Component |
||||
|
||||
@Component |
||||
class MyBean(private val jdbcTemplate: JdbcTemplate) { |
||||
fun doSomething() { |
||||
jdbcTemplate.execute("delete from customer") |
||||
} |
||||
} |
||||
@ -0,0 +1,33 @@
@@ -0,0 +1,33 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.sql.jooq.dslcontext |
||||
|
||||
import org.jooq.DSLContext |
||||
import org.springframework.stereotype.Component |
||||
import java.util.* |
||||
|
||||
@Component |
||||
class MyBean(private val create: DSLContext) { |
||||
// tag::method[] |
||||
fun authorsBornAfter1980(): List<GregorianCalendar> { |
||||
// @formatter:off |
||||
return create.selectFrom<Tables.TAuthorRecord>(Tables.AUTHOR) |
||||
.where(Tables.AUTHOR?.DATE_OF_BIRTH?.greaterThan(GregorianCalendar(1980, 0, 1))) |
||||
.fetch(Tables.AUTHOR?.DATE_OF_BIRTH) |
||||
// @formatter:on |
||||
} // end::method[] |
||||
} |
||||
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.sql.jooq.dslcontext |
||||
|
||||
import org.jooq.Name |
||||
import org.jooq.Table |
||||
import org.jooq.TableField |
||||
import org.jooq.impl.TableImpl |
||||
import org.jooq.impl.TableRecordImpl |
||||
import java.util.* |
||||
|
||||
object Tables { |
||||
val AUTHOR: TAuthor? = null |
||||
|
||||
abstract class TAuthor(name: Name?) : TableImpl<TAuthorRecord?>(name) { |
||||
val DATE_OF_BIRTH: TableField<TAuthorRecord, GregorianCalendar>? = null |
||||
} |
||||
|
||||
abstract class TAuthorRecord(table: Table<TAuthorRecord?>?) : |
||||
TableRecordImpl<TAuthorRecord?>(table) |
||||
} |
||||
@ -0,0 +1,51 @@
@@ -0,0 +1,51 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.sql.jpaandspringdata.entityclasses |
||||
|
||||
import java.io.Serializable |
||||
import javax.persistence.Column |
||||
import javax.persistence.Entity |
||||
import javax.persistence.GeneratedValue |
||||
import javax.persistence.Id |
||||
|
||||
@Entity |
||||
class City : Serializable { |
||||
@Id |
||||
@GeneratedValue |
||||
private val id: Long? = null |
||||
|
||||
@Column(nullable = false) |
||||
var name: String? = null |
||||
private set |
||||
|
||||
// ... etc |
||||
@Column(nullable = false) |
||||
var state: String? = null |
||||
private set |
||||
|
||||
// ... additional members, often include @OneToMany mappings |
||||
|
||||
protected constructor() { |
||||
// no-args constructor required by JPA spec |
||||
// this one is protected since it should not be used directly |
||||
} |
||||
|
||||
constructor(name: String?, state: String?) { |
||||
this.name = name |
||||
this.state = state |
||||
} |
||||
} |
||||
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.sql.jpaandspringdata.entityclasses |
||||
|
||||
import org.hibernate.envers.Audited |
||||
import java.io.Serializable |
||||
import javax.persistence.Column |
||||
import javax.persistence.Entity |
||||
import javax.persistence.GeneratedValue |
||||
import javax.persistence.Id |
||||
|
||||
@Entity |
||||
class Country : Serializable { |
||||
@Id |
||||
@GeneratedValue |
||||
var id: Long? = null |
||||
|
||||
@Audited |
||||
@Column(nullable = false) |
||||
var name: String? = null |
||||
} |
||||
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.sql.jpaandspringdata.repositories |
||||
|
||||
import org.springframework.boot.docs.data.sql.jpaandspringdata.entityclasses.City |
||||
import org.springframework.data.domain.Page |
||||
import org.springframework.data.domain.Pageable |
||||
import org.springframework.data.repository.Repository |
||||
|
||||
interface CityRepository : |
||||
Repository<City?, Long?> { |
||||
fun findAll(pageable: Pageable?): Page<City?>? |
||||
fun findByNameAndStateAllIgnoringCase(name: String?, state: String?): City? |
||||
} |
||||
@ -0,0 +1,29 @@
@@ -0,0 +1,29 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.sql.jpaandspringdata.repositories |
||||
|
||||
import org.springframework.boot.docs.data.sql.jpaandspringdata.entityclasses.Country |
||||
import org.springframework.data.domain.Page |
||||
import org.springframework.data.domain.Pageable |
||||
import org.springframework.data.repository.Repository |
||||
import org.springframework.data.repository.history.RevisionRepository |
||||
|
||||
interface CountryRepository : |
||||
RevisionRepository<Country?, Long?, Int>, |
||||
Repository<Country?, Long?> { |
||||
fun findAll(pageable: Pageable?): Page<Country?>? |
||||
} |
||||
@ -0,0 +1,39 @@
@@ -0,0 +1,39 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.sql.r2dbc |
||||
|
||||
import io.r2dbc.postgresql.PostgresqlConnectionFactoryProvider |
||||
import io.r2dbc.spi.ConnectionFactoryOptions |
||||
import org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryOptionsBuilderCustomizer |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
class MyPostgresR2dbcConfiguration { |
||||
@Bean |
||||
fun postgresCustomizer(): ConnectionFactoryOptionsBuilderCustomizer { |
||||
val options: MutableMap<String, String> = HashMap() |
||||
options["lock_timeout"] = "30s" |
||||
options["statement_timeout"] = "60s" |
||||
return ConnectionFactoryOptionsBuilderCustomizer { builder: ConnectionFactoryOptions.Builder -> |
||||
builder.option( |
||||
PostgresqlConnectionFactoryProvider.OPTIONS, |
||||
options |
||||
) |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,35 @@
@@ -0,0 +1,35 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.sql.r2dbc |
||||
|
||||
import io.r2dbc.spi.ConnectionFactoryOptions |
||||
import org.springframework.boot.autoconfigure.r2dbc.ConnectionFactoryOptionsBuilderCustomizer |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
class MyR2dbcConfiguration { |
||||
@Bean |
||||
fun connectionFactoryPortCustomizer(): ConnectionFactoryOptionsBuilderCustomizer { |
||||
return ConnectionFactoryOptionsBuilderCustomizer { builder: ConnectionFactoryOptions.Builder -> |
||||
builder.option( |
||||
ConnectionFactoryOptions.PORT, |
||||
5432 |
||||
) |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.sql.r2dbc.repositories |
||||
|
||||
class City { |
||||
} |
||||
@ -0,0 +1,25 @@
@@ -0,0 +1,25 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.sql.r2dbc.repositories |
||||
|
||||
import org.springframework.data.repository.Repository |
||||
import reactor.core.publisher.Mono |
||||
|
||||
interface CityRepository : |
||||
Repository<City?, Long?> { |
||||
fun findByNameAndStateAllIgnoringCase(name: String?, state: String?): Mono<City?>? |
||||
} |
||||
@ -0,0 +1,29 @@
@@ -0,0 +1,29 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.data.sql.r2dbc.usingdatabaseclient |
||||
|
||||
import org.springframework.r2dbc.core.DatabaseClient |
||||
import org.springframework.stereotype.Component |
||||
import reactor.core.publisher.Flux |
||||
|
||||
@Component |
||||
class MyBean(private val databaseClient: DatabaseClient) { |
||||
// @fold:on // ... |
||||
fun someMethod(): Flux<Map<String, Any>> { |
||||
return databaseClient.sql("select * from user").fetch().all() |
||||
} // @fold:off |
||||
} |
||||
@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.deployment.cloud.cloudfoundry.bindingtoservices |
||||
|
||||
import org.springframework.context.EnvironmentAware |
||||
import org.springframework.core.env.Environment |
||||
import org.springframework.stereotype.Component |
||||
|
||||
@Component |
||||
class MyBean : EnvironmentAware { |
||||
private var instanceId: String? = null |
||||
override fun setEnvironment(environment: Environment) { |
||||
instanceId = environment.getProperty("vcap.application.instance_id") |
||||
} |
||||
|
||||
// ... |
||||
} |
||||
@ -0,0 +1,29 @@
@@ -0,0 +1,29 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.devtools.restart.disable |
||||
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication |
||||
import org.springframework.boot.docs.using.structuringyourcode.locatingthemainclass.MyApplication |
||||
import org.springframework.boot.runApplication |
||||
|
||||
@SpringBootApplication |
||||
class MyApplication |
||||
|
||||
fun main(args: Array<String>) { |
||||
System.setProperty("spring.devtools.restart.enabled", "false") |
||||
runApplication<MyApplication>(*args) |
||||
} |
||||
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.developingautoconfiguration.conditionannotations.beanconditions |
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
class MyAutoConfiguration { |
||||
@Bean |
||||
@ConditionalOnMissingBean |
||||
fun someService(): SomeService { |
||||
return SomeService() |
||||
} |
||||
} |
||||
@ -0,0 +1,19 @@
@@ -0,0 +1,19 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.developingautoconfiguration.conditionannotations.beanconditions |
||||
|
||||
class SomeService |
||||
@ -0,0 +1,37 @@
@@ -0,0 +1,37 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.developingautoconfiguration.conditionannotations.classconditions |
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass |
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
// Some conditions ... |
||||
class MyAutoConfiguration { |
||||
// Auto-configured beans ... |
||||
@Configuration(proxyBeanMethods = false) |
||||
@ConditionalOnClass(SomeService::class) |
||||
class SomeServiceConfiguration { |
||||
@Bean |
||||
@ConditionalOnMissingBean |
||||
fun someService(): SomeService { |
||||
return SomeService() |
||||
} |
||||
} |
||||
} |
||||
@ -0,0 +1,19 @@
@@ -0,0 +1,19 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.developingautoconfiguration.conditionannotations.classconditions |
||||
|
||||
class SomeService |
||||
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.developingautoconfiguration.customstarter.configurationkeys |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
import java.time.Duration |
||||
|
||||
@ConfigurationProperties("acme") |
||||
class AcmeProperties( |
||||
/** |
||||
* Whether to check the location of acme resources. |
||||
*/ |
||||
var isCheckLocation: Boolean = true, |
||||
|
||||
/** |
||||
* Timeout for establishing a connection to the acme server. |
||||
*/ |
||||
var loginTimeout:Duration = Duration.ofSeconds(3)) |
||||
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.developingautoconfiguration.testing |
||||
|
||||
import org.junit.jupiter.api.Test |
||||
import org.springframework.boot.autoconfigure.logging.ConditionEvaluationReportLoggingListener |
||||
import org.springframework.boot.logging.LogLevel |
||||
import org.springframework.boot.test.context.assertj.AssertableApplicationContext |
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner |
||||
|
||||
class MyConditionEvaluationReportingTests { |
||||
@Test |
||||
fun autoConfigTest() { |
||||
// @formatter:off |
||||
ApplicationContextRunner() |
||||
.withInitializer(ConditionEvaluationReportLoggingListener(LogLevel.INFO)) |
||||
.run { context: AssertableApplicationContext? -> } |
||||
// @formatter:on |
||||
} |
||||
} |
||||
@ -0,0 +1,19 @@
@@ -0,0 +1,19 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.developingautoconfiguration.testing |
||||
|
||||
class MyService(val name: String) |
||||
@ -0,0 +1,43 @@
@@ -0,0 +1,43 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.developingautoconfiguration.testing |
||||
|
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass |
||||
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean |
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties |
||||
import org.springframework.boot.docs.features.developingautoconfiguration.testing.MyServiceAutoConfiguration.UserProperties |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
@ConditionalOnClass(MyService::class) |
||||
@EnableConfigurationProperties( |
||||
UserProperties::class |
||||
) |
||||
class MyServiceAutoConfiguration { |
||||
@Bean |
||||
@ConditionalOnMissingBean |
||||
fun userService(properties: UserProperties): MyService { |
||||
return MyService(properties.name) |
||||
} |
||||
|
||||
@ConfigurationProperties("user") |
||||
class UserProperties { |
||||
var name = "test" |
||||
} |
||||
} |
||||
@ -0,0 +1,91 @@
@@ -0,0 +1,91 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.developingautoconfiguration.testing |
||||
|
||||
import org.assertj.core.api.Assertions |
||||
import org.junit.jupiter.api.Test |
||||
import org.springframework.boot.autoconfigure.AutoConfigurations |
||||
import org.springframework.boot.test.context.FilteredClassLoader |
||||
import org.springframework.boot.test.context.assertj.AssertableApplicationContext |
||||
import org.springframework.boot.test.context.runner.ApplicationContextRunner |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
|
||||
|
||||
internal open class MyServiceAutoConfigurationTests { |
||||
// tag::runner[] |
||||
val contextRunner = ApplicationContextRunner() |
||||
.withConfiguration(AutoConfigurations.of(MyServiceAutoConfiguration::class.java)) |
||||
|
||||
// end::runner[] |
||||
// tag::test-env[] |
||||
@Test |
||||
fun serviceNameCanBeConfigured() { |
||||
contextRunner.withPropertyValues("user.name=test123").run { context: AssertableApplicationContext -> |
||||
Assertions.assertThat(context) |
||||
.hasSingleBean( |
||||
MyService::class.java |
||||
) |
||||
Assertions.assertThat( |
||||
context.getBean( |
||||
MyService::class.java |
||||
).name |
||||
).isEqualTo("test123") |
||||
} |
||||
} |
||||
|
||||
// end::test-env[] |
||||
// tag::test-classloader[] |
||||
@Test |
||||
fun serviceIsIgnoredIfLibraryIsNotPresent() { |
||||
contextRunner.withClassLoader(FilteredClassLoader(MyService::class.java)) |
||||
.run { context: AssertableApplicationContext? -> |
||||
Assertions.assertThat( |
||||
context |
||||
).doesNotHaveBean("myService") |
||||
} |
||||
} |
||||
|
||||
// end::test-classloader[] |
||||
// tag::test-user-config[] |
||||
@Test |
||||
fun defaultServiceBacksOff() { |
||||
contextRunner.withUserConfiguration(UserConfiguration::class.java) |
||||
.run { context: AssertableApplicationContext -> |
||||
Assertions.assertThat( |
||||
context |
||||
).hasSingleBean( |
||||
MyService::class.java |
||||
) |
||||
Assertions.assertThat( |
||||
context |
||||
).getBean("myCustomService").isSameAs( |
||||
context.getBean( |
||||
MyService::class.java |
||||
) |
||||
) |
||||
} |
||||
} |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
internal class UserConfiguration { |
||||
@Bean |
||||
fun myCustomService(): MyService { |
||||
return MyService("mine") |
||||
} |
||||
} // end::test-user-config[] |
||||
} |
||||
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig |
||||
|
||||
import org.springframework.beans.factory.annotation.Value |
||||
import org.springframework.stereotype.Component |
||||
|
||||
@Component |
||||
class MyBean { |
||||
@Value("\${name}") |
||||
private val name: String? = null |
||||
|
||||
// ... |
||||
} |
||||
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.constructorbinding |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
import org.springframework.boot.context.properties.ConstructorBinding |
||||
import org.springframework.boot.context.properties.bind.DefaultValue |
||||
import java.net.InetAddress |
||||
|
||||
@ConstructorBinding |
||||
@ConfigurationProperties("my.service") |
||||
class MyProperties(val enabled: Boolean, val remoteAddress: InetAddress, val security: Security) { |
||||
|
||||
class Security( |
||||
val username: String, val password: String, |
||||
@param:DefaultValue("USER") val roles: List<String> |
||||
) |
||||
} |
||||
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.constructorbinding.nonnull |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
import org.springframework.boot.context.properties.ConstructorBinding |
||||
import org.springframework.boot.context.properties.bind.DefaultValue |
||||
import java.net.InetAddress |
||||
|
||||
@ConstructorBinding |
||||
@ConfigurationProperties("my.service") |
||||
class MyProperties( |
||||
val isEnabled: Boolean, val remoteAddress: InetAddress, @param:DefaultValue val security: Security |
||||
) { |
||||
|
||||
class Security( |
||||
val username: String, val password: String, |
||||
@param:DefaultValue("USER") val roles: List<String> |
||||
) |
||||
} |
||||
@ -0,0 +1,32 @@
@@ -0,0 +1,32 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.conversion.datasizes.constructorbinding |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
import org.springframework.boot.context.properties.ConstructorBinding |
||||
import org.springframework.boot.context.properties.bind.DefaultValue |
||||
import org.springframework.boot.convert.DataSizeUnit |
||||
import org.springframework.util.unit.DataSize |
||||
import org.springframework.util.unit.DataUnit |
||||
|
||||
@ConfigurationProperties("my") |
||||
@ConstructorBinding |
||||
class MyProperties( |
||||
@param:DataSizeUnit(DataUnit.MEGABYTES) @param:DefaultValue("2MB") |
||||
val bufferSize: DataSize, |
||||
@param:DefaultValue("512B") val sizeThreshold: DataSize |
||||
) |
||||
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.conversion.datasizes.javabeanbinding |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
import org.springframework.boot.convert.DataSizeUnit |
||||
import org.springframework.util.unit.DataSize |
||||
import org.springframework.util.unit.DataUnit |
||||
|
||||
@ConfigurationProperties("my") |
||||
class MyProperties { |
||||
@DataSizeUnit(DataUnit.MEGABYTES) |
||||
var bufferSize = DataSize.ofMegabytes(2) |
||||
|
||||
var sizeThreshold = DataSize.ofBytes(512) |
||||
} |
||||
@ -0,0 +1,31 @@
@@ -0,0 +1,31 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.conversion.durations.constructorbinding |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
import org.springframework.boot.context.properties.ConstructorBinding |
||||
import org.springframework.boot.context.properties.bind.DefaultValue |
||||
import org.springframework.boot.convert.DurationUnit |
||||
import java.time.Duration |
||||
import java.time.temporal.ChronoUnit |
||||
|
||||
@ConfigurationProperties("my") |
||||
@ConstructorBinding |
||||
class MyProperties( |
||||
@param:DurationUnit(ChronoUnit.SECONDS) @param:DefaultValue("30s") val sessionTimeout: Duration, |
||||
@param:DefaultValue("1000ms") val readTimeout: Duration |
||||
) |
||||
@ -0,0 +1,14 @@
@@ -0,0 +1,14 @@
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.conversion.durations.javabeanbinding |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
import org.springframework.boot.convert.DurationUnit |
||||
import java.time.Duration |
||||
import java.time.temporal.ChronoUnit |
||||
|
||||
@ConfigurationProperties("my") |
||||
class MyProperties { |
||||
@DurationUnit(ChronoUnit.SECONDS) |
||||
var sessionTimeout = Duration.ofSeconds(30) |
||||
|
||||
var readTimeout = Duration.ofMillis(1000) |
||||
} |
||||
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.enablingannotatedtypes |
||||
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication |
||||
import org.springframework.boot.context.properties.ConfigurationPropertiesScan |
||||
|
||||
@SpringBootApplication |
||||
@ConfigurationPropertiesScan("com.example.app", "com.example.another") |
||||
class MyApplication |
||||
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.enablingannotatedtypes |
||||
|
||||
import org.springframework.boot.context.properties.EnableConfigurationProperties |
||||
import org.springframework.context.annotation.Configuration |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
@EnableConfigurationProperties(SomeProperties::class) |
||||
class MyConfiguration |
||||
@ -0,0 +1,34 @@
@@ -0,0 +1,34 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.javabeanbinding |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
import java.net.InetAddress |
||||
|
||||
@ConfigurationProperties("my.service") |
||||
class MyProperties { |
||||
var isEnabled = false |
||||
var remoteAddress: InetAddress? = null |
||||
val security = Security() |
||||
|
||||
class Security { |
||||
var username: String? = null |
||||
var password: String? = null |
||||
|
||||
var roles: List<String> = ArrayList(setOf("USER")) |
||||
} |
||||
} |
||||
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.mergingcomplextypes.list |
||||
|
||||
class MyPojo { |
||||
} |
||||
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.mergingcomplextypes.list |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
|
||||
@ConfigurationProperties("my") |
||||
class MyProperties { |
||||
val list: List<MyPojo> = ArrayList() |
||||
} |
||||
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.mergingcomplextypes.map |
||||
|
||||
class MyPojo { |
||||
} |
||||
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.mergingcomplextypes.map |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
|
||||
@ConfigurationProperties("my") |
||||
class MyProperties { |
||||
val map: Map<String, MyPojo> = LinkedHashMap() |
||||
} |
||||
@ -0,0 +1,24 @@
@@ -0,0 +1,24 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.relaxedbinding |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
|
||||
@ConfigurationProperties(prefix = "my.main-project.person") |
||||
class MyPersonProperties { |
||||
var firstName: String? = null |
||||
} |
||||
@ -0,0 +1,20 @@
@@ -0,0 +1,20 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.thirdpartyconfiguration |
||||
|
||||
class AnotherComponent { |
||||
} |
||||
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.thirdpartyconfiguration |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
import org.springframework.context.annotation.Bean |
||||
import org.springframework.context.annotation.Configuration |
||||
|
||||
@Configuration(proxyBeanMethods = false) |
||||
class ThirdPartyConfiguration { |
||||
@Bean |
||||
@ConfigurationProperties(prefix = "another") |
||||
fun anotherComponent(): AnotherComponent = AnotherComponent() |
||||
} |
||||
@ -0,0 +1,30 @@
@@ -0,0 +1,30 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.usingannotatedtypes |
||||
|
||||
import org.springframework.stereotype.Service |
||||
|
||||
@Service |
||||
class MyService(val properties: SomeProperties) { |
||||
fun openConnection() { |
||||
val server = Server(properties.remoteAddress) |
||||
server.start() |
||||
// ... |
||||
} |
||||
|
||||
// ... |
||||
} |
||||
@ -0,0 +1,21 @@
@@ -0,0 +1,21 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.usingannotatedtypes |
||||
|
||||
class SomeProperties { |
||||
val remoteAddress: Any? |
||||
get() = null |
||||
} |
||||
@ -0,0 +1,28 @@
@@ -0,0 +1,28 @@
|
||||
/* |
||||
* Copyright 2012-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0 |
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.boot.docs.features.externalconfig.typesafeconfigurationproperties.validate |
||||
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties |
||||
import org.springframework.validation.annotation.Validated |
||||
import java.net.InetAddress |
||||
import javax.validation.constraints.NotNull |
||||
|
||||
@ConfigurationProperties("my.service") |
||||
@Validated |
||||
class MyProperties { |
||||
var remoteAddress: @NotNull InetAddress? = null |
||||
} |
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue