Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
schbrain-parent
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Packages & Registries
Packages & Registries
Package Registry
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
panwangnan
schbrain-parent
Commits
8068126f
Commit
8068126f
authored
Jul 18, 2023
by
liaozan
🏀
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Support disable kafka message listen when application running in local
parent
e8474581
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
133 additions
and
32 deletions
+133
-32
starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializerEnvironmentPostProcessor.java
...olloConfigurationInitializerEnvironmentPostProcessor.java
+1
-1
starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/env/DubboEnvironmentPostProcessor.java
...utoconfigure/dubbo/env/DubboEnvironmentPostProcessor.java
+53
-0
starters/dubbo-spring-boot-starter/src/main/resources/META-INF/spring.factories
...boot-starter/src/main/resources/META-INF/spring.factories
+4
-2
starters/kafka-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/kafka/CustomKafkaListenerEndpointRegistry.java
...oconfigure/kafka/CustomKafkaListenerEndpointRegistry.java
+35
-0
starters/kafka-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/kafka/KafkaAutoConfiguration.java
...framework/autoconfigure/kafka/KafkaAutoConfiguration.java
+14
-2
starters/kafka-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/kafka/properties/KafkaProperties.java
...ework/autoconfigure/kafka/properties/KafkaProperties.java
+23
-1
support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/env/DefaultPropertiesEnvironmentPostProcessor.java
...spring/env/DefaultPropertiesEnvironmentPostProcessor.java
+1
-24
support/schbrain-spring-support/src/main/resources/META-INF/spring.factories
...ring-support/src/main/resources/META-INF/spring.factories
+2
-2
No files found.
starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/ApolloConfigurationInitializerEnvironmentPostProcessor.java
View file @
8068126f
...
@@ -4,7 +4,7 @@ import com.ctrip.framework.foundation.Foundation;
...
@@ -4,7 +4,7 @@ import com.ctrip.framework.foundation.Foundation;
import
com.schbrain.common.util.ApplicationName
;
import
com.schbrain.common.util.ApplicationName
;
import
com.schbrain.common.util.EnvUtils
;
import
com.schbrain.common.util.EnvUtils
;
import
com.schbrain.framework.support.spring.LoggerAwareEnvironmentPostProcessor
;
import
com.schbrain.framework.support.spring.LoggerAwareEnvironmentPostProcessor
;
import
com.schbrain.framework.support.spring.
defaults
.DefaultPropertiesEnvironmentPostProcessor
;
import
com.schbrain.framework.support.spring.
env
.DefaultPropertiesEnvironmentPostProcessor
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.boot.ConfigurableBootstrapContext
;
import
org.springframework.boot.ConfigurableBootstrapContext
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
...
...
starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/env/DubboEnvironmentPostProcessor.java
0 → 100644
View file @
8068126f
package
com.schbrain.framework.autoconfigure.dubbo.env
;
import
cn.hutool.core.text.StrFormatter
;
import
com.google.common.collect.Maps
;
import
com.schbrain.common.util.EnvUtils
;
import
com.schbrain.framework.support.spring.LoggerAwareEnvironmentPostProcessor
;
import
org.springframework.boot.ConfigurableBootstrapContext
;
import
org.springframework.boot.DefaultPropertiesPropertySource
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.logging.DeferredLogFactory
;
import
org.springframework.core.env.ConfigurableEnvironment
;
import
org.springframework.util.ClassUtils
;
import
java.util.Map
;
/**
* @author liaozan
* @since 2023/7/18
*/
public
class
DubboEnvironmentPostProcessor
extends
LoggerAwareEnvironmentPostProcessor
{
private
static
final
String
DUBBO_REGISTER_KEY
=
"dubbo.registry.register"
;
public
DubboEnvironmentPostProcessor
(
DeferredLogFactory
logFactory
,
ConfigurableBootstrapContext
bootstrapContext
)
{
super
(
logFactory
,
bootstrapContext
);
}
@Override
public
void
postProcessEnvironment
(
ConfigurableEnvironment
environment
,
SpringApplication
application
)
{
Map
<
String
,
Object
>
defaultProperties
=
Maps
.
newHashMapWithExpectedSize
(
1
);
configureDubboRegistrationIfPresent
(
environment
,
defaultProperties
);
DefaultPropertiesPropertySource
.
addOrMerge
(
defaultProperties
,
environment
.
getPropertySources
());
}
private
void
configureDubboRegistrationIfPresent
(
ConfigurableEnvironment
environment
,
Map
<
String
,
Object
>
defaultProperties
)
{
if
(!
dubboInClassPath
())
{
return
;
}
if
(
EnvUtils
.
runningOnCloudPlatform
(
environment
))
{
return
;
}
if
(!
environment
.
containsProperty
(
DUBBO_REGISTER_KEY
))
{
log
.
warn
(
StrFormatter
.
format
(
"Not running on CloudPlatform, {} is set to false by default"
,
DUBBO_REGISTER_KEY
));
log
.
warn
(
StrFormatter
.
format
(
"If you want force to register with Dubbo Registry, set {} = true"
,
DUBBO_REGISTER_KEY
));
defaultProperties
.
put
(
DUBBO_REGISTER_KEY
,
false
);
}
}
private
boolean
dubboInClassPath
()
{
return
ClassUtils
.
isPresent
(
"org.apache.dubbo.config.bootstrap.DubboBootstrap"
,
getClass
().
getClassLoader
());
}
}
starters/dubbo-spring-boot-starter/src/main/resources/META-INF/spring.factories
View file @
8068126f
com.schbrain.common.util.support.ConfigurableProperties=\
com.schbrain.common.util.support.ConfigurableProperties=\
com.schbrain.framework.autoconfigure.dubbo.properties.DubboProperties
com.schbrain.framework.autoconfigure.dubbo.properties.DubboProperties
org.springframework.context.ApplicationListener=\
org.springframework.context.ApplicationListener=\
com.schbrain.framework.autoconfigure.dubbo.listener.DubboConfigLoadedEventListener
com.schbrain.framework.autoconfigure.dubbo.listener.DubboConfigLoadedEventListener
\ No newline at end of file
org.springframework.boot.env.EnvironmentPostProcessor=\
com.schbrain.framework.autoconfigure.dubbo.env.DubboEnvironmentPostProcessor
starters/kafka-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/kafka/CustomKafkaListenerEndpointRegistry.java
0 → 100644
View file @
8068126f
package
com.schbrain.framework.autoconfigure.kafka
;
import
com.schbrain.common.util.EnvUtils
;
import
com.schbrain.framework.autoconfigure.kafka.properties.KafkaProperties
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.kafka.config.KafkaListenerContainerFactory
;
import
org.springframework.kafka.config.KafkaListenerEndpoint
;
import
org.springframework.kafka.config.KafkaListenerEndpointRegistry
;
/**
* @author liaozan
* @since 2023/7/18
*/
@Slf4j
public
class
CustomKafkaListenerEndpointRegistry
extends
KafkaListenerEndpointRegistry
{
private
static
final
String
CONSUMER_ENABLED_KEY
=
"spring.kafka.consumer.enabled"
;
private
final
KafkaProperties
kafkaProperties
;
public
CustomKafkaListenerEndpointRegistry
(
KafkaProperties
kafkaProperties
)
{
this
.
kafkaProperties
=
kafkaProperties
;
}
@Override
public
void
registerListenerContainer
(
KafkaListenerEndpoint
endpoint
,
KafkaListenerContainerFactory
<?>
factory
,
boolean
startImmediately
)
{
if
(
EnvUtils
.
runningOnCloudPlatform
()
||
kafkaProperties
.
getConsumer
().
isEnabled
())
{
super
.
registerListenerContainer
(
endpoint
,
factory
,
startImmediately
);
}
else
{
log
.
warn
(
"Not running on CloudPlatform or {} is set to false, will not listen to messages from brokers"
,
CONSUMER_ENABLED_KEY
);
log
.
warn
(
"If you want force to register with Kafka Brokers, set {} = true"
,
CONSUMER_ENABLED_KEY
);
}
}
}
starters/kafka-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/kafka/KafkaAutoConfiguration.java
View file @
8068126f
...
@@ -2,16 +2,28 @@ package com.schbrain.framework.autoconfigure.kafka;
...
@@ -2,16 +2,28 @@ package com.schbrain.framework.autoconfigure.kafka;
import
com.schbrain.framework.autoconfigure.kafka.properties.KafkaProperties
;
import
com.schbrain.framework.autoconfigure.kafka.properties.KafkaProperties
;
import
org.springframework.boot.autoconfigure.AutoConfiguration
;
import
org.springframework.boot.autoconfigure.AutoConfiguration
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.context.annotation.Import
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.kafka.config.KafkaListenerConfigUtils
;
/**
/**
* @author liaozan
* @author liaozan
* @since 2023-04-29
* @since 2023-04-29
*/
*/
@AutoConfiguration
@AutoConfiguration
@Import
(
MessageProducer
.
class
)
@EnableConfigurationProperties
(
KafkaProperties
.
class
)
@EnableConfigurationProperties
(
KafkaProperties
.
class
)
public
class
KafkaAutoConfiguration
{
public
class
KafkaAutoConfiguration
{
@Bean
(
KafkaListenerConfigUtils
.
KAFKA_LISTENER_ENDPOINT_REGISTRY_BEAN_NAME
)
public
CustomKafkaListenerEndpointRegistry
customKafkaListenerEndpointRegistry
(
KafkaProperties
kafkaProperties
)
{
return
new
CustomKafkaListenerEndpointRegistry
(
kafkaProperties
);
}
@Bean
@ConditionalOnMissingBean
public
MessageProducer
defaultMessageProducer
()
{
return
new
MessageProducer
();
}
}
}
starters/kafka-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/kafka/properties/KafkaProperties.java
View file @
8068126f
package
com.schbrain.framework.autoconfigure.kafka.properties
;
package
com.schbrain.framework.autoconfigure.kafka.properties
;
import
com.schbrain.common.util.support.ConfigurableProperties
;
import
com.schbrain.common.util.support.ConfigurableProperties
;
import
com.schbrain.framework.autoconfigure.kafka.CustomKafkaListenerEndpointRegistry
;
import
lombok.Data
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.boot.context.properties.NestedConfigurationProperty
;
import
org.springframework.kafka.config.KafkaListenerContainerFactory
;
import
org.springframework.kafka.config.KafkaListenerEndpoint
;
/**
/**
* @author liaozan
* @author liaozan
...
@@ -12,9 +16,27 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
...
@@ -12,9 +16,27 @@ import org.springframework.boot.context.properties.ConfigurationProperties;
@ConfigurationProperties
(
prefix
=
"spring.kafka"
)
@ConfigurationProperties
(
prefix
=
"spring.kafka"
)
public
class
KafkaProperties
implements
ConfigurableProperties
{
public
class
KafkaProperties
implements
ConfigurableProperties
{
/**
* 消费者配置
*/
@NestedConfigurationProperty
private
Consumer
consumer
=
new
Consumer
();
@Override
@Override
public
String
getNamespace
()
{
public
String
getNamespace
()
{
return
"kafka-common"
;
return
"kafka-common"
;
}
}
}
@Data
\ No newline at end of file
public
static
class
Consumer
{
/**
* 是否启用消费者,只对在本地运行生效
*
* @see CustomKafkaListenerEndpointRegistry#registerListenerContainer(KafkaListenerEndpoint, KafkaListenerContainerFactory, boolean)
*/
private
boolean
enabled
=
false
;
}
}
support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/
defaults
/DefaultPropertiesEnvironmentPostProcessor.java
→
support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/
env
/DefaultPropertiesEnvironmentPostProcessor.java
View file @
8068126f
package
com.schbrain.framework.support.spring.
defaults
;
package
com.schbrain.framework.support.spring.
env
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.date.DatePattern
;
import
cn.hutool.core.text.StrFormatter
;
import
cn.hutool.core.text.StrFormatter
;
...
@@ -17,7 +17,6 @@ import org.springframework.boot.logging.DeferredLogFactory;
...
@@ -17,7 +17,6 @@ import org.springframework.boot.logging.DeferredLogFactory;
import
org.springframework.boot.web.server.Shutdown
;
import
org.springframework.boot.web.server.Shutdown
;
import
org.springframework.core.Ordered
;
import
org.springframework.core.Ordered
;
import
org.springframework.core.env.ConfigurableEnvironment
;
import
org.springframework.core.env.ConfigurableEnvironment
;
import
org.springframework.util.ClassUtils
;
import
org.springframework.util.unit.DataSize
;
import
org.springframework.util.unit.DataSize
;
import
java.nio.charset.StandardCharsets
;
import
java.nio.charset.StandardCharsets
;
...
@@ -38,8 +37,6 @@ public class DefaultPropertiesEnvironmentPostProcessor extends LoggerAwareEnviro
...
@@ -38,8 +37,6 @@ public class DefaultPropertiesEnvironmentPostProcessor extends LoggerAwareEnviro
private
static
final
String
SPRING_PROFILE_ACTIVE
=
"spring.profiles.active"
;
private
static
final
String
SPRING_PROFILE_ACTIVE
=
"spring.profiles.active"
;
private
static
final
String
DUBBO_REGISTER_KEY
=
"dubbo.registry.register"
;
public
DefaultPropertiesEnvironmentPostProcessor
(
DeferredLogFactory
logFactory
,
ConfigurableBootstrapContext
bootstrapContext
)
{
public
DefaultPropertiesEnvironmentPostProcessor
(
DeferredLogFactory
logFactory
,
ConfigurableBootstrapContext
bootstrapContext
)
{
super
(
logFactory
,
bootstrapContext
);
super
(
logFactory
,
bootstrapContext
);
}
}
...
@@ -72,8 +69,6 @@ public class DefaultPropertiesEnvironmentPostProcessor extends LoggerAwareEnviro
...
@@ -72,8 +69,6 @@ public class DefaultPropertiesEnvironmentPostProcessor extends LoggerAwareEnviro
defaultProperties
.
put
(
"spring.main.allow-circular-references"
,
true
);
defaultProperties
.
put
(
"spring.main.allow-circular-references"
,
true
);
defaultProperties
.
put
(
"spring.main.banner-mode"
,
Banner
.
Mode
.
OFF
);
defaultProperties
.
put
(
"spring.main.banner-mode"
,
Banner
.
Mode
.
OFF
);
defaultProperties
.
put
(
"server.shutdown"
,
Shutdown
.
GRACEFUL
);
defaultProperties
.
put
(
"server.shutdown"
,
Shutdown
.
GRACEFUL
);
// dubbo
configureDubboRegistrationIfPresent
(
environment
,
defaultProperties
);
// active profile
// active profile
configureActiveProfileIfPresent
(
environment
,
defaultProperties
);
configureActiveProfileIfPresent
(
environment
,
defaultProperties
);
environment
.
setDefaultProfiles
(
EnvUtils
.
DEVELOPMENT
);
environment
.
setDefaultProfiles
(
EnvUtils
.
DEVELOPMENT
);
...
@@ -93,22 +88,4 @@ public class DefaultPropertiesEnvironmentPostProcessor extends LoggerAwareEnviro
...
@@ -93,22 +88,4 @@ public class DefaultPropertiesEnvironmentPostProcessor extends LoggerAwareEnviro
}
}
}
}
private
void
configureDubboRegistrationIfPresent
(
ConfigurableEnvironment
environment
,
Map
<
String
,
Object
>
defaultProperties
)
{
if
(!
dubboInClassPath
())
{
return
;
}
if
(
EnvUtils
.
runningOnCloudPlatform
(
environment
))
{
return
;
}
if
(!
environment
.
containsProperty
(
DUBBO_REGISTER_KEY
))
{
log
.
warn
(
StrFormatter
.
format
(
"Not running on CloudPlatform, {} is set to false by default"
,
DUBBO_REGISTER_KEY
));
log
.
warn
(
StrFormatter
.
format
(
"If you want force to register with Dubbo Registry, set {} = true"
,
DUBBO_REGISTER_KEY
));
defaultProperties
.
put
(
DUBBO_REGISTER_KEY
,
false
);
}
}
private
boolean
dubboInClassPath
()
{
return
ClassUtils
.
isPresent
(
"org.apache.dubbo.config.bootstrap.DubboBootstrap"
,
getClass
().
getClassLoader
());
}
}
}
support/schbrain-spring-support/src/main/resources/META-INF/spring.factories
View file @
8068126f
org.springframework.boot.env.EnvironmentPostProcessor=com.schbrain.framework.support.spring.defaults.DefaultPropertiesEnvironmentPostProcessor
org.springframework.boot.env.EnvironmentPostProcessor=com.schbrain.framework.support.spring.env.DefaultPropertiesEnvironmentPostProcessor
org.springframework.context.ApplicationContextInitializer=com.schbrain.framework.support.spring.startup.BufferingApplicationStartupApplicationContextInitializer
org.springframework.context.ApplicationContextInitializer=com.schbrain.framework.support.spring.startup.BufferingApplicationStartupApplicationContextInitializer
\ No newline at end of file
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