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
Metrics
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
framework
schbrain-parent
Commits
56bd4f4e
"...git@gitlab.schbrain.com:panwangnan/schbrain-parent.git" did not exist on "5ea92a8907422402ff2499f42166513a1b716712"
Commit
56bd4f4e
authored
Aug 12, 2023
by
liaozan
🏀
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Polish
parent
a9c641a6
Changes
18
Show whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
106 additions
and
154 deletions
+106
-154
commons/common-util/src/main/java/com/schbrain/common/util/HostInfoHolder.java
...rc/main/java/com/schbrain/common/util/HostInfoHolder.java
+10
-19
commons/web-common/src/main/java/com/schbrain/common/web/ObjectMapperCustomizerConfiguration.java
...brain/common/web/ObjectMapperCustomizerConfiguration.java
+2
-2
commons/web-common/src/main/java/com/schbrain/common/web/WebCommonAutoConfiguration.java
...a/com/schbrain/common/web/WebCommonAutoConfiguration.java
+1
-1
starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/event/listener/ConfigLoadedEventListener.java
...gure/apollo/event/listener/ConfigLoadedEventListener.java
+1
-6
starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/event/listener/ConfigLoadedEventListenerAdaptor.java
...ollo/event/listener/ConfigLoadedEventListenerAdaptor.java
+21
-6
starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/initializer/DubboValidationInitializer.java
...nfigure/dubbo/initializer/DubboValidationInitializer.java
+0
-26
starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/listener/DubboConfigLoadedEventListener.java
...figure/dubbo/listener/DubboConfigLoadedEventListener.java
+7
-9
starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/JSONLoggingInitializer.java
...ramework/autoconfigure/logger/JSONLoggingInitializer.java
+25
-20
starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/LoggingAutoConfiguration.java
...mework/autoconfigure/logger/LoggingAutoConfiguration.java
+6
-6
starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/DynamicLoggingConfiguration.java
...oconfigure/logger/apollo/DynamicLoggingConfiguration.java
+10
-10
starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/listener/LoggingConfigLoadedEventListener.java
...ure/logger/listener/LoggingConfigLoadedEventListener.java
+14
-18
starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/properties/LoggingProperties.java
...rk/autoconfigure/logger/properties/LoggingProperties.java
+1
-1
starters/logger-spring-boot-starter/src/main/resources/META-INF/spring.factories
...boot-starter/src/main/resources/META-INF/spring.factories
+2
-2
starters/logger-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
...ingframework.boot.autoconfigure.AutoConfiguration.imports
+1
-1
starters/xxl-job-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/xxl/XxlJobAutoConfiguration.java
.../framework/autoconfigure/xxl/XxlJobAutoConfiguration.java
+3
-3
starters/xxl-job-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/xxl/properties/XxlJobProperties.java
...mework/autoconfigure/xxl/properties/XxlJobProperties.java
+2
-2
support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/startup/BufferingApplicationStartupApplicationContextInitializer.java
...eringApplicationStartupApplicationContextInitializer.java
+0
-21
support/schbrain-spring-support/src/main/resources/META-INF/spring.factories
...ring-support/src/main/resources/META-INF/spring.factories
+0
-1
No files found.
commons/common-util/src/main/java/com/schbrain/common/util/
InetUtils
.java
→
commons/common-util/src/main/java/com/schbrain/common/util/
HostInfoHolder
.java
View file @
56bd4f4e
...
...
@@ -8,42 +8,33 @@ import java.net.Inet4Address;
import
java.net.InetAddress
;
import
java.net.NetworkInterface
;
import
java.net.UnknownHostException
;
import
java.nio.ByteBuffer
;
import
java.util.Enumeration
;
/**
* Copy from SpringCloud
*
* @author liaozan
* @since 2021/11/19
*/
@Slf4j
public
class
InetUtils
{
public
class
HostInfoHolder
{
public
static
HostInfo
findFirstNonLoopBackHostInfo
()
{
private
static
final
HostInfo
HOST_INFO
=
findFirstNonLoopBackHostInfo
();
public
static
HostInfo
getHostInfo
()
{
return
HOST_INFO
;
}
private
static
HostInfo
findFirstNonLoopBackHostInfo
()
{
InetAddress
address
=
findFirstNonLoopBackAddress
();
if
(
address
!=
null
)
{
return
convertAddress
(
address
);
}
log
.
warn
(
"Cannot find first non-loopBack address, fallback to localhost"
);
HostInfo
hostInfo
=
new
HostInfo
();
hostInfo
.
setHostname
(
"localhost"
);
hostInfo
.
setIpAddress
(
"127.0.0.1"
);
return
hostInfo
;
}
public
static
int
getIpAddressAsInt
(
HostInfo
hostInfo
)
{
String
host
=
hostInfo
.
getIpAddress
();
if
(
host
==
null
)
{
host
=
hostInfo
.
getHostname
();
}
try
{
InetAddress
inetAddress
=
InetAddress
.
getByName
(
host
);
return
ByteBuffer
.
wrap
(
inetAddress
.
getAddress
()).
getInt
();
}
catch
(
final
UnknownHostException
e
)
{
throw
new
IllegalArgumentException
(
e
);
}
}
private
static
InetAddress
findFirstNonLoopBackAddress
()
{
InetAddress
result
=
null
;
try
{
...
...
commons/web-common/src/main/java/com/schbrain/common/web/ObjectMapperConfiguration.java
→
commons/web-common/src/main/java/com/schbrain/common/web/ObjectMapperC
ustomizerC
onfiguration.java
View file @
56bd4f4e
...
...
@@ -11,10 +11,10 @@ import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
* @since 2023/8/9
*/
@ConditionalOnClass
(
Jackson2ObjectMapperBuilder
.
class
)
public
class
ObjectMapperConfiguration
{
public
class
ObjectMapperC
ustomizerC
onfiguration
{
@Bean
public
Jackson2ObjectMapperBuilderCustomizer
j
acksonCustomizer
()
{
public
Jackson2ObjectMapperBuilderCustomizer
longToStringSerializerJ
acksonCustomizer
()
{
return
builder
->
builder
.
serializerByType
(
Long
.
class
,
LongToStringSerializer
.
instance
);
}
...
...
commons/web-common/src/main/java/com/schbrain/common/web/WebCommonAutoConfiguration.java
View file @
56bd4f4e
...
...
@@ -30,7 +30,7 @@ import java.util.List;
ExceptionHandingConfiguration
.
class
,
ServletComponentConfiguration
.
class
,
CorsFilterConfiguration
.
class
,
ObjectMapperConfiguration
.
class
ObjectMapperC
ustomizerC
onfiguration
.
class
})
public
class
WebCommonAutoConfiguration
{
...
...
starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/event/listener/ConfigLoadedEventListener.java
View file @
56bd4f4e
...
...
@@ -17,9 +17,4 @@ public interface ConfigLoadedEventListener extends ApplicationListener<ConfigLoa
return
Ordered
.
LOWEST_PRECEDENCE
;
}
@Override
default
void
initialize
(
ConfigurableApplicationContext
applicationContext
)
{
}
}
starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/event/listener/
GenericConfigLoadedEventListene
r.java
→
starters/apollo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/apollo/event/listener/
ConfigLoadedEventListenerAdapto
r.java
View file @
56bd4f4e
...
...
@@ -3,6 +3,7 @@ package com.schbrain.framework.autoconfigure.apollo.event.listener;
import
com.schbrain.common.util.support.ConfigurableProperties
;
import
com.schbrain.framework.autoconfigure.apollo.event.ConfigLoadedEvent
;
import
org.apache.commons.logging.Log
;
import
org.springframework.context.ConfigurableApplicationContext
;
import
org.springframework.core.ResolvableType
;
/**
...
...
@@ -10,25 +11,39 @@ import org.springframework.core.ResolvableType;
* @since 2023-04-28
*/
@SuppressWarnings
(
"unchecked"
)
public
abstract
class
GenericConfigLoadedEventListene
r
<
T
extends
ConfigurableProperties
>
implements
ConfigLoadedEventListener
{
public
abstract
class
ConfigLoadedEventListenerAdapto
r
<
T
extends
ConfigurableProperties
>
implements
ConfigLoadedEventListener
{
protected
final
ResolvableType
propertiesType
;
protected
Log
log
;
private
T
properties
;
public
GenericConfigLoadedEventListene
r
()
{
public
ConfigLoadedEventListenerAdapto
r
()
{
this
.
propertiesType
=
ResolvableType
.
forInstance
(
this
).
getSuperType
().
getGeneric
(
0
);
}
@Override
public
void
onApplicationEvent
(
ConfigLoadedEvent
event
)
{
event
.
getSpringApplication
().
addInitializers
(
this
);
if
(
propertiesType
.
isInstance
(
event
.
getSource
()))
{
if
(
propertiesType
.
isInstance
(
event
.
getSource
())
&&
properties
==
null
)
{
this
.
log
=
event
.
getDeferredLogFactory
().
getLog
(
getClass
());
this
.
onConfigLoaded
(
event
,
(
T
)
event
.
getSource
());
this
.
properties
=
(
T
)
event
.
getSource
();
this
.
onConfigLoaded
(
event
,
properties
);
}
}
@Override
public
final
void
initialize
(
ConfigurableApplicationContext
applicationContext
)
{
onApplicationContextInitialized
(
applicationContext
,
properties
);
}
/**
* callback when config loaded
*/
protected
abstract
void
onConfigLoaded
(
ConfigLoadedEvent
event
,
T
configurableProperties
);
/**
* callback when application context initialized
*/
protected
abstract
void
onApplicationContextInitialized
(
ConfigurableApplicationContext
context
,
T
properties
);
}
starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/initializer/DubboValidationInitializer.java
deleted
100644 → 0
View file @
a9c641a6
package
com.schbrain.framework.autoconfigure.dubbo.initializer
;
import
com.schbrain.framework.autoconfigure.apollo.config.OrderedMapPropertySource
;
import
org.springframework.util.ClassUtils
;
/**
* 暂时以编程的方式配置参数校验。待所有服务都升级到指定版本时,再通过配置开启
*
* @author liaozan
* @since 2023-07-04
*/
public
class
DubboValidationInitializer
{
private
static
final
String
VALIDATION_FILTER_CLASS_NAME
=
"org.apache.dubbo.validation.filter.ValidationFilter"
;
private
static
final
String
PROVIDER_VALIDATION_PROPERTY
=
"dubbo.provider.validation"
;
public
static
void
initialize
(
OrderedMapPropertySource
propertySource
)
{
if
(
ClassUtils
.
isPresent
(
VALIDATION_FILTER_CLASS_NAME
,
DubboValidationInitializer
.
class
.
getClassLoader
()))
{
if
(!
propertySource
.
containsProperty
(
PROVIDER_VALIDATION_PROPERTY
))
{
propertySource
.
addProperty
(
PROVIDER_VALIDATION_PROPERTY
,
Boolean
.
TRUE
.
toString
());
}
}
}
}
\ No newline at end of file
starters/dubbo-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/dubbo/listener/DubboConfigLoadedEventListener.java
View file @
56bd4f4e
...
...
@@ -2,8 +2,7 @@ package com.schbrain.framework.autoconfigure.dubbo.listener;
import
com.schbrain.framework.autoconfigure.apollo.config.OrderedMapPropertySource
;
import
com.schbrain.framework.autoconfigure.apollo.event.ConfigLoadedEvent
;
import
com.schbrain.framework.autoconfigure.apollo.event.listener.GenericConfigLoadedEventListener
;
import
com.schbrain.framework.autoconfigure.dubbo.initializer.DubboValidationInitializer
;
import
com.schbrain.framework.autoconfigure.apollo.event.listener.ConfigLoadedEventListenerAdaptor
;
import
com.schbrain.framework.autoconfigure.dubbo.properties.DubboProperties
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.context.ConfigurableApplicationContext
;
...
...
@@ -16,7 +15,7 @@ import static org.apache.dubbo.config.ConfigKeys.DUBBO_SCAN_BASE_PACKAGES;
* @author liaozan
* @since 2023-04-28
*/
public
class
DubboConfigLoadedEventListener
extends
GenericConfigLoadedEventListene
r
<
DubboProperties
>
{
public
class
DubboConfigLoadedEventListener
extends
ConfigLoadedEventListenerAdapto
r
<
DubboProperties
>
{
@Override
public
int
getOrder
()
{
...
...
@@ -24,14 +23,13 @@ public class DubboConfigLoadedEventListener extends GenericConfigLoadedEventList
}
@Override
p
ublic
void
initialize
(
ConfigurableApplicationContext
applicationContext
)
{
a
pplicationContext
.
addApplicationListener
(
new
DubboConfigInitEventListener
(
applicationContext
));
p
rotected
void
onConfigLoaded
(
ConfigLoadedEvent
event
,
DubboProperties
properties
)
{
a
ddRequiredProperties
(
event
.
getEnvironment
(),
event
.
getSpringApplication
(),
event
.
getPropertySource
(
));
}
@Override
protected
void
onConfigLoaded
(
ConfigLoadedEvent
event
,
DubboProperties
properties
)
{
addRequiredProperties
(
event
.
getEnvironment
(),
event
.
getSpringApplication
(),
event
.
getPropertySource
());
DubboValidationInitializer
.
initialize
(
event
.
getPropertySource
());
protected
void
onApplicationContextInitialized
(
ConfigurableApplicationContext
context
,
DubboProperties
properties
)
{
context
.
addApplicationListener
(
new
DubboConfigInitEventListener
(
context
));
}
private
void
addRequiredProperties
(
ConfigurableEnvironment
environment
,
SpringApplication
application
,
OrderedMapPropertySource
propertySource
)
{
...
...
starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/
LoggerConfiguration
Initializer.java
→
starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/
JSONLogging
Initializer.java
View file @
56bd4f4e
...
...
@@ -12,9 +12,10 @@ import ch.qos.logback.core.rolling.TimeBasedRollingPolicy;
import
cn.hutool.json.JSONObject
;
import
com.schbrain.common.util.ApplicationName
;
import
com.schbrain.common.util.EnvUtils
;
import
com.schbrain.common.util.InetUtils.HostInfo
;
import
com.schbrain.common.util.HostInfoHolder
;
import
com.schbrain.common.util.HostInfoHolder.HostInfo
;
import
com.schbrain.framework.autoconfigure.logger.logstash.EnhancedLogstashEncoder
;
import
com.schbrain.framework.autoconfigure.logger.properties.Logg
er
Properties
;
import
com.schbrain.framework.autoconfigure.logger.properties.Logg
ing
Properties
;
import
lombok.extern.slf4j.Slf4j
;
import
net.logstash.logback.appender.LogstashTcpSocketAppender
;
import
net.logstash.logback.encoder.LogstashEncoder
;
...
...
@@ -23,39 +24,42 @@ import org.apache.commons.collections4.IteratorUtils;
import
org.apache.commons.lang3.StringUtils
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.boot.cloud.CloudPlatform
;
import
org.springframework.core.env.
Configurable
Environment
;
import
org.springframework.core.env.Environment
;
import
org.springframework.util.CollectionUtils
;
import
java.nio.file.Paths
;
import
java.util.List
;
/**
* Enable the json logging, will be auto active when the application is running in
c
loudPlatform
* Enable the json logging, will be auto active when the application is running in
C
loudPlatform
*
* @author liaozan
* @see CloudPlatform
* @since 2021/12/11
*/
@Slf4j
public
class
LoggerConfiguration
Initializer
{
public
class
JSONLogging
Initializer
{
private
final
ConfigurableEnvironment
environment
;
private
final
LoggerProperties
properties
;
private
final
HostInfo
hostInfo
;
private
final
String
applicationName
;
private
final
Environment
environment
;
private
final
LoggingProperties
loggingProperties
;
private
volatile
boolean
initialized
;
p
ublic
LoggerConfigurationInitializer
(
ConfigurableEnvironment
environment
,
LoggerProperties
properties
,
HostInfo
hostInfo
)
{
p
rivate
JSONLoggingInitializer
(
Environment
environment
,
LoggingProperties
loggingProperties
)
{
this
.
environment
=
environment
;
this
.
properties
=
properties
;
this
.
hostInfo
=
hostInfo
;
this
.
loggingProperties
=
loggingProperties
;
this
.
applicationName
=
ApplicationName
.
get
(
environment
);
}
public
static
void
init
(
Environment
environment
,
LoggingProperties
properties
)
{
JSONLoggingInitializer
initializer
=
new
JSONLoggingInitializer
(
environment
,
properties
);
initializer
.
init
();
}
public
void
init
()
{
if
(
p
roperties
==
null
)
{
log
.
warn
(
"logg
er
properties is null"
);
if
(
loggingP
roperties
==
null
)
{
log
.
warn
(
"logg
ing
properties is null"
);
return
;
}
if
(
initialized
)
{
...
...
@@ -75,18 +79,18 @@ public class LoggerConfigurationInitializer {
return
;
}
if
(
p
roperties
.
isEnableJsonFileOutput
())
{
if
(
loggingP
roperties
.
isEnableJsonFileOutput
())
{
Appender
<
ILoggingEvent
>
appender
=
buildFileAppender
(
context
);
logger
.
addAppender
(
appender
);
}
if
(
p
roperties
.
isEnableJsonConsoleOutput
())
{
if
(
loggingP
roperties
.
isEnableJsonConsoleOutput
())
{
Appender
<
ILoggingEvent
>
appender
=
buildConsoleAppender
(
context
);
logger
.
addAppender
(
appender
);
}
if
(
p
roperties
.
isEnableJsonLogWriteToLogstash
()
||
EnvUtils
.
runningOnCloudPlatform
(
environment
))
{
if
(
StringUtils
.
isBlank
(
p
roperties
.
getLogstashAddress
()))
{
if
(
loggingP
roperties
.
isEnableJsonLogWriteToLogstash
()
||
EnvUtils
.
runningOnCloudPlatform
(
environment
))
{
if
(
StringUtils
.
isBlank
(
loggingP
roperties
.
getLogstashAddress
()))
{
log
.
warn
(
"logstash address is unset, will NOT write log to logstash"
);
return
;
}
...
...
@@ -98,7 +102,7 @@ public class LoggerConfigurationInitializer {
private
Appender
<
ILoggingEvent
>
buildLogstashAppender
(
LoggerContext
context
)
{
LogstashTcpSocketAppender
appender
=
new
LogstashTcpSocketAppender
();
appender
.
setContext
(
context
);
appender
.
addDestination
(
p
roperties
.
getLogstashAddress
());
appender
.
addDestination
(
loggingP
roperties
.
getLogstashAddress
());
appender
.
setEncoder
(
createJsonEncoder
(
context
));
appender
.
start
();
return
appender
;
...
...
@@ -127,6 +131,7 @@ public class LoggerConfigurationInitializer {
}
private
String
getCustomFields
()
{
HostInfo
hostInfo
=
HostInfoHolder
.
getHostInfo
();
JSONObject
customFields
=
new
JSONObject
();
customFields
.
set
(
"appName"
,
applicationName
);
customFields
.
set
(
"hostName"
,
hostInfo
.
getHostname
());
...
...
@@ -145,12 +150,12 @@ public class LoggerConfigurationInitializer {
}
private
String
getPathLocation
(
String
path
)
{
return
Paths
.
get
(
p
roperties
.
getLogPath
(),
path
).
toString
();
return
Paths
.
get
(
loggingP
roperties
.
getLogPath
(),
path
).
toString
();
}
private
TimeBasedRollingPolicy
<
ILoggingEvent
>
createRollingPolicy
(
Context
context
,
FileAppender
<
ILoggingEvent
>
appender
)
{
TimeBasedRollingPolicy
<
ILoggingEvent
>
rollingPolicy
=
new
TimeBasedRollingPolicy
<>();
rollingPolicy
.
setMaxHistory
(
p
roperties
.
getMaxHistory
());
rollingPolicy
.
setMaxHistory
(
loggingP
roperties
.
getMaxHistory
());
rollingPolicy
.
setFileNamePattern
(
getPathLocation
(
"json/json-%d{yyyy-MM-dd}.log"
));
rollingPolicy
.
setContext
(
context
);
rollingPolicy
.
setParent
(
appender
);
...
...
starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/Logg
er
AutoConfiguration.java
→
starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/Logg
ing
AutoConfiguration.java
View file @
56bd4f4e
package
com.schbrain.framework.autoconfigure.logger
;
import
com.schbrain.framework.autoconfigure.logger.apollo.DynamicLogg
er
Configuration
;
import
com.schbrain.framework.autoconfigure.logger.properties.Logg
er
Properties
;
import
com.schbrain.framework.autoconfigure.logger.apollo.DynamicLogg
ing
Configuration
;
import
com.schbrain.framework.autoconfigure.logger.properties.Logg
ing
Properties
;
import
org.springframework.boot.autoconfigure.AutoConfiguration
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.context.annotation.Import
;
...
...
@@ -11,8 +11,8 @@ import org.springframework.context.annotation.Import;
* @since 2021/11/19
*/
@AutoConfiguration
@Import
(
DynamicLogg
er
Configuration
.
class
)
@EnableConfigurationProperties
(
Logg
er
Properties
.
class
)
public
class
Logg
er
AutoConfiguration
{
@Import
(
DynamicLogg
ing
Configuration
.
class
)
@EnableConfigurationProperties
(
Logg
ing
Properties
.
class
)
public
class
Logg
ing
AutoConfiguration
{
}
starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/DynamicLogg
er
Configuration.java
→
starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/apollo/DynamicLogg
ing
Configuration.java
View file @
56bd4f4e
...
...
@@ -2,7 +2,7 @@ package com.schbrain.framework.autoconfigure.logger.apollo;
import
com.ctrip.framework.apollo.Config
;
import
com.ctrip.framework.apollo.ConfigService
;
import
com.schbrain.framework.autoconfigure.logger.properties.Logg
er
Properties
;
import
com.schbrain.framework.autoconfigure.logger.properties.Logg
ing
Properties
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.boot.logging.LoggingSystem
;
...
...
@@ -14,22 +14,22 @@ import org.springframework.boot.logging.LoggingSystem;
* @since 2021/11/19
**/
@Slf4j
public
class
DynamicLogg
er
Configuration
{
public
class
DynamicLogg
ing
Configuration
{
public
DynamicLogg
erConfiguration
(
LoggingSystem
loggingSystem
,
LoggerProperties
logger
Properties
)
{
this
.
listenToLoggingLevelChange
(
loggingSystem
,
logg
er
Properties
);
public
DynamicLogg
ingConfiguration
(
LoggingSystem
loggingSystem
,
LoggingProperties
logging
Properties
)
{
this
.
listenToLoggingLevelChange
(
loggingSystem
,
logg
ing
Properties
);
}
private
void
listenToLoggingLevelChange
(
LoggingSystem
loggingSystem
,
Logg
erProperties
logger
Properties
)
{
String
logg
erNamespace
=
logger
Properties
.
getNamespace
();
if
(
StringUtils
.
isBlank
(
logg
er
Namespace
))
{
log
.
debug
(
"logg
er
level reload is disabled"
);
private
void
listenToLoggingLevelChange
(
LoggingSystem
loggingSystem
,
Logg
ingProperties
logging
Properties
)
{
String
logg
ingNamespace
=
logging
Properties
.
getNamespace
();
if
(
StringUtils
.
isBlank
(
logg
ing
Namespace
))
{
log
.
debug
(
"logg
ing
level reload is disabled"
);
return
;
}
log
.
debug
(
"init logg
er level listener, logger namespace: {}"
,
logger
Namespace
);
log
.
debug
(
"init logg
ing level listener, logging namespace: {}"
,
logging
Namespace
);
Config
config
=
ConfigService
.
getConfig
(
logg
er
Namespace
);
Config
config
=
ConfigService
.
getConfig
(
logg
ing
Namespace
);
if
(
config
==
null
)
{
return
;
}
...
...
starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/listener/Logg
er
ConfigLoadedEventListener.java
→
starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/listener/Logg
ing
ConfigLoadedEventListener.java
View file @
56bd4f4e
...
...
@@ -6,12 +6,12 @@ import com.ctrip.framework.apollo.ConfigFile;
import
com.ctrip.framework.apollo.ConfigService
;
import
com.ctrip.framework.apollo.core.enums.ConfigFileFormat
;
import
com.google.common.collect.Maps
;
import
com.schbrain.common.util.
InetUtils
;
import
com.schbrain.common.util.
InetUtils
.HostInfo
;
import
com.schbrain.common.util.
HostInfoHolder
;
import
com.schbrain.common.util.
HostInfoHolder
.HostInfo
;
import
com.schbrain.framework.autoconfigure.apollo.event.ConfigLoadedEvent
;
import
com.schbrain.framework.autoconfigure.apollo.event.listener.
GenericConfigLoadedEventListene
r
;
import
com.schbrain.framework.autoconfigure.logger.
LoggerConfiguration
Initializer
;
import
com.schbrain.framework.autoconfigure.logger.properties.Logg
er
Properties
;
import
com.schbrain.framework.autoconfigure.apollo.event.listener.
ConfigLoadedEventListenerAdapto
r
;
import
com.schbrain.framework.autoconfigure.logger.
JSONLogging
Initializer
;
import
com.schbrain.framework.autoconfigure.logger.properties.Logg
ing
Properties
;
import
org.apache.commons.lang3.StringUtils
;
import
org.springframework.boot.context.logging.LoggingApplicationListener
;
import
org.springframework.boot.logging.LogFile
;
...
...
@@ -31,28 +31,24 @@ import static org.springframework.boot.context.logging.LoggingApplicationListene
* @author liaozan
* @since 2023-04-28
*/
public
class
LoggerConfigLoadedEventListener
extends
GenericConfigLoadedEventListener
<
LoggerProperties
>
{
private
LoggerConfigurationInitializer
loggerInitializer
;
public
class
LoggingConfigLoadedEventListener
extends
ConfigLoadedEventListenerAdaptor
<
LoggingProperties
>
{
@Override
public
void
initialize
(
ConfigurableApplicationContext
applicationContext
)
{
loggerInitializer
.
init
();
protected
void
onConfigLoaded
(
ConfigLoadedEvent
event
,
LoggingProperties
properties
)
{
event
.
getPropertySource
().
addProperties
(
buildHostInfoProperties
());
configLoggingFileLocation
(
event
.
getEnvironment
(),
properties
.
getLogConfigNamespace
());
}
@Override
protected
void
onConfigLoaded
(
ConfigLoadedEvent
event
,
LoggerProperties
properties
)
{
HostInfo
hostInfo
=
InetUtils
.
findFirstNonLoopBackHostInfo
();
Map
<
String
,
Object
>
hostInfoProperties
=
buildHostInfoProperties
(
hostInfo
);
event
.
getPropertySource
().
addProperties
(
hostInfoProperties
);
configLoggingFileLocation
(
event
.
getEnvironment
(),
properties
.
getLogConfigNamespace
());
this
.
loggerInitializer
=
new
LoggerConfigurationInitializer
(
event
.
getEnvironment
(),
properties
,
hostInfo
);
protected
void
onApplicationContextInitialized
(
ConfigurableApplicationContext
context
,
LoggingProperties
properties
)
{
JSONLoggingInitializer
.
init
(
context
.
getEnvironment
(),
properties
);
}
/**
* hostInfo properties, for logging pattern
* hostInfo properties, for logging pattern
, used in logback-spring.xml
*/
private
Map
<
String
,
Object
>
buildHostInfoProperties
(
HostInfo
hostInfo
)
{
private
Map
<
String
,
Object
>
buildHostInfoProperties
()
{
HostInfo
hostInfo
=
HostInfoHolder
.
getHostInfo
();
Map
<
String
,
Object
>
properties
=
Maps
.
newHashMapWithExpectedSize
(
2
);
properties
.
put
(
"application.hostname"
,
hostInfo
.
getHostname
());
properties
.
put
(
"application.ipAddress"
,
hostInfo
.
getIpAddress
());
...
...
starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/properties/Logg
er
Properties.java
→
starters/logger-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/logger/properties/Logg
ing
Properties.java
View file @
56bd4f4e
...
...
@@ -13,7 +13,7 @@ import java.time.Duration;
*/
@Data
@ConfigurationProperties
(
prefix
=
"schbrain.logging.file"
)
public
class
Logg
er
Properties
implements
ConfigurableProperties
,
PriorityOrdered
{
public
class
Logg
ing
Properties
implements
ConfigurableProperties
,
PriorityOrdered
{
public
static
final
String
DEFAULT_LOG_PATH
=
"/data/logs"
;
...
...
starters/logger-spring-boot-starter/src/main/resources/META-INF/spring.factories
View file @
56bd4f4e
org.springframework.context.ApplicationContextInitializer=\
com.schbrain.framework.autoconfigure.logger.logback.LogbackTraceIdConfiguration
org.springframework.context.ApplicationListener=\
com.schbrain.framework.autoconfigure.logger.listener.Logg
er
ConfigLoadedEventListener
com.schbrain.framework.autoconfigure.logger.listener.Logg
ing
ConfigLoadedEventListener
com.schbrain.common.util.support.ConfigurableProperties=\
com.schbrain.framework.autoconfigure.logger.properties.LoggerProperties
\ No newline at end of file
com.schbrain.framework.autoconfigure.logger.properties.LoggingProperties
starters/logger-spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
View file @
56bd4f4e
com.schbrain.framework.autoconfigure.logger.LoggerAutoConfiguration
\ No newline at end of file
com.schbrain.framework.autoconfigure.logger.LoggingAutoConfiguration
starters/xxl-job-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/xxl/XxlJobAutoConfiguration.java
View file @
56bd4f4e
package
com.schbrain.framework.autoconfigure.xxl
;
import
com.schbrain.common.util.ApplicationName
;
import
com.schbrain.framework.autoconfigure.logger.properties.Logg
er
Properties
;
import
com.schbrain.framework.autoconfigure.logger.properties.Logg
ing
Properties
;
import
com.schbrain.framework.autoconfigure.xxl.condition.XxlJobShouldAvailableCondition
;
import
com.schbrain.framework.autoconfigure.xxl.properties.XxlJobProperties
;
import
com.xxl.job.core.executor.XxlJobExecutor
;
...
...
@@ -25,7 +25,7 @@ public class XxlJobAutoConfiguration {
@Bean
(
initMethod
=
"start"
,
destroyMethod
=
"destroy"
)
@ConditionalOnMissingBean
(
XxlJobExecutor
.
class
)
public
XxlJobSpringExecutor
xxlJobSpringExecutor
(
XxlJobProperties
xxlJobProperties
,
Logg
er
Properties
loggingProperties
)
{
public
XxlJobSpringExecutor
xxlJobSpringExecutor
(
XxlJobProperties
xxlJobProperties
,
Logg
ing
Properties
loggingProperties
)
{
XxlJobSpringExecutor
executor
=
new
XxlJobSpringExecutor
();
executor
.
setAdminAddresses
(
xxlJobProperties
.
getAdminAddresses
());
executor
.
setIp
(
xxlJobProperties
.
getIp
());
...
...
starters/xxl-job-spring-boot-starter/src/main/java/com/schbrain/framework/autoconfigure/xxl/properties/XxlJobProperties.java
View file @
56bd4f4e
package
com.schbrain.framework.autoconfigure.xxl.properties
;
import
com.schbrain.common.util.
InetUtils
;
import
com.schbrain.common.util.
HostInfoHolder
;
import
com.schbrain.common.util.support.ConfigurableProperties
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
...
...
@@ -15,7 +15,7 @@ public class XxlJobProperties implements ConfigurableProperties {
private
String
adminAddresses
;
private
String
ip
=
InetUtils
.
findFirstNonLoopBack
HostInfo
().
getIpAddress
();
private
String
ip
=
HostInfoHolder
.
get
HostInfo
().
getIpAddress
();
private
int
port
=
-
1
;
...
...
support/schbrain-spring-support/src/main/java/com/schbrain/framework/support/spring/startup/BufferingApplicationStartupApplicationContextInitializer.java
deleted
100644 → 0
View file @
a9c641a6
package
com.schbrain.framework.support.spring.startup
;
import
org.springframework.boot.context.metrics.buffering.BufferingApplicationStartup
;
import
org.springframework.context.ApplicationContextInitializer
;
import
org.springframework.context.ConfigurableApplicationContext
;
import
org.springframework.core.metrics.ApplicationStartup
;
/**
* @author liaozan
* @since 2023-06-12
*/
public
class
BufferingApplicationStartupApplicationContextInitializer
implements
ApplicationContextInitializer
<
ConfigurableApplicationContext
>
{
@Override
public
void
initialize
(
ConfigurableApplicationContext
applicationContext
)
{
if
(
applicationContext
.
getApplicationStartup
()
==
ApplicationStartup
.
DEFAULT
)
{
applicationContext
.
setApplicationStartup
(
new
BufferingApplicationStartup
(
Integer
.
MAX_VALUE
));
}
}
}
\ No newline at end of file
support/schbrain-spring-support/src/main/resources/META-INF/spring.factories
View file @
56bd4f4e
org.springframework.boot.env.EnvironmentPostProcessor=com.schbrain.framework.support.spring.env.DefaultPropertiesEnvironmentPostProcessor
org.springframework.context.ApplicationContextInitializer=com.schbrain.framework.support.spring.startup.BufferingApplicationStartupApplicationContextInitializer
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