-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: support SDK metadata loading and setting user-agent headers #127
Merged
Conversation
This file contains 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
Mohammad-Dwairi
changed the title
feat: support loading SDK metadata and setting user-agent headers
feat: support SDK metadata loading and setting user-agent headers
Dec 12, 2024
code/src/main/kotlin/com/expediagroup/sdk/core/logging/common/ResponseLogger.kt
Outdated
Show resolved
Hide resolved
For this comment, change reverted and to be revisited in the future. |
OmarAlJarrah
approved these changes
Dec 12, 2024
anssari1
approved these changes
Dec 12, 2024
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.
Situation
We need a way to identify the environment the SDK is working in, including the SDK version, artifact name, and other host system properties like OS name and version.
These loaded metadata will typically used as
User-Agent
header in the outgoing requests.Task
User-Agent
header.Action
MetadataLoader
ObjectUtility object for loading SDK metadata from the generated
sdk.properties
file along with othersystem properties like JVM info and host OS info.
Usage
MetadataLoader.load()
to read thesdk.properties
file. The loaded metadata will be cached by default and any subsequent calls will return the sameMetadata
instance.MetadataLoader.clear()
to clear the cached data.RequestHeadersInterceptor
ClassAn
Interceptor
implementation for setting required headers before executing the request within the SDK. Used to set theUser-Agent
header from the loaded metadata.Generate
sdk.properties
FileCreated a new Gradle task in
code/tasks-gradle/sdk-properties.gradle
to generate thesdk.properties
file at build time. This file is placed into the artifact resources and visible in the classpath.code/tasks-gradle/test.gradle
Filecode/tasks-gradle/test.gradle
and imported it in the rootbuild.gradle
.[build/resources/main/sdk.properties]
from being visible during the tests execution for better isolation.Testing
mavenLocal()
and install it in a scratch project.MetadataLoader
andRequestHeadersInterceptor
with 100% coverage.Results
MetadataLoader
object.sdk.properties
file is generated at build time.User-Agent
header is set in all SDK requests.User-Agent Header Logs