From 6c3cb5d2e07033995a393703aa2d524cda6b6606 Mon Sep 17 00:00:00 2001 From: Sam Brannen Date: Wed, 22 Feb 2023 12:49:20 +0100 Subject: [PATCH] Revise chomp and fold settings in reference documentation This commit overrides the `chomp` and `fold` settings for spring-asciidoctor-backends on a per-block basis. Closes gh-30001 --- .../src/docs/asciidoc/core/core-aop.adoc | 38 ++++++++-------- .../src/docs/asciidoc/core/core-appendix.adoc | 44 +++++++++---------- .../src/docs/asciidoc/core/core-beans.adoc | 24 +++++----- .../docs/asciidoc/core/core-expressions.adoc | 12 ++--- .../docs/asciidoc/core/core-validation.adoc | 36 +++++++-------- .../src/docs/asciidoc/data-access.adoc | 20 ++++----- .../src/docs/asciidoc/integration/jms.adoc | 2 +- .../src/docs/asciidoc/integration/jmx.adoc | 8 ++-- .../docs/asciidoc/integration/scheduling.adoc | 3 +- .../asciidoc/languages/dynamic-languages.adoc | 20 ++++----- 10 files changed, 102 insertions(+), 105 deletions(-) diff --git a/framework-docs/src/docs/asciidoc/core/core-aop.adoc b/framework-docs/src/docs/asciidoc/core/core-aop.adoc index 301fd17b616..a1722870a18 100644 --- a/framework-docs/src/docs/asciidoc/core/core-aop.adoc +++ b/framework-docs/src/docs/asciidoc/core/core-aop.adoc @@ -1,5 +1,3 @@ -:chomp: -packages -:fold: -imports [[aop]] = Aspect Oriented Programming with Spring @@ -291,7 +289,7 @@ context that points to a bean class that has the `@Aspect` annotation: The second of the two examples shows the `NotVeryUsefulAspect` class definition, which is annotated with the `org.aspectj.lang.annotation.Aspect` annotation; -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package org.xyz; @@ -302,7 +300,7 @@ which is annotated with the `org.aspectj.lang.annotation.Aspect` annotation; public class NotVeryUsefulAspect { } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package org.xyz @@ -531,7 +529,7 @@ the application and particular sets of operations from within several aspects. W recommend defining a `CommonPointcuts` aspect that captures common pointcut expressions for this purpose. Such an aspect typically resembles the following example: -[source,java,indent=0,subs="verbatim",role="primary"] +[source,java,indent=0,subs="verbatim",role="primary",chomp="-packages"] .Java ---- package com.xyz.myapp; @@ -593,7 +591,7 @@ for this purpose. Such an aspect typically resembles the following example: } ---- -[source,kotlin,indent=0,subs="verbatim",role="secondary"] +[source,kotlin,indent=0,subs="verbatim",role="secondary",chomp="-packages"] .Kotlin ---- package com.xyz.myapp @@ -2426,7 +2424,7 @@ The `arg-names` attribute accepts a comma-delimited list of parameter names. The following slightly more involved example of the XSD-based approach shows some around advice used in conjunction with a number of strongly typed parameters: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package x.y.service; @@ -2443,7 +2441,7 @@ some around advice used in conjunction with a number of strongly typed parameter } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package x.y.service @@ -2466,7 +2464,7 @@ strongly-typed parameters, the first of which happens to be the join point used proceed with the method call. The presence of this parameter is an indication that the `profile(..)` is to be used as `around` advice, as the following example shows: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package x.y; @@ -2488,7 +2486,7 @@ proceed with the method call. The presence of this parameter is an indication th } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package x.y @@ -3355,7 +3353,7 @@ The `@Configurable` annotation marks a class as being eligible for Spring-driven configuration. In the simplest case, you can use purely it as a marker annotation, as the following example shows: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package com.xyz.myapp.domain; @@ -3367,7 +3365,7 @@ following example shows: // ... } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package com.xyz.myapp.domain @@ -3397,7 +3395,7 @@ is to omit the `id` attribute, as the following example shows: If you want to explicitly specify the name of the prototype bean definition to use, you can do so directly in the annotation, as the following example shows: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package com.xyz.myapp.domain; @@ -3409,7 +3407,7 @@ can do so directly in the annotation, as the following example shows: // ... } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package com.xyz.myapp.domain @@ -3740,7 +3738,7 @@ use @AspectJ with <>. Specifically, you can use The following example shows the profiling aspect, which is not fancy. It is a time-based profiler that uses the @AspectJ-style of aspect declaration: -[source,java,indent=0,subs="verbatim",role="primary"] +[source,java,indent=0,subs="verbatim",role="primary",chomp="-packages"] .Java ---- package foo; @@ -3771,7 +3769,7 @@ It is a time-based profiler that uses the @AspectJ-style of aspect declaration: public void methodsToBeProfiled(){} } ---- -[source,kotlin,indent=0,subs="verbatim",role="secondary"] +[source,kotlin,indent=0,subs="verbatim",role="secondary",chomp="-packages"] .Kotlin ---- package foo @@ -3860,7 +3858,7 @@ Now that all the required artifacts (the aspect, the `META-INF/aop.xml` file, and the Spring configuration) are in place, we can create the following driver class with a `main(..)` method to demonstrate the LTW in action: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package foo; @@ -3880,7 +3878,7 @@ driver class with a `main(..)` method to demonstrate the LTW in action: } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package foo @@ -3935,7 +3933,7 @@ Since this LTW is effected by using full-blown AspectJ, we are not limited only Spring beans. The following slight variation on the `Main` program yields the same result: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package foo; @@ -3955,7 +3953,7 @@ result: } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package foo diff --git a/framework-docs/src/docs/asciidoc/core/core-appendix.adoc b/framework-docs/src/docs/asciidoc/core/core-appendix.adoc index 1872ec90840..3ff45c4a1e2 100644 --- a/framework-docs/src/docs/asciidoc/core/core-appendix.adoc +++ b/framework-docs/src/docs/asciidoc/core/core-appendix.adoc @@ -123,7 +123,7 @@ easy to do in Spring. You do not actually have to do anything or know anything a the Spring internals (or even about classes such as the `FieldRetrievingFactoryBean`). The following example enumeration shows how easy injecting an enum value is: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package jakarta.persistence; @@ -134,7 +134,7 @@ The following example enumeration shows how easy injecting an enum value is: EXTENDED } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package jakarta.persistence @@ -148,7 +148,7 @@ The following example enumeration shows how easy injecting an enum value is: Now consider the following setter of type `PersistenceContextType` and the corresponding bean definition: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package example; @@ -162,7 +162,7 @@ Now consider the following setter of type `PersistenceContextType` and the corre } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package example @@ -796,7 +796,7 @@ element results in a single `SimpleDateFormat` bean definition). Spring features number of convenience classes that support this scenario. In the following example, we use the `NamespaceHandlerSupport` class: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package org.springframework.samples.xml; @@ -810,7 +810,7 @@ use the `NamespaceHandlerSupport` class: } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package org.springframework.samples.xml @@ -847,7 +847,7 @@ responsible for parsing one distinct top-level XML element defined in the schema the parser, we' have access to the XML element (and thus to its subelements, too) so that we can parse our custom XML content, as you can see in the following example: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package org.springframework.samples.xml; @@ -884,7 +884,7 @@ the basic grunt work of creating a single `BeanDefinition`. <2> We supply the `AbstractSingleBeanDefinitionParser` superclass with the type that our single `BeanDefinition` represents. -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package org.springframework.samples.xml @@ -1056,7 +1056,7 @@ setter method for the `components` property. This makes it hard (or rather impos to configure a bean definition for the `Component` class by using setter injection. The following listing shows the `Component` class: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package com.foo; @@ -1087,7 +1087,7 @@ The following listing shows the `Component` class: } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package com.foo @@ -1114,7 +1114,7 @@ The typical solution to this issue is to create a custom `FactoryBean` that expo setter property for the `components` property. The following listing shows such a custom `FactoryBean`: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package com.foo; @@ -1154,7 +1154,7 @@ setter property for the `components` property. The following listing shows such } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package com.foo @@ -1226,7 +1226,7 @@ listing shows: Again following <>, we then create a custom `NamespaceHandler`: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package com.foo; @@ -1240,7 +1240,7 @@ we then create a custom `NamespaceHandler`: } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package com.foo @@ -1259,7 +1259,7 @@ Next up is the custom `BeanDefinitionParser`. Remember that we are creating a `BeanDefinition` that describes a `ComponentFactoryBean`. The following listing shows our custom `BeanDefinitionParser` implementation: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package com.foo; @@ -1308,7 +1308,7 @@ listing shows our custom `BeanDefinitionParser` implementation: } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package com.foo @@ -1403,7 +1403,7 @@ the named JCache for us. We can also modify the existing `BeanDefinition` for th `'checkingAccountService'` so that it has a dependency on this new JCache-initializing `BeanDefinition`. The following listing shows our `JCacheInitializer`: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package com.foo; @@ -1421,7 +1421,7 @@ JCache-initializing `BeanDefinition`. The following listing shows our `JCacheIni } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package com.foo @@ -1453,7 +1453,7 @@ the XSD schema that describes the custom attribute, as follows: Next, we need to create the associated `NamespaceHandler`, as follows: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package com.foo; @@ -1469,7 +1469,7 @@ Next, we need to create the associated `NamespaceHandler`, as follows: } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package com.foo @@ -1490,7 +1490,7 @@ Next, we need to create the parser. Note that, in this case, because we are goin an XML attribute, we write a `BeanDefinitionDecorator` rather than a `BeanDefinitionParser`. The following listing shows our `BeanDefinitionDecorator` implementation: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package com.foo; @@ -1544,7 +1544,7 @@ The following listing shows our `BeanDefinitionDecorator` implementation: } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package com.foo diff --git a/framework-docs/src/docs/asciidoc/core/core-beans.adoc b/framework-docs/src/docs/asciidoc/core/core-beans.adoc index 8915341bc24..a68108b854e 100644 --- a/framework-docs/src/docs/asciidoc/core/core-beans.adoc +++ b/framework-docs/src/docs/asciidoc/core/core-beans.adoc @@ -949,7 +949,7 @@ order in which the constructor arguments are defined in a bean definition is the in which those arguments are supplied to the appropriate constructor when the bean is being instantiated. Consider the following class: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package x.y; @@ -961,7 +961,7 @@ being instantiated. Consider the following class: } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package x.y @@ -993,7 +993,7 @@ case with the preceding example). When a simple type is used, such as `true`, Spring cannot determine the type of the value, and so cannot match by type without help. Consider the following class: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package examples; @@ -1012,7 +1012,7 @@ by type without help. Consider the following class: } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package examples @@ -1077,7 +1077,7 @@ https://download.oracle.com/javase/8/docs/api/java/beans/ConstructorProperties.h JDK annotation to explicitly name your constructor arguments. The sample class would then have to look as follows: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package examples; @@ -1093,7 +1093,7 @@ then have to look as follows: } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package examples @@ -2276,7 +2276,7 @@ and by <> as typically new) bean B instance every time bean A needs it. The following example shows this approach: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages",fold="none"] .Java ---- package fiona.apple; @@ -2313,7 +2313,7 @@ shows this approach: } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages",fold="none"] .Kotlin ---- package fiona.apple @@ -2386,7 +2386,7 @@ Spring container dynamically overrides the implementation of the `createCommand( method. The `CommandManager` class does not have any Spring dependencies, as the reworked example shows: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages",fold="none"] .Java ---- package fiona.apple; @@ -2407,7 +2407,7 @@ the reworked example shows: protected abstract Command createCommand(); } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages",fold="none"] .Kotlin ---- package fiona.apple @@ -4218,7 +4218,7 @@ it is created by the container and prints the resulting string to the system con The following listing shows the custom `BeanPostProcessor` implementation class definition: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package scripting; @@ -4238,7 +4238,7 @@ The following listing shows the custom `BeanPostProcessor` implementation class } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package scripting diff --git a/framework-docs/src/docs/asciidoc/core/core-expressions.adoc b/framework-docs/src/docs/asciidoc/core/core-expressions.adoc index 4ec179ac876..fde497091f3 100644 --- a/framework-docs/src/docs/asciidoc/core/core-expressions.adoc +++ b/framework-docs/src/docs/asciidoc/core/core-expressions.adoc @@ -1978,7 +1978,7 @@ The definition of `TemplateParserContext` follows: This section lists the classes used in the examples throughout this chapter. -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Inventor.Java ---- package org.spring.samples.spel.inventor; @@ -2051,7 +2051,7 @@ This section lists the classes used in the examples throughout this chapter. } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Inventor.kt ---- package org.spring.samples.spel.inventor @@ -2064,7 +2064,7 @@ This section lists the classes used in the examples throughout this chapter. var placeOfBirth: PlaceOfBirth? = null) ---- -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .PlaceOfBirth.java ---- package org.spring.samples.spel.inventor; @@ -2100,7 +2100,7 @@ This section lists the classes used in the examples throughout this chapter. } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .PlaceOfBirth.kt ---- package org.spring.samples.spel.inventor @@ -2108,7 +2108,7 @@ This section lists the classes used in the examples throughout this chapter. class PlaceOfBirth(var city: String, var country: String? = null) { ---- -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Society.java ---- package org.spring.samples.spel.inventor; @@ -2151,7 +2151,7 @@ This section lists the classes used in the examples throughout this chapter. } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Society.kt ---- package org.spring.samples.spel.inventor diff --git a/framework-docs/src/docs/asciidoc/core/core-validation.adoc b/framework-docs/src/docs/asciidoc/core/core-validation.adoc index e1b91144bda..b551b9029d6 100644 --- a/framework-docs/src/docs/asciidoc/core/core-validation.adoc +++ b/framework-docs/src/docs/asciidoc/core/core-validation.adoc @@ -640,7 +640,7 @@ support for additional `PropertyEditor` instances to an `ApplicationContext`. Consider the following example, which defines a user class called `ExoticType` and another class called `DependsOnExoticType`, which needs `ExoticType` set as a property: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package example; @@ -663,7 +663,7 @@ another class called `DependsOnExoticType`, which needs `ExoticType` set as a pr } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package example @@ -689,7 +689,7 @@ string, which a `PropertyEditor` converts into an actual The `PropertyEditor` implementation could look similar to the following: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package example; @@ -704,7 +704,7 @@ The `PropertyEditor` implementation could look similar to the following: } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package example @@ -754,7 +754,7 @@ instances for each bean creation attempt. The following example shows how to create your own `PropertyEditorRegistrar` implementation: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package com.foo.editors.spring; @@ -770,7 +770,7 @@ The following example shows how to create your own `PropertyEditorRegistrar` imp } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package com.foo.editors.spring @@ -878,7 +878,7 @@ where type conversion is needed. The SPI to implement type conversion logic is simple and strongly typed, as the following interface definition shows: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.core.convert.converter; @@ -903,7 +903,7 @@ Several converter implementations are provided in the `core.convert.support` pac a convenience. These include converters from strings to numbers and other common types. The following listing shows the `StringToInteger` class, which is a typical `Converter` implementation: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.core.convert.support; @@ -924,7 +924,7 @@ When you need to centralize the conversion logic for an entire class hierarchy (for example, when converting from `String` to `Enum` objects), you can implement `ConverterFactory`, as the following example shows: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.core.convert.converter; @@ -940,7 +940,7 @@ where T is a subclass of R. Consider the `StringToEnumConverterFactory` as an example: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.core.convert.support; @@ -977,7 +977,7 @@ context that you can use when you implement your conversion logic. Such context type conversion be driven by a field annotation or by generic information declared on a field signature. The following listing shows the interface definition of `GenericConverter`: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.core.convert.converter; @@ -1041,7 +1041,7 @@ might match only if the target entity type declares a static finder method (for `ConversionService` defines a unified API for executing type conversion logic at runtime. Converters are often run behind the following facade interface: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.core.convert; @@ -1225,7 +1225,7 @@ provides a unified type conversion API for both SPIs. The `Formatter` SPI to implement field formatting logic is simple and strongly typed. The following listing shows the `Formatter` interface definition: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.format; @@ -1270,7 +1270,7 @@ a `java.text.DateFormat`. The following `DateFormatter` is an example `Formatter` implementation: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package org.springframework.format.datetime; @@ -1304,7 +1304,7 @@ The following `DateFormatter` is an example `Formatter` implementation: } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- class DateFormatter(private val pattern: String) : Formatter { @@ -1336,7 +1336,7 @@ Field formatting can be configured by field type or annotation. To bind an annotation to a `Formatter`, implement `AnnotationFormatterFactory`. The following listing shows the definition of the `AnnotationFormatterFactory` interface: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.format; @@ -1490,7 +1490,7 @@ for use with Spring's `DataBinder` and the Spring Expression Language (SpEL). The following listing shows the `FormatterRegistry` SPI: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.format; @@ -1526,7 +1526,7 @@ these rules once, and they are applied whenever formatting is needed. `FormatterRegistrar` is an SPI for registering formatters and converters through the FormatterRegistry. The following listing shows its interface definition: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.format; diff --git a/framework-docs/src/docs/asciidoc/data-access.adoc b/framework-docs/src/docs/asciidoc/data-access.adoc index cbb0ef3bb34..9b853f36623 100644 --- a/framework-docs/src/docs/asciidoc/data-access.adoc +++ b/framework-docs/src/docs/asciidoc/data-access.adoc @@ -622,7 +622,7 @@ transactions being created and then rolled back in response to the `UnsupportedOperationException` instance. The following listing shows the `FooService` interface: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- // the service interface that we want to make transactional @@ -641,7 +641,7 @@ interface: } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- // the service interface that we want to make transactional @@ -662,7 +662,7 @@ interface: The following example shows an implementation of the preceding interface: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package x.y.service; @@ -690,7 +690,7 @@ The following example shows an implementation of the preceding interface: } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package x.y.service @@ -893,7 +893,7 @@ return type is reactive. The following listing shows a modified version of the previously used `FooService`, but this time the code uses reactive types: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- // the reactive service interface that we want to make transactional @@ -912,7 +912,7 @@ this time the code uses reactive types: } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- // the reactive service interface that we want to make transactional @@ -933,7 +933,7 @@ this time the code uses reactive types: The following example shows an implementation of the preceding interface: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package x.y.service; @@ -961,7 +961,7 @@ The following example shows an implementation of the preceding interface: } } ---- -[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] +[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"] .Kotlin ---- package x.y.service @@ -2028,7 +2028,7 @@ configuration and AOP in general. The following code shows the simple profiling aspect discussed earlier: -[source,java,indent=0,subs="verbatim,quotes",role="primary"] +[source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"] .Java ---- package x.y; @@ -2065,7 +2065,7 @@ The following code shows the simple profiling aspect discussed earlier: } } ---- -[source,kotlin,indent=0,subs="verbatim",role="secondary"] +[source,kotlin,indent=0,subs="verbatim",role="secondary",chomp="-packages"] .Kotlin ---- package x.y diff --git a/framework-docs/src/docs/asciidoc/integration/jms.adoc b/framework-docs/src/docs/asciidoc/integration/jms.adoc index d5336dea0e6..10ce2f37c07 100644 --- a/framework-docs/src/docs/asciidoc/integration/jms.adoc +++ b/framework-docs/src/docs/asciidoc/integration/jms.adoc @@ -582,7 +582,7 @@ a similar contract to the JMS `MessageListener` interface but also gives the mes method access to the JMS `Session` from which the `Message` was received. The following listing shows the definition of the `SessionAwareMessageListener` interface: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.jms.listener; diff --git a/framework-docs/src/docs/asciidoc/integration/jmx.adoc b/framework-docs/src/docs/asciidoc/integration/jmx.adoc index 31a27d567ab..c6f1e4299e2 100644 --- a/framework-docs/src/docs/asciidoc/integration/jmx.adoc +++ b/framework-docs/src/docs/asciidoc/integration/jmx.adoc @@ -31,7 +31,7 @@ The core class in Spring's JMX framework is the `MBeanExporter`. This class is responsible for taking your Spring beans and registering them with a JMX `MBeanServer`. For example, consider the following class: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages",chomp="-packages"] ---- package org.springframework.jmx; @@ -358,7 +358,7 @@ an operation or an attribute. The following example shows the annotated version of the `JmxTestBean` class that we used in <>: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.jmx; @@ -1067,7 +1067,7 @@ example, consider the scenario where one would like to be informed (through a `Notification`) each and every time an attribute of a target MBean changes. The following example writes notifications to the console: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package com.example; @@ -1317,7 +1317,7 @@ published, and invoke the `sendNotification(Notification)` on the In the following example, exported instances of the `JmxTestBean` publish a `NotificationEvent` every time the `add(int, int)` operation is invoked: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.jmx; diff --git a/framework-docs/src/docs/asciidoc/integration/scheduling.adoc b/framework-docs/src/docs/asciidoc/integration/scheduling.adoc index da3769b4baa..dcb68c8f04e 100644 --- a/framework-docs/src/docs/asciidoc/integration/scheduling.adoc +++ b/framework-docs/src/docs/asciidoc/integration/scheduling.adoc @@ -816,8 +816,7 @@ its properties from the job data mapped to properties of the job instance. So, i the `ExampleJob` contains a bean property named `timeout`, and the `JobDetail` has it applied automatically: -[source,java,indent=0] -[subs="verbatim"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package example; diff --git a/framework-docs/src/docs/asciidoc/languages/dynamic-languages.adoc b/framework-docs/src/docs/asciidoc/languages/dynamic-languages.adoc index 69d6c0ab0b5..60d20034adb 100644 --- a/framework-docs/src/docs/asciidoc/languages/dynamic-languages.adoc +++ b/framework-docs/src/docs/asciidoc/languages/dynamic-languages.adoc @@ -33,7 +33,7 @@ implement. Note that this interface is defined in plain Java. Dependent objects are injected with a reference to the `Messenger` do not know that the underlying implementation is a Groovy script. The following listing shows the `Messenger` interface: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.scripting; @@ -45,7 +45,7 @@ implementation is a Groovy script. The following listing shows the `Messenger` i The following example defines a class that has a dependency on the `Messenger` interface: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.scripting; @@ -65,7 +65,7 @@ The following example defines a class that has a dependency on the `Messenger` i The following example implements the `Messenger` interface in Groovy: -[source,groovy,indent=0,subs="verbatim,quotes"] +[source,groovy,indent=0,subs="verbatim,quotes",chomp="-packages",fold="none"] ---- package org.springframework.scripting.groovy @@ -275,7 +275,7 @@ surrounded by quotation marks. The following listing shows the changes that you (the developer) should make to the `Messenger.groovy` source file when the execution of the program is paused: -[source,groovy,indent=0,subs="verbatim,quotes"] +[source,groovy,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.scripting @@ -362,7 +362,7 @@ constructors and properties 100% clear, the following mixture of code and config does not work: .An approach that cannot work -[source,groovy,indent=0,subs="verbatim,quotes"] +[source,groovy,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.scripting.groovy @@ -419,7 +419,7 @@ If you have read this chapter straight from the top, you have already <> of a Groovy-dynamic-language-backed bean. Now consider another example (again using an example from the Spring test suite): -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.scripting; @@ -431,7 +431,7 @@ bean. Now consider another example (again using an example from the Spring test The following example implements the `Calculator` interface in Groovy: -[source,groovy,indent=0,subs="verbatim,quotes"] +[source,groovy,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.scripting.groovy @@ -456,7 +456,7 @@ The following bean definition uses the calculator defined in Groovy: Finally, the following small application exercises the preceding configuration: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.scripting; @@ -595,7 +595,7 @@ Now we can show a fully working example of using a BeanShell-based bean that imp the `Messenger` interface that was defined earlier in this chapter. We again show the definition of the `Messenger` interface: -[source,java,indent=0,subs="verbatim,quotes"] +[source,java,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.scripting; @@ -675,7 +675,7 @@ beans, you have to enable the "`refreshable beans`" functionality. See The following example shows an `org.springframework.web.servlet.mvc.Controller` implemented by using the Groovy dynamic language: -[source,groovy,indent=0,subs="verbatim,quotes"] +[source,groovy,indent=0,subs="verbatim,quotes",chomp="-packages"] ---- package org.springframework.showcase.fortune.web