Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Sign in / Register
Toggle navigation
S
spring-boot
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
DEMO
spring-boot
Commits
b6b8bef0
Commit
b6b8bef0
authored
Nov 22, 2016
by
Phillip Webb
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Polish
parent
af67deca
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
45 additions
and
53 deletions
+45
-53
KafkaProperties.java
...ngframework/boot/autoconfigure/kafka/KafkaProperties.java
+1
-2
EnableAutoConfigurationImportSelectorTests.java
...configure/EnableAutoConfigurationImportSelectorTests.java
+5
-4
KafkaAutoConfigurationTests.java
...boot/autoconfigure/kafka/KafkaAutoConfigurationTests.java
+32
-40
spring-boot-features.adoc
spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc
+7
-7
No files found.
spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/kafka/KafkaProperties.java
View file @
b6b8bef0
...
...
@@ -172,8 +172,7 @@ public class KafkaProperties {
}
catch
(
IOException
ex
)
{
throw
new
IllegalStateException
(
String
.
format
(
"Resource '%s' must be on a file system"
,
resource
),
ex
);
"Resource '"
+
resource
+
"' must be on a file system"
,
ex
);
}
}
...
...
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/EnableAutoConfigurationImportSelectorTests.java
View file @
b6b8bef0
...
...
@@ -185,8 +185,8 @@ public class EnableAutoConfigurationImportSelectorTests {
public
void
nonAutoConfigurationClassNameExclusionsWhenPresentOnClassPathShouldThrowException
()
throws
Exception
{
configureExclusions
(
new
String
[
0
],
new
String
[]
{
"org.springframework.boot.autoconfigure.
EnableAutoConfigurationImportSelectorTests.TestConfiguration"
},
new
String
[]
{
"org.springframework.boot.autoconfigure."
+
"
EnableAutoConfigurationImportSelectorTests.TestConfiguration"
},
new
String
[
0
]);
this
.
expected
.
expect
(
IllegalStateException
.
class
);
this
.
importSelector
.
selectImports
(
this
.
annotationMetadata
);
...
...
@@ -195,8 +195,9 @@ public class EnableAutoConfigurationImportSelectorTests {
@Test
public
void
nonAutoConfigurationPropertyExclusionsWhenPresentOnClassPathShouldThrowException
()
throws
Exception
{
configureExclusions
(
new
String
[
0
],
new
String
[
0
],
new
String
[]
{
"org.springframework.boot.autoconfigure.EnableAutoConfigurationImportSelectorTests.TestConfiguration"
});
configureExclusions
(
new
String
[
0
],
new
String
[
0
],
new
String
[]
{
"org.springframework.boot.autoconfigure."
+
"EnableAutoConfigurationImportSelectorTests.TestConfiguration"
});
this
.
expected
.
expect
(
IllegalStateException
.
class
);
this
.
importSelector
.
selectImports
(
this
.
annotationMetadata
);
}
...
...
spring-boot-autoconfigure/src/test/java/org/springframework/boot/autoconfigure/kafka/KafkaAutoConfigurationTests.java
View file @
b6b8bef0
...
...
@@ -79,38 +79,35 @@ public class KafkaAutoConfigurationTests {
DefaultKafkaConsumerFactory
<?,
?>
consumerFactory
=
this
.
context
.
getBean
(
DefaultKafkaConsumerFactory
.
class
);
@SuppressWarnings
(
"unchecked"
)
Map
<
String
,
Object
>
con
sumerProp
s
=
(
Map
<
String
,
Object
>)
new
DirectFieldAccessor
(
Map
<
String
,
Object
>
con
fig
s
=
(
Map
<
String
,
Object
>)
new
DirectFieldAccessor
(
consumerFactory
).
getPropertyValue
(
"configs"
);
// common
assertThat
(
con
sumerProp
s
.
get
(
ConsumerConfig
.
BOOTSTRAP_SERVERS_CONFIG
))
assertThat
(
con
fig
s
.
get
(
ConsumerConfig
.
BOOTSTRAP_SERVERS_CONFIG
))
.
isEqualTo
(
Collections
.
singletonList
(
"foo:1234"
));
assertThat
(
con
sumerProp
s
.
get
(
SslConfigs
.
SSL_KEY_PASSWORD_CONFIG
)).
isEqualTo
(
"p1"
);
assertThat
((
String
)
con
sumerProp
s
.
get
(
SslConfigs
.
SSL_KEYSTORE_LOCATION_CONFIG
))
assertThat
(
con
fig
s
.
get
(
SslConfigs
.
SSL_KEY_PASSWORD_CONFIG
)).
isEqualTo
(
"p1"
);
assertThat
((
String
)
con
fig
s
.
get
(
SslConfigs
.
SSL_KEYSTORE_LOCATION_CONFIG
))
.
endsWith
(
File
.
separator
+
"ksLoc"
);
assertThat
(
consumerProps
.
get
(
SslConfigs
.
SSL_KEYSTORE_PASSWORD_CONFIG
))
.
isEqualTo
(
"p2"
);
assertThat
((
String
)
consumerProps
.
get
(
SslConfigs
.
SSL_TRUSTSTORE_LOCATION_CONFIG
))
assertThat
(
configs
.
get
(
SslConfigs
.
SSL_KEYSTORE_PASSWORD_CONFIG
)).
isEqualTo
(
"p2"
);
assertThat
((
String
)
configs
.
get
(
SslConfigs
.
SSL_TRUSTSTORE_LOCATION_CONFIG
))
.
endsWith
(
File
.
separator
+
"tsLoc"
);
assertThat
(
con
sumerProp
s
.
get
(
SslConfigs
.
SSL_TRUSTSTORE_PASSWORD_CONFIG
))
assertThat
(
con
fig
s
.
get
(
SslConfigs
.
SSL_TRUSTSTORE_PASSWORD_CONFIG
))
.
isEqualTo
(
"p3"
);
// consumer
assertThat
(
con
sumerProp
s
.
get
(
ConsumerConfig
.
CLIENT_ID_CONFIG
)).
isEqualTo
(
"ccid"
);
// override
assertThat
(
con
sumerProp
s
.
get
(
ConsumerConfig
.
ENABLE_AUTO_COMMIT_CONFIG
))
assertThat
(
con
fig
s
.
get
(
ConsumerConfig
.
CLIENT_ID_CONFIG
)).
isEqualTo
(
"ccid"
);
// override
assertThat
(
con
fig
s
.
get
(
ConsumerConfig
.
ENABLE_AUTO_COMMIT_CONFIG
))
.
isEqualTo
(
Boolean
.
FALSE
);
assertThat
(
con
sumerProp
s
.
get
(
ConsumerConfig
.
AUTO_COMMIT_INTERVAL_MS_CONFIG
))
assertThat
(
con
fig
s
.
get
(
ConsumerConfig
.
AUTO_COMMIT_INTERVAL_MS_CONFIG
))
.
isEqualTo
(
123L
);
assertThat
(
con
sumerProp
s
.
get
(
ConsumerConfig
.
AUTO_OFFSET_RESET_CONFIG
))
assertThat
(
con
fig
s
.
get
(
ConsumerConfig
.
AUTO_OFFSET_RESET_CONFIG
))
.
isEqualTo
(
"earliest"
);
assertThat
(
consumerProps
.
get
(
ConsumerConfig
.
FETCH_MAX_WAIT_MS_CONFIG
))
.
isEqualTo
(
456
);
assertThat
(
consumerProps
.
get
(
ConsumerConfig
.
FETCH_MIN_BYTES_CONFIG
))
.
isEqualTo
(
789
);
assertThat
(
consumerProps
.
get
(
ConsumerConfig
.
GROUP_ID_CONFIG
)).
isEqualTo
(
"bar"
);
assertThat
(
consumerProps
.
get
(
ConsumerConfig
.
HEARTBEAT_INTERVAL_MS_CONFIG
))
assertThat
(
configs
.
get
(
ConsumerConfig
.
FETCH_MAX_WAIT_MS_CONFIG
)).
isEqualTo
(
456
);
assertThat
(
configs
.
get
(
ConsumerConfig
.
FETCH_MIN_BYTES_CONFIG
)).
isEqualTo
(
789
);
assertThat
(
configs
.
get
(
ConsumerConfig
.
GROUP_ID_CONFIG
)).
isEqualTo
(
"bar"
);
assertThat
(
configs
.
get
(
ConsumerConfig
.
HEARTBEAT_INTERVAL_MS_CONFIG
))
.
isEqualTo
(
234
);
assertThat
(
con
sumerProp
s
.
get
(
ConsumerConfig
.
KEY_DESERIALIZER_CLASS_CONFIG
))
assertThat
(
con
fig
s
.
get
(
ConsumerConfig
.
KEY_DESERIALIZER_CLASS_CONFIG
))
.
isEqualTo
(
LongDeserializer
.
class
);
assertThat
(
con
sumerProp
s
.
get
(
ConsumerConfig
.
VALUE_DESERIALIZER_CLASS_CONFIG
))
assertThat
(
con
fig
s
.
get
(
ConsumerConfig
.
VALUE_DESERIALIZER_CLASS_CONFIG
))
.
isEqualTo
(
IntegerDeserializer
.
class
);
}
...
...
@@ -119,7 +116,6 @@ public class KafkaAutoConfigurationTests {
load
(
"spring.kafka.clientId=cid"
,
"spring.kafka.producer.acks=all"
,
"spring.kafka.producer.batch-size=20"
,
"spring.kafka.producer.bootstrap-servers=bar:1234"
,
// test override
// common
"spring.kafka.producer.buffer-memory=12345"
,
"spring.kafka.producer.compression-type=gzip"
,
"spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.LongSerializer"
,
...
...
@@ -133,39 +129,35 @@ public class KafkaAutoConfigurationTests {
DefaultKafkaProducerFactory
<?,
?>
producerFactory
=
this
.
context
.
getBean
(
DefaultKafkaProducerFactory
.
class
);
@SuppressWarnings
(
"unchecked"
)
Map
<
String
,
Object
>
producerProp
s
=
(
Map
<
String
,
Object
>)
new
DirectFieldAccessor
(
Map
<
String
,
Object
>
config
s
=
(
Map
<
String
,
Object
>)
new
DirectFieldAccessor
(
producerFactory
).
getPropertyValue
(
"configs"
);
// common
assertThat
(
producerProp
s
.
get
(
ProducerConfig
.
CLIENT_ID_CONFIG
)).
isEqualTo
(
"cid"
);
assertThat
(
config
s
.
get
(
ProducerConfig
.
CLIENT_ID_CONFIG
)).
isEqualTo
(
"cid"
);
// producer
assertThat
(
producerProp
s
.
get
(
ProducerConfig
.
ACKS_CONFIG
)).
isEqualTo
(
"all"
);
assertThat
(
producerProp
s
.
get
(
ProducerConfig
.
BATCH_SIZE_CONFIG
)).
isEqualTo
(
20
);
assertThat
(
producerProp
s
.
get
(
ProducerConfig
.
BOOTSTRAP_SERVERS_CONFIG
))
assertThat
(
config
s
.
get
(
ProducerConfig
.
ACKS_CONFIG
)).
isEqualTo
(
"all"
);
assertThat
(
config
s
.
get
(
ProducerConfig
.
BATCH_SIZE_CONFIG
)).
isEqualTo
(
20
);
assertThat
(
config
s
.
get
(
ProducerConfig
.
BOOTSTRAP_SERVERS_CONFIG
))
.
isEqualTo
(
Collections
.
singletonList
(
"bar:1234"
));
// override
assertThat
(
producerProps
.
get
(
ProducerConfig
.
BUFFER_MEMORY_CONFIG
))
.
isEqualTo
(
12345L
);
assertThat
(
producerProps
.
get
(
ProducerConfig
.
COMPRESSION_TYPE_CONFIG
))
.
isEqualTo
(
"gzip"
);
assertThat
(
producerProps
.
get
(
ProducerConfig
.
KEY_SERIALIZER_CLASS_CONFIG
))
assertThat
(
configs
.
get
(
ProducerConfig
.
BUFFER_MEMORY_CONFIG
)).
isEqualTo
(
12345L
);
assertThat
(
configs
.
get
(
ProducerConfig
.
COMPRESSION_TYPE_CONFIG
)).
isEqualTo
(
"gzip"
);
assertThat
(
configs
.
get
(
ProducerConfig
.
KEY_SERIALIZER_CLASS_CONFIG
))
.
isEqualTo
(
LongSerializer
.
class
);
assertThat
(
producerProp
s
.
get
(
SslConfigs
.
SSL_KEY_PASSWORD_CONFIG
)).
isEqualTo
(
"p4"
);
assertThat
((
String
)
producerProp
s
.
get
(
SslConfigs
.
SSL_KEYSTORE_LOCATION_CONFIG
))
assertThat
(
config
s
.
get
(
SslConfigs
.
SSL_KEY_PASSWORD_CONFIG
)).
isEqualTo
(
"p4"
);
assertThat
((
String
)
config
s
.
get
(
SslConfigs
.
SSL_KEYSTORE_LOCATION_CONFIG
))
.
endsWith
(
File
.
separator
+
"ksLocP"
);
assertThat
(
producerProps
.
get
(
SslConfigs
.
SSL_KEYSTORE_PASSWORD_CONFIG
))
.
isEqualTo
(
"p5"
);
assertThat
((
String
)
producerProps
.
get
(
SslConfigs
.
SSL_TRUSTSTORE_LOCATION_CONFIG
))
assertThat
(
configs
.
get
(
SslConfigs
.
SSL_KEYSTORE_PASSWORD_CONFIG
)).
isEqualTo
(
"p5"
);
assertThat
((
String
)
configs
.
get
(
SslConfigs
.
SSL_TRUSTSTORE_LOCATION_CONFIG
))
.
endsWith
(
File
.
separator
+
"tsLocP"
);
assertThat
(
producerProp
s
.
get
(
SslConfigs
.
SSL_TRUSTSTORE_PASSWORD_CONFIG
))
assertThat
(
config
s
.
get
(
SslConfigs
.
SSL_TRUSTSTORE_PASSWORD_CONFIG
))
.
isEqualTo
(
"p6"
);
assertThat
(
producerProp
s
.
get
(
ProducerConfig
.
RETRIES_CONFIG
)).
isEqualTo
(
2
);
assertThat
(
producerProp
s
.
get
(
ProducerConfig
.
VALUE_SERIALIZER_CLASS_CONFIG
))
assertThat
(
config
s
.
get
(
ProducerConfig
.
RETRIES_CONFIG
)).
isEqualTo
(
2
);
assertThat
(
config
s
.
get
(
ProducerConfig
.
VALUE_SERIALIZER_CLASS_CONFIG
))
.
isEqualTo
(
IntegerSerializer
.
class
);
}
@Test
public
void
listenerProperties
()
{
load
(
"spring.kafka.template.default-topic=testTopic"
,
"spring.kafka.listener.ack-mode=MANUAL"
,
"spring.kafka.listener.ack-count=123"
,
"spring.kafka.listener.ack-time=456"
,
...
...
spring-boot-docs/src/main/asciidoc/spring-boot-features.adoc
View file @
b6b8bef0
...
...
@@ -4373,6 +4373,8 @@ used to declare a corresponding queue on the RabbitMQ instance if necessary.
You can enable retries on the `AmqpTemplate` to retry operations, for example in the event
the broker connection is lost. Retries are disabled by default.
[[boot-features-using-amqp-receiving]]
==== Receiving a message
When the Rabbit infrastructure is present, any bean can be annotated with
...
...
@@ -4455,9 +4457,7 @@ reached.
[[boot-features-kafka]]
=== Apache Kafka Support
http://kafka.apache.org/[Apache Kafa] is supported by providing auto-configuration of the
`spring-kafka` project.
...
...
@@ -4476,8 +4476,8 @@ for more of the supported options.
[[boot-features-kafka-sending-a-message]]
=== Sending a Message
Spring's `KafkaTemplate` is auto-configured and you can autowire them directly in your own
beans:
...
...
@@ -4500,8 +4500,8 @@ public class MyBean {
[[boot-features-kafka-receiving-a-message]]
=== Receiving a Message
When the Apache Kafka infrastructure is present, any bean can be annotated with
`@KafkaListener` to create a listener endpoint. If no `KafkaListenerContainerFactory`
has been defined, a default one is configured automatically with keys defined in
...
...
@@ -4509,7 +4509,6 @@ has been defined, a default one is configured automatically with keys defined in
The following component creates a listener endpoint on the `someTopic` topic:
[source,java,indent=0]
----
@Component
...
...
@@ -4525,9 +4524,8 @@ The following component creates a listener endpoint on the `someTopic` topic:
[[kafka-extra-props]]
[[
boot-features-
kafka-extra-props]]
=== Additional Kafka Properties
The properties supported by auto configuration are shown in
<<common-application-properties>>. Note that these properties (hyphenated or camelCase)
map directly to the Apache Kafka dotted properties for the most part, refer to the Apache
...
...
@@ -4616,6 +4614,8 @@ Lastly, the most extreme (and rarely used) option is to create your own
`RestTemplateBuilder` bean. This will switch off the auto-configuration of a
`RestTemplateBuilder` and will prevent any `RestTemplateCustomizer` beans from being used.
[[boot-features-email]]
== Sending email
The Spring Framework provides an easy abstraction for sending email using the
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment