瀏覽代碼

Refine the methods and variable name in SlotChainProvider (#871)

master
yidadi Eric Zhao 5 年之前
父節點
當前提交
c14e3296cb
共有 1 個檔案被更改,包括 12 行新增19 行删除
  1. +12
    -19
      sentinel-core/src/main/java/com/alibaba/csp/sentinel/slotchain/SlotChainProvider.java

+ 12
- 19
sentinel-core/src/main/java/com/alibaba/csp/sentinel/slotchain/SlotChainProvider.java 查看文件

@@ -15,12 +15,9 @@
*/ */
package com.alibaba.csp.sentinel.slotchain; package com.alibaba.csp.sentinel.slotchain;


import java.util.ArrayList;
import java.util.List;
import java.util.ServiceLoader;

import com.alibaba.csp.sentinel.log.RecordLog; import com.alibaba.csp.sentinel.log.RecordLog;
import com.alibaba.csp.sentinel.slots.DefaultSlotChainBuilder; import com.alibaba.csp.sentinel.slots.DefaultSlotChainBuilder;
import java.util.ServiceLoader;


/** /**
* A provider for creating slot chains via resolved slot chain builder SPI. * A provider for creating slot chains via resolved slot chain builder SPI.
@@ -30,7 +27,7 @@ import com.alibaba.csp.sentinel.slots.DefaultSlotChainBuilder;
*/ */
public final class SlotChainProvider { public final class SlotChainProvider {


private static volatile SlotChainBuilder builder = null;
private static volatile SlotChainBuilder slotChainBuilder = null;


private static final ServiceLoader<SlotChainBuilder> LOADER = ServiceLoader.load(SlotChainBuilder.class); private static final ServiceLoader<SlotChainBuilder> LOADER = ServiceLoader.load(SlotChainBuilder.class);


@@ -41,37 +38,33 @@ public final class SlotChainProvider {
* @return new created slot chain * @return new created slot chain
*/ */
public static ProcessorSlotChain newSlotChain() { public static ProcessorSlotChain newSlotChain() {
if (builder != null) {
return builder.build();
if (slotChainBuilder != null) {
return slotChainBuilder.build();
} }


resolveSlotChainBuilder(); resolveSlotChainBuilder();


if (builder == null) {
if (slotChainBuilder == null) {
RecordLog.warn("[SlotChainProvider] Wrong state when resolving slot chain builder, using default"); RecordLog.warn("[SlotChainProvider] Wrong state when resolving slot chain builder, using default");
builder = new DefaultSlotChainBuilder();
slotChainBuilder = new DefaultSlotChainBuilder();
} }
return builder.build();
return slotChainBuilder.build();
} }


private static void resolveSlotChainBuilder() { private static void resolveSlotChainBuilder() {
List<SlotChainBuilder> list = new ArrayList<SlotChainBuilder>();
boolean hasOther = false;
for (SlotChainBuilder builder : LOADER) { for (SlotChainBuilder builder : LOADER) {
if (builder.getClass() != DefaultSlotChainBuilder.class) { if (builder.getClass() != DefaultSlotChainBuilder.class) {
hasOther = true;
list.add(builder);
slotChainBuilder = builder;
break;
} }
} }
if (hasOther) {
builder = list.get(0);
} else {
if (slotChainBuilder == null){
// No custom builder, using default. // No custom builder, using default.
builder = new DefaultSlotChainBuilder();
slotChainBuilder = new DefaultSlotChainBuilder();
} }


RecordLog.info("[SlotChainProvider] Global slot chain builder resolved: " RecordLog.info("[SlotChainProvider] Global slot chain builder resolved: "
+ builder.getClass().getCanonicalName());
+ slotChainBuilder.getClass().getCanonicalName());
} }


private SlotChainProvider() {} private SlotChainProvider() {}


Loading…
取消
儲存