Changelog History
Page 6
-
v18.5.0 Changes
- scrooge-generator: Add support for construction_required fields in cocoa.
PHAB_ID=D163127
- scrooge-generator: Add cocoa initializer for each field in union.
PHAB_ID=D156591
- ๐ scrooge-generator: Add support for empty struct in cocoa.
PHAB_ID=D156539
scrooge-generator: Fix setter bug for non-primitive type in cocoa.
PHAB_ID=D156605
0๏ธโฃ scrooge-adaptive: Turn the scrooge-adaptive off as default in ScroogeRunner due to incompatibility with sbt > 1.0.2.
PHAB_ID=D163144
- scrooge-generator: Add support for construction_required fields in cocoa.
-
v18.4.0 Changes
๐ scrooge-generator: Add support for construction_required fields. Add a validateNewInstance method to all generated scala companion objects.
PHAB_ID=D148841
scrooge-core: Check for corruption in size meta field of container and throw an exception if size is found corrupted.
PHAB_ID=D150057
โฌ๏ธ scrooge: Upgrade libthrift to 0.10.0.
PHAB_ID=D124620
-
v18.3.0 Changes
- ๐ scrooge-generator: Add support for mutually recursive structs.
PHAB_ID=D134470
- ๐ scrooge-generator: Add support for mutually recursive structs.
-
v18.2.0 Changes
scrooge-generator: Add
asClosable
method toServicePerEndpoint
andReqRepServicePerEndpoint
interfaces as well.PHAB_ID=D134171
๐ scrooge-generator: Remove unused
functionToService
andserviceToFunction
methods along withServiceType
andReqRepServiceType
type aliases in order to simplify code generation.
NOTE: This functionality can be manually replicated by users if/when needed to convert between a Function1 and a Finagle
Service
.PHAB_ID=D132171
scrooge-generator: Scala generated client now has a asClosable method returns c.t.u.Closable, client now can be closed by calling
client.asClosable.close
. Note thatasClosable
won't be generated if it is also defined by the user.PHAB_ID=D129645
scrooge-generator: Renamed subclasses of
com.twitter.scrooge.RichResponse
:ProtocolExceptionResponse
,SuccessfulResponse
, andThriftExceptionResponse
. These case classes are for representing different response types and should be only used by the generated code.PHAB_ID=D132202
-
v18.1.0 Changes
โก๏ธ scrooge-generator: Update
c.t.fingale.thrit.service.MethodPerEndpointBuilder
to buildMethodPerEndpoint
types. Add newThriftServiceBuilder
for building the higher-kinded form from aServicePerEndpoint
. Users should prefer using theMethodPerEndpointBuilder
.PHAB_ID=D127538
๐ scrooge-generator: Add more metadata to generated java objects
PHAB_ID=D122997
Includes:- struct and field annotations from the idl files
- which fields have default values
- which field values of TType.STRING are actually binary fields
๐ scrooge: Add support for
scrooge.Request
andscrooge.Response
types in generatedThriftMethod
code.PHAB_ID=D122767
-
v17.12.0 Changes
- scrooge: Introduce
scrooge.Request
andscrooge.Response
envelopes which are used inReqRepServicePerEndpoint
interfaces and associated code. The scroogeRequest
andResponse
allow for passing "header" information (via ThriftMux Message contexts) between clients and servers. For instance, a server can implement aReqRepServicePerEndpoint
, and set response headers along with a method response, e.g.,
.. code-block:: scala
class MyService extends MyService.ReqRepServicePerEndpoint { def foo: Service[Request[Foo.Args], Response[Foo.SuccessType]] = { Service.mk[Request[Foo.Args], Response[Foo.SuccessType]] { request: Request[Foo.Args] => val result = ... // computations Future .value( Response( headers = Map("myservice.foo.header" -> Seq(Buf.Utf8("value1"))), result) } } }
This
ServicePerEndpoint
can then be served usingThriftMux
:.. code-block:: scala
ThriftMux.server.serveIface(":9999", new MyService().toThriftService)
These response headers will be transported as
Mux#contexts
to the client. If the client is using the client-sideReqRepServicePerEndpoint
it will be able to read the headers from the returnedResponse
directly. E.g.,.. code-block:: scala
val client = ThriftMux.client.reqRepServicePerEndpoint[MyService.ReqRepServicePerEndpoint] val response: Response[Foo.SuccessType] = Await.result(client.foo(..)) if (response.headers.contains("myservice.foo.header")) { ...
Users can also choose to wrap the
ReqRepServicePerEndpoint
with aMethodPerEndpoint
viaThriftMux.client.reqRepMethodPerEndpoint(reqRepServicePerEndpoint)
in order to deal with methods instead of services. See the scrooge documentation for more information.PHAB_ID=D107397
- scrooge: Introduce
-
v17.11.0 Changes
๐ scrooge-generator: Deprecated some scala generated classes and use new ones
FutureIface
->MethodPerEndpoint
,MethodIface
->MethodPerEndpoint.apply()
,MethodIfaceBuilder
->MethodPerEndpointBuilder
,BaseServiceIface
->ServicePerEndpoint
,ServiceIface
->ServicePerEndpoint
,ServiceIfaceBuilder
->ServicePerEndpointBuilder
.
To construct a client use
c.t.f.ThriftRichClient.servicePerEndpoint
instead ofnewServiceIface
, to convertServicePerEndpoint
toMethodPerEndpoint
usec.t.f.ThriftRichClient.methodPerEndpoint
instead ofnewMethodIface
.PHAB_ID=D105791
- scrooge-generator: (BREAKING API CHANGE) Change the java generator to no longer
generate files with
org.slf4j
imports and remove limited usage oforg.slf4j
Logger in generated services.PHAB_ID=D108113
-
v17.10.0 Changes
๐ From now on, release versions will be based on release date in the format of YY.MM.x where x is a patch number.
PHAB_ID=D101244
๐ scrooge-generator: For generated scala $FinagleService, moved per-endpoint statsFilter to the outermost of filter chain so it can capture all exceptions, added per-endpoint response classification in statsFilter.
PHAB_ID=D100649
scrooge-generator: Generated scala $FinagleClient takes a
RichClientParam
for all configuration params, such asTProtocolFactory
,ResponseClassifier
,maxReusableBufferSize
, andStatsReceiver
, $FinagleService takes aRichServerParam
.PHAB_ID=D83190
๐ scrooge-sbt-plugin: Renamed ScroogeSBT.thriftConfig to ScroogeSBT.ThriftConfig for sbt 1.0.0.
PHAB_ID=D101910
-
v4.20.0 Changes
No Changes
-
v4.19.0 Changes
scrooge-generator: Generated scala/java code now is using
serviceMap
instead offunctionMap
for Finagle services' method implementation.PHAB_ID=D73619
for scala andPHAB_ID=D76129
for javascrooge-generator: Generated Java code now is using
c.t.s.TReusableBuffer
to reduce object allocations. This in turn addsscrooge-core
as dependency for generated java code.PHAB_ID=D60406
๐ scrooge-generator: support for thrift struct field doccomments for scala generated code
RB_ID=918179
scrooge-generator: The
MethodIface
in generated Scala code implementsFutureIface
. It already "was" that type in practice but did not implement that trait.PHAB_ID=D67289
๐ scrooge-generator: Generated Cocoa code now supports modular frameworks and removes some compiler warnings about implicit casts.
PHAB_ID=D74200