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<>();
 }