You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by wu...@apache.org on 2022/01/06 08:55:03 UTC
[shardingsphere-elasticjob] branch master updated: Enhance springboot starter tracing config (#2034)
This is an automated email from the ASF dual-hosted git repository.
wuweijie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere-elasticjob.git
The following commit(s) were added to refs/heads/master by this push:
new 0946af4 Enhance springboot starter tracing config (#2034)
0946af4 is described below
commit 0946af48d24aeb18b9137fc048beae2cf53c2b57
Author: verysu <25...@qq.com>
AuthorDate: Thu Jan 6 16:54:46 2022 +0800
Enhance springboot starter tracing config (#2034)
* add JobSystemException Constructor
fixed Script Job throw Exception stack was ignored
* Add unit case for JobSystemException
* Add customized Tracing DataSource
* Add custom Tracing DataSource
* Add custom Tracing DataSource: Refactor
* Add custom Tracing DataSource : add param javadoc
---
.../tracing/ElasticJobTracingConfiguration.java | 33 ++++++++++++++++++++--
.../spring/boot/tracing/TracingProperties.java | 9 ++++--
2 files changed, 36 insertions(+), 6 deletions(-)
diff --git a/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/boot/tracing/ElasticJobTracingConfiguration.java b/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/boot/tracing/ElasticJobTracingConfiguration.java
index 694a0c7..3dd0afe 100644
--- a/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/boot/tracing/ElasticJobTracingConfiguration.java
+++ b/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/boot/tracing/ElasticJobTracingConfiguration.java
@@ -17,11 +17,15 @@
package org.apache.shardingsphere.elasticjob.lite.spring.boot.tracing;
+import com.zaxxer.hikari.HikariDataSource;
import org.apache.shardingsphere.elasticjob.tracing.api.TracingConfiguration;
+import org.springframework.beans.BeanUtils;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
+import org.springframework.lang.Nullable;
import javax.sql.DataSource;
@@ -30,17 +34,40 @@ import javax.sql.DataSource;
*/
@EnableConfigurationProperties(TracingProperties.class)
public class ElasticJobTracingConfiguration {
-
+
+ /**
+ * Create a bean of tracing DataSource.
+ *
+ * @param tracingProperties tracing Properties
+ * @return tracing DataSource
+ */
+ @Bean("tracingDataSource")
+ public DataSource tracingDataSource(final TracingProperties tracingProperties) {
+ DataSourceProperties dataSource = tracingProperties.getDataSource();
+ if (dataSource == null) {
+ return null;
+ }
+ HikariDataSource tracingDataSource = new HikariDataSource();
+ tracingDataSource.setJdbcUrl(dataSource.getUrl());
+ BeanUtils.copyProperties(dataSource, tracingDataSource);
+ return tracingDataSource;
+ }
+
/**
* Create a bean of tracing configuration.
*
* @param dataSource required by constructor
+ * @param tracingDataSource tracing ataSource
* @return a bean of tracing configuration
*/
@Bean
@ConditionalOnBean(DataSource.class)
@ConditionalOnProperty(name = "elasticjob.tracing.type", havingValue = "RDB")
- public TracingConfiguration<DataSource> tracingConfiguration(final DataSource dataSource) {
- return new TracingConfiguration<>("RDB", dataSource);
+ public TracingConfiguration<DataSource> tracingConfiguration(final DataSource dataSource, @Nullable final DataSource tracingDataSource) {
+ DataSource ds = tracingDataSource;
+ if (ds == null) {
+ ds = dataSource;
+ }
+ return new TracingConfiguration<>("RDB", ds);
}
}
diff --git a/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/boot/tracing/TracingProperties.java b/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/boot/tracing/TracingProperties.java
index 8cf604d..0ed0aec 100644
--- a/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/boot/tracing/TracingProperties.java
+++ b/elasticjob-lite/elasticjob-lite-spring/elasticjob-lite-spring-boot-starter/src/main/java/org/apache/shardingsphere/elasticjob/lite/spring/boot/tracing/TracingProperties.java
@@ -19,6 +19,7 @@ package org.apache.shardingsphere.elasticjob.lite.spring.boot.tracing;
import lombok.Getter;
import lombok.Setter;
+import org.springframework.boot.autoconfigure.jdbc.DataSourceProperties;
import org.springframework.boot.context.properties.ConfigurationProperties;
import java.util.HashSet;
@@ -28,10 +29,12 @@ import java.util.Set;
@Setter
@ConfigurationProperties(prefix = "elasticjob.tracing")
public class TracingProperties {
-
+
private String type;
-
+
+ private DataSourceProperties dataSource;
+
private Set<String> includeJobNames = new HashSet<>();
-
+
private Set<String> excludeJobNames = new HashSet<>();
}