This is an automated email from the ASF dual-hosted git repository.

spacewander pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/apisix-go-plugin-runner.git


The following commit(s) were added to refs/heads/master by this push:
     new ee55902  feat: add DefaultPlugin (#92)
ee55902 is described below

commit ee55902d87d8da5d50c4e765f95df3ec54105661
Author: soulbird <[email protected]>
AuthorDate: Wed Jun 22 09:43:59 2022 +0800

    feat: add DefaultPlugin (#92)
---
 cmd/go-runner/plugins/fault_injection.go  | 7 +++----
 cmd/go-runner/plugins/limit_req.go        | 7 +++----
 cmd/go-runner/plugins/response_rewrite.go | 7 +++----
 cmd/go-runner/plugins/say.go              | 7 +++----
 pkg/plugin/plugin.go                      | 6 ++++++
 5 files changed, 18 insertions(+), 16 deletions(-)

diff --git a/cmd/go-runner/plugins/fault_injection.go 
b/cmd/go-runner/plugins/fault_injection.go
index eee3f0c..1d729f6 100644
--- a/cmd/go-runner/plugins/fault_injection.go
+++ b/cmd/go-runner/plugins/fault_injection.go
@@ -41,6 +41,9 @@ func init() {
 
 // FaultInjection is used in the benchmark
 type FaultInjection struct {
+       // Embed the default plugin here,
+       // so that we don't need to reimplement all the methods.
+       plugin.DefaultPlugin
 }
 
 type FaultInjectionConf struct {
@@ -94,7 +97,3 @@ func (p *FaultInjection) RequestFilter(conf interface{}, w 
http.ResponseWriter,
                log.Errorf("failed to write: %s", err)
        }
 }
-
-func (p *FaultInjection) ResponseFilter(interface{}, pkgHTTP.Response) {
-
-}
diff --git a/cmd/go-runner/plugins/limit_req.go 
b/cmd/go-runner/plugins/limit_req.go
index 34c8c29..6632da3 100644
--- a/cmd/go-runner/plugins/limit_req.go
+++ b/cmd/go-runner/plugins/limit_req.go
@@ -35,6 +35,9 @@ func init() {
 
 // LimitReq is a demo for a real world plugin
 type LimitReq struct {
+       // Embed the default plugin here,
+       // so that we don't need to reimplement all the methods.
+       plugin.DefaultPlugin
 }
 
 type LimitReqConf struct {
@@ -75,7 +78,3 @@ func (p *LimitReq) RequestFilter(conf interface{}, w 
http.ResponseWriter, r pkgH
        }
        time.Sleep(rs.Delay())
 }
-
-func (p *LimitReq) ResponseFilter(interface{}, pkgHTTP.Response) {
-
-}
diff --git a/cmd/go-runner/plugins/response_rewrite.go 
b/cmd/go-runner/plugins/response_rewrite.go
index d14cec3..0af1ba8 100644
--- a/cmd/go-runner/plugins/response_rewrite.go
+++ b/cmd/go-runner/plugins/response_rewrite.go
@@ -19,7 +19,6 @@ package plugins
 
 import (
        "encoding/json"
-       "net/http"
 
        pkgHTTP "github.com/apache/apisix-go-plugin-runner/pkg/http"
        "github.com/apache/apisix-go-plugin-runner/pkg/log"
@@ -35,6 +34,9 @@ func init() {
 
 // ResponseRewrite is a demo to show how to rewrite response data.
 type ResponseRewrite struct {
+       // Embed the default plugin here,
+       // so that we don't need to reimplement all the methods.
+       plugin.DefaultPlugin
 }
 
 type ResponseRewriteConf struct {
@@ -53,9 +55,6 @@ func (p *ResponseRewrite) ParseConf(in []byte) (interface{}, 
error) {
        return conf, err
 }
 
-func (p *ResponseRewrite) RequestFilter(interface{}, http.ResponseWriter, 
pkgHTTP.Request) {
-}
-
 func (p *ResponseRewrite) ResponseFilter(conf interface{}, w pkgHTTP.Response) 
{
        cfg := conf.(ResponseRewriteConf)
        if cfg.Status > 0 {
diff --git a/cmd/go-runner/plugins/say.go b/cmd/go-runner/plugins/say.go
index 49a41ea..e4b5540 100644
--- a/cmd/go-runner/plugins/say.go
+++ b/cmd/go-runner/plugins/say.go
@@ -36,6 +36,9 @@ func init() {
 // Say is a demo to show how to return data directly instead of proxying
 // it to the upstream.
 type Say struct {
+       // Embed the default plugin here,
+       // so that we don't need to reimplement all the methods.
+       plugin.DefaultPlugin
 }
 
 type SayConf struct {
@@ -64,7 +67,3 @@ func (p *Say) RequestFilter(conf interface{}, w 
http.ResponseWriter, r pkgHTTP.R
                log.Errorf("failed to write: %s", err)
        }
 }
-
-func (p *Say) ResponseFilter(interface{}, pkgHTTP.Response) {
-
-}
diff --git a/pkg/plugin/plugin.go b/pkg/plugin/plugin.go
index 14540bc..177240f 100644
--- a/pkg/plugin/plugin.go
+++ b/pkg/plugin/plugin.go
@@ -52,3 +52,9 @@ type Plugin interface {
 func RegisterPlugin(p Plugin) error {
        return plugin.RegisterPlugin(p.Name(), p.ParseConf, p.RequestFilter, 
p.ResponseFilter)
 }
+
+// DefaultPlugin provides the no-op implementation of the Plugin interface.
+type DefaultPlugin struct{}
+
+func (*DefaultPlugin) RequestFilter(interface{}, http.ResponseWriter, 
pkgHTTP.Request) {}
+func (*DefaultPlugin) ResponseFilter(interface{}, pkgHTTP.Response)            
        {}

Reply via email to