|
13 | 13 | import org.embulk.spi.Schema; |
14 | 14 | import org.embulk.util.config.Config; |
15 | 15 | import org.embulk.util.config.ConfigDefault; |
| 16 | +import org.embulk.util.config.Task; |
16 | 17 | import org.slf4j.Logger; |
17 | 18 | import org.slf4j.LoggerFactory; |
18 | 19 |
|
@@ -55,6 +56,20 @@ public interface DatabricksPluginTask extends PluginTask { |
55 | 56 | @ConfigDefault("null") |
56 | 57 | public Optional<String> getSchemaName(); |
57 | 58 |
|
| 59 | + @Config("user_agent") |
| 60 | + @ConfigDefault("{}") |
| 61 | + public UserAgentEntry getUserAgentEntry(); |
| 62 | + |
| 63 | + public interface UserAgentEntry extends Task { |
| 64 | + @Config("product_name") |
| 65 | + @ConfigDefault("\"unknown\"") |
| 66 | + public String getProductName(); |
| 67 | + |
| 68 | + @Config("product_version") |
| 69 | + @ConfigDefault("\"0.0.0\"") |
| 70 | + public String getProductVersion(); |
| 71 | + } |
| 72 | + |
58 | 73 | static String fetchPersonalAccessToken(DatabricksPluginTask t) { |
59 | 74 | return validatePresence(t.getPersonalAccessToken(), "personal_access_token"); |
60 | 75 | } |
@@ -123,6 +138,11 @@ protected JdbcInputConnection newConnection(PluginTask task) throws SQLException |
123 | 138 | } |
124 | 139 | props.putAll(t.getOptions()); |
125 | 140 |
|
| 141 | + // overwrite UserAgentEntry property if the same property is set in options |
| 142 | + String productName = t.getUserAgentEntry().getProductName(); |
| 143 | + String productVersion = t.getUserAgentEntry().getProductVersion(); |
| 144 | + props.put("UserAgentEntry", productName + "/" + productVersion); |
| 145 | + |
126 | 146 | logConnectionProperties(url, props); |
127 | 147 | Connection c = DriverManager.getConnection(url, props); |
128 | 148 | return new DatabricksInputConnection( |
|
0 commit comments