5
"mosn.io/mosn/pkg/protocol"
6
"mosn.io/mosn/pkg/protocol/xprotocol"
7
"mosn.io/mosn/pkg/protocol/xprotocol/bolt"
8
"mosn.io/mosn/pkg/protocol/xprotocol/boltv2"
9
"mosn.io/mosn/pkg/protocol/xprotocol/dubbo"
10
"mosn.io/mosn/pkg/protocol/xprotocol/dubbothrift"
11
"mosn.io/mosn/pkg/protocol/xprotocol/tars"
12
xstream "mosn.io/mosn/pkg/stream/xprotocol"
13
"mosn.io/mosn/pkg/trace"
14
tracehttp "mosn.io/mosn/pkg/trace/sofa/http"
15
xtrace "mosn.io/mosn/pkg/trace/sofa/xprotocol"
16
tracebolt "mosn.io/mosn/pkg/trace/sofa/xprotocol/bolt"
17
"mosn.io/mosn/test/lib/types"
20
type CreateMockServer func(config interface{}) types.MockServer
22
type CreateMockClient func(config interface{}) types.MockClient
25
var clientFactory map[string]CreateMockClient = map[string]CreateMockClient{}
26
var serverFactory map[string]CreateMockServer = map[string]CreateMockServer{}
28
func RegisterCreateClient(protocol string, f CreateMockClient) {
29
clientFactory[protocol] = f
32
func RegisterCreateServer(protocol string, f CreateMockServer) {
33
serverFactory[protocol] = f
36
func CreateServer(protocol string, config interface{}) types.MockServer {
37
f, ok := serverFactory[protocol]
44
func CreateClient(protocol string, config interface{}) types.MockClient {
45
f, ok := clientFactory[protocol]
54
// tracer driver register
55
trace.RegisterDriver("SOFATracer", trace.NewDefaultDriverImpl())
56
// xprotocol action register
57
xprotocol.RegisterXProtocolAction(xstream.NewConnPool, xstream.NewStreamFactory, func(codec api.XProtocolCodec) {
58
name := codec.ProtocolName()
59
trace.RegisterTracerBuilder("SOFATracer", name, xtrace.NewTracer)
62
_ = xprotocol.RegisterXProtocolCodec(&bolt.XCodec{})
63
_ = xprotocol.RegisterXProtocolCodec(&boltv2.XCodec{})
64
_ = xprotocol.RegisterXProtocolCodec(&dubbo.XCodec{})
65
_ = xprotocol.RegisterXProtocolCodec(&dubbothrift.XCodec{})
66
_ = xprotocol.RegisterXProtocolCodec(&tars.XCodec{})
68
xtrace.RegisterDelegate(bolt.ProtocolName, tracebolt.Boltv1Delegate)
69
xtrace.RegisterDelegate(boltv2.ProtocolName, tracebolt.Boltv1Delegate)
70
trace.RegisterTracerBuilder("SOFATracer", protocol.HTTP1, tracehttp.NewTracer)