THRIFT-4448: Golang: do something with context.Context. Remove Go1.6 compatibility.
Client: go
This closes #1459
diff --git a/tutorial/go/Makefile.am b/tutorial/go/Makefile.am
index a146d5c..87a8f5a 100644
--- a/tutorial/go/Makefile.am
+++ b/tutorial/go/Makefile.am
@@ -17,10 +17,6 @@
# under the License.
#
-if GOVERSION_LT_17
-COMPILER_EXTRAFLAG=":legacy_context"
-endif
-
gen-go/tutorial/calculator.go gen-go/shared/shared_service.go: $(top_srcdir)/tutorial/tutorial.thrift
$(THRIFT) --gen go$(COMPILER_EXTRAFLAG) -r $<
@@ -37,9 +33,6 @@
ln -sf $(realpath $(top_srcdir)/lib/go/thrift) src/git.apache.org/thrift.git/lib/go/thrift
thirdparty-dep:
- mkdir -p src/golang.org/x/net
- GOPATH=`pwd`/gopath $(GO) get golang.org/x/net/context
- ln -sf `pwd`/gopath/src/golang.org/x/net/context src/golang.org/x/net/context
tutorialserver: all
GOPATH=`pwd` $(GO) run src/*.go -server=true
@@ -61,9 +54,6 @@
src/handler.go \
src/server.go \
src/main.go \
- src/go17.go \
- src/handler_go17.go \
- src/pre_go17.go \
server.crt \
server.key
diff --git a/tutorial/go/src/client.go b/tutorial/go/src/client.go
index 25616bf..1d658b9 100644
--- a/tutorial/go/src/client.go
+++ b/tutorial/go/src/client.go
@@ -20,6 +20,7 @@
*/
import (
+ "context"
"crypto/tls"
"fmt"
"tutorial"
@@ -27,6 +28,8 @@
"git.apache.org/thrift.git/lib/go/thrift"
)
+var defaultCtx = context.Background()
+
func handleClient(client *tutorial.CalculatorClient) (err error) {
client.Ping(defaultCtx)
fmt.Println("ping()")
diff --git a/tutorial/go/src/go17.go b/tutorial/go/src/go17.go
deleted file mode 100644
index a6003a9..0000000
--- a/tutorial/go/src/go17.go
+++ /dev/null
@@ -1,26 +0,0 @@
-// +build go1.7
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package main
-
-import "context"
-
-var defaultCtx = context.Background()
diff --git a/tutorial/go/src/handler.go b/tutorial/go/src/handler.go
index 783b432..5c0eed0 100644
--- a/tutorial/go/src/handler.go
+++ b/tutorial/go/src/handler.go
@@ -1,5 +1,3 @@
-// +build !go1.7
-
package main
/*
@@ -22,12 +20,11 @@
*/
import (
+ "context"
"fmt"
"shared"
"strconv"
"tutorial"
-
- "golang.org/x/net/context"
)
type CalculatorHandler struct {
diff --git a/tutorial/go/src/handler_go17.go b/tutorial/go/src/handler_go17.go
deleted file mode 100644
index d6752cc..0000000
--- a/tutorial/go/src/handler_go17.go
+++ /dev/null
@@ -1,104 +0,0 @@
-// +build go1.7
-
-package main
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import (
- "context"
- "fmt"
- "shared"
- "strconv"
- "tutorial"
-)
-
-type CalculatorHandler struct {
- log map[int]*shared.SharedStruct
-}
-
-func NewCalculatorHandler() *CalculatorHandler {
- return &CalculatorHandler{log: make(map[int]*shared.SharedStruct)}
-}
-
-func (p *CalculatorHandler) Ping(ctx context.Context) (err error) {
- fmt.Print("ping()\n")
- return nil
-}
-
-func (p *CalculatorHandler) Add(ctx context.Context, num1 int32, num2 int32) (retval17 int32, err error) {
- fmt.Print("add(", num1, ",", num2, ")\n")
- return num1 + num2, nil
-}
-
-func (p *CalculatorHandler) Calculate(ctx context.Context, logid int32, w *tutorial.Work) (val int32, err error) {
- fmt.Print("calculate(", logid, ", {", w.Op, ",", w.Num1, ",", w.Num2, "})\n")
- switch w.Op {
- case tutorial.Operation_ADD:
- val = w.Num1 + w.Num2
- break
- case tutorial.Operation_SUBTRACT:
- val = w.Num1 - w.Num2
- break
- case tutorial.Operation_MULTIPLY:
- val = w.Num1 * w.Num2
- break
- case tutorial.Operation_DIVIDE:
- if w.Num2 == 0 {
- ouch := tutorial.NewInvalidOperation()
- ouch.WhatOp = int32(w.Op)
- ouch.Why = "Cannot divide by 0"
- err = ouch
- return
- }
- val = w.Num1 / w.Num2
- break
- default:
- ouch := tutorial.NewInvalidOperation()
- ouch.WhatOp = int32(w.Op)
- ouch.Why = "Unknown operation"
- err = ouch
- return
- }
- entry := shared.NewSharedStruct()
- entry.Key = logid
- entry.Value = strconv.Itoa(int(val))
- k := int(logid)
- /*
- oldvalue, exists := p.log[k]
- if exists {
- fmt.Print("Replacing ", oldvalue, " with ", entry, " for key ", k, "\n")
- } else {
- fmt.Print("Adding ", entry, " for key ", k, "\n")
- }
- */
- p.log[k] = entry
- return val, err
-}
-
-func (p *CalculatorHandler) GetStruct(ctx context.Context, key int32) (*shared.SharedStruct, error) {
- fmt.Print("getStruct(", key, ")\n")
- v, _ := p.log[int(key)]
- return v, nil
-}
-
-func (p *CalculatorHandler) Zip(ctx context.Context) (err error) {
- fmt.Print("zip()\n")
- return nil
-}
diff --git a/tutorial/go/src/pre_go17.go b/tutorial/go/src/pre_go17.go
deleted file mode 100644
index 10a6fb8..0000000
--- a/tutorial/go/src/pre_go17.go
+++ /dev/null
@@ -1,26 +0,0 @@
-// +build !go1.7
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-package main
-
-import "golang.org/x/net/context"
-
-var defaultCtx = context.Background()