Comments (5)
Good question.
com.google.common.collect.ImmutableList.Builder in guava is used as public method parameter in
Though they have public
visibility, classes under internal
packages are internal classes.
In addition to Bouncycastle, we also shadow Guava dependency. If it is exposed in the public API, we should fix it instead of making it api
.
Lines 524 to 525 in a13d582
from armeria.
Could you help me review this issue @ikhoon @minwoox ? Many thanks :)
from armeria.
Class io.netty.channel.unix.DomainSocketAddress is used as public method parameter in core/src/main/java/com/linecorp/armeria/common/util/DomainSocketAddress.java
Good point. We need to fix it.
Class AsymmetricKeyInfoConverter is used as public method parameter in core/src/main/java/com/linecorp/armeria/internal/common/util/MinifiedBouncyCastleProvider.java
bouncycastle
is shaded so it is not part of transitive dependencies and can't be api
.
We may remove ConfigurableProvider
from the super class or move MinifiedBouncyCastleProvider
to internal.
Class ForwardingSet is extended in core/src/main/java/com/linecorp/armeria/common/DefaultCookies.java
DefaultCookies is a package private class so ForwardingSet
doesn't have to be api
.
from armeria.
@ikhoon Thanks a lot for your prompt response and clarification!
DefaultCookies is a package private class so ForwardingSet doesn't have to be api.
You're right, I'm sorry to give a wrong example. But here's another example regarding exposed classses in guava. Could you please take a look?
- com.google.common.collect.ImmutableList.Builder in guava is used as public method parameter in core/src/main/java/com/linecorp/armeria/internal/common/metric/DefaultMeterIdPrefixFunction.java
Acually we found another dependency com.github.ben-manes.caffeine:caffeine whose scope may also need to be set to api due to the following usage.
- com.github.benmanes.caffeine.cache.Cache in caffeine is used as public parameter in core/src/main/java/com/linecorp/armeria/internal/common/metric/CaffeineMetricSupport.java
from armeria.
@ikhoon Thank you for your response :). I now have a thorough understanding of the situation, and the problem should be fixed according to armeria's actual implementation. Hope to hear it fixed soon :).
from armeria.
Related Issues (20)
- Provide a way to ignore dependencies when performing `dependencyUpdates`
- Add /info URL to provide information about server application HOT 2
- Decouple HTTP/2 pings from idle timeout machinery and make then useful on their own
- Write docs for `context-propagation`
- Support for Parameter Options in Parameterized Path
- Make sure all tests pass when io_uring is enabled HOT 1
- Documentation for OAuth 2.0 client
- RequestTimeout is 503 with ThrottlingStrategy HOT 5
- Make `defaultUseHttp2Preface` flag more explicit HOT 2
- Mask request and response logs from HTTP client HOT 1
- Automatically remove multipart temporary files
- Fix `socketConnect`, `pendingAcquisition` timing end method check condition
- Provide a way to customize meters
- Add pendingResponses to ServerMetrics
- Add ServerBuilder.coroutinService as Kotlin extension method
- Test failure: `com.linecorp.armeria.common.ContextPushHookTest.shouldRunHooksWhenContextIsPushed()`
- Test failure: `com.linecorp.armeria.server.InvalidPathWithDataTest.invalidPath()` HOT 1
- Investigate if we can stop `ServiceRequestContextBuilder.build()` from scheduling an event loop task HOT 1
- Use `SELF` for Builder Self Type Parameter
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from armeria.