Skip to content

Commit 3cfdeb1

Browse files
authored
feat: 优化日志打印,增加polarisLoggingApplicationListener的配置 (#177)
* fix: optimize the discovery inject logic and fix nacos config not working issue * feat: 删除无用的导入 * feat: 增加actuator到demo中 * fix: add lossless healthcheck for example * fix: add configuration comments * fix: 修复事件日志不输出的问题 * release: release version to 1.7.0-RC1 * feat: new add java agent for hoxton * feat: support service registry and config * feat: refrator all inject logics into BeanInjector * feat: add gray release example & dispatch bean register into plugins * feat: add environment parameter to obtain the configuration * feat: 增加元数据传输相关拦截器 * feat: 调整example打包脚本 * fix: 修复脚本没法跳转的问题 * fix: 修正样例的配置文件 * fix: 修复熔断无法加载的问题 * fix: 更新北极星的版本号依赖 * fix: 调整版本依赖 * feat:对齐deployment与application中的服务名定义 * feat: optimize default-plugin.conf to load once per lifecyle * feat: 优化日志打印,增加polarisLoggingApplicationListener的配置
1 parent 7390b61 commit 3cfdeb1

File tree

23 files changed

+285
-21
lines changed

23 files changed

+285
-21
lines changed

polaris-agent-core/polaris-agent-core-common/src/main/java/cn/polarismesh/agent/core/common/utils/ClassUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public static <T> Class<T> getClazz(String clazzName, ClassLoader classLoader) {
2727
try {
2828
return (Class<T>) Class.forName(clazzName, false, classLoader);
2929
} catch (ClassNotFoundException e) {
30-
logger.warn(String.format("class %s not found, error %s", clazzName, e.getLocalizedMessage()));
30+
logger.info(String.format("class %s not found", clazzName));
3131
}
3232
return null;
3333
}

polaris-agent-plugins/spring-cloud-plugins/pom.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
<module>spring-cloud-2020-plugin</module>
1919
<module>spring-cloud-hoxton-plugin</module>
2020
<module>spring-cloud-2023-plugin</module>
21-
</modules>
21+
<module>spring-cloud-plugin-common</module>
22+
</modules>
2223

2324
<properties>
2425
<jdk.version>1.8</jdk.version>

polaris-agent-plugins/spring-cloud-plugins/spring-cloud-hoxton-plugin/pom.xml

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
<properties>
1616
<spring.cloud.version>Hoxton.SR12</spring.cloud.version>
1717
<spring.cloud.tencent.version>1.14.0-Hoxton.SR12-SNAPSHOT</spring.cloud.tencent.version>
18-
<spring.boot.version>2.3.7.RELEASE</spring.boot.version>
18+
<spring.boot.version>2.3.12.RELEASE</spring.boot.version>
1919
<slf4j.vesion>1.7.30</slf4j.vesion>
2020
</properties>
2121

@@ -61,6 +61,11 @@
6161
</dependencyManagement>
6262

6363
<dependencies>
64+
<dependency>
65+
<groupId>com.tencent.polaris</groupId>
66+
<artifactId>spring-cloud-plugin-common</artifactId>
67+
<version>${project.version}</version>
68+
</dependency>
6469
<dependency>
6570
<groupId>org.springframework.cloud</groupId>
6671
<artifactId>spring-cloud-starter-openfeign</artifactId>

polaris-agent-plugins/spring-cloud-plugins/spring-cloud-hoxton-plugin/src/main/java/cn/polarismesh/agent/plugin/spring/cloud/MainPlugin.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import cn.polarismesh.agent.plugin.spring.cloud.interceptor.ConfigurationParserInterceptor;
3232
import cn.polarismesh.agent.plugin.spring.cloud.interceptor.ConfigurationPostProcessorInterceptor;
3333
import cn.polarismesh.agent.plugin.spring.cloud.interceptor.RegisterBeanInterceptor;
34+
import cn.polarismesh.agent.plugin.spring.cloud.interceptor.SpringFactoriesLoaderInterceptor;
3435

3536
/**
3637
* Polaris Spring Cloud hoxton Plugin
@@ -57,6 +58,9 @@ private void addPolarisTransformers(TransformOperations operations) {
5758

5859
// 注入bean定义的调整设置
5960
operations.transform(Constant.BEAN_DEFINITION_REGISTRY, RegisterBeanDefinitionTransform.class);
61+
62+
// 注入JNI定义
63+
operations.transform(Constant.SPRING_FACTORIES_LOADER, SpringFactoriesLoaderTransform.class);
6064
}
6165

6266
public static class ConfigurationParserTransform implements TransformCallback {
@@ -100,4 +104,19 @@ public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader,
100104
return target.toBytecode();
101105
}
102106
}
107+
108+
public static class SpringFactoriesLoaderTransform implements TransformCallback {
109+
110+
@Override
111+
public byte[] doInTransform(Instrumentor instrumentor, ClassLoader classLoader, String className, Class<?> classBeingRedefined, ProtectionDomain protectionDomain, byte[] classFileBuffer) throws InstrumentException {
112+
InstrumentClass target = instrumentor.getInstrumentClass(classLoader, className, classFileBuffer);
113+
InstrumentMethod constructMethod = target.getDeclaredMethod("loadSpringFactories", "java.lang.ClassLoader");
114+
if (constructMethod != null) {
115+
constructMethod.addInterceptor(SpringFactoriesLoaderInterceptor.class);
116+
}
117+
118+
return target.toBytecode();
119+
}
120+
}
121+
103122
}

polaris-agent-plugins/spring-cloud-plugins/spring-cloud-hoxton-plugin/src/main/java/cn/polarismesh/agent/plugin/spring/cloud/inject/CircuitBreakerBeanInjector.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,11 @@
1515
import org.springframework.core.env.Environment;
1616

1717
public class CircuitBreakerBeanInjector implements BeanInjector {
18+
@Override
19+
public String getModule() {
20+
return "spring-cloud-starter-tencent-polaris-circuitbreaker";
21+
}
22+
1823
@Override
1924
public void onBootstrapStartup(Object configurationParser, Constructor<?> configClassCreator, Method processConfigurationClass, BeanDefinitionRegistry registry, Environment environment) {
2025
Object polarisCircuitBreakerBootstrapConfiguration = ReflectionUtils.invokeConstructor(configClassCreator, PolarisCircuitBreakerBootstrapConfiguration.class, "polarisCircuitBreakerBootstrapConfiguration");

polaris-agent-plugins/spring-cloud-plugins/spring-cloud-hoxton-plugin/src/main/java/cn/polarismesh/agent/plugin/spring/cloud/inject/CommonBeanInjector.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@
3232
import org.springframework.core.env.Environment;
3333

3434
public class CommonBeanInjector implements BeanInjector {
35+
@Override
36+
public String getModule() {
37+
return "spring-cloud-tencent-commons";
38+
}
39+
3540
@Override
3641
public void onBootstrapStartup(Object configurationParser, Constructor<?> configClassCreator, Method processConfigurationClass, BeanDefinitionRegistry registry, Environment environment) {
3742

polaris-agent-plugins/spring-cloud-plugins/spring-cloud-hoxton-plugin/src/main/java/cn/polarismesh/agent/plugin/spring/cloud/inject/ConfigBeanInjector.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@
3232
import org.springframework.core.env.Environment;
3333

3434
public class ConfigBeanInjector implements BeanInjector {
35+
@Override
36+
public String getModule() {
37+
return "spring-cloud-starter-tencent-polaris-config";
38+
}
39+
3540
@Override
3641
public void onBootstrapStartup(Object configurationParser, Constructor<?> configClassCreator, Method processConfigurationClass, BeanDefinitionRegistry registry, Environment environment) {
3742
Object polarisConfigBootstrapAutoConfiguration = ReflectionUtils.invokeConstructor(configClassCreator, PolarisConfigBootstrapAutoConfiguration.class, "polarisConfigBootstrapAutoConfiguration");

polaris-agent-plugins/spring-cloud-plugins/spring-cloud-hoxton-plugin/src/main/java/cn/polarismesh/agent/plugin/spring/cloud/inject/LoadbalancerBeanInjector.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@
3030
import org.springframework.core.env.Environment;
3131

3232
public class LoadbalancerBeanInjector implements BeanInjector {
33+
@Override
34+
public String getModule() {
35+
return "spring-cloud-tencent-polaris-loadbalancer";
36+
}
37+
3338
@Override
3439
public void onBootstrapStartup(Object configurationParser, Constructor<?> configClassCreator, Method processConfigurationClass, BeanDefinitionRegistry registry, Environment environment) {
3540

polaris-agent-plugins/spring-cloud-plugins/spring-cloud-hoxton-plugin/src/main/java/cn/polarismesh/agent/plugin/spring/cloud/inject/LosslessBeanInjector.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@
3232
import org.springframework.core.env.Environment;
3333

3434
public class LosslessBeanInjector implements BeanInjector {
35+
@Override
36+
public String getModule() {
37+
return "spring-cloud-tencent-lossless-plugin";
38+
}
39+
3540
@Override
3641
public void onBootstrapStartup(Object configurationParser, Constructor<?> configClassCreator, Method processConfigurationClass, BeanDefinitionRegistry registry, Environment environment) {
3742
Object losslessPropertiesBootstrapConfiguration = ReflectionUtils.invokeConstructor(configClassCreator, LosslessPropertiesBootstrapConfiguration.class, "losslessPropertiesBootstrapConfiguration");

polaris-agent-plugins/spring-cloud-plugins/spring-cloud-hoxton-plugin/src/main/java/cn/polarismesh/agent/plugin/spring/cloud/inject/MetadataTransferBeanInjector.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@
3131

3232
public class MetadataTransferBeanInjector implements BeanInjector {
3333

34+
@Override
35+
public String getModule() {
36+
return "spring-cloud-starter-tencent-metadata-transfer";
37+
}
38+
3439
@Override
3540
public void onBootstrapStartup(Object configurationParser, Constructor<?> configClassCreator, Method processConfigurationClass, BeanDefinitionRegistry registry, Environment environment) {
3641

0 commit comments

Comments
 (0)