Skip to content

Commit 1ceb19e

Browse files
committed
Some additional cleanup
1 parent 1b0e25d commit 1ceb19e

5 files changed

Lines changed: 23 additions & 26 deletions

File tree

client.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ type Config struct {
191191
// JobInsertMiddleware are optional functions that can be called around job
192192
// insertion.
193193
//
194-
// Deprecated: Prefer the use of Middleware instead (which may contain
194+
// Deprecated: Prefer the use of Plugins instead (which may contain
195195
// instances of rivertype.JobInsertMiddleware).
196196
JobInsertMiddleware []rivertype.JobInsertMiddleware
197197

@@ -446,7 +446,7 @@ type Config struct {
446446
// WorkerMiddleware are optional functions that can be called around
447447
// all job executions.
448448
//
449-
// Deprecated: Prefer the use of Middleware instead (which may contain
449+
// Deprecated: Prefer the use of Plugins instead (which may contain
450450
// instances of rivertype.WorkerMiddleware).
451451
WorkerMiddleware []rivertype.WorkerMiddleware
452452

@@ -827,9 +827,9 @@ func NewClient[TTx any](driver riverdriver.Driver[TTx], config *Config) (*Client
827827
}
828828

829829
var (
830-
configuredMiddleware = pluginconfig.Middleware(config.Middleware, config.JobInsertMiddleware, config.WorkerMiddleware)
831-
plugins = append(riverplugin.DefaultPlugins(), config.Plugins...)
832-
allPlugins = pluginlookup.NormalizePlugins(config.Hooks, configuredMiddleware, plugins)
830+
middleware = pluginconfig.CombinedMiddleware(config.Middleware, config.JobInsertMiddleware, config.WorkerMiddleware)
831+
plugins = append(riverplugin.DefaultPlugins(), config.Plugins...)
832+
allPlugins = pluginlookup.NormalizePlugins(config.Hooks, middleware, plugins)
833833
)
834834
pluginlookup.InitBaseServices(archetype, allPlugins)
835835

internal/pluginconfig/plugin_config.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,18 @@ package pluginconfig
22

33
import "github.com/riverqueue/river/rivertype"
44

5-
// Middleware combines middleware from the current and legacy configuration
6-
// fields into one list. Explicit middleware is preserved first, followed by
7-
// legacy job insert and worker middleware. A worker middleware already present
8-
// in the job insert list is included only once.
9-
func Middleware(middleware []rivertype.Middleware, jobInsertMiddleware []rivertype.JobInsertMiddleware, workerMiddleware []rivertype.WorkerMiddleware) []rivertype.Middleware {
5+
// CombinedMiddleware combines middleware from the current and legacy
6+
// configuration fields into one list. Explicit middleware is preserved first,
7+
// followed by legacy job insert and worker middleware.
8+
//
9+
// The reason this exists is that River originally had a seprate configuration
10+
// field for each type of middleware (JobInsertMiddleware, WorkerMiddleware)
11+
// before it was unified to a combined Middleware field so that a new one
12+
// wouldn't be needed every time a new type of middleware was added. Middleware
13+
// then became Plugins. The JobInsertMiddleware and WorkerMiddleware fields have
14+
// been deprecated for quite some time and we should consider just removing them
15+
// to simplify this set up.
16+
func CombinedMiddleware(middleware []rivertype.Middleware, jobInsertMiddleware []rivertype.JobInsertMiddleware, workerMiddleware []rivertype.WorkerMiddleware) []rivertype.Middleware {
1017
allMiddleware := make([]rivertype.Middleware, 0,
1118
len(middleware)+len(jobInsertMiddleware)+len(workerMiddleware))
1219
allMiddleware = append(allMiddleware, middleware...)

internal/pluginconfig/plugin_config_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
"github.com/riverqueue/river/rivertype"
99
)
1010

11-
func TestMiddleware(t *testing.T) {
11+
func TestCombinedMiddleware(t *testing.T) {
1212
t.Parallel()
1313

1414
t.Run("CombinesMiddlewareInOrder", func(t *testing.T) {
@@ -24,7 +24,7 @@ func TestMiddleware(t *testing.T) {
2424
middleware,
2525
jobInsertMiddleware,
2626
workerMiddleware,
27-
}, Middleware(
27+
}, CombinedMiddleware(
2828
[]rivertype.Middleware{middleware},
2929
[]rivertype.JobInsertMiddleware{jobInsertMiddleware},
3030
[]rivertype.WorkerMiddleware{workerMiddleware},
@@ -36,7 +36,7 @@ func TestMiddleware(t *testing.T) {
3636

3737
middleware := &testJobInsertAndWorkerMiddleware{}
3838

39-
require.Equal(t, []rivertype.Middleware{middleware}, Middleware(
39+
require.Equal(t, []rivertype.Middleware{middleware}, CombinedMiddleware(
4040
nil,
4141
[]rivertype.JobInsertMiddleware{middleware},
4242
[]rivertype.WorkerMiddleware{middleware},

rivertest/worker.go

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -148,17 +148,9 @@ func (w *Worker[T, TTx]) workJob(ctx context.Context, tb testing.TB, tx TTx, job
148148
completer := jobcompleter.NewInlineCompleter(archetype, w.config.Schema, exec, w.client.Pilot(), subscribeCh)
149149

150150
var (
151-
configuredMiddleware = pluginconfig.Middleware(
152-
w.config.Middleware, //nolint:staticcheck // Bridge legacy middleware into the test worker's unified plugin path.
153-
w.config.JobInsertMiddleware, //nolint:staticcheck // Bridge legacy middleware into the test worker's unified plugin path.
154-
w.config.WorkerMiddleware, //nolint:staticcheck // Bridge legacy middleware into the test worker's unified plugin path.
155-
)
151+
middleware = pluginconfig.CombinedMiddleware(w.config.Middleware, w.config.JobInsertMiddleware, w.config.WorkerMiddleware) //nolint:staticcheck
156152
plugins = append(riverplugin.DefaultPlugins(), w.config.Plugins...)
157-
allPlugins = pluginlookup.NormalizePlugins(
158-
w.config.Hooks, //nolint:staticcheck // Bridge legacy Hooks into the test worker's unified plugin path.
159-
configuredMiddleware,
160-
plugins,
161-
)
153+
allPlugins = pluginlookup.NormalizePlugins(w.config.Hooks, middleware, plugins) //nolint:staticcheck
162154
)
163155
pluginlookup.InitBaseServices(archetype, allPlugins)
164156

rivertype/river_type.go

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -451,9 +451,7 @@ type Middleware interface {
451451
//
452452
// Plugin structs should embed river.PluginDefaults, or embed either
453453
// river.HookDefaults or river.MiddlewareDefaults, then implement any
454-
// operation-specific hook or middleware interfaces they need. If a type embeds
455-
// both defaults directly, it must also implement IsPlugin itself to avoid the
456-
// embedded method-name collision.
454+
// operation-specific hook or middleware interfaces they need.
457455
type Plugin interface {
458456
IsPlugin() bool
459457
}

0 commit comments

Comments
 (0)