Skip to content
jeskepetr edited this page Dec 2, 2021 · 10 revisions

Upgrading to version 4.0

FatureFlag codebase removal in favour of HierarchicalConfig codebase

  • com.gooddata.sdk.service.featureflag.FeatureFlagService -> com.gooddata.sdk.service.hierarchicalconfig.HierarchicalConfigService
  • com.gooddata.sdk.model.featureflag.FeatureFlag -> com.gooddata.sdk.model.hierarchicalconfig.ConfigItem
  • com.gooddata.sdk.model.featureflag.FeatureFlags -> com.gooddata.sdk.model.hierarchicalconfig.ConfigItems
  • com.gooddata.sdk.model.featureflag.ProjectFeatureFlag/ProjectFeatureFlags -> removed as no longer used

Upgrading to version 3.0

Split in two modules

The library was split and packages were changed:

module artifactId package contains
model gooddata-java-model com.gooddata.sdk.model DTO objects, has minimum dependencies
service gooddata-java com.gooddata.sdk.service services

As service module uses the same artifact as the 2.0 library and depends on model it's possible to just increase the version and refactor the packages. However if the code used only the DTOs, it's recommended to switch to model artifact.

Library was decoupled from HttpClient

  • By default it still uses GoodDataHttpClient under the hood.
  • There is a new interface GoodDataRestProvider which can be implemented to provide different RestTemplate implementation.
  • Authentication interface was removed.

Joda-time removal in favour of Java 8 Date/Time API

  • org.joda.time.DateTime -> java.time.ZonedDateTime
  • org.joda.time.Duration -> java.time.Duration
  • org.joda.time.LocalDate -> java.time.LocalDate
  • Good SO thread about differences between various types in Java Date/Time API: https://stackoverflow.com/a/32443004

Other changes

  • All the things deprecated in 2.0 were removed in 3.0.
  • Auto-registered spring beans renamed from ugly getXxxService to xxxService.
  • UriTemplates moved from DTOs to related services.
  • DataStoreService is initialised only when Sardine library is found on classpath. Sardine dependency is now optional, so you need to add it explicitly if you want to use DataStoreService.
  • RootLinks#getReleaseInfoUri removed. If you were using it for pinging the platform, then use /gdc/ping instead.
  • New Measure value filters - see https://github.com/gooddata/gooddata-java/issues/853.
  • Remove ambiguous AFM.NativeTotalItem constructors - https://github.com/gooddata/gooddata-java/issues/551.
  • Use gooddata-rest-common-2.0.0 with redesigned paging support.

Upgrading to version 2.0

  • the gooddata-java is compiled with java 1.8 target (java 1.7 and below no longer supported)
  • the Jackson JSON Processor version raised from 2.7.0 to 2.8.0
  • the Spring Framework version raised from 3.2.13.RELEASE to 4.3.1.RELEASE
    • usage of spring 4.X was possible with version 1.0 using some tweaked Closeable wrapper for GoodDataHttpClient - this should be no longer necessary
  • use set of strings for tags instead of one string (returned by methods getTags() in AbstractObj, Entry and Meta)
  • return type of DataLoadingColumn.getColumnUri() and PartialMdArtifact.getStatusUri() changed to String (return URI string directly)
  • removed deprecated objects and methods
    • feature flag support has been removed from ProjectService - use FeatureFlagService instead
    • FeatureFlagService.deleteFeatureFlag() replaced by FeatureFlagService.deleteProjectFeatureFlag()
    • removed method ProjectFeatureFlags.getItems - use isEnabled() or Iterable interface
    • removed method FeatureFlags.getFeatureFlags - use isEnabled() or Iterable interface
    • Warehouse.getJdbcConnectionString() replaced by Warehouse.getConnectionUrl()
    • removed Paging(final int offset, final int count, final String next) constructor - ommit the count parameter
    • removed method DatasetException.getDataset() - use getDatasets() returning the collection instead of it's String representation
  • reporting Grid fixed to match the API reality
    • GridElement turned into marker interface covering AttributeInGrid and special MetricGroup
    • Grid columns can no longer be String but must be of type GridElement - use MetricGroup singleton instead of former "metricGroup" String
    • Grid rows are no longer only of type AttributeInGrid but can be of type GridElement (both MetricGroup and AttributeInGrid)
    • Grid metrics are no longer GridElements but must be of newly introduced type MetricElement

Upgrading to version 1.0

  • the Jackson JSON Processor version raised from 1.9 to 2.5.4
  • Maven group id changed to com.gooddata
<dependency>
    <groupId>com.gooddata</groupId>
    <artifactId>gooddata-java</artifactId>
    <version>${gooddata.version}</version>
</dependency>

Version 0.x

  • the Jackson JSON Processor version 1.9
  • Maven group id is cz.geek
<dependency>
    <groupId>cz.geek</groupId>
    <artifactId>gooddata-java</artifactId>
    <version>${gooddata.version}</version>
</dependency>