Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 10 additions & 0 deletions .fern/metadata.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"cliVersion": "4.29.0",
"generatorName": "fernapi/fern-java-sdk",
"generatorVersion": "3.44.1",
"generatorConfig": {
"publish-to": "central"
},
"originGitCommit": "bbd2054c67ad246b017399f96faf58cf6737bf01",
"sdkVersion": "2.0.0"
}
1 change: 1 addition & 0 deletions .fernignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
LICENSE
README.md
changelog.md
4 changes: 4 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@ name: ci

on: [push]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: false

jobs:
compile:
runs-on: ubuntu-latest
Expand Down
17 changes: 9 additions & 8 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,10 @@ repositories {
}

dependencies {
api 'com.squareup.okhttp3:okhttp:4.12.0'
api 'com.fasterxml.jackson.core:jackson-databind:2.17.2'
api 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.17.2'
api 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.17.2'
api 'com.squareup.okhttp3:okhttp:5.2.1'
api 'com.fasterxml.jackson.core:jackson-databind:2.18.6'
api 'com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.18.6'
api 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.18.6'
testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.2'
testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.8.2'
testImplementation 'org.junit.jupiter:junit-jupiter-params:5.8.2'
Expand Down Expand Up @@ -47,7 +47,7 @@ java {

group = 'com.newscatcherapi'

version = '1.2.0'
version = '2.0.0'

jar {
dependsOn(":generatePomFileForMavenPublication")
Expand Down Expand Up @@ -78,7 +78,7 @@ publishing {
maven(MavenPublication) {
groupId = 'com.newscatcherapi'
artifactId = 'newscatcher-sdk'
version = '1.2.0'
version = '2.0.0'
from components.java
pom {
name = 'newscatcher'
Expand Down Expand Up @@ -121,9 +121,10 @@ sonatypeCentralUpload {
}

signing {
def signingKeyId = "$System.env.MAVEN_SIGNATURE_SECRET_KEY"
def signingKeyId = "$System.env.MAVEN_SIGNATURE_KID"
def signingKey = "$System.env.MAVEN_SIGNATURE_SECRET_KEY"
def signingPassword = "$System.env.MAVEN_SIGNATURE_PASSWORD"
useInMemoryPgpKeys(signingKeyId, signingPassword)
useInMemoryPgpKeys(signingKeyId, signingKey, signingPassword)
sign publishing.publications.maven
}

Expand Down
33 changes: 33 additions & 0 deletions changelog.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
## 2.0.0 - 2026-03-16
* The `AggregationGetRequest` class has been removed from the aggregation module. Any code that directly instantiates this class or uses its builder pattern will need to be updated to use alternative aggregation request methods provided by the API.
* The SearchLink client and related functionality have been removed from the SDK. Applications using SearchLinkClient, AsyncSearchLinkClient, or their raw response variants will need to be updated to use alternative search methods. Additionally, several duplicate enum types used for request parameters have been consolidated.
* The search similar functionality has been removed from the SDK. All SearchsimilarClient, AsyncSearchsimilarClient, and RawSearchsimilarClient classes and their methods are no longer available. Applications using these clients will need to be updated to remove search similar functionality or use alternative search methods.
* The SearchSimilarGetRequest class has been removed. Applications using this class for similar article searches will need to be updated to use alternative request types or API endpoints.
* The `SearchSimilarPostRequest` class has been removed from the SDK. Applications using this class for search similarity operations will need to be updated to use alternative request handling mechanisms.
* The search similar API components have been removed from the SDK. This includes SearchSimilarGetResponse, SearchSimilarPostResponse, SearchSimilarResponseDto, FailedSearchSimilarResponseDto, and related enums. Applications using these classes will need to be updated to use alternative search functionality.
* The SimilarArticleEntity class has been removed. Applications using this class will need to be updated to use alternative article entity types or updated API endpoints.
* The `SimilarDocument` type has been removed from the SDK. Client method names have been updated for consistency: use `latestHeadlines()` instead of `latestheadlines()`, `aggregationCount()` instead of `aggregation()`, and `searchByLink()` instead of `searchLink()`. The `searchsimilar()` method is no longer available.
* Breaking changes: The `AggregationClient` class has been renamed to `AggregationCountClient` and moved from the `com.newscatcher.api.resources.aggregation` package to `com.newscatcher.api.resources.aggregationcount`. All related classes including `AsyncAggregationClient`, request types, and response types have been similarly renamed and moved. Update your imports and class references accordingly. New feature: The Stream class now supports SSE event-level discrimination through new `fromSseWithEventDiscrimination()` methods for handling discriminated unions in Server-Sent Events.
* The aggregation functionality has been moved from the `aggregation` package to the `aggregationcount` package. Update imports from `com.newscatcher.api.resources.aggregation.*` to `com.newscatcher.api.resources.aggregationcount.*`. The client class `RawAggregationClient` has been renamed to `RawAggregationCountClient`, and all related request/response classes have been updated with the new naming convention (e.g., `AggregationGetRequest` is now `GetAggregationCountRequest`). Similarly, Authors client request/response classes have been renamed for consistency (e.g., `AuthorsGetRequest` is now `GetAuthorsRequest`).
* Breaking changes to the authors API: `AuthorsGetRequest`, `AuthorsGetResponse`, `AuthorsPostRequest`, and `AuthorsPostResponse` classes have been renamed to `GetAuthorsRequest`, `GetAuthorsResponse`, `PostAuthorsRequest`, and `PostAuthorsResponse` respectively. Update your imports and type references to use the new class names.
* The AuthorsGetRequest class has been renamed to GetAuthorsRequest. Update your imports and instantiation code accordingly. The publishedDatePrecision parameter now accepts String values instead of enum values.
* Several public classes have been renamed for API consistency. Replace AuthorsPostRequest with PostAuthorsRequest, AuthorsGetResponse with GetAuthorsResponse, and AuthorsPostResponse with PostAuthorsResponse. The BreakingNews client methods have been simplified from breakingNewsGet/breakingNewsPost to get/post. Additionally, theme and publishedDatePrecision parameters now accept string values instead of enum types.
* Breaking change: BreakingNewsClient method names have been simplified. The `breakingNewsGet()` method has been renamed to `get()`, and `breakingNewsPost()` has been renamed to `post()`. Update your code to use the shorter method names - the functionality and return types remain unchanged.
* The `BreakingNewsGetRequest` class has been renamed to `GetBreakingNewsRequest`. Additionally, the `robotsCompliant` parameter has been removed. Replace any references to `BreakingNewsGetRequest` with `GetBreakingNewsRequest` and remove usage of the `robotsCompliant` parameter.
* Breaking changes to request and response class names. The `BreakingNewsPostRequest` class has been renamed to `PostBreakingNewsRequest`, and all `LatestHeadlines*` classes now follow the `Get/Post` prefix pattern (e.g., `LatestHeadlinesGetRequest` is now `GetLatestHeadlinesRequest`). The `robotsCompliant` field has been removed from breaking news requests, and `theme`/`notTheme` fields now accept String values instead of enum types. Update your imports and field references accordingly.
* The RawLatestheadlinesClient class has been renamed to RawLatestHeadlinesClient, and all related request/response types have been updated with new naming conventions (e.g., LatestHeadlinesGetRequest is now GetLatestHeadlinesRequest). Update your imports and class references to use the new names.
* The `LatestHeadlinesGetRequest` class has been renamed to `GetLatestHeadlinesRequest`. Update any direct references to use the new class name. The functionality remains the same, with additional optional fields for sorting and link text filtering.
* Breaking changes to class names for consistency. The following classes have been renamed: `LatestHeadlinesPostRequest` → `PostLatestHeadlinesRequest`, `LatestHeadlinesGetResponse` → `GetLatestHeadlinesResponse`, `LatestHeadlinesPostResponse` → `PostLatestHeadlinesResponse`, `SearchGetRequest` → `GetSearchRequest`, `SearchPostRequest` → `PostSearchRequest`, `SearchGetResponse` → `GetSearchResponse`, `SearchPostResponse` → `PostSearchResponse`. Update your imports to use the new class names.
* Breaking change: Search API request and response classes have been renamed for consistency. `SearchGetRequest` is now `GetSearchRequest`, `SearchGetResponse` is now `GetSearchResponse`, `SearchPostRequest` is now `PostSearchRequest`, and `SearchPostResponse` is now `PostSearchResponse`. Update your imports to use the new class names.
* The SearchGetRequest class has been renamed to GetSearchRequest. Existing code using SearchGetRequest will need to be updated to use GetSearchRequest instead. Additionally, a new allLinksText parameter is now available for searching link anchor text content.
* Breaking changes to search API classes: SearchPostRequest renamed to PostSearchRequest, SearchGetResponse renamed to GetSearchResponse, SearchPostResponse renamed to PostSearchResponse, and AsyncRawSearchLinkClient renamed to AsyncRawSearchByLinkClient. The publishedDatePrecision, theme, and notTheme parameters now accept String values instead of enum types. Update your imports and parameter usage accordingly.
* The `searchlink` package has been renamed to `searchbylink`. Classes and methods within this package have been renamed: `RawSearchLinkClient` is now `RawSearchByLinkClient`, `searchUrlGet()` is now `get()`, and `searchUrlPost()` is now `post()`. Update your imports from `com.newscatcher.api.resources.searchlink` to `com.newscatcher.api.resources.searchbylink` and update method calls accordingly.
* The Sources API request classes have been renamed for better consistency: `SourcesGetRequest` is now `GetSourcesRequest` and `SourcesPostRequest` is now `PostSourcesRequest`. New overloaded `get()` and `post()` methods are available that accept only `RequestOptions` for simpler usage when no request parameters are needed. The `AdditionalSourceInfo` response type now includes a `robotsCompliant` field showing the percentage of domain articles that comply with robots.txt scraping rules.
* The `AggregationBy` type has been changed from an enum to a class with a visitor pattern. Existing code using `AggregationBy` enum values will need to be updated to use the new static constants (e.g., `AggregationBy.DAY`). The `Aggregations` class has been renamed to `AggregationCountResponseDtoAggregations`, and the `Theme` class has been renamed to `AllLinksText`. Code referencing these types will need to import the new class names.
* The `content` field in `ArticleEntity` is now `Optional<String>` instead of required `String`. Existing code accessing this field must be updated to handle the Optional wrapper. The `authors` and `journalists` fields now use more specific types (`ArticleEntityAuthors` and `ArticleEntityJournalists`) for improved type safety. A new `allLinksData` field is available when using the `all_links_text` parameter to get detailed link information.
* Breaking changes to article entity structure: The `Authors` type has been renamed to `ArticleEntityAuthors` and `Journalists` to `ArticleEntityJournalists`. The `content` field is now optional instead of required. The deprecated `robotsCompliant` field has been removed. Code using these types will need to be updated to use the new names and handle the optional content field.
* Breaking changes to enum handling and type system. The `ClusteringVariable`, `NewsDomainType`, and `SortBy` enums have been converted to sealed classes with visitor patterns for better extensibility and unknown value handling. The `NotTheme` class has been renamed to `BreakingNewsArticleEntityAuthors` with reordered type priority. Existing code using these enums directly or pattern matching will need to be updated to use the new sealed class patterns.
* The SDK now supports comprehensive logging configuration. Configure logging levels (DEBUG, INFO, WARN, ERROR) and provide custom logger implementations via the new `logging()` method on client builders. Silent by default — enable logging by setting `silent(false)` on LogConfig. HTTP requests and responses can now be logged with automatic redaction of sensitive headers.
* New `GetAggregationCountRequest` class available for news aggregation endpoints. The request class provides comprehensive filtering options including news sources, languages, countries, date ranges, sentiment analysis, NLP features, and IPTC tagging support.
* New SearchByLinkClient and AsyncSearchByLinkClient classes are now available, providing search-by-link functionality with both GET and POST methods. All builder classes now include additionalProperty() and additionalProperties() methods for enhanced extensibility.

Loading
Loading