Skip to content

Commit a0486da

Browse files
committed
feat(all): Update to use the new components registry in go-orb 0.1.1.
1 parent 55038d0 commit a0486da

File tree

40 files changed

+641
-757
lines changed

40 files changed

+641
-757
lines changed

README.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,15 @@ To run an example you need to have `go1.23.6` installed. You can get it with [gv
4040

4141
All the examples have a cmd folder you can run it with `go run "./cmd/handler/..."`.
4242

43+
You can run all examples at once by running `./scripts/test.sh`, this is what we do in CI.
44+
4345
## Development
4446

4547
You need:
4648
- go1.23.6
49+
- docker for dagger
4750
- our custom fork of [wire](https://github.com/go-orb/wire) `go install github.com/go-orb/wire/cmd/wire@latest`
51+
- [protoc-gen-go](https://protobuf.dev/reference/go/go-generated/) `go install google.golang.org/protobuf/cmd/protoc-gen-go@latest`
4852
- [protoc-gen-go-orb](https://github.com/go-orb/plugins/server/cmd/protoc-gen-go-orb) `go install github.com/go-orb/plugins/server/cmd/protoc-gen-go-orb@latest`
4953

5054
Now you'r able to run `go generate ./...` in the examples to update `cmd/xyz/wire_gen.go` as well as the `proto` files.

Taskfile.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ tasks:
1717
- cmd: dagger call update --root=. source export --path=.
1818

1919
test:
20-
desc: Run "go test ./..." in all packages
20+
desc: Run "go test ./..." in all packages and then "./scripts/test.sh" to test all binaries.
2121
cmds:
2222
- cmd: dagger call test --root=.
23+
- cmd: ./scripts/test.sh

benchmarks/event/cmd/handler/main.go

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,9 @@ import (
1717
)
1818

1919
func runner(
20+
serviceName types.ServiceName,
21+
serviceVersion types.ServiceVersion,
22+
logger log.Logger,
2023
eventWire event.Handler,
2124
done chan os.Signal,
2225
) error {
@@ -28,17 +31,21 @@ func runner(
2831

2932
event.HandleRequest(ctx, eventWire, "echo.echo", echoHandler)
3033

34+
logger.Info("Started", "name", serviceName, "version", serviceVersion)
35+
3136
// Blocks until sigterm/sigkill.
3237
<-done
3338

39+
logger.Info("Stopping", "name", serviceName, "version", serviceVersion)
40+
3441
cancel()
3542

3643
return nil
3744
}
3845

3946
func main() {
4047
var (
41-
serviceName = types.ServiceName("orb.examples.event.bench_handler")
48+
serviceName = types.ServiceName("benchmarks.event.handler")
4249
serviceVersion = types.ServiceVersion("v0.0.1")
4350
)
4451

benchmarks/event/cmd/handler/wire.go

Lines changed: 15 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package main
55

66
import (
77
"context"
8+
"fmt"
89
"net/url"
910
"os"
1011
"os/signal"
@@ -34,39 +35,31 @@ func provideConfigData(
3435
return data, err
3536
}
3637

37-
// provideComponents creates a slice of components out of the arguments.
38-
func provideComponents(
39-
logger log.Logger,
40-
event event.Handler,
41-
) ([]types.Component, error) {
42-
components := []types.Component{}
43-
components = append(components, logger)
44-
components = append(components, event)
45-
46-
return components, nil
47-
}
48-
38+
// wireRunResult is here so "wire" has a type for the return value of wireRun.
39+
// wire needs a explicit type for each provider including "wireRun".
4940
type wireRunResult string
5041

42+
// wireRunCallback is the actual code that runs the business logic.
5143
type wireRunCallback func(
44+
serviceName types.ServiceName,
45+
serviceVersion types.ServiceVersion,
46+
logger log.Logger,
5247
event event.Handler,
5348
done chan os.Signal,
5449
) error
5550

5651
func wireRun(
57-
_ types.ServiceName,
58-
components []types.Component,
59-
_ types.ConfigData,
60-
_ log.Logger,
52+
serviceName types.ServiceName,
53+
serviceVersion types.ServiceVersion,
54+
logger log.Logger,
6155
event event.Handler,
6256
cb wireRunCallback,
6357
) (wireRunResult, error) {
64-
//
6558
// Orb start
66-
for _, c := range components {
59+
for _, c := range types.Components.Iterate(false) {
6760
err := c.Start()
6861
if err != nil {
69-
log.Error("Failed to start", err, "component", c.Type())
62+
logger.Error("Failed to start", err, "component", fmt.Sprintf("%s/%s", c.Type(), c.String()))
7063
os.Exit(1)
7164
}
7265
}
@@ -76,18 +69,15 @@ func wireRun(
7669

7770
//
7871
// Actual code
79-
runErr := cb(event, done)
72+
runErr := cb(serviceName, serviceVersion, logger, event, done)
8073

81-
//
8274
// Orb shutdown.
8375
ctx := context.Background()
8476

85-
for k := range components {
86-
c := components[len(components)-1-k]
87-
77+
for _, c := range types.Components.Iterate(true) {
8878
err := c.Stop(ctx)
8979
if err != nil {
90-
log.Error("Failed to stop", err, "component", c.Type())
80+
logger.Error("Failed to stop", err, "component", fmt.Sprintf("%s/%s", c.Type(), c.String()))
9181
}
9282
}
9383

@@ -106,7 +96,6 @@ func run(
10696
log.Provide,
10797
wire.Value([]event.Option{}),
10898
event.Provide,
109-
provideComponents,
11099
wireRun,
111100
))
112101
}

benchmarks/event/cmd/handler/wire_gen.go

Lines changed: 17 additions & 29 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

benchmarks/event/cmd/request/wire.go

Lines changed: 8 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ package main
55

66
import (
77
"context"
8+
"fmt"
89
"net/url"
910
"os"
1011
"os/signal"
@@ -34,42 +35,30 @@ func provideConfigData(
3435
return data, err
3536
}
3637

37-
// provideComponents creates a slice of components out of the arguments.
38-
func provideComponents(
39-
logger log.Logger,
40-
event event.Handler,
41-
) ([]types.Component, error) {
42-
components := []types.Component{}
43-
components = append(components, logger)
44-
components = append(components, event)
45-
46-
return components, nil
47-
}
48-
38+
// wireRunResult is here so "wire" has a type for the return value of wireRun.
4939
type wireRunResult string
5040

41+
// wireRunCallback is the actual code that runs the business logic.
5142
type wireRunCallback func(
5243
serviceName types.ServiceName,
5344
configs types.ConfigData,
5445
logger log.Logger,
55-
event event.Handler,
46+
eventHandler event.Handler,
5647
done chan os.Signal,
5748
) error
5849

5950
func wireRun(
6051
serviceName types.ServiceName,
61-
components []types.Component,
6252
configs types.ConfigData,
6353
logger log.Logger,
6454
event event.Handler,
6555
cb wireRunCallback,
6656
) (wireRunResult, error) {
67-
//
6857
// Orb start
69-
for _, c := range components {
58+
for _, c := range types.Components.Iterate(false) {
7059
err := c.Start()
7160
if err != nil {
72-
log.Error("Failed to start", err, "component", c.Type())
61+
logger.Error("Failed to start", err, "component", fmt.Sprintf("%s/%s", c.Type(), c.String()))
7362
os.Exit(1)
7463
}
7564
}
@@ -81,16 +70,13 @@ func wireRun(
8170
// Actual code
8271
runErr := cb(serviceName, configs, logger, event, done)
8372

84-
//
8573
// Orb shutdown.
8674
ctx := context.Background()
8775

88-
for k := range components {
89-
c := components[len(components)-1-k]
90-
76+
for _, c := range types.Components.Iterate(true) {
9177
err := c.Stop(ctx)
9278
if err != nil {
93-
log.Error("Failed to stop", err, "component", c.Type())
79+
logger.Error("Failed to stop", err, "component", fmt.Sprintf("%s/%s", c.Type(), c.String()))
9480
}
9581
}
9682

@@ -109,7 +95,6 @@ func run(
10995
log.Provide,
11096
wire.Value([]event.Option{}),
11197
event.Provide,
112-
provideComponents,
11398
wireRun,
11499
))
115100
}

0 commit comments

Comments
 (0)