This is an automated email from the ASF dual-hosted git repository. sruehl pushed a commit to branch develop in repository https://gitbox.apache.org/repos/asf/plc4x.git
commit 8281025d402f362cef62b4d1ea3ef6081f7d5834 Author: Sebastian Rühl <[email protected]> AuthorDate: Thu Nov 20 14:17:14 2025 +0100 feat(plc4go/spi): add operationInfo to Submit for transaction --- plc4go/internal/bacnetip/Reader.go | 2 +- plc4go/internal/cbus/CBusMessageMapper_test.go | 44 +++++++++++----------- plc4go/internal/cbus/Reader.go | 2 +- plc4go/internal/cbus/Writer.go | 2 +- plc4go/internal/cbus/mocks_test.go | 2 +- plc4go/internal/eip/Reader.go | 2 +- plc4go/internal/s7/Reader.go | 2 +- plc4go/internal/s7/Writer.go | 2 +- plc4go/spi/default/DefaultCodec_test.go | 2 +- plc4go/spi/transactions/RequestTransaction.go | 16 ++++---- plc4go/spi/transactions/RequestTransaction_test.go | 13 ++++--- plc4go/spi/transactions/mocks_test.go | 2 +- 12 files changed, 46 insertions(+), 45 deletions(-) diff --git a/plc4go/internal/bacnetip/Reader.go b/plc4go/internal/bacnetip/Reader.go index 2ae7e3c650..4c38b39c84 100644 --- a/plc4go/internal/bacnetip/Reader.go +++ b/plc4go/internal/bacnetip/Reader.go @@ -135,7 +135,7 @@ func (m *Reader) Read(ctx context.Context, readRequest apiModel.PlcReadRequest) // Start a new request-transaction (Is ended in the response-handler) transaction := m.tm.StartTransaction("read") - transaction.Submit(func(transactionContext context.Context, transaction transactions.RequestTransaction) { + transaction.Submit("readOperation", func(transactionContext context.Context, transaction transactions.RequestTransaction) { ctx, cancel := context.WithCancel(ctx) context.AfterFunc(transactionContext, cancel) // Send the over the wire diff --git a/plc4go/internal/cbus/CBusMessageMapper_test.go b/plc4go/internal/cbus/CBusMessageMapper_test.go index da609e5870..bae60ec94e 100644 --- a/plc4go/internal/cbus/CBusMessageMapper_test.go +++ b/plc4go/internal/cbus/CBusMessageMapper_test.go @@ -1425,7 +1425,7 @@ func TestMapEncodedReply(t *testing.T) { }) transaction := transactionManager.StartTransaction(t.Name()) t.Logf("Submitting No-Op to transaction\n%v", transaction) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -1502,7 +1502,7 @@ func TestMapEncodedReply(t *testing.T) { }) transaction := transactionManager.StartTransaction(t.Name()) t.Logf("Submitting No-Op to transaction %v", transaction) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP t.Log("No op-ing") }) @@ -1595,7 +1595,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -1678,7 +1678,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -1744,7 +1744,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -1813,7 +1813,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -1901,7 +1901,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -2007,7 +2007,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -2077,7 +2077,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -2143,7 +2143,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -2209,7 +2209,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -2275,7 +2275,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -2341,7 +2341,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -2427,7 +2427,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -2493,7 +2493,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -2559,7 +2559,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -2625,7 +2625,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -2691,7 +2691,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -2757,7 +2757,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -2839,7 +2839,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -2905,7 +2905,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction @@ -2971,7 +2971,7 @@ func TestMapEncodedReply(t *testing.T) { assert.NoError(t, transactionManager.Close()) }) transaction := transactionManager.StartTransaction(t.Name()) - transaction.Submit(func(context.Context, transactions.RequestTransaction) { + transaction.Submit(t.Name(), func(context.Context, transactions.RequestTransaction) { // NO-OP }) args.transaction = transaction diff --git a/plc4go/internal/cbus/Reader.go b/plc4go/internal/cbus/Reader.go index 442ad46edb..b1b21ef2d4 100644 --- a/plc4go/internal/cbus/Reader.go +++ b/plc4go/internal/cbus/Reader.go @@ -127,7 +127,7 @@ func (m *Reader) readSync(ctx context.Context, readRequest apiModel.PlcReadReque func (m *Reader) createMessageTransactionAndWait(ctx context.Context, messageToSend readWriteModel.CBusMessage, addResponseCode func(name string, responseCode apiModel.PlcResponseCode), tagName string, addPlcValue func(name string, plcValue apiValues.PlcValue)) { // Start a new request-transaction (Is ended in the response-handler) transaction := m.tm.StartTransaction("read") - transaction.Submit(func(transactionContext context.Context, transaction transactions.RequestTransaction) { + transaction.Submit("readOperation", func(transactionContext context.Context, transaction transactions.RequestTransaction) { ctx, cancel := context.WithCancel(ctx) context.AfterFunc(transactionContext, cancel) m.log.Trace().Interface("transaction", transaction).Msg("Transaction getting handled") diff --git a/plc4go/internal/cbus/Writer.go b/plc4go/internal/cbus/Writer.go index 3e595fa349..ef60b1820c 100644 --- a/plc4go/internal/cbus/Writer.go +++ b/plc4go/internal/cbus/Writer.go @@ -113,7 +113,7 @@ func (m *Writer) Write(ctx context.Context, writeRequest apiModel.PlcWriteReques tagNameCopy := tagName // Start a new request-transaction (Is ended in the response-handler) transaction := m.tm.StartTransaction("write") - transaction.Submit(func(transactionContext context.Context, transaction transactions.RequestTransaction) { + transaction.Submit("writeOperation", func(transactionContext context.Context, transaction transactions.RequestTransaction) { ctx, cancel := context.WithCancel(ctx) context.AfterFunc(transactionContext, cancel) // Send the over the wire diff --git a/plc4go/internal/cbus/mocks_test.go b/plc4go/internal/cbus/mocks_test.go index ca376f276c..47067a7820 100644 --- a/plc4go/internal/cbus/mocks_test.go +++ b/plc4go/internal/cbus/mocks_test.go @@ -4236,7 +4236,7 @@ func (_c *MockRequestTransaction_String_Call) RunAndReturn(run func() string) *M } // Submit provides a mock function for the type MockRequestTransaction -func (_mock *MockRequestTransaction) Submit(operation transactions.RequestTransactionRunnable) { +func (_mock *MockRequestTransaction) Submit(operationInfo string, operation transactions.RequestTransactionRunnable) { _mock.Called(operation) return } diff --git a/plc4go/internal/eip/Reader.go b/plc4go/internal/eip/Reader.go index 37703f8e9a..77c9acccad 100644 --- a/plc4go/internal/eip/Reader.go +++ b/plc4go/internal/eip/Reader.go @@ -107,7 +107,7 @@ func (m *Reader) Read(ctx context.Context, readRequest apiModel.PlcReadRequest) typeIds, ) transaction := m.tm.StartTransaction("read") - transaction.Submit(func(transactionContext context.Context, transaction transactions.RequestTransaction) { + transaction.Submit("readOperation", func(transactionContext context.Context, transaction transactions.RequestTransaction) { ctx, cancel := context.WithCancel(ctx) context.AfterFunc(transactionContext, cancel) if err := m.messageCodec.SendRequest(ctx, "read", request, func(message spi.Message) bool { diff --git a/plc4go/internal/s7/Reader.go b/plc4go/internal/s7/Reader.go index 04a6a22cef..d3a0326d21 100644 --- a/plc4go/internal/s7/Reader.go +++ b/plc4go/internal/s7/Reader.go @@ -114,7 +114,7 @@ func (m *Reader) Read(ctx context.Context, readRequest apiModel.PlcReadRequest) ) // Start a new request-transaction (Is ended in the response-handler) transaction := m.tm.StartTransaction("read") - transaction.Submit(func(transactionContext context.Context, transaction transactions.RequestTransaction) { + transaction.Submit("readOperation", func(transactionContext context.Context, transaction transactions.RequestTransaction) { ctx, cancel := context.WithCancel(ctx) context.AfterFunc(transactionContext, cancel) diff --git a/plc4go/internal/s7/Writer.go b/plc4go/internal/s7/Writer.go index 13796ec2d9..0563989f3c 100644 --- a/plc4go/internal/s7/Writer.go +++ b/plc4go/internal/s7/Writer.go @@ -107,7 +107,7 @@ func (m *Writer) Write(ctx context.Context, writeRequest apiModel.PlcWriteReques // Start a new request-transaction (Is ended in the response-handler) transaction := m.tm.StartTransaction("write") - transaction.Submit(func(transactionContext context.Context, transaction transactions.RequestTransaction) { + transaction.Submit("writeOperation", func(transactionContext context.Context, transaction transactions.RequestTransaction) { ctx, cancel := context.WithCancel(ctx) context.AfterFunc(transactionContext, cancel) // Send the over the wire diff --git a/plc4go/spi/default/DefaultCodec_test.go b/plc4go/spi/default/DefaultCodec_test.go index d55ea4a578..80a07ef41b 100644 --- a/plc4go/spi/default/DefaultCodec_test.go +++ b/plc4go/spi/default/DefaultCodec_test.go @@ -231,7 +231,7 @@ func TestDefaultExpectation_String(t *testing.T) { }{ { name: "string it", - want: "Expectation 00000000-0000-0000-0000-000000000000 (expires at 0001-01-01 00:00:00 +0000 UTC in -2562047h47m16.854775808s)", + want: "Expectation '' 00000000-0000-0000-0000-000000000000 (expires at 0001-01-01 00:00:00 +0000 UTC in -2562047h47m16.854775808s)", }, } for _, tt := range tests { diff --git a/plc4go/spi/transactions/RequestTransaction.go b/plc4go/spi/transactions/RequestTransaction.go index f006de1bc1..9895b44824 100644 --- a/plc4go/spi/transactions/RequestTransaction.go +++ b/plc4go/spi/transactions/RequestTransaction.go @@ -41,7 +41,7 @@ type RequestTransaction interface { // EndRequest signals that this transaction is done EndRequest() error // Submit submits a RequestTransactionRunnable to the RequestTransactionManager - Submit(operation RequestTransactionRunnable) + Submit(operationInfo string, operation RequestTransactionRunnable) // AwaitCompletion wait for this RequestTransaction to finish. Returns an error if it finished unsuccessful AwaitCompletion(ctx context.Context) error // IsCompleted indicates that the that this RequestTransaction is completed @@ -120,7 +120,7 @@ func (t *requestTransaction) EndRequest() error { return t.parent.endRequest(t) } -func (t *requestTransaction) Submit(operation RequestTransactionRunnable) { +func (t *requestTransaction) Submit(operationInfo string, operation RequestTransactionRunnable) { t.stateChangeMutex.Lock() defer t.stateChangeMutex.Unlock() if t.completed { @@ -130,17 +130,17 @@ func (t *requestTransaction) Submit(operation RequestTransactionRunnable) { if t.operation != nil { t.log.Warn().Msg("Operation already set") } - t.log.Trace().Int32("transactionId", t.transactionId).Msg("Submission") + t.log.Trace().Msg("Submission") t.operation = func(ctx context.Context) { - t.log.Trace().Int32("transactionId", t.transactionId).Msg("Start operation") + t.log.Trace().Str("operationInfo", operationInfo).Msg("Start operation") operation(ctx, t) - t.log.Trace().Int32("transactionId", t.transactionId).Msg("Completed operation") + t.log.Trace().Str("operationInfo", operationInfo).Msg("Completed operation") } t.parent.submitTransaction(t) } func (t *requestTransaction) AwaitCompletion(ctx context.Context) error { - t.log.Trace().Int32("transactionId", t.transactionId).Msg("Awaiting completion") + t.log.Trace().Msg("Awaiting completion") timeout, cancelFunc := context.WithTimeout(ctx, time.Minute*30) // This is intentionally set very high defer cancelFunc() for t.getCompletionFuture() == nil { @@ -151,7 +151,7 @@ func (t *requestTransaction) AwaitCompletion(ctx context.Context) error { } } if err := t.getCompletionFuture().AwaitCompletion(ctx); err != nil { - t.log.Trace().Int32("transactionId", t.transactionId).Msg("Errored") + t.log.Trace().Msg("Errored") return err } stillActive := true @@ -166,7 +166,7 @@ func (t *requestTransaction) AwaitCompletion(ctx context.Context) error { } t.parent.runningRequestMutex.RUnlock() } - t.log.Trace().Int32("transactionId", t.transactionId).Msg("Completed") + t.log.Trace().Msg("Completed") return nil } diff --git a/plc4go/spi/transactions/RequestTransaction_test.go b/plc4go/spi/transactions/RequestTransaction_test.go index 16dbaf07e7..c95863d394 100644 --- a/plc4go/spi/transactions/RequestTransaction_test.go +++ b/plc4go/spi/transactions/RequestTransaction_test.go @@ -35,9 +35,10 @@ import ( func Test_newRequestTransaction(t *testing.T) { type args struct { - localLog zerolog.Logger - parent *requestTransactionManager - transactionId int32 + localLog zerolog.Logger + parent *requestTransactionManager + transactionId int32 + transactionInfo string } tests := []struct { name string @@ -47,13 +48,13 @@ func Test_newRequestTransaction(t *testing.T) { { name: "create it", want: &requestTransaction{ - log: zerolog.Logger{}.With().Int32("transactionId", 0).Logger(), + log: zerolog.Logger{}.With().Int32("transactionId", 0).Str("transactionInfo", "").Logger(), }, }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { - assert.Equalf(t, tt.want, newRequestTransaction(tt.args.localLog, tt.args.parent, tt.args.transactionId), "newRequestTransaction(%v, %v, %v)", tt.args.localLog, tt.args.parent, tt.args.transactionId) + assert.Equalf(t, tt.want, newRequestTransaction(tt.args.localLog, tt.args.parent, tt.args.transactionId, tt.args.transactionInfo), "newRequestTransaction(%v, %v, %v, %v)", tt.args.localLog, tt.args.parent, tt.args.transactionId, tt.args.transactionInfo) }) } } @@ -275,7 +276,7 @@ func Test_requestTransaction_Submit(t1 *testing.T) { log: tt.fields.transactionLog, completed: tt.fields.completed, } - rt.Submit(tt.args.operation) + rt.Submit(t.Name(), tt.args.operation) rt.operation(t.Context()) }) } diff --git a/plc4go/spi/transactions/mocks_test.go b/plc4go/spi/transactions/mocks_test.go index 31afd727d1..c223abb423 100644 --- a/plc4go/spi/transactions/mocks_test.go +++ b/plc4go/spi/transactions/mocks_test.go @@ -293,7 +293,7 @@ func (_c *MockRequestTransaction_String_Call) RunAndReturn(run func() string) *M } // Submit provides a mock function for the type MockRequestTransaction -func (_mock *MockRequestTransaction) Submit(operation RequestTransactionRunnable) { +func (_mock *MockRequestTransaction) Submit(operationInfo string, operation RequestTransactionRunnable) { _mock.Called(operation) return }
