Skip to content

Commit

Permalink
Remove Dodeca.
Browse files Browse the repository at this point in the history
  • Loading branch information
jmalloc committed Dec 2, 2022
1 parent 13dabf9 commit 13ca091
Show file tree
Hide file tree
Showing 14 changed files with 546 additions and 671 deletions.
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,17 @@ The format is based on [Keep a Changelog], and this project adheres to
[keep a changelog]: https://keepachangelog.com/en/1.0.0/
[semantic versioning]: https://semver.org/spec/v2.0.0.html

## [0.8.0] - 2022-12-02

This release removes Harpy's dependency on the deprecated
`github.com/dogmatiq/dodeca` module. `go.uber.org/zap` is now used as the
default logger.

### Removed

- **[BC]** Remove `harpy.DefaultExchangeLogger`
- **[BC]** Remove `httptransport.WithDefaultLogger()`

## [0.7.0] - 2022-07-29

### Added
Expand Down
10 changes: 9 additions & 1 deletion exchange.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"context"
"sync"

"go.uber.org/zap"
"golang.org/x/sync/errgroup"
)

Expand Down Expand Up @@ -79,7 +80,14 @@ func Exchange(
l ExchangeLogger,
) (err error) {
if l == nil {
l = DefaultExchangeLogger{}
t, err := zap.NewProduction()
if err != nil {
return err
}

l = ZapExchangeLogger{
Target: t,
}
}

defer func() {
Expand Down
39 changes: 27 additions & 12 deletions exchange_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,13 @@ import (
"encoding/json"
"errors"

"github.com/dogmatiq/dodeca/logging"
. "github.com/dogmatiq/harpy"
. "github.com/dogmatiq/harpy/internal/fixtures"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"go.uber.org/zap/zaptest/observer"
)

var _ = Describe("func Exchange()", func() {
Expand All @@ -18,8 +20,8 @@ var _ = Describe("func Exchange()", func() {
request Request
reader *RequestSetReaderStub
writer *ResponseWriterStub
buffer *logging.BufferedLogger
logger DefaultExchangeLogger
logs *observer.ObservedLogs
logger *ZapExchangeLogger
)

BeforeEach(func() {
Expand All @@ -41,10 +43,11 @@ var _ = Describe("func Exchange()", func() {

writer = &ResponseWriterStub{}

buffer = &logging.BufferedLogger{}
var core zapcore.Core
core, logs = observer.New(zapcore.DebugLevel)

logger = DefaultExchangeLogger{
Target: buffer,
logger = &ZapExchangeLogger{
Target: zap.New(core),
}
})

Expand All @@ -65,9 +68,15 @@ var _ = Describe("func Exchange()", func() {
)

Expect(err).To(MatchError("<close error>"))
Expect(buffer.Messages()).To(ContainElement(
logging.BufferedLogMessage{
Message: `unable to write JSON-RPC response: <close error>`,
Expect(logs.AllUntimed()).To(ContainElement(
observer.LoggedEntry{
Entry: zapcore.Entry{
Level: zapcore.ErrorLevel,
Message: "unable to write JSON-RPC response",
},
Context: []zapcore.Field{
zap.String("error", "<close error>"),
},
},
))
})
Expand All @@ -86,9 +95,15 @@ var _ = Describe("func Exchange()", func() {
)

Expect(err).To(MatchError("<read error>"))
Expect(buffer.Messages()).To(ContainElement(
logging.BufferedLogMessage{
Message: `unable to write JSON-RPC response: <close error>`,
Expect(logs.AllUntimed()).To(ContainElement(
observer.LoggedEntry{
Entry: zapcore.Entry{
Level: zapcore.ErrorLevel,
Message: "unable to write JSON-RPC response",
},
Context: []zapcore.Field{
zap.String("error", "<close error>"),
},
},
))
})
Expand Down
98 changes: 73 additions & 25 deletions exchangebatch_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,13 @@ import (
"sync/atomic"
"time"

"github.com/dogmatiq/dodeca/logging"
. "github.com/dogmatiq/harpy"
. "github.com/dogmatiq/harpy/internal/fixtures"
. "github.com/onsi/ginkgo"
. "github.com/onsi/gomega"
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
"go.uber.org/zap/zaptest/observer"
)

var _ = Describe("func Exchange() (batch requests)", func() {
Expand All @@ -22,8 +24,8 @@ var _ = Describe("func Exchange() (batch requests)", func() {
requestA, requestB, requestC Request
reader *RequestSetReaderStub
writer *ResponseWriterStub
buffer *logging.BufferedLogger
logger DefaultExchangeLogger
logs *observer.ObservedLogs
logger *ZapExchangeLogger
closed bool
)

Expand Down Expand Up @@ -81,10 +83,11 @@ var _ = Describe("func Exchange() (batch requests)", func() {
},
}

buffer = &logging.BufferedLogger{}
var core zapcore.Core
core, logs = observer.New(zapcore.DebugLevel)

logger = DefaultExchangeLogger{
Target: buffer,
logger = &ZapExchangeLogger{
Target: zap.New(core),
}

closed = false
Expand Down Expand Up @@ -128,9 +131,16 @@ var _ = Describe("func Exchange() (batch requests)", func() {
)

Expect(err).ShouldNot(HaveOccurred())
Expect(buffer.Messages()).To(ContainElement(
logging.BufferedLogMessage{
Message: `call "<method-a>" [params: 2 B, result: 22 B]`,
Expect(logs.AllUntimed()).To(ContainElement(
observer.LoggedEntry{
Entry: zapcore.Entry{
Level: zapcore.InfoLevel,
Message: `call "<method-a>"`,
},
Context: []zapcore.Field{
zap.Int("param_size", 2),
zap.Int("result_size", 22),
},
},
))
})
Expand All @@ -149,9 +159,15 @@ var _ = Describe("func Exchange() (batch requests)", func() {
)

Expect(err).To(MatchError("<write error>"))
Expect(buffer.Messages()).To(ContainElement(
logging.BufferedLogMessage{
Message: `unable to write JSON-RPC response: <write error>`,
Expect(logs.AllUntimed()).To(ContainElement(
observer.LoggedEntry{
Entry: zapcore.Entry{
Level: zapcore.ErrorLevel,
Message: `unable to write JSON-RPC response`,
},
Context: []zapcore.Field{
zap.String("error", "<write error>"),
},
},
))
})
Expand Down Expand Up @@ -186,9 +202,15 @@ var _ = Describe("func Exchange() (batch requests)", func() {

Expect(err).ShouldNot(HaveOccurred())
Expect(called).To(BeTrue())
Expect(buffer.Messages()).To(ContainElement(
logging.BufferedLogMessage{
Message: `notify "<method-c>" [params: 2 B]`,
Expect(logs.AllUntimed()).To(ContainElement(
observer.LoggedEntry{
Entry: zapcore.Entry{
Level: zapcore.InfoLevel,
Message: `notify "<method-c>"`,
},
Context: []zapcore.Field{
zap.Int("param_size", 2),
},
},
))
})
Expand Down Expand Up @@ -285,15 +307,35 @@ var _ = Describe("func Exchange() (batch requests)", func() {
},
))

Expect(buffer.Messages()).To(ContainElements(
logging.BufferedLogMessage{
Message: `call "<method-a>" [params: 2 B, result: 22 B]`,
Expect(logs.AllUntimed()).To(ContainElements(
observer.LoggedEntry{
Entry: zapcore.Entry{
Level: zapcore.InfoLevel,
Message: `call "<method-a>"`,
},
Context: []zapcore.Field{
zap.Int("param_size", 2),
zap.Int("result_size", 22),
},
},
logging.BufferedLogMessage{
Message: `call "<method-b>" [params: 2 B, result: 22 B]`,
observer.LoggedEntry{
Entry: zapcore.Entry{
Level: zapcore.InfoLevel,
Message: `call "<method-b>"`,
},
Context: []zapcore.Field{
zap.Int("param_size", 2),
zap.Int("result_size", 22),
},
},
logging.BufferedLogMessage{
Message: `notify "<method-c>" [params: 2 B]`,
observer.LoggedEntry{
Entry: zapcore.Entry{
Level: zapcore.InfoLevel,
Message: `notify "<method-c>"`,
},
Context: []zapcore.Field{
zap.Int("param_size", 2),
},
},
))
})
Expand All @@ -315,9 +357,15 @@ var _ = Describe("func Exchange() (batch requests)", func() {
)

Expect(err).To(MatchError("<write error>"))
Expect(buffer.Messages()).To(ContainElement(
logging.BufferedLogMessage{
Message: `unable to write JSON-RPC response: <write error>`,
Expect(logs.AllUntimed()).To(ContainElement(
observer.LoggedEntry{
Entry: zapcore.Entry{
Level: zapcore.ErrorLevel,
Message: `unable to write JSON-RPC response`,
},
Context: []zapcore.Field{
zap.String("error", "<write error>"),
},
},
))
})
Expand Down
Loading

0 comments on commit 13ca091

Please sign in to comment.