This is an automated email from the ASF dual-hosted git repository.
alexstocks pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/dubbo-go.git
The following commit(s) were added to refs/heads/develop by this push:
new 9d591336c fix(router): call BuildRouterChain method when creating
directory. (#3225)
9d591336c is described below
commit 9d591336c0fea3a60cf9c12836e1bfef60e85a9b
Author: yangpixi <[email protected]>
AuthorDate: Sat Mar 7 05:33:04 2026 +0800
fix(router): call BuildRouterChain method when creating directory. (#3225)
* fix(router): call BuildRouterChain method when creating static directory.
* style: use imports-formatter to format code
* ci: register router factory method in unit test.
* ci: import tag router package to resolve no router factory problem.
* fix: add failback, remove unnecessary import
* fix: refactor failback mechanic, return the exception that len(URLs)
equals 0
---
client/action.go | 7 +++++++
cluster/cluster/available/cluster_invoker_test.go | 1 +
cluster/cluster/broadcast/cluster_invoker_test.go | 1 +
cluster/cluster/failback/cluster_test.go | 1 +
cluster/cluster/failfast/cluster_test.go | 1 +
cluster/cluster/failover/cluster_test.go | 1 +
cluster/cluster/failsafe/cluster_test.go | 1 +
cluster/cluster/forking/cluster_test.go | 1 +
cluster/cluster/zoneaware/cluster_invoker_test.go | 1 +
cluster/directory/static/directory.go | 9 ++++++++-
cluster/directory/static/directory_test.go | 1 +
11 files changed, 24 insertions(+), 1 deletion(-)
diff --git a/client/action.go b/client/action.go
index fd6a3b4d2..75e95a6c1 100644
--- a/client/action.go
+++ b/client/action.go
@@ -30,6 +30,8 @@ import (
gxstrings "github.com/dubbogo/gost/strings"
constant2 "github.com/dubbogo/triple/pkg/common/constant"
+
+ perrors "github.com/pkg/errors"
)
import (
@@ -256,6 +258,11 @@ func buildInvoker(urls []*common.URL, ref
*global.ReferenceConfig) (base.Invoker
invoker base.Invoker
regURL *common.URL
)
+
+ if len(urls) == 0 {
+ return nil, perrors.New("invoker list is empty")
+ }
+
invokers := make([]base.Invoker, len(urls))
for i, u := range urls {
if u.Protocol == constant.ServiceRegistryProtocol {
diff --git a/cluster/cluster/available/cluster_invoker_test.go
b/cluster/cluster/available/cluster_invoker_test.go
index 8522c53ab..efcc17faa 100644
--- a/cluster/cluster/available/cluster_invoker_test.go
+++ b/cluster/cluster/available/cluster_invoker_test.go
@@ -35,6 +35,7 @@ import (
clusterpkg "dubbo.apache.org/dubbo-go/v3/cluster/cluster"
"dubbo.apache.org/dubbo-go/v3/cluster/directory/static"
"dubbo.apache.org/dubbo-go/v3/cluster/loadbalance/random"
+ _ "dubbo.apache.org/dubbo-go/v3/cluster/router/tag"
"dubbo.apache.org/dubbo-go/v3/common"
"dubbo.apache.org/dubbo-go/v3/common/constant"
"dubbo.apache.org/dubbo-go/v3/common/extension"
diff --git a/cluster/cluster/broadcast/cluster_invoker_test.go
b/cluster/cluster/broadcast/cluster_invoker_test.go
index 0e829715c..d6c808ddc 100644
--- a/cluster/cluster/broadcast/cluster_invoker_test.go
+++ b/cluster/cluster/broadcast/cluster_invoker_test.go
@@ -34,6 +34,7 @@ import (
clusterpkg "dubbo.apache.org/dubbo-go/v3/cluster/cluster"
"dubbo.apache.org/dubbo-go/v3/cluster/directory/static"
"dubbo.apache.org/dubbo-go/v3/cluster/loadbalance/random"
+ _ "dubbo.apache.org/dubbo-go/v3/cluster/router/tag"
"dubbo.apache.org/dubbo-go/v3/common"
"dubbo.apache.org/dubbo-go/v3/common/constant"
"dubbo.apache.org/dubbo-go/v3/common/extension"
diff --git a/cluster/cluster/failback/cluster_test.go
b/cluster/cluster/failback/cluster_test.go
index 89f9ae58e..34eb5366b 100644
--- a/cluster/cluster/failback/cluster_test.go
+++ b/cluster/cluster/failback/cluster_test.go
@@ -39,6 +39,7 @@ import (
clusterpkg "dubbo.apache.org/dubbo-go/v3/cluster/cluster"
"dubbo.apache.org/dubbo-go/v3/cluster/directory/static"
"dubbo.apache.org/dubbo-go/v3/cluster/loadbalance/random"
+ _ "dubbo.apache.org/dubbo-go/v3/cluster/router/tag"
"dubbo.apache.org/dubbo-go/v3/common"
"dubbo.apache.org/dubbo-go/v3/common/constant"
"dubbo.apache.org/dubbo-go/v3/common/extension"
diff --git a/cluster/cluster/failfast/cluster_test.go
b/cluster/cluster/failfast/cluster_test.go
index 40126bcd6..6e1fc7976 100644
--- a/cluster/cluster/failfast/cluster_test.go
+++ b/cluster/cluster/failfast/cluster_test.go
@@ -36,6 +36,7 @@ import (
clusterpkg "dubbo.apache.org/dubbo-go/v3/cluster/cluster"
"dubbo.apache.org/dubbo-go/v3/cluster/directory/static"
"dubbo.apache.org/dubbo-go/v3/cluster/loadbalance/random"
+ _ "dubbo.apache.org/dubbo-go/v3/cluster/router/tag"
"dubbo.apache.org/dubbo-go/v3/common"
"dubbo.apache.org/dubbo-go/v3/common/constant"
"dubbo.apache.org/dubbo-go/v3/common/extension"
diff --git a/cluster/cluster/failover/cluster_test.go
b/cluster/cluster/failover/cluster_test.go
index 346dfee68..a1dbe28f2 100644
--- a/cluster/cluster/failover/cluster_test.go
+++ b/cluster/cluster/failover/cluster_test.go
@@ -33,6 +33,7 @@ import (
clusterpkg "dubbo.apache.org/dubbo-go/v3/cluster/cluster"
"dubbo.apache.org/dubbo-go/v3/cluster/directory/static"
"dubbo.apache.org/dubbo-go/v3/cluster/loadbalance/random"
+ _ "dubbo.apache.org/dubbo-go/v3/cluster/router/tag"
"dubbo.apache.org/dubbo-go/v3/common"
"dubbo.apache.org/dubbo-go/v3/common/constant"
"dubbo.apache.org/dubbo-go/v3/common/extension"
diff --git a/cluster/cluster/failsafe/cluster_test.go
b/cluster/cluster/failsafe/cluster_test.go
index 44d224135..f8268bdc2 100644
--- a/cluster/cluster/failsafe/cluster_test.go
+++ b/cluster/cluster/failsafe/cluster_test.go
@@ -36,6 +36,7 @@ import (
clusterpkg "dubbo.apache.org/dubbo-go/v3/cluster/cluster"
"dubbo.apache.org/dubbo-go/v3/cluster/directory/static"
"dubbo.apache.org/dubbo-go/v3/cluster/loadbalance/random"
+ _ "dubbo.apache.org/dubbo-go/v3/cluster/router/tag"
"dubbo.apache.org/dubbo-go/v3/common"
"dubbo.apache.org/dubbo-go/v3/common/constant"
"dubbo.apache.org/dubbo-go/v3/common/extension"
diff --git a/cluster/cluster/forking/cluster_test.go
b/cluster/cluster/forking/cluster_test.go
index 627dad504..3eec6dce0 100644
--- a/cluster/cluster/forking/cluster_test.go
+++ b/cluster/cluster/forking/cluster_test.go
@@ -37,6 +37,7 @@ import (
clusterpkg "dubbo.apache.org/dubbo-go/v3/cluster/cluster"
"dubbo.apache.org/dubbo-go/v3/cluster/directory/static"
"dubbo.apache.org/dubbo-go/v3/cluster/loadbalance/roundrobin"
+ _ "dubbo.apache.org/dubbo-go/v3/cluster/router/tag"
"dubbo.apache.org/dubbo-go/v3/common"
"dubbo.apache.org/dubbo-go/v3/common/constant"
"dubbo.apache.org/dubbo-go/v3/common/extension"
diff --git a/cluster/cluster/zoneaware/cluster_invoker_test.go
b/cluster/cluster/zoneaware/cluster_invoker_test.go
index 037f9d3c7..7d657d028 100644
--- a/cluster/cluster/zoneaware/cluster_invoker_test.go
+++ b/cluster/cluster/zoneaware/cluster_invoker_test.go
@@ -34,6 +34,7 @@ import (
clusterpkg "dubbo.apache.org/dubbo-go/v3/cluster/cluster"
"dubbo.apache.org/dubbo-go/v3/cluster/directory/static"
"dubbo.apache.org/dubbo-go/v3/cluster/loadbalance/random"
+ _ "dubbo.apache.org/dubbo-go/v3/cluster/router/tag"
"dubbo.apache.org/dubbo-go/v3/common"
"dubbo.apache.org/dubbo-go/v3/common/constant"
"dubbo.apache.org/dubbo-go/v3/common/extension"
diff --git a/cluster/directory/static/directory.go
b/cluster/directory/static/directory.go
index d0f96a823..f2a9a4603 100644
--- a/cluster/directory/static/directory.go
+++ b/cluster/directory/static/directory.go
@@ -18,6 +18,8 @@
package static
import (
+ "github.com/dubbogo/gost/log/logger"
+
perrors "github.com/pkg/errors"
)
@@ -45,7 +47,12 @@ func NewDirectory(invokers []protocolbase.Invoker)
*directory {
invokers: invokers,
}
- dir.RouterChain().SetInvokers(invokers)
+ err := dir.BuildRouterChain(invokers, url)
+ if err != nil {
+ logger.Error(err)
+ dir.RouterChain().SetInvokers(invokers)
+ }
+
return dir
}
diff --git a/cluster/directory/static/directory_test.go
b/cluster/directory/static/directory_test.go
index 8098cf5e3..78ab16794 100644
--- a/cluster/directory/static/directory_test.go
+++ b/cluster/directory/static/directory_test.go
@@ -27,6 +27,7 @@ import (
)
import (
+ _ "dubbo.apache.org/dubbo-go/v3/cluster/router/tag"
"dubbo.apache.org/dubbo-go/v3/common"
"dubbo.apache.org/dubbo-go/v3/protocol/base"
"dubbo.apache.org/dubbo-go/v3/protocol/invocation"