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
This commit is contained in:
Sam Brannen 2023-02-22 12:49:20 +01:00
parent 3ce71932c0
commit 6c3cb5d2e0
10 changed files with 102 additions and 105 deletions

View File

@ -1,5 +1,3 @@
:chomp: -packages
:fold: -imports
[[aop]] [[aop]]
= Aspect Oriented Programming with Spring = 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, The second of the two examples shows the `NotVeryUsefulAspect` class definition,
which is annotated with the `org.aspectj.lang.annotation.Aspect` annotation; 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 .Java
---- ----
package org.xyz; package org.xyz;
@ -302,7 +300,7 @@ which is annotated with the `org.aspectj.lang.annotation.Aspect` annotation;
public class NotVeryUsefulAspect { public class NotVeryUsefulAspect {
} }
---- ----
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] [source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
.Kotlin .Kotlin
---- ----
package org.xyz 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 recommend defining a `CommonPointcuts` aspect that captures common pointcut expressions
for this purpose. Such an aspect typically resembles the following example: 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 .Java
---- ----
package com.xyz.myapp; 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 .Kotlin
---- ----
package com.xyz.myapp 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 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: 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 .Java
---- ----
package x.y.service; 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 .Kotlin
---- ----
package x.y.service 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 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: `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 .Java
---- ----
package x.y; 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 .Kotlin
---- ----
package x.y 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 configuration. In the simplest case, you can use purely it as a marker annotation, as the
following example shows: following example shows:
[source,java,indent=0,subs="verbatim,quotes",role="primary"] [source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
.Java .Java
---- ----
package com.xyz.myapp.domain; 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 .Kotlin
---- ----
package com.xyz.myapp.domain 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 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: 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 .Java
---- ----
package com.xyz.myapp.domain; 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 .Kotlin
---- ----
package com.xyz.myapp.domain package com.xyz.myapp.domain
@ -3740,7 +3738,7 @@ use @AspectJ with <<beans-java, Java configuration>>. Specifically, you can use
The following example shows the profiling aspect, which is not fancy. 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: 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 .Java
---- ----
package foo; package foo;
@ -3771,7 +3769,7 @@ It is a time-based profiler that uses the @AspectJ-style of aspect declaration:
public void methodsToBeProfiled(){} public void methodsToBeProfiled(){}
} }
---- ----
[source,kotlin,indent=0,subs="verbatim",role="secondary"] [source,kotlin,indent=0,subs="verbatim",role="secondary",chomp="-packages"]
.Kotlin .Kotlin
---- ----
package foo 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 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: 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 .Java
---- ----
package foo; 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 .Kotlin
---- ----
package foo 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 Spring beans. The following slight variation on the `Main` program yields the same
result: result:
[source,java,indent=0,subs="verbatim,quotes",role="primary"] [source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
.Java .Java
---- ----
package foo; 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 .Kotlin
---- ----
package foo package foo

View File

@ -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 Spring internals (or even about classes such as the `FieldRetrievingFactoryBean`).
The following example enumeration shows how easy injecting an enum value is: 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 .Java
---- ----
package jakarta.persistence; package jakarta.persistence;
@ -134,7 +134,7 @@ The following example enumeration shows how easy injecting an enum value is:
EXTENDED EXTENDED
} }
---- ----
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] [source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
.Kotlin .Kotlin
---- ----
package jakarta.persistence 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: 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 .Java
---- ----
package example; 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 .Kotlin
---- ----
package example 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 number of convenience classes that support this scenario. In the following example, we
use the `NamespaceHandlerSupport` class: 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 .Java
---- ----
package org.springframework.samples.xml; 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 .Kotlin
---- ----
package org.springframework.samples.xml 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 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: 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 .Java
---- ----
package org.springframework.samples.xml; 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 <2> We supply the `AbstractSingleBeanDefinitionParser` superclass with the type that our
single `BeanDefinition` represents. single `BeanDefinition` represents.
[source,kotlin,indent=0,subs="verbatim,quotes",role="secondary"] [source,kotlin,indent=0,subs="verbatim,quotes",role="secondary",chomp="-packages"]
.Kotlin .Kotlin
---- ----
package org.springframework.samples.xml 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. to configure a bean definition for the `Component` class by using setter injection.
The following listing shows the `Component` class: 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 .Java
---- ----
package com.foo; 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 .Kotlin
---- ----
package com.foo 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 setter property for the `components` property. The following listing shows such a custom
`FactoryBean`: `FactoryBean`:
[source,java,indent=0,subs="verbatim,quotes",role="primary"] [source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
.Java .Java
---- ----
package com.foo; 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 .Kotlin
---- ----
package com.foo package com.foo
@ -1226,7 +1226,7 @@ listing shows:
Again following <<core.appendix.xsd-custom-introduction, the process described earlier>>, Again following <<core.appendix.xsd-custom-introduction, the process described earlier>>,
we then create a custom `NamespaceHandler`: 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 .Java
---- ----
package com.foo; 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 .Kotlin
---- ----
package com.foo 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 a `BeanDefinition` that describes a `ComponentFactoryBean`. The following
listing shows our custom `BeanDefinitionParser` implementation: 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 .Java
---- ----
package com.foo; 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 .Kotlin
---- ----
package com.foo 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 `'checkingAccountService'` so that it has a dependency on this new
JCache-initializing `BeanDefinition`. The following listing shows our `JCacheInitializer`: 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 .Java
---- ----
package com.foo; 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 .Kotlin
---- ----
package com.foo 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: 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 .Java
---- ----
package com.foo; 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 .Kotlin
---- ----
package com.foo 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`. an XML attribute, we write a `BeanDefinitionDecorator` rather than a `BeanDefinitionParser`.
The following listing shows our `BeanDefinitionDecorator` implementation: 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 .Java
---- ----
package com.foo; 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 .Kotlin
---- ----
package com.foo package com.foo

View File

@ -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 in which those arguments are supplied to the appropriate constructor when the bean is
being instantiated. Consider the following class: 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 .Java
---- ----
package x.y; 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 .Kotlin
---- ----
package x.y package x.y
@ -993,7 +993,7 @@ case with the preceding example). When a simple type is used, such as
`<value>true</value>`, Spring cannot determine the type of the value, and so cannot match `<value>true</value>`, Spring cannot determine the type of the value, and so cannot match
by type without help. Consider the following class: 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 .Java
---- ----
package examples; 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 .Kotlin
---- ----
package examples 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 JDK annotation to explicitly name your constructor arguments. The sample class would
then have to look as follows: 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 .Java
---- ----
package examples; 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 .Kotlin
---- ----
package examples package examples
@ -2276,7 +2276,7 @@ and by <<beans-factory-client,making a `getBean("B")` call to the container>> as
typically new) bean B instance every time bean A needs it. The following example typically new) bean B instance every time bean A needs it. The following example
shows this approach: 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 .Java
---- ----
package fiona.apple; 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 .Kotlin
---- ----
package fiona.apple 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 method. The `CommandManager` class does not have any Spring dependencies, as
the reworked example shows: 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 .Java
---- ----
package fiona.apple; package fiona.apple;
@ -2407,7 +2407,7 @@ the reworked example shows:
protected abstract Command createCommand(); 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 .Kotlin
---- ----
package fiona.apple 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: 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 .Java
---- ----
package scripting; 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 .Kotlin
---- ----
package scripting package scripting

View File

@ -1978,7 +1978,7 @@ The definition of `TemplateParserContext` follows:
This section lists the classes used in the examples throughout this chapter. 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 .Inventor.Java
---- ----
package org.spring.samples.spel.inventor; 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 .Inventor.kt
---- ----
package org.spring.samples.spel.inventor 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) 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 .PlaceOfBirth.java
---- ----
package org.spring.samples.spel.inventor; 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 .PlaceOfBirth.kt
---- ----
package org.spring.samples.spel.inventor 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) { 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 .Society.java
---- ----
package org.spring.samples.spel.inventor; 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 .Society.kt
---- ----
package org.spring.samples.spel.inventor package org.spring.samples.spel.inventor

View File

@ -640,7 +640,7 @@ support for additional `PropertyEditor` instances to an `ApplicationContext`.
Consider the following example, which defines a user class called `ExoticType` and Consider the following example, which defines a user class called `ExoticType` and
another class called `DependsOnExoticType`, which needs `ExoticType` set as a property: 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 .Java
---- ----
package example; 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 .Kotlin
---- ----
package example package example
@ -689,7 +689,7 @@ string, which a `PropertyEditor` converts into an actual
The `PropertyEditor` implementation could look similar to the following: 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 .Java
---- ----
package example; 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 .Kotlin
---- ----
package example package example
@ -754,7 +754,7 @@ instances for each bean creation attempt.
The following example shows how to create your own `PropertyEditorRegistrar` implementation: 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 .Java
---- ----
package com.foo.editors.spring; 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 .Kotlin
---- ----
package com.foo.editors.spring 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 The SPI to implement type conversion logic is simple and strongly typed, as the following
interface definition shows: 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; 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. 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: 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; 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 (for example, when converting from `String` to `Enum` objects), you can implement
`ConverterFactory`, as the following example shows: `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; package org.springframework.core.convert.converter;
@ -940,7 +940,7 @@ where T is a subclass of R.
Consider the `StringToEnumConverterFactory` as an example: 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; 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 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`: 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; 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 `ConversionService` defines a unified API for executing type conversion logic at
runtime. Converters are often run behind the following facade interface: 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; 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 The `Formatter` SPI to implement field formatting logic is simple and strongly typed. The
following listing shows the `Formatter` interface definition: 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; package org.springframework.format;
@ -1270,7 +1270,7 @@ a `java.text.DateFormat`.
The following `DateFormatter` is an example `Formatter` implementation: 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 .Java
---- ----
package org.springframework.format.datetime; 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 .Kotlin
---- ----
class DateFormatter(private val pattern: String) : Formatter<Date> { class DateFormatter(private val pattern: String) : Formatter<Date> {
@ -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 an annotation to a `Formatter`, implement `AnnotationFormatterFactory`. The following
listing shows the definition of the `AnnotationFormatterFactory` interface: 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; 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: 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; 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 `FormatterRegistrar` is an SPI for registering formatters and converters through the
FormatterRegistry. The following listing shows its interface definition: 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; package org.springframework.format;

View File

@ -622,7 +622,7 @@ transactions being created and then rolled back in response to the
`UnsupportedOperationException` instance. The following listing shows the `FooService` `UnsupportedOperationException` instance. The following listing shows the `FooService`
interface: interface:
[source,java,indent=0,subs="verbatim,quotes",role="primary"] [source,java,indent=0,subs="verbatim,quotes",role="primary",chomp="-packages"]
.Java .Java
---- ----
// the service interface that we want to make transactional // 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 .Kotlin
---- ----
// the service interface that we want to make transactional // the service interface that we want to make transactional
@ -662,7 +662,7 @@ interface:
The following example shows an implementation of the preceding 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 .Java
---- ----
package x.y.service; 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 .Kotlin
---- ----
package x.y.service 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 The following listing shows a modified version of the previously used `FooService`, but
this time the code uses reactive types: 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 .Java
---- ----
// the reactive service interface that we want to make transactional // 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 .Kotlin
---- ----
// the reactive service interface that we want to make transactional // 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: 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 .Java
---- ----
package x.y.service; 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 .Kotlin
---- ----
package x.y.service package x.y.service
@ -2028,7 +2028,7 @@ configuration and AOP in general.
The following code shows the simple profiling aspect discussed earlier: 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 .Java
---- ----
package x.y; 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 .Kotlin
---- ----
package x.y package x.y

View File

@ -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. method access to the JMS `Session` from which the `Message` was received.
The following listing shows the definition of the `SessionAwareMessageListener` interface: 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; package org.springframework.jms.listener;

View File

@ -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`. responsible for taking your Spring beans and registering them with a JMX `MBeanServer`.
For example, consider the following class: 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; 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 The following example shows the annotated version of the `JmxTestBean` class that we
used in <<jmx-exporting-mbeanserver>>: used in <<jmx-exporting-mbeanserver>>:
[source,java,indent=0,subs="verbatim,quotes"] [source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
---- ----
package org.springframework.jmx; 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 `Notification`) each and every time an attribute of a target MBean changes. The following
example writes notifications to the console: 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; 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 In the following example, exported instances of the `JmxTestBean` publish a
`NotificationEvent` every time the `add(int, int)` operation is invoked: `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; package org.springframework.jmx;

View File

@ -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` the `ExampleJob` contains a bean property named `timeout`, and the `JobDetail`
has it applied automatically: has it applied automatically:
[source,java,indent=0] [source,java,indent=0,subs="verbatim,quotes",chomp="-packages"]
[subs="verbatim"]
---- ----
package example; package example;

View File

@ -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 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: 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; 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: 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; 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: 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 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 (the developer) should make to the `Messenger.groovy` source file when the
execution of the program is paused: 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 package org.springframework.scripting
@ -362,7 +362,7 @@ constructors and properties 100% clear, the following mixture of code and config
does not work: does not work:
.An approach that cannot 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 package org.springframework.scripting.groovy
@ -419,7 +419,7 @@ If you have read this chapter straight from the top, you have already
<<dynamic-language-a-first-example, seen an example>> of a Groovy-dynamic-language-backed <<dynamic-language-a-first-example, seen an example>> of a Groovy-dynamic-language-backed
bean. Now consider another example (again using an example from the Spring test suite): 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; 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: 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 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: 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; 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 the `Messenger` interface that was defined earlier in this chapter. We again show the
definition of the `Messenger` interface: 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; 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 The following example shows an `org.springframework.web.servlet.mvc.Controller` implemented
by using the Groovy dynamic language: 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 package org.springframework.showcase.fortune.web