armeria
armeria copied to clipboard
Your go-to microservice framework for any situation, from the creator of Netty et al. You can build any type of microservice leveraging your favorite technologies, including gRPC, Thrift, Kotlin, Ret...
Motivation: `HttpRequest.aggregate()` and `HttpResonse.aggregate()` allows to call only once because `StreamMessage` can be subscribed once. It seems acceptable if they can store the aggregated request or response to somewhere. It...
The content is truly incomplete and will be updated through reviews & QnA. Motivation: Add a new tutorial set for gRPC Modifications: - Add tutorial draft Result: - WIP
``` java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.injectDependencies(DependencyInjectionTestExecutionListener.java:118) at org.springframework.test.context.support.DependencyInjectionTestExecutionListener.prepareTestInstance(DependencyInjectionTestExecutionListener.java:83) at org.springframework.boot.test.autoconfigure.SpringBootDependencyInjectionTestExecutionListener.prepareTestInstance(SpringBootDependencyInjectionTestExecutionListener.java:43) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:248) at org.springframework.test.context.junit.jupiter.SpringExtension.postProcessTestInstance(SpringExtension.java:138) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$10(ClassBasedTestDescriptor.java:377) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.executeAndMaskThrowable(ClassBasedTestDescriptor.java:382) at org.junit.jupiter.engine.descriptor.ClassBasedTestDescriptor.lambda$invokeTestInstancePostProcessors$11(ClassBasedTestDescriptor.java:377) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:177)...
Motivation: When an HTTP/1.1 304(Not Modified) response is sent, `Transfer-Encoding: chunked` header cannot be sent because the content of the response is always empty. https://datatracker.ietf.org/doc/html/rfc7232#section-4.1 ``` A 304 response cannot...
Motivation: - We use `idleTimeout` value to set the HTTP/2 graceful shutdown timeout on the client side. However, it's not set correctly. - We try to set the value here:...
Motivation: A `@RequestObject` bean can be converted as a specification of an annotated service. Neither response nor POJO request are shown in a `DocService`. Only gRPC and Thrift `DocService` can...
Currently, the behavior of `AnnotatedService` with void return type(including `Mono`) is quite confusing and users often struggles to find the right way to return `204 No Content` with `AnnotatedService`. The...
Motivation: Although it is not official in GraphQL, many open sources make multipart requests in the following way. This PR is a work to support this feature in Armeria as...
Motivation: - Context leaks are hard to find because an exception does not tell where/which context is pushed without poping. By using TraceAbleRequestContextStorage, it helps to report the source of...