Skip to content

Commit 8e95e4d

Browse files
authored
Merge pull request #1218 from gooddata/dp-GRIF-316-rework
Reworked to use gooddata-http-client 3.0.0
2 parents cec0f54 + 9a4e04d commit 8e95e4d

File tree

1,032 files changed

+9035
-9401
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,032 files changed

+9035
-9401
lines changed

.github/dependabot.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
version: 2
22
updates:
3-
- package-ecosystem: maven
4-
directory: "/"
5-
schedule:
6-
interval: daily
7-
time: "09:00"
8-
open-pull-requests-limit: 10
3+
- package-ecosystem: maven
4+
directory: "/"
5+
schedule:
6+
interval: daily
7+
time: "09:00"
8+
open-pull-requests-limit: 10

CODE_OF_CONDUCT.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# Contributor Code of Conduct
22

3-
This project adheres to No Code of Conduct. We are all adults. We accept anyone's contributions. Nothing else matters.
3+
This project adheres to No Code of Conduct. We are all adults. We accept anyone's contributions. Nothing else matters.
44

55
For more information please visit the [No Code of Conduct](https://github.com/domgetter/NCoC) homepage.

CONTRIBUTING.md

Lines changed: 47 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,78 +5,92 @@ Below are few **rules, recommendations and best practices** we try to follow whe
55
## Paperwork
66

77
### Committer
8+
89
* The **commit message**:
9-
* must be written in the **imperative mood**
10-
* must clearly **explain rationale** behind this change (describe _why_ you are doing the change rather than _what_ you are changing)
10+
* must be written in the **imperative mood**
11+
* must clearly **explain rationale** behind this change (describe _why_ you are doing the change rather than _what_
12+
you are changing)
1113
* The **pull request**:
12-
* with non-trivial, non-dependencies change must be **[associated with an issue](https://help.github.com/articles/closing-issues-via-commit-messages/)**
14+
* with non-trivial, non-dependencies change must be *
15+
*[associated with an issue](https://help.github.com/articles/closing-issues-via-commit-messages/)**
1316
* Add usage examples of new high level functionality to
14-
[documentation](https://github.com/gooddata/gooddata-java/wiki/Code-Examples).
17+
[documentation](https://github.com/gooddata/gooddata-java/wiki/Code-Examples).
1518

1619
### Reviewer
20+
1721
Ensure pull request and issues are
18-
* **properly labeled** (trivial/bug/enhancement/backward incompatible/...)
19-
* marked with exactly one **milestone version**
22+
23+
* **properly labeled** (trivial/bug/enhancement/backward incompatible/...)
24+
* marked with exactly one **milestone version**
2025

2126
## Design
2227

2328
### Structure
29+
2430
* **Package names** for DTOs and services should be named in the same manner as REST API.
2531
* Don't create single implementation interfaces for services.
2632

2733
### DTOs
34+
2835
* All DTOs which can be updated should be **mutable**. Please keep mutable only the fields which are subject of change,
29-
the rest should be immutable.
36+
the rest should be immutable.
3037
* Create method named `String getUri()` to provide **URI string to self**.
3138
* Introduce **constant** with URI:
32-
* ```java
39+
* ```java
3340
public static final String URI = "/gdc/someresource/{resource-id}";
3441
```
35-
* If you need also constants with `UriTemplate`, do not put them into DTOs not to drag Spring dependency into model module.
42+
* If you need also constants with `UriTemplate`, do not put them into DTOs not to drag Spring dependency into model
43+
module.
3644
* Put _Jackson_ annotations on getters rather then on fields.
3745
* Consider the **visibility** - use `package protected` when DTO is not intended for SDK user, but is needed
38-
in related service.
46+
in related service.
3947
* Test all DTOs using _[JsonUnit](https://github.com/lukas-krecan/JsonUnit)_.
4048
* **Naming**:
41-
* `Uri` for _URI string_ of some resource
42-
* `Link` for structure containing at least _category_ (e.g. "self") and _URI string_
43-
(can contain also others like _title_, _summary_, etc.)
49+
* `Uri` for _URI string_ of some resource
50+
* `Link` for structure containing at least _category_ (e.g. "self") and _URI string_
51+
(can contain also others like _title_, _summary_, etc.)
4452

4553
### Enums
54+
4655
* Use enums sparingly, because they don't work with REST API changes (eg. new value added on the backend) **never use
47-
them when deserializing**.
56+
them when deserializing**.
4857
* Where make sense, use overloaded methods with an enum argument as well as `String` argument.
4958
5059
### Services
60+
5161
* When programming client for some polling return [`FutureResult`](src/main/java/com/gooddata/FutureResult.java)
52-
to enable user asynchronous call.
62+
to enable user asynchronous call.
5363
* Create custom [`GoodDataException`](src/main/java/com/gooddata/GoodDataException.java) when you feel the case
54-
is specific enough.
64+
is specific enough.
5565
* Prefer DTOs to `String` or primitive arguments.
5666
* **Method naming**:
57-
* `get*()` when searching form single object (throw exception when no or multiple objects are found,
58-
never return `null`)
59-
* `find*()` when searching for multiple objects (collection of objects, never return `null`)
60-
* `list*()` when listing whole or paged collection of objects (return collection or collection wrapped by DTO)
61-
* `remove*()` (i.e. `remove(Project project)`) instead od `delete*()`
62-
* In addition to unit tests, write also **integration tests** and **acceptance tests** if possible. See "What to test where" in "Best practices" below.
67+
* `get*()` when searching form single object (throw exception when no or multiple objects are found,
68+
never return `null`)
69+
* `find*()` when searching for multiple objects (collection of objects, never return `null`)
70+
* `list*()` when listing whole or paged collection of objects (return collection or collection wrapped by DTO)
71+
* `remove*()` (i.e. `remove(Project project)`) instead od `delete*()`
72+
* In addition to unit tests, write also **integration tests** and **acceptance tests** if possible. See "What to test
73+
where" in "Best practices" below.
6374
* Update [documentation](https://github.com/gooddata/gooddata-java/wiki/Code-Examples) with usage examples.
6475
6576
## Best practices
77+
6678
* **What to test where**:
67-
* `*Test` = unit tests
68-
* focus on verifying bussiness logic, corner cases, various input combinations, etc.
69-
* avoid service tests using mocked `RestTemplate` - use integration tests with mocked API responses instead
70-
* `*IT` = integration tests
71-
* focus on verifying all possible outcomes of API calls
72-
* see common ancestor [`AbstractGoodDataIT`](src/test/java/com/gooddata/AbstractGoodDataIT.java) setting up [Jadler](https://github.com/jadler-mocking/jadler/wiki) for API mocking
73-
* `*AT` = acceptance tests
74-
* focus on verifying the happy path against the real backend (so we're sure mocks in ITs are correct)
75-
* see common ancestor [`AbstractGoodDataAT`](src/test/java/com/gooddata/AbstractGoodDataAT.java) setting up GoodData endpoint based on passed environment variables
79+
* `*Test` = unit tests
80+
* focus on verifying bussiness logic, corner cases, various input combinations, etc.
81+
* avoid service tests using mocked `RestTemplate` - use integration tests with mocked API responses instead
82+
* `*IT` = integration tests
83+
* focus on verifying all possible outcomes of API calls
84+
* see common ancestor [`AbstractGoodDataIT`](src/test/java/com/gooddata/AbstractGoodDataIT.java) setting
85+
up [Jadler](https://github.com/jadler-mocking/jadler/wiki) for API mocking
86+
* `*AT` = acceptance tests
87+
* focus on verifying the happy path against the real backend (so we're sure mocks in ITs are correct)
88+
* see common ancestor [`AbstractGoodDataAT`](src/test/java/com/gooddata/AbstractGoodDataAT.java) setting up
89+
GoodData endpoint based on passed environment variables
7690
* Everything public should be **documented** using _javadoc_.
7791
* When you need some **utility code**, look for handy utilities in used libraries first (e.g. _Spring_ has
78-
its `StreamUtils`, `FileCopyUtils`, ...). When you decide to create new utility class,
79-
use _abstract utility class pattern_.
92+
its `StreamUtils`, `FileCopyUtils`, ...). When you decide to create new utility class,
93+
use _abstract utility class pattern_.
8094

8195
## Release candidates
8296

LICENSE.txt

Lines changed: 22 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ GoodData Java SDK
22

33
BSD License
44

5-
Copyright (c) 2014-2023, GoodData Corporation
5+
Copyright (c) 2014-2025, GoodData Corporation
66

77
Redistribution and use in source and binary forms, with or without modification,
88
are permitted provided that the following conditions are met:
@@ -41,67 +41,41 @@ PART 1: SUBCOMPONENTS
4141
- AOP alliance (1.0) [public-domain]
4242
- Apache Ant Core (1.10.3) [Apache-2.0]
4343
- Apache Ant Launcher (1.10.3) [Apache-2.0]
44-
- Apache Commons IO (2.11.0) [Apache-2.0]
45-
- Apache Commons Lang (3.12.0) [Apache-2.0]
46-
- Apache Groovy (3.0.11) [Apache-2.0]
47-
- Apache Groovy (2.5.7) [Apache-2.0]
48-
- Apache Groovy (2.5.4) [Apache-2.0]
49-
- Apache Groovy (2.5.4) [Apache-2.0]
50-
- Apache Groovy (2.5.4) [Apache-2.0]
51-
- Apache Groovy (2.5.4) [Apache-2.0]
52-
- Apache Groovy (2.5.4) [Apache-2.0]
53-
- Apache Groovy (2.5.4) [Apache-2.0]
54-
- Apache Groovy (2.5.4) [Apache-2.0]
55-
- Apache HttpClient (4.5.13) [Apache-2.0]
56-
- Apache HttpCore (4.4.15) [Apache-2.0]
57-
- Byte Buddy (without dependencies) (1.12.1) [BSD-3-Clause, Apache-2.0]
58-
- Byte Buddy agent (1.12.1) [Apache-2.0]
59-
- cglib-nodep (3.3.0) [Apache-2.0]
60-
- EqualsVerifier | release normal jar (3.7.2) [Apache-2.0]
61-
- EqualsVerifier | release normal jar (3.10) [Apache-2.0]
62-
- gooddata-http-client (1.0.0) [BSD-3-Clause]
63-
- gooddata-http-client (1.0.0+java7.fix1) [BSD-3-Clause]
64-
- gooddata-rest-common (2.0.0) [BSD-3-Clause]
44+
- Apache Commons IO (2.21.0) [Apache-2.0]
45+
- Apache Commons Lang (3.20.0) [Apache-2.0]
46+
- Apache Groovy (4.0.28) [Apache-2.0]
47+
- gooddata-http-client (3.0.0-SNAPSHOT) [BSD-3-Clause]
48+
- gooddata-rest-common (3.0.0) [BSD-3-Clause]
6549
- Gson (2.3.1) [Apache-2.0]
6650
- Guava: Google Core Libraries for Java (17.0) [Apache-2.0, CC0-1.0]
6751
- Hamcrest (2.2) [BSD-3-Clause]
6852
- Hamcrest Core (2.2) [BSD-3-Clause]
6953
- Jackson-annotations (2.13.0) [Apache-2.0]
7054
- Jackson-core (2.13.0) [Apache-2.0]
71-
- jackson-databind (2.13.0) [Apache-2.0]
72-
- jackson-databind (2.13.3) [Apache-2.0]
55+
- jackson-databind (2.13.4) [Apache-2.0]
7356
- jadler-all (1.3.1) [MIT, Apache-2.0]
7457
- jadler-core (1.3.1) [MIT, Apache-2.0]
75-
- javax.inject (1) [Apache-2.0]
58+
- jakarta.inject (1) [Apache-2.0]
7659
- jcommander (1.78) [Apache-2.0]
7760
- JSON in Java (20090211) [JSON]
78-
- json-unit (2.28.0) [Apache-2.0]
79-
- json-unit (2.35.0) [Apache-2.0]
80-
- json-unit-core (2.28.0) [Apache-2.0]
81-
- json-unit-core (2.35.0) [Apache-2.0]
61+
- json-unit (2.36.0) [Apache-2.0]
62+
- json-unit-core (2.36.0) [Apache-2.0]
8263
- JSONassert (1.2.3) [Apache-2.0]
8364
- JUnit (4.12) [CPL-1.0]
84-
- Mockito (4.6.1) [MIT, Apache-2.0]
85-
- Mockito (4.1.0) [MIT, Apache-2.0]
65+
- Mockito (5.14.2) [MIT, Apache-2.0]
8666
- Objenesis (3.2) [MIT]
87-
- Sardine WebDAV client (5.10) [Apache-2.0]
67+
- Sardine WebDAV client (5.13) [Apache-2.0]
8868
- Shazamcrest (0.11) [Apache-2.0]
89-
- SLF4J API Module (2.0.0-alpha7) [MIT]
90-
- SLF4J Simple Binding (2.0.0-alpha7) [MIT]
69+
- SLF4J API Module (2.0.17) [MIT]
70+
- SLF4J Simple Binding (2.0.17) [MIT]
9171
- SnakeYAML (1.21) [Apache-2.0, Multi-license: LGPL-2.1-or-later OR GPL-2.0-or-later OR EPL-1.0 OR BSD-3-Clause OR Apache-2.0]
92-
- Spock Framework - Core Module (2.2-M1-groovy-4.0) [Apache-2.0]
93-
- Spock Framework - Core Module (1.3-groovy-2.5) [Apache-2.0]
94-
- Spring Beans (5.3.20) [Apache-2.0]
95-
- Spring Beans (5.3.13) [Apache-2.0]
96-
- Spring Commons Logging Bridge (5.3.13) [Apache-2.0]
97-
- Spring Context (5.3.20) [Apache-2.0]
98-
- Spring Core (5.3.20) [BSD-3-Clause, Apache-2.0]
99-
- Spring Core (5.3.13) [BSD-3-Clause, Apache-2.0]
100-
- Spring Retry (1.3.1) [Apache-2.0]
101-
- Spring Web (5.3.20) [Apache-2.0]
102-
- Spring Web (5.3.13) [Apache-2.0]
103-
- testng (7.3.0) [Apache-2.0, AML]
104-
- testng (7.6.0) [Apache-2.0]
72+
- Spock Framework - Core Module (2.4-M1-groovy-4.0) [Apache-2.0]
73+
- Spring Beans (6.0.15) [Apache-2.0]
74+
- Spring Context (6.0.15) [Apache-2.0]
75+
- Spring Core (6.0.15) [BSD-3-Clause, Apache-2.0]
76+
- Spring Retry (2.0.12) [Apache-2.0]
77+
- Spring Web (6.0.15) [Apache-2.0]
78+
- testng (7.11.0) [Apache-2.0, AML]
10579

10680
PART 2: LICENSES APPENDIX
10781
Apache 2.0
@@ -2814,7 +2788,7 @@ This program is made available under the terms of the MIT License.
28142788

28152789

28162790
--------------------------------------------------------------------------------
2817-
javax.inject (1)
2791+
jakarta.inject (1)
28182792
--------------------------------------------------------------------------------
28192793

28202794
* Declared Licenses *

0 commit comments

Comments
 (0)