Skip to content
A networking framework that evolves with your application
Java Other
  1. Java 99.4%
  2. Other 0.6%
Branch: master
Clone or download

Latest commit

jen20 Fix all deprecation warnings from Gradle 6.3 (#1080)
Motivation:

Pull request #992 upgraded the ServiceTalk build to use Gradle 6.3.
Several deprecation warnings are presented when running builds with
version 6.3 (I haven't confirmed whether they were present with older
versions however). This commit updates all usages which present
deprecation warnings with their forward-compatible replacements.

Modifications:

- Replace the `runtime` directive with the `runtimeOnly` directive for
  runtime inclusion of `log4j` and `boringssl` in several examples.

- Replace the `testRuntime` directive with the `testRuntimeOnly`
  directive in `servicetalk-http-security-jersey/.build.gradle`.

- Replace the `compile` directive with the `implementation` directive
  in `servicetalk-gradle-plugin-internal/plugin-config.gradle` and
  `servicetalk-grpc-gradle-plugin/plugin-config.gradle`

- Replace use of directly setting `configDir` in the `checkstyle`
  configuration with `getConfigDirectory.set`.

- Replace `baseName` directive in the `shadowJar` configuration with
  `archiveBaseName`.

- Remove use of enableFeaturePreview("GRADLE_METADATA"), which is no
  longer required.

Result:

No deprecation warnings are now presented when running builds with
Gradle 6.3.
Latest commit d37946e Jun 4, 2020

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
buildSrc Fix typo in `inheritRepositoriesFromBuildScript` method name (#986) Mar 27, 2020
docker Enable publish to maven central via Sonatype with plugin scoping (#849) Nov 7, 2019
docs Preparing for 0.29.0-SNAPSHOT development May 21, 2020
gradle/wrapper Update to Gradle 6.3 (#992) Apr 1, 2020
scripts Enforce JDK8 when running `publish-docs.sh` (#973) Mar 20, 2020
servicetalk-annotations Enable publish to maven central via Sonatype with plugin scoping (#849) Nov 7, 2019
servicetalk-benchmarks RoundRobinLoadBalancer to allow duplicate addresses (#1052) May 14, 2020
servicetalk-bom Support `router-api` annotations for gRPC services (#912) Jan 17, 2020
servicetalk-buffer-api Enable publish to maven central via Sonatype with plugin scoping (#849) Nov 7, 2019
servicetalk-buffer-netty Do not wrap unreleasable ByteBuf(s) with `Unpooled.unreleasableBuffer` ( Apr 1, 2020
servicetalk-client-api-internal More robust exception handling from Subscribers (#1034) May 1, 2020
servicetalk-client-api Fail requests if ServiceDiscoverer emits an error (#1070) Jun 3, 2020
servicetalk-concurrent-api-internal Improve `Processors` (#1039) May 8, 2020
servicetalk-concurrent-api Preparing for 0.29.0-SNAPSHOT development May 21, 2020
servicetalk-concurrent-internal DelayedSubscription no longer uses ConcurrentSubscription internally (#… May 12, 2020
servicetalk-concurrent-jdkflow Spotbugs exclusion for JDK flow (#917) Jan 10, 2020
servicetalk-concurrent-reactivestreams Add `Publisher#buffer` operator (#1027) May 12, 2020
servicetalk-concurrent Improve `Processors` (#1039) May 8, 2020
servicetalk-data-jackson-jersey Configure ServiceTalkJacksonSerializerFeature explicitly and remove '… ( May 29, 2020
servicetalk-data-jackson Move PlatformDependent to `servicetalk-utils-internal` #879 (#882) Dec 2, 2019
servicetalk-data-protobuf Enable publish to maven central via Sonatype with plugin scoping (#849) Nov 7, 2019
servicetalk-dns-discovery-netty Fail requests if ServiceDiscoverer emits an error (#1070) Jun 3, 2020
servicetalk-examples Fix all deprecation warnings from Gradle 6.3 (#1080) Jun 4, 2020
servicetalk-gradle-plugin-internal Fix all deprecation warnings from Gradle 6.3 (#1080) Jun 4, 2020
servicetalk-grpc-api Preparing for 0.29.0-SNAPSHOT development May 21, 2020
servicetalk-grpc-gradle-plugin Fix all deprecation warnings from Gradle 6.3 (#1080) Jun 4, 2020
servicetalk-grpc-netty Improve `Processors` (#1039) May 8, 2020
servicetalk-grpc-protobuf Optimize `ProtoBufSerializationProvider` by minimizing copying (#943) Feb 21, 2020
servicetalk-grpc-protoc Fix all deprecation warnings from Gradle 6.3 (#1080) Jun 4, 2020
servicetalk-http-api Fail requests if ServiceDiscoverer emits an error (#1070) Jun 3, 2020
servicetalk-http-netty Fail requests if ServiceDiscoverer emits an error (#1070) Jun 3, 2020
servicetalk-http-router-jersey-internal Enable publish to maven central via Sonatype with plugin scoping (#849) Nov 7, 2019
servicetalk-http-router-jersey Fix all deprecation warnings from Gradle 6.3 (#1080) Jun 4, 2020
servicetalk-http-router-predicate Make `DefaultThreadFactory` name prefix consistent with `IoThreadFact… Jan 17, 2020
servicetalk-http-security-jersey Fix all deprecation warnings from Gradle 6.3 (#1080) Jun 4, 2020
servicetalk-http-utils Promote Single.TerminalSignalConsumer to top level interface (#1008) Apr 7, 2020
servicetalk-loadbalancer Preparing for 0.29.0-SNAPSHOT development May 21, 2020
servicetalk-log4j2-mdc-utils AsyncContextInMemoryScopeManager to restore previous Scope on close() ( Apr 7, 2020
servicetalk-log4j2-mdc Enable publish to maven central via Sonatype with plugin scoping (#849) Nov 7, 2019
servicetalk-oio-api Enable publish to maven central via Sonatype with plugin scoping (#849) Nov 7, 2019
servicetalk-opentracing-asynccontext AsyncContextInMemoryScopeManager to restore previous Scope on close() ( Apr 7, 2020
servicetalk-opentracing-http Test code cleanup from post merge review on #1004 (#1009) Apr 7, 2020
servicetalk-opentracing-inmemory-api Align names of utility classes FooUtil vs FooUtils (#872) Nov 28, 2019
servicetalk-opentracing-inmemory AbstractInMemorySpanBuilder to respect FOLLOWS_FROM (#1063) May 21, 2020
servicetalk-opentracing-internal Align names of utility classes FooUtil vs FooUtils (#872) Nov 28, 2019
servicetalk-opentracing-log4j2 AsyncContextInMemoryScopeManager to restore previous Scope on close() ( Apr 7, 2020
servicetalk-opentracing-zipkin-publisher Zipkin Publisher remove explicit io.zipkin.zipkin2:zipkin dependency (#… Jun 2, 2020
servicetalk-router-api Support `router-api` annotations for gRPC services (#912) Jan 17, 2020
servicetalk-router-utils-internal Support `router-api` annotations for gRPC services (#912) Jan 17, 2020
servicetalk-serialization-api Enable publish to maven central via Sonatype with plugin scoping (#849) Nov 7, 2019
servicetalk-tcp-netty-internal HTTP Client Pipelining fullduplex (#980) Apr 29, 2020
servicetalk-test-resources Initial support for windows development (#977) Mar 24, 2020
servicetalk-transport-api Expose protocol name at `ConnectionContext` API (#955) Mar 7, 2020
servicetalk-transport-netty-internal Replace MaxSizeBasedWriteDemandEstimator with EWMAWriteDemandEstimator ( Jun 3, 2020
servicetalk-transport-netty Enable publish to maven central via Sonatype with plugin scoping (#849) Nov 7, 2019
servicetalk-utils-internal Initial support for windows development (#977) Mar 24, 2020
.git.commit.template Adding contributing guide and contributors list. (#570) May 22, 2019
.gitignore Update to Gradle 5 and drastically simplify build (#756) Sep 3, 2019
CODE_OF_CONDUCT.adoc Sync files in the root folder with docs pages (#808) Oct 14, 2019
CONTRIBUTING.adoc Remove Project Communication section from CONTRIBUTORS.adoc ToC (#1038) May 1, 2020
GOVERNANCE.adoc Governance - clarify yes/no vote (#1041) May 6, 2020
LICENSE.txt Add LICENSE.txt Aug 7, 2018
MAINTAINERS.adoc Clarify Governance and Contribution guidelines (#1031) Apr 29, 2020
README.adoc Fix link for Maven Central (#965) Mar 11, 2020
build.gradle Enable publish to maven central via Sonatype with plugin scoping (#849) Nov 7, 2019
gradle.properties Update zipkin-reporter 2.12.2 -> 2.15.0 (#1079) Jun 2, 2020
gradlew Update gradlew to 6.2.2 (#966) Mar 14, 2020
gradlew.bat Initial support for windows development (#977) Mar 24, 2020
settings.gradle Fix all deprecation warnings from Gradle 6.3 (#1080) Jun 4, 2020

README.adoc

ServiceTalk

Maven Central

ServiceTalk is a JVM network application framework with APIs tailored to specific protocols (e.g. HTTP/1.x, HTTP/2.x, etc…​) and supports multiple programming paradigms.

It is built on Netty and is designed to provide most of the performance/scalability benefits of Netty for common networking protocols used in service to service communication. ServiceTalk provides server support and "smart client" like features such as client-side load balancing and service discovery integration.

See the ServiceTalk docs for more information.

Getting Started

ServiceTalk releases are available on Maven Central.

For Gradle as well as other build tools that don’t use Maven Central as a default repository, additional configuration is required.

Gradle, build.gradle
repositories {
  jcenter() // combines Maven Central and other popular repositories
}

Refer to the ServiceTalk docs for various examples that will get you started with the different features of ServiceTalk.

Note
Builds of the development version are available in Sonatype’s snapshots Maven repository.

Supported JVM

The minimum supported JDK version is 1.8.

Compatibility

ServiceTalk follows SemVer 2.0.0. API/ABI breaking changes will require package renaming for that module to avoid runtime classpath conflicts.

Note
0.x.y releases are not stable and are permitted to break API/ABI.

Contributor Setup

Important
If you’re intending to contribute to ServiceTalk, make sure to first read the contribution guidelines.

ServiceTalk uses Gradle as its build tool and only requires JDK 8 or higher to be pre-installed. ServiceTalk ships with the Gradle Wrapper, which means that there is no need to install Gradle on your machine beforehand.

File Encoding

ServiceTalk’s source code is UTF-8 encoded: make sure your filesystem supports it before attempting to build the project. Setting the JAVA_TOOL_OPTIONS env var to -Dfile.encoding=UTF-8 should help building the project in non-UTF-8 environments. Editors and IDEs must also support UTF-8 in order to successfully edit ServiceTalk’s source code.

Gradle Repositories

ServiceTalk’s build produces custom Gradle plugins and thus has regular (i.e. non-buildscript) dependencies on other plugins. This is the reason why the repositories that are provided if none are configured globally are the following:

allprojects {
  buildscript {
    repositories {
      jcenter()
      maven { url "https://plugins.gradle.org/m2/" }
    }
  }
  repositories {
    jcenter()
    maven { url "https://plugins.gradle.org/m2/" }
  }
}

If you have defined repositories or repository mirrors in your global Gradle config (~/.gradle/init.gradle), the build will detect them and attempt to inherit buildscript repositories into the main repositories of the sub-projects that produce custom Gradle plugins.

Note
This inheritance mechanism can be disabled by setting a Gradle property:
-PdisableInheritBuildscriptRepositories.

Build Commands

You should be able to run the following command to build ServiceTalk and verify that all tests and code quality checks pass:

$ ./gradlew build

The supported IDE is IntelliJ IDEA. In order to generate IntelliJ IDEA project files for ServiceTalk, you can run the following command:

$ ./gradlew idea

When done, running one of following commands would open ServiceTalk in IntelliJ:

Generic
$ idea .
macOS
$ open servicetalk.ipr

Project Communication

We encourage your participation asking questions and helping improve the ServiceTalk project. Github issues and pull requests are the primary mechanisms of participation and communication for ServiceTalk.

You can’t perform that action at this time.