diff --git a/broker/broker.go b/broker/broker.go index 4cb0149..04636c0 100644 --- a/broker/broker.go +++ b/broker/broker.go @@ -92,8 +92,8 @@ func NewBroker(config *Config) (*Broker, error) { b.tlsConfig = tlsconfig } - b.auth = auth.NewAuth(b.config.Plugin.Auth) - b.bridgeMQ = bridge.NewBridgeMQ(b.config.Plugin.Bridge) + b.auth = b.config.Plugin.Auth + b.bridgeMQ = b.config.Plugin.Bridge return b, nil } diff --git a/broker/config.go b/broker/config.go index 9a8fcb3..a98e848 100644 --- a/broker/config.go +++ b/broker/config.go @@ -11,6 +11,8 @@ import ( "os" "github.com/fhmq/hmq/logger" + "github.com/fhmq/hmq/plugins/auth" + "github.com/fhmq/hmq/plugins/bridge" "go.uber.org/zap" ) @@ -32,6 +34,11 @@ type Config struct { } type Plugins struct { + Auth auth.Auth + Bridge bridge.BridgeMQ +} + +type NamedPlugins struct { Auth string Bridge string } @@ -152,6 +159,18 @@ func LoadConfig(filename string) (*Config, error) { return &config, nil } + +func (p *Plugins) UnmarshalJSON(b []byte) error { + var named NamedPlugins + err := json.Unmarshal(b, &named) + if err != nil { + return err + } + p.Auth = auth.NewAuth(named.Auth) + p.Bridge = bridge.NewBridgeMQ(named.Bridge) + return nil +} + func (config *Config) check() error { if config.Worker == 0 { diff --git a/go.mod b/go.mod index 3a29a28..6bfb519 100644 --- a/go.mod +++ b/go.mod @@ -4,19 +4,16 @@ go 1.12 require ( github.com/Shopify/sarama v1.23.0 - github.com/StackExchange/wmi v0.0.0-20181212234831-e0a55b97c705 // indirect github.com/bitly/go-simplejson v0.5.0 github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 // indirect github.com/eclipse/paho.mqtt.golang v1.2.0 github.com/gin-gonic/gin v1.4.0 - github.com/go-ole/go-ole v1.2.4 // indirect github.com/golang/protobuf v1.3.2 // indirect github.com/kr/pretty v0.1.0 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible github.com/pkg/errors v0.8.1 // indirect github.com/satori/go.uuid v1.2.0 github.com/segmentio/fasthash v0.0.0-20180216231524-a72b379d632e - github.com/shirou/gopsutil v2.18.12+incompatible github.com/stretchr/testify v1.3.0 github.com/tidwall/gjson v1.3.0 go.uber.org/atomic v1.4.0 // indirect diff --git a/go.sum b/go.sum index 4bd8301..78d334c 100644 --- a/go.sum +++ b/go.sum @@ -4,8 +4,6 @@ github.com/Shopify/sarama v1.23.0 h1:slvlbm7bxyp7sKQbUwha5BQdZTqurhRoI+zbKorVigQ github.com/Shopify/sarama v1.23.0/go.mod h1:XLH1GYJnLVE0XCr6KdJGVJRTwY30moWNJ4sERjXX6fs= github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWsokNbMijUGhmcoBJc= github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= -github.com/StackExchange/wmi v0.0.0-20181212234831-e0a55b97c705 h1:UUppSQnhf4Yc6xGxSkoQpPhb7RVzuv5Nb1mwJ5VId9s= -github.com/StackExchange/wmi v0.0.0-20181212234831-e0a55b97c705/go.mod h1:3eOhrUMpNV+6aFIbp5/iudMxNCF27Vw2OZgy4xEx0Fg= github.com/bitly/go-simplejson v0.5.0 h1:6IH+V8/tVMab511d5bn4M7EwGXZf9Hj6i2xSwkNEM+Y= github.com/bitly/go-simplejson v0.5.0/go.mod h1:cXHtHw4XUPsvGaxgjIAn8PhEWG9NfngEKAMDJEczWVA= github.com/bmizerany/assert v0.0.0-20160611221934-b7ed37b82869 h1:DDGfHa7BWjL4YnC6+E63dPcxHo2sUxDIu8g3QgEJdRY= @@ -26,8 +24,6 @@ github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3 h1:t8FVkw33L+wilf2 github.com/gin-contrib/sse v0.0.0-20190301062529-5545eab6dad3/go.mod h1:VJ0WA2NBN22VlZ2dKZQPAPnyWw5XTlK1KymzLKsr59s= github.com/gin-gonic/gin v1.4.0 h1:3tMoCCfM7ppqsR0ptz/wi1impNpT7/9wQtMZ8lr1mCQ= github.com/gin-gonic/gin v1.4.0/go.mod h1:OW2EZn3DO8Ln9oIKOvM++LBO+5UPHJJDH72/q/3rZdM= -github.com/go-ole/go-ole v1.2.4 h1:nNBDSCOigTSiarFpYE9J/KtEA1IOW4CNeqT9TQDqCxI= -github.com/go-ole/go-ole v1.2.4/go.mod h1:XCwSNxSkXRo4vlyPy93sltvi/qJq0jqQhjqQNIwKuxM= github.com/golang/protobuf v1.3.1 h1:YF8+flBXS5eO826T4nzqPrxfhQThhXl0YzfuUPu4SBg= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= @@ -66,8 +62,6 @@ github.com/satori/go.uuid v1.2.0 h1:0uYX9dsZ2yD7q2RtLRtPSdGDWzjeM3TbMJP9utgA0ww= github.com/satori/go.uuid v1.2.0/go.mod h1:dA0hQrYB0VpLJoorglMZABFdXlWrHn1NEOzdhQKdks0= github.com/segmentio/fasthash v0.0.0-20180216231524-a72b379d632e h1:uO75wNGioszjmIzcY/tvdDYKRLVvzggtAmmJkn9j4GQ= github.com/segmentio/fasthash v0.0.0-20180216231524-a72b379d632e/go.mod h1:tm/wZFQ8e24NYaBGIlnO2WGCAi67re4HHuOm0sftE/M= -github.com/shirou/gopsutil v2.18.12+incompatible h1:1eaJvGomDnH74/5cF4CTmTbLHAriGFsTZppLXDX93OM= -github.com/shirou/gopsutil v2.18.12+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=