Unverified Commit b8743111 authored by aiwenmo's avatar aiwenmo Committed by GitHub

[Optimization-382][alert,metadata] Optimization SPI

[Optimization-382][alert,metadata] Optimization SPI
parents 7b389ffc d88154a7
package com.dlink.alert; package com.dlink.alert;
import com.dlink.assertion.Asserts;
import sun.misc.Service;
import java.util.Iterator;
import java.util.Optional; import java.util.Optional;
import java.util.ServiceLoader;
import com.dlink.assertion.Asserts;
/** /**
* Alert * Alert
...@@ -17,9 +15,8 @@ public interface Alert { ...@@ -17,9 +15,8 @@ public interface Alert {
static Optional<Alert> get(AlertConfig config) { static Optional<Alert> get(AlertConfig config) {
Asserts.checkNotNull(config, "报警组件配置不能为空"); Asserts.checkNotNull(config, "报警组件配置不能为空");
Iterator<Alert> providers = Service.providers(Alert.class); ServiceLoader<Alert> alerts = ServiceLoader.load(Alert.class);
while (providers.hasNext()) { for (Alert alert : alerts) {
Alert alert = providers.next();
if (alert.canHandle(config.getType())) { if (alert.canHandle(config.getType())) {
return Optional.of(alert.setConfig(config)); return Optional.of(alert.setConfig(config));
} }
......
package com.dlink.metadata.driver; package com.dlink.metadata.driver;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.ServiceLoader;
import com.dlink.assertion.Asserts; import com.dlink.assertion.Asserts;
import com.dlink.exception.MetaDataException; import com.dlink.exception.MetaDataException;
import com.dlink.metadata.result.JdbcSelectResult; import com.dlink.metadata.result.JdbcSelectResult;
...@@ -7,12 +12,6 @@ import com.dlink.model.Column; ...@@ -7,12 +12,6 @@ import com.dlink.model.Column;
import com.dlink.model.Schema; import com.dlink.model.Schema;
import com.dlink.model.Table; import com.dlink.model.Table;
import com.dlink.result.SqlExplainResult; import com.dlink.result.SqlExplainResult;
import sun.misc.Service;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Optional;
/** /**
* Driver * Driver
...@@ -24,11 +23,10 @@ public interface Driver { ...@@ -24,11 +23,10 @@ public interface Driver {
static Optional<Driver> get(DriverConfig config) { static Optional<Driver> get(DriverConfig config) {
Asserts.checkNotNull(config, "数据源配置不能为空"); Asserts.checkNotNull(config, "数据源配置不能为空");
Iterator<Driver> providers = Service.providers(Driver.class); ServiceLoader<Driver> drivers = ServiceLoader.load(Driver.class);
while (providers.hasNext()) { for (Driver driver : drivers) {
Driver gainer = providers.next(); if (driver.canHandle(config.getType())) {
if (gainer.canHandle(config.getType())) { return Optional.of(driver.setDriverConfig(config));
return Optional.of(gainer.setDriverConfig(config));
} }
} }
return Optional.empty(); return Optional.empty();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment