Skip to content

Commit

Permalink
simpler interfaces
Browse files Browse the repository at this point in the history
  • Loading branch information
kpacha committed Apr 8, 2018
1 parent 8b93eae commit 42c1947
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 15 deletions.
12 changes: 5 additions & 7 deletions encoding/encoding_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@ import (
)

func TestRegister(t *testing.T) {
original := decoders
original := GetRegister()

if len(decoders.data.Clone()) != 2 {
t.Error("Unexpected number of registered factories:", len(decoders.data.Clone()))
if len(original.data.Clone()) != 2 {
t.Error("Unexpected number of registered factories:", len(original.data.Clone()))
}

decoders = &DecoderRegister{register.NewUntyped()}
Expand All @@ -21,12 +21,10 @@ func TestRegister(t *testing.T) {
t.Error("Unexpected number of registered factories:", len(decoders.data.Clone()))
}

decoders = original
decoders = initDecoderRegister()
}

func TestGet(t *testing.T) {
original := decoders

if len(decoders.data.Clone()) != 2 {
t.Error("Unexpected number of registered factories:", len(decoders.data.Clone()))
}
Expand All @@ -44,7 +42,7 @@ func TestGet(t *testing.T) {
checkDecoder(t, JSON)
checkDecoder(t, "some")

decoders = original
decoders = initDecoderRegister()
}

func checkDecoder(t *testing.T, name string) {
Expand Down
4 changes: 2 additions & 2 deletions plugin/register.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ func (r *Register) Register(p Plugin) error {
}

if registrable, ok := x.(RegistrableExternal); ok {
err = registrable.RegisterExternal(r.External)
err = registrable.RegisterExternal(r.External.Register)
totalRegistrations++
}

Expand All @@ -74,5 +74,5 @@ type RegistrableSD interface {
// RegistrableExternal defines the interface the external plugins should implement
// in order to be able to register themselves
type RegistrableExternal interface {
RegisterExternal(*register.Namespaced) error
RegisterExternal(func(namespace, name string, v interface{})) error
}
5 changes: 2 additions & 3 deletions plugin/register_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import (

"github.com/devopsfaith/krakend/config"
"github.com/devopsfaith/krakend/encoding"
"github.com/devopsfaith/krakend/register"
"github.com/devopsfaith/krakend/sd"
)

Expand Down Expand Up @@ -95,10 +94,10 @@ func (r registrableDummy) RegisterSD(setter sd.RegisterSetter) error {
return setter.Register(samplePluginName, subscriberFactory)
}

func (r registrableDummy) RegisterExternal(setter *register.Namespaced) error {
func (r registrableDummy) RegisterExternal(setter func(namespace, name string, v interface{})) error {
fmt.Println("registrable", r, "from plugin", samplePluginName, "is registering its components depending on external modules")

setter.Register("namespace1", samplePluginName, func(x int) int { return 2 * x })
setter("namespace1", samplePluginName, func(x int) int { return 2 * x })
return nil
}

Expand Down
5 changes: 2 additions & 3 deletions plugin/tests/plugins/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import (

"github.com/devopsfaith/krakend/config"
"github.com/devopsfaith/krakend/encoding"
"github.com/devopsfaith/krakend/register"
"github.com/devopsfaith/krakend/sd"
)

Expand All @@ -29,10 +28,10 @@ func (r *registrable) RegisterSD(setter sd.RegisterSetter) error {
return setter.Register(pluginName, subscriberFactory)
}

func (r *registrable) RegisterExternal(setter *register.Namespaced) error {
func (r *registrable) RegisterExternal(setter func(namespace, name string, v interface{})) error {
fmt.Println("registrable", r, "from plugin", pluginName, "is registering its components depending on external modules at", setter)

setter.Register("namespace1", pluginName, doubleInt)
setter("namespace1", pluginName, doubleInt)
return nil
}

Expand Down

0 comments on commit 42c1947

Please sign in to comment.