Update dependency com.twitter:finatra-http_2.11 to v20 - abandoned#633
Open
mend-for-github-com[bot] wants to merge 1 commit intomasterfrom
Open
Update dependency com.twitter:finatra-http_2.11 to v20 - abandoned#633mend-for-github-com[bot] wants to merge 1 commit intomasterfrom
mend-for-github-com[bot] wants to merge 1 commit intomasterfrom
Conversation
Author
Autoclosing SkippedThis PR has been flagged for autoclosing. However, it is being skipped due to the branch being already modified. Please close/delete it manually or report a bug if you think this is in error. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
19.12.0->20.12.02.9.0->20.12.0By merging this PR, the below issues will be automatically resolved and closed:
By merging this PR, the below issues will be automatically resolved and closed:
Release Notes
twitter/finatra
v20.12.0Added
inject-utils: Deprecate all methods in
c.t.inject.conversions.map.RichMap, and movefunctionality to
c.t.conversions.MapOpsin the util/util-core project.PHAB_ID=D578819inject-utils: Deprecate all methods in
c.t.inject.conversions.tuple, and move functionalityto
c.t.conversions.TupleOpsin the util/util-core project.PHAB_ID=D578804inject-utils: Deprecate all methods in
c.t.inject.conversions.seq, and move functionalityto
c.t.conversions.SeqOpsin the util/util-core project.PHAB_ID=D578605inject-utils: Remove deprecated
camelify,pascalify, andsnakifyfromc.t.inject.conversions.string.RichString. Additionally, deprecatetoOptionandgetOrElseinc.t.inject.conversions.string.RichString, and move functionality toc.t.conversions.StringOpsin the util/util-core project.PHAB_ID=D578549c.t.finatra.http.exceptions.ExceptionMapperCollection changed from Traversable to Iterable
for cross-building 2.12 and 2.13.
PHAB_ID=D574391inject-core: (BREAKING API CHANGE) Move the testing utility
InMemoryStatsReceiverUtilityand
InMemoryStatsinto inject-core from inject-server. They can both be found undercom.twitter.inject.PHAB_ID=D574643validation: (BREAKING API CHANGE) Introduce new Validation Framework APIs which support
cascading validation to nested case classes and other improvements which also closer align
to JSR380.
Validator#validatehas changed from returningUnitand throwing an exceptionto model the JSR380 version that returns a Set of failed constraints. There is a new method
which replicates the throwing behavior.
PHAB_ID=D559644kafka: Split
c.t.f.kafka.tracingEnabledflag intoc.t.f.k.producers.producerTracingEnabledandc.t.f.k.consumers.consumerTracingEnabledto selectively enable/disable tracing forproducers/consumers. Producer tracing is turned on by default and consumer tracing is turned off
by default now.
PHAB_ID=D571064Fixed
v20.10.0Added
utils: Undo usage of TypesApi for help in determining if a class is a Scala case class
as this fails for generic case classes in Scala 2.11, failing some supported cases for
Jackson processing.
PHAB_ID=D566596utils: Update
ClassUtils#simpleNameto handle when package names have underscoresfollowed by a number which throws an
InternalError. Add tests.PHAB_ID=D566069utils: Revamp
ClassUtils#isCaseClassto use the TypesApi for help in determiningif a class is a Scala case class. Add tests.
PHAB_ID=D566069http: The http server did not properly log the bound address on server startup. Fix this
and make the thrift server consistent.
PHAB_ID=D563758utils: (BREAKING API CHANGE) Rename
maybeIsCaseClasstonotCaseClassinClassUtilsand change the scope of the method.PHAB_ID=D556169http: Adding support for optionally passing chain in the TLS sever trait.
PHAB_ID=D553718finatra: Bump version of Joda-Time to 2.10.8.
PHAB_ID=D570496Fixed
v20.9.0Added
finatra-kafka-streams: Update and separate the Finatra kafka stream code base which has direct
dependency on Kafka 2.2. Separate any code which cannot easily be upgraded to separate build
target.
PHAB_ID=D545900inject-core:
c.t.inject.Injectoris now an abstract class. UseInjector.applyto createa new instance (versus the
new Injector(...)before).PHAB_ID=D543297http: Ensure HttpWarmer creates the request exactly the number of times requested and
mutates the correct objects.
PHAB_ID=D547310kafka: Replaced the
com.twitter.finatra.kafka.TracingEnabledtoggle with a GlobalFlag enablingZipkin tracing for Kafka clients.
PHAB_ID=D525274finatra: Bump version of Jackson to 2.11.2.
PHAB_ID=D538440Fixed
v20.8.1Added
com.twitter.inject.Mockitotrait. Users are encouraged toswitch to the
com.twitter.util.mock.Mockitotrait from util/util-mock.PHAB_ID=D529174Fixed
v20.8.0Added
inject-modules: Improve Java usability: rename
applytogetforStatsReceiverModule and LoggerModule.
Add
getmethods for other TwitterModule singleton objects.(BREAKING API CHANGE)
PHAB_IB=D525696inject-core: Deprecate
c.t.inject.Resettable(no replacement) andc.t.inject.TestTwitterModule.Users should prefer the
#bind[T]DSL over usage of theTestTwitterModule.PHAB_ID=D520889Fixed
v20.7.0Added
finatra: Update
org.scalatestdependency to 3.1.2 and introduce finer-grained dependencies onorg.scalatestplusartifacts.PHAB_ID=D518553PHAB_ID=D518794inject-thrift-client: Remove unused ClientId property from
ThriftMethodBuilderClientModule#provideServicePerEndpointmethod.PHAB_ID=D513491inject-server: Improve startup time of
EmbeddedTwitterServerby observing lifecycle events todetermine startup, where previously we were doing 1 second polls. The
nonInjectableServerStartedproperty is removed and
isStartedshould be referenced regardless of the type of underlyingtwitterServertype. The end result should see a faster test execution feedback loop. Our Finatratest targets range from a roughly 2x to 10x reduction in execution times.
You may experience new test failures in cases where an exception is thrown as part of
c.t.inject.TwitterServer.start()orc.t.server.TwitterServer.main()and the test would haveexpected a failure as part of startup. As the error takes place after the startup lifecycle,
you may now need to
Await.resulttheEmbeddedTwitterServer.mainResult()to assert the error.You may also experience some new non-deterministic behavior when testing against PubSub style
logic. As the server may be started earlier, your tests may be relying on assumptions that
an event would have occurred within the previous 1 second startup poll, which is no longer
guaranteed. You may need to adjust your test logic to account for this behavior.
PHAB_ID=D499999finatra: Update
com.google.inject.guicedependency to 4.2.3 andnet.codingwell.scala-guiceto version 4.2.11. The
net.codingwell.scala-guicelibrary has switched from Manifests to TypeTagsfor transparent binding and injector key creation. The
c.t.inject.TwitterModulehas moved from itscustom bind DSL to the
scalaguice.ScalaModulewhich brings theTwitterModuleinline with both theTwitterPrivateModuleand thebind[T]test DSL to now have the same consistent binding DSL acrossall three. Thus, there is no more confusing
bindSingletonfunction in theTwitterModulebind API.Upgrading scalaguice helps move a necessary dependency of Finatra to a version which is Scala 2.13
compatible moving Finatra closer to Scala 2.13 support.
PHAB_ID=D504559PHAB_ID=D515857Fixed
v20.6.0Added
thrift/http: Introduce a
Common Log Format <https://en.wikipedia.org/wiki/Common_Log_Format>__type of formatting for Thrift access logging to replace the current
prelogtext. Ensurethe HTTP and Thrift access logging filters are aligned in functionality and behavior.
PHAB_ID=D497596inject-slf4j: Remove Jackson dependency. Case classes which wish to use the slf4j Logging
functionality should use the finatra/jackson
c.t.finatra.jackson.caseclass.SerdeLoggingtrait which provides a
@JsonIgnorePropertiesto ignore logging fields.PHAB_ID=D487948Fixed
v20.5.0Added
inject-slf4j: Move MDC integration from
inject/inject-slf4jtoinject/inject-mdc.PHAB_ID=D485870finatra-http: Allow extensions of the
c.t.finatra.http.filters.HttpResponseFilterto specify how to set the Location Header value into a Response. Additionally, don't
allow exceptions resulting from the inability to set a non-compliant 'Location' response
header escape the filter.
PHAB_ID=D483793inject-core: Make flag methods in
c.t.inject.TwitterModulepublic an final.PHAB_ID=D484168inject-core:
c.t.inject.Mockitohas been marked deprecated. Users are encouraged to prefermockito-scala <https://github.com/mockito/mockito-scala>_ (or ScalaTestMockitoSugar <http://doc.scalatest.org/3.1.1/#org.scalatestplus.mockito.MockitoSugar>_which provides some basic syntax sugar for Mockito).
PHAB_ID=D482531http: (BREAKING API CHANGE) Update the
c.t.finatra.http.HttpResponseFilterto optionally fullyqualify response 'Location' header values. A
previous change <https://github.com/twitter/finatra/commit/ff9acc9fbf4e89b532df9daf2b9cba6d90b2df96>_made the filter always attempt to fully qualify any response 'Location' header value. This updates
the logic to be opt-in for the more strict returning of fully qualified 'Location' header values with
the default being to allow relative values per the
RFC7231 <https://tools.ietf.org/html/rfc7231#section-7.1.2>_which replaces the obsolete
RFC2616 <https://tools.ietf.org/html/rfc2616#section-14.30>_. This isthus a breaking API change as the default is now to allow relative values. To enable the previous
strict behavior, users should instantiate the filter with the constructor arg
fullyQualifyLocationHeaderset to 'true'. This addresses issue #524.
PHAB_ID=D467909jackson: Remove deprecated
FinatraObjectMapperandFinatraJacksonModule. Users are encouragedto switch to the equivalent
c.t.finatra.jackson.ScalaObjectMapperandc.t.finatra.jackson.modules.ScalaObjectMapperModule.PHAB_ID=D473177finatra-http: Update
c.t.finatra.http.StreamingJsonTestHelperto not useThread.sleepforwriting JSON elements on an artificial delay.
PHAB_ID=D470793inject-app: Remove finagle-core dependency. Introduce finatra/inject/inject-dtab.
PHAB_ID=D474298finatra: Bump version of Jackson to 2.11.0.
PHAB_ID=D457496finatra-http: Only create
EnrichedResponsecounters when needed. Any "service/failure"response counters will only be generated upon first failure and not eagerly for each
response generated. This change impacts users who expect a counter value of 0 when no
response failures have been encountered - now the counter will not exist until the first
failure has been recorded.
PHAB_ID=D474918finatra: Bump version of Joda-Time to 2.10.6.
PHAB_ID=D473522Fixed
v20.4.1Added
inject-app: Introduce consistent
c.t.app.Flagcreation methods for Java. Bring HTTP and Thriftserver traits inline with each other to provide consistent Java support. Ensure Java examples in
documentation.
PHAB_ID=D471716inject-core: Update the configuration of
c.t.app.Flaginstances created within ac.t.inject.TwitterModuleto have
failFastUntilParsedset to 'true' by default. While this is configurable for a givenc.t.inject.TwitterModule, much like for the application itself, it is STRONGLY recommended thatusers adopt this behavior.
PHAB_ID=D448047inject-app: Update
c.t.inject.app.TestInjectorto always add theInjectorModule.PHAB_ID=D465943inject-app: Reduce visibility of internal code in
c.t.inject.app.internal.PHAB_ID=D465597inject-modules: Updated BUILD files for Pants 1:1:1 layout.
PHAB_ID=D442977Fixed
v20.4.0Added
finatra-validation|jackson: (BREAKING API CHANGE) Introduced new case class validation library
inspired by JSR-380 specification. The new library can be used as its own to validate field and
method annotations for a case class. The library is also automatically integrated with Finatra's
custom
CaseClassDeserializerto efficiently apply per field and method validations as requestparsing is performed. However, Users can easily turn off validation during request parsing with
the setting
noValidationin their server configurations. For more information, please checkoutFinatra User's Guide <https://docbird.twitter.biz/finatra/user-guide/index.html>__.PHAB_ID=D415743finatra: guice is upgraded to 4.2.1
PHAB_ID=D457714v20.3.0Added
finatra-validation|jackson: Remove Jackson dependency from finatra/validation. This
was for
ErrorCodereporting but can be moved to finatra/jackson.PHAB_ID=D445364finatra-kafka-streams: (BREAKING API CHANGE) Update AsyncTransformer to preserve
record context.
PHAB_ID=D436227finatra-jackson: Better handling of Scala enumeration mapping errors. Currently, if mapping
of a Scala enumeration during deserialization fails a
java.util.NoSuchElementExceptionisthrown which escapes deserialization error handling. Update to instead handle this failure case
in order to correctly translate into a
CaseClassFieldMappingExceptionwhich will be wrappedinto a
CaseClassMappingException.PHAB_ID=D442575Fixed
v20.1.0Changed