From cf5b5ca51fef12f2302eb851051d867722046aac Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Fri, 13 Apr 2018 14:28:49 +0200 Subject: [PATCH 001/487] support irregular query type plurals in find by query resource --- .../java/com/gooddata/md/MetadataService.java | 67 ++++++++++++------- .../com/gooddata/md/MetadataServiceTest.java | 32 ++++++--- 2 files changed, 65 insertions(+), 34 deletions(-) diff --git a/src/main/java/com/gooddata/md/MetadataService.java b/src/main/java/com/gooddata/md/MetadataService.java index 91e098747..a32d9868f 100644 --- a/src/main/java/com/gooddata/md/MetadataService.java +++ b/src/main/java/com/gooddata/md/MetadataService.java @@ -19,8 +19,10 @@ import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.stream.Collectors; import static com.gooddata.util.Validate.noNullElements; @@ -32,6 +34,8 @@ */ public class MetadataService extends AbstractService { + private static final Set IRREGULAR_PLURAL_WORD_SUFFIXES = new HashSet<>(asList("s", "ch", "sh", "x", "o")); + public MetadataService(final RestTemplate restTemplate, final GoodDataSettings settings) { super(restTemplate, settings); } @@ -278,8 +282,7 @@ public Collection find(Project project, Class cl notNull(project.getId(), "project.id"); notNull(cls, "cls"); - final String type = cls.getSimpleName().toLowerCase() + - (cls.isAssignableFrom(ReportDefinition.class) ? "" : "s"); + final String type = getQueryType(cls); try { final Query queryResult = restTemplate.getForObject(Query.URI, Query.class, project.getId(), type); @@ -293,29 +296,6 @@ public Collection find(Project project, Class cl } } - private Collection filterEntries(Collection entries, Restriction... restrictions) { - if (restrictions == null || restrictions.length == 0) { - return entries; - } - final Collection result = new ArrayList<>(entries.size()); - for (Entry entry : entries) { - for (Restriction restriction : restrictions) { - switch (restriction.getType()) { - case IDENTIFIER: - if (restriction.getValue().equals(entry.getIdentifier())) result.add(entry); - break; - case TITLE: - if (restriction.getValue().equals(entry.getTitle())) result.add(entry); - break; - case SUMMARY: - if (restriction.getValue().equals(entry.getSummary())) result.add(entry); - break; - } - } - } - return result; - } - /** * Find metadata URIs by restrictions like identifier, title or summary. * @@ -470,6 +450,29 @@ public List getAttributeElements(DisplayForm displayForm) { } } + private Collection filterEntries(Collection entries, Restriction... restrictions) { + if (restrictions == null || restrictions.length == 0) { + return entries; + } + final Collection result = new ArrayList<>(entries.size()); + for (Entry entry : entries) { + for (Restriction restriction : restrictions) { + switch (restriction.getType()) { + case IDENTIFIER: + if (restriction.getValue().equals(entry.getIdentifier())) result.add(entry); + break; + case TITLE: + if (restriction.getValue().equals(entry.getTitle())) result.add(entry); + break; + case SUMMARY: + if (restriction.getValue().equals(entry.getSummary())) result.add(entry); + break; + } + } + } + return result; + } + private IdentifiersAndUris getUrisForIdentifiers(final Project project, final Collection identifiers) { final IdentifiersAndUris response; try { @@ -479,4 +482,18 @@ private IdentifiersAndUris getUrisForIdentifiers(final Project project, final Co } return response; } + + private String getQueryType(final Class cls) { + final String typeBase = cls.getSimpleName().toLowerCase(); + + if (ReportDefinition.class.equals(cls)) { + return typeBase; + } + + if (IRREGULAR_PLURAL_WORD_SUFFIXES.stream().anyMatch(typeBase::endsWith)) { + return typeBase + "es"; + } + + return typeBase + "s"; + } } diff --git a/src/test/java/com/gooddata/md/MetadataServiceTest.java b/src/test/java/com/gooddata/md/MetadataServiceTest.java index 3cc9678a6..71eb7fad5 100644 --- a/src/test/java/com/gooddata/md/MetadataServiceTest.java +++ b/src/test/java/com/gooddata/md/MetadataServiceTest.java @@ -10,6 +10,7 @@ import com.gooddata.GoodDataSettings; import com.gooddata.gdc.UriResponse; import com.gooddata.md.report.ReportDefinition; +import com.gooddata.md.visualization.VisualizationClass; import com.gooddata.project.Project; import org.mockito.Matchers; import org.mockito.Mock; @@ -32,6 +33,8 @@ import static org.hamcrest.CoreMatchers.notNullValue; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.collection.IsCollectionWithSize.hasSize; +import static org.mockito.Matchers.any; +import static org.mockito.Matchers.anyString; import static org.mockito.Matchers.eq; import static org.mockito.Mockito.doThrow; import static org.mockito.Mockito.mock; @@ -276,7 +279,7 @@ public void testGetObjUriToFindOneObjByTitle() throws Exception { final Entry resultEntry = mock(Entry.class); final String uri = "myURI"; final String title = "myTitle"; - when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryable")).thenReturn(queryResult); + when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryables")).thenReturn(queryResult); when(queryResult.getEntries()).thenReturn(asList(resultEntry)); when(resultEntry.getTitle()).thenReturn(title); when(resultEntry.getUri()).thenReturn(uri); @@ -290,7 +293,7 @@ public void testGetObjUriMoreThanOneResult() throws Exception { final Query queryResult = mock(Query.class); final Entry resultEntry1 = mock(Entry.class); final Entry resultEntry2 = mock(Entry.class); - when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryable")).thenReturn(queryResult); + when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryables")).thenReturn(queryResult); when(queryResult.getEntries()).thenReturn(asList(resultEntry1, resultEntry2)); service.getObjUri(project, Queryable.class); @@ -301,7 +304,7 @@ public void testGetObjUriNothingFound() throws Exception { final Query queryResult = mock(Query.class); final Entry resultEntry = mock(Entry.class); final String title = "myTitle"; - when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryable")).thenReturn(queryResult); + when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryables")).thenReturn(queryResult); when(queryResult.getEntries()).thenReturn(asList(resultEntry)); service.getObjUri(project, Queryable.class, Restriction.title(title)); @@ -314,7 +317,7 @@ public void testGetObjToFindOneObjById() throws Exception { final Entry resultEntry = mock(Entry.class); final String uri = "myURI"; final String id = "myId"; - when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryable")).thenReturn(queryResult); + when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryables")).thenReturn(queryResult); when(queryResult.getEntries()).thenReturn(asList(resultEntry)); when(resultEntry.getIdentifier()).thenReturn(id); when(resultEntry.getUri()).thenReturn(uri); @@ -329,7 +332,7 @@ public void testGetObjMoreThanOneResult() throws Exception { final Query queryResult = mock(Query.class); final Entry resultEntry1 = mock(Entry.class); final Entry resultEntry2 = mock(Entry.class); - when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryable")).thenReturn(queryResult); + when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryables")).thenReturn(queryResult); when(queryResult.getEntries()).thenReturn(asList(resultEntry1, resultEntry2)); service.getObj(project, Queryable.class); @@ -340,7 +343,7 @@ public void testGetObjNothingFound() throws Exception { final Query queryResult = mock(Query.class); final Entry resultEntry = mock(Entry.class); final String title = "myTitle"; - when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryable")).thenReturn(queryResult); + when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryables")).thenReturn(queryResult); when(queryResult.getEntries()).thenReturn(asList(resultEntry)); service.getObj(project, Queryable.class, Restriction.title(title)); @@ -351,16 +354,27 @@ public void testFindMoreResults() throws Exception { final Query queryResult = mock(Query.class); final Entry resultEntry1 = mock(Entry.class); final Entry resultEntry2 = mock(Entry.class); - when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryable")).thenReturn(queryResult); + when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryables")).thenReturn(queryResult); when(queryResult.getEntries()).thenReturn(asList(resultEntry1, resultEntry2)); final Collection results = service.find(project, Queryable.class); assertThat(results, allOf(hasItem(resultEntry1), hasItem(resultEntry2))); } + @Test + public void testFindIrregularQueryTypeNames() { + when(restTemplate.getForObject(anyString(), any(), anyString(), anyString())).thenReturn(mock(Query.class)); + + service.find(project, ReportDefinition.class); + verify(restTemplate).getForObject(Query.URI, Query.class, project.getId(), "reportdefinition"); + + service.find(project, VisualizationClass.class); + verify(restTemplate).getForObject(Query.URI, Query.class, project.getId(), "visualizationclasses"); + } + @Test(expectedExceptions = GoodDataException.class) public void testFindWithWithClientSideHTTPError() throws Exception { - when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryable")).thenThrow(new RestClientException("")); + when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryables")).thenThrow(new RestClientException("")); service.find(project, Queryable.class); } @@ -372,7 +386,7 @@ public void testFindUrisBySummary() throws Exception { final String summary = "mySummary"; final String uri1 = "uri1"; final String uri2 = "uri2"; - when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryable")).thenReturn(queryResult); + when(restTemplate.getForObject(Query.URI, Query.class, project.getId(), "queryables")).thenReturn(queryResult); when(queryResult.getEntries()).thenReturn(asList(resultEntry1, resultEntry2)); when(resultEntry1.getSummary()).thenReturn(summary); when(resultEntry2.getSummary()).thenReturn(summary); From 2e20960729e3ba138ece1c9849682cfbcc2a1899 Mon Sep 17 00:00:00 2001 From: Libor Rysavy Date: Tue, 17 Apr 2018 11:40:30 +0200 Subject: [PATCH 002/487] [maven-release-plugin] prepare release gooddata-java-2.25.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 0c4fbfb23..311124352 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.24.1-SNAPSHOT + 2.25.0 ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - HEAD + gooddata-java-2.25.0 From aa00b4ebefc0b80600cfef53983da3a2e8931dbf Mon Sep 17 00:00:00 2001 From: Libor Rysavy Date: Tue, 17 Apr 2018 11:40:30 +0200 Subject: [PATCH 003/487] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 311124352..938c05e3e 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.25.0 + 2.25.1-SNAPSHOT ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - gooddata-java-2.25.0 + HEAD From 1357c52e55e2ab3a86127e4b4ad5b3e895040994 Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Wed, 11 Apr 2018 17:46:33 +0200 Subject: [PATCH 004/487] add ability to set up and persist visualization object --- .../gooddata/executeafm/afm/DateFilter.java | 2 + .../gooddata/md/visualization/Measure.java | 10 +- .../VOSimpleMeasureDefinition.java | 28 ++++ .../visualization/VisualizationAttribute.java | 14 +- .../md/visualization/VisualizationObject.java | 53 +++++-- .../afm/SimpleMeasureDefinitionTest.groovy | 16 +- .../md/visualization/MeasureTest.groovy | 8 + .../VisualizationAttributeTest.groovy | 42 +++++ .../VisualizationObjectTest.groovy | 144 +++++++++--------- .../afm/simpleMeasureDefinitionFull.json | 10 ++ .../md/visualization/simpleMeasure.json | 12 ++ .../visualization/visualizationAttribute.json | 8 + .../visualizationAttributeFull.json | 9 ++ 13 files changed, 264 insertions(+), 92 deletions(-) create mode 100644 src/test/groovy/com/gooddata/md/visualization/VisualizationAttributeTest.groovy create mode 100644 src/test/resources/md/visualization/simpleMeasure.json create mode 100644 src/test/resources/md/visualization/visualizationAttribute.json create mode 100644 src/test/resources/md/visualization/visualizationAttributeFull.json diff --git a/src/main/java/com/gooddata/executeafm/afm/DateFilter.java b/src/main/java/com/gooddata/executeafm/afm/DateFilter.java index ca545a364..3d33dd23c 100644 --- a/src/main/java/com/gooddata/executeafm/afm/DateFilter.java +++ b/src/main/java/com/gooddata/executeafm/afm/DateFilter.java @@ -5,6 +5,7 @@ */ package com.gooddata.executeafm.afm; +import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.gooddata.executeafm.ObjQualifier; @@ -16,6 +17,7 @@ /** * Represents filter by date. */ +@JsonInclude(JsonInclude.Include.NON_NULL) public abstract class DateFilter implements FilterItem, Serializable { private static final long serialVersionUID = -804172518160419510L; diff --git a/src/main/java/com/gooddata/md/visualization/Measure.java b/src/main/java/com/gooddata/md/visualization/Measure.java index 55181f786..3d28a93b0 100644 --- a/src/main/java/com/gooddata/md/visualization/Measure.java +++ b/src/main/java/com/gooddata/md/visualization/Measure.java @@ -11,7 +11,6 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.gooddata.executeafm.afm.MeasureDefinition; import com.gooddata.executeafm.afm.MeasureItem; -import com.gooddata.executeafm.afm.PopMeasureDefinition; import java.util.Objects; @@ -26,6 +25,15 @@ public class Measure extends MeasureItem implements BucketItem { private String title; + /** + * Creates new instance of measure for use in {@link VisualizationObject} + * @param definition measure definition + * @param localIdentifier local identifier + */ + public Measure(final MeasureDefinition definition, final String localIdentifier) { + super(definition, localIdentifier); + } + /** * Creates new instance of measure for use in {@link VisualizationObject} * @param definition measure definition diff --git a/src/main/java/com/gooddata/md/visualization/VOSimpleMeasureDefinition.java b/src/main/java/com/gooddata/md/visualization/VOSimpleMeasureDefinition.java index 520ac6c40..ce8f9c83c 100644 --- a/src/main/java/com/gooddata/md/visualization/VOSimpleMeasureDefinition.java +++ b/src/main/java/com/gooddata/md/visualization/VOSimpleMeasureDefinition.java @@ -10,6 +10,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; import com.gooddata.executeafm.ObjQualifier; +import com.gooddata.executeafm.afm.Aggregation; import com.gooddata.executeafm.afm.FilterItem; import java.util.List; @@ -28,6 +29,15 @@ public class VOSimpleMeasureDefinition extends com.gooddata.executeafm.afm.Simpl private static final long serialVersionUID = 8467311354259963694L; public static final String NAME = "measureDefinition"; + /** + * Creates instance of simple measure definition to be used in {@link VisualizationObject} + * + * @see com.gooddata.executeafm.afm.SimpleMeasureDefinition#SimpleMeasureDefinition(ObjQualifier) + */ + public VOSimpleMeasureDefinition(ObjQualifier item) { + super(item); + } + /** * Creates instance of simple measure definition to be used in {@link VisualizationObject} * @param item uri to measure @@ -42,4 +52,22 @@ public VOSimpleMeasureDefinition(@JsonProperty("item") final ObjQualifier item, @JsonProperty("filters") final List filters) { super(item, aggregation, computeRatio, filters); } + + /** + * Creates instance of simple measure definition to be used in {@link VisualizationObject} + * + * @see com.gooddata.executeafm.afm.SimpleMeasureDefinition#SimpleMeasureDefinition(ObjQualifier, Aggregation, Boolean, List) + */ + public VOSimpleMeasureDefinition(ObjQualifier item, Aggregation aggregation, Boolean computeRatio, List filters) { + super(item, aggregation, computeRatio, filters); + } + + /** + * Creates instance of simple measure definition to be used in {@link VisualizationObject} + * + * @see com.gooddata.executeafm.afm.SimpleMeasureDefinition#SimpleMeasureDefinition(ObjQualifier, Aggregation, Boolean, FilterItem...) + */ + public VOSimpleMeasureDefinition(ObjQualifier item, Aggregation aggregation, Boolean computeRatio, FilterItem... filters) { + super(item, aggregation, computeRatio, filters); + } } diff --git a/src/main/java/com/gooddata/md/visualization/VisualizationAttribute.java b/src/main/java/com/gooddata/md/visualization/VisualizationAttribute.java index 9bb3ae718..4bebd96c4 100644 --- a/src/main/java/com/gooddata/md/visualization/VisualizationAttribute.java +++ b/src/main/java/com/gooddata/md/visualization/VisualizationAttribute.java @@ -8,7 +8,7 @@ import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; -import com.gooddata.executeafm.ObjQualifier; +import com.gooddata.executeafm.UriObjQualifier; import com.gooddata.executeafm.afm.AttributeItem; import java.util.Objects; @@ -22,6 +22,16 @@ public class VisualizationAttribute extends AttributeItem implements BucketItem private static final long serialVersionUID = -5144496152695494774L; static final String NAME = "visualizationAttribute"; + /** + * Creates new instance of visualization attribute for use in {@link Bucket} + * + * @param displayForm display form of attribute + * @param localIdentifier local identifier of attribute + */ + public VisualizationAttribute(final UriObjQualifier displayForm, final String localIdentifier) { + super(displayForm, localIdentifier); + } + /** * Creates new instance of visualization attribute for use in {@link Bucket} * @@ -30,7 +40,7 @@ public class VisualizationAttribute extends AttributeItem implements BucketItem * @param alias alias of attribute */ @JsonCreator - public VisualizationAttribute(@JsonProperty("displayForm") final ObjQualifier displayForm, + public VisualizationAttribute(@JsonProperty("displayForm") final UriObjQualifier displayForm, @JsonProperty("localIdentifier") final String localIdentifier, @JsonProperty("alias") final String alias) { super(displayForm, localIdentifier, alias); diff --git a/src/main/java/com/gooddata/md/visualization/VisualizationObject.java b/src/main/java/com/gooddata/md/visualization/VisualizationObject.java index bd1eb5eff..6d5de4f70 100644 --- a/src/main/java/com/gooddata/md/visualization/VisualizationObject.java +++ b/src/main/java/com/gooddata/md/visualization/VisualizationObject.java @@ -15,7 +15,9 @@ import static com.fasterxml.jackson.annotation.JsonTypeInfo.As.WRAPPER_OBJECT; import static com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME; import static com.gooddata.md.visualization.CollectionType.*; +import static java.util.Collections.emptyList; import static java.util.stream.Collectors.toList; +import static org.apache.commons.lang3.Validate.notEmpty; import static org.apache.commons.lang3.Validate.notNull; import com.gooddata.executeafm.UriObjQualifier; @@ -35,7 +37,11 @@ import java.util.function.Function; /** - * Stores complete information about new visualization object that can be stored as MD to md server + * Complete information about new visualization object that can be stored as MD object (see {@link com.gooddata.md.Obj}) + * to md server. + *

+ * The visualization object is part of new GD UI visualizations situated in AD and KPI dashboards. + * This object is a persistent form of AFM (Attribute, Measures, Filters) report executions. */ @JsonTypeName(VisualizationObject.NAME) @JsonTypeInfo(include = WRAPPER_OBJECT, use = NAME) @@ -43,7 +49,19 @@ @JsonInclude(JsonInclude.Include.NON_NULL) public class VisualizationObject extends AbstractObj implements Queryable, Updatable { static final String NAME = "visualizationObject"; - private Content content; + + @JsonProperty("content") + private final Content content; + + /** + * Constructor. + * + * @param title title of visualization object + * @param visualizationClassUri uri to the {@link VisualizationClass} + */ + public VisualizationObject(final String title, final String visualizationClassUri) { + this(new Content(notEmpty(visualizationClassUri), emptyList()), new Meta(notEmpty(title))); + } @JsonCreator private VisualizationObject(@JsonProperty("content") final Content content, @JsonProperty("meta") final Meta meta) { @@ -56,7 +74,7 @@ private VisualizationObject(@JsonProperty("content") final Content content, @Jso */ @JsonIgnore public List getMeasures() { - return getContent().getMeasures(); + return content.getMeasures(); } /** @@ -64,6 +82,7 @@ public List getMeasures() { * @param localIdentifier of measure * @return measure or null */ + @JsonIgnore public Measure getMeasure(final String localIdentifier) { return getMeasures().stream() .filter(measure -> measure.getLocalIdentifier().equals(localIdentifier)) @@ -86,9 +105,10 @@ public List getSimpleMeasures() { */ @JsonIgnore public List getAttributes() { - return getContent().getAttributes(); + return content.getAttributes(); } + @JsonIgnore public VisualizationAttribute getAttribute(final String localIdentifier) { return getAttributes().stream() .filter(attribute -> attribute.getLocalIdentifier().equals(localIdentifier)) @@ -104,7 +124,7 @@ public VisualizationAttribute getAttribute(final String localIdentifier) { */ @JsonIgnore public VisualizationAttribute getAttributeFromCollection(final CollectionType type) { - return getContent().getBuckets().stream() + return content.getBuckets().stream() .filter(bucket -> type.isValueOf(bucket.getLocalIdentifier())) .findFirst() .map(Bucket::getOnlyAttribute) @@ -172,11 +192,11 @@ public VisualizationAttribute getTrend() { } /** - * @return uri to visualization class + * @return uri to the {@link VisualizationClass} */ @JsonIgnore public String getVisualizationClassUri() { - return getContent().getVisualizationClassUri(); + return content.getVisualizationClassUri(); } /** @@ -184,7 +204,7 @@ public String getVisualizationClassUri() { */ @JsonIgnore public List getBuckets() { - return getContent().getBuckets(); + return content.getBuckets(); } /** @@ -200,7 +220,7 @@ public void setBuckets(List buckets) { */ @JsonIgnore public List getFilters() { - return getContent().getFilters(); + return content.getFilters(); } /** @@ -216,7 +236,7 @@ public void setFilters(List filters) { */ @JsonIgnore public String getProperties() { - return getContent().getProperties(); + return content.getProperties(); } /** @@ -232,7 +252,7 @@ public void setProperties(String properties) { */ @JsonIgnore public Map getReferenceItems() { - return getContent().getReferenceItems(); + return content.getReferenceItems(); } /** @@ -246,6 +266,7 @@ public void setReferenceItems(Map referenceItems) { /** * @return uri to visualizaton class wrapped as {@link UriObjQualifier} */ + @JsonIgnore public UriObjQualifier getVisualizationClass() { return content.getVisualizationClass(); } @@ -253,6 +274,7 @@ public UriObjQualifier getVisualizationClass() { /** * @param uri to replace previous visualization class's uri, wrapped as {@link UriObjQualifier} */ + @JsonIgnore public void setVisualizationClass(UriObjQualifier uri) { content.setVisualizationClass(uri); } @@ -281,10 +303,6 @@ public ResultSpec convertToResultSpec(Function visua return VisualizationConverter.convertToResultSpec(this, visualizationClassgetter); } - private Content getContent() { - return content; - } - @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) private static class Content implements Serializable { @@ -296,6 +314,10 @@ private static class Content implements Serializable { private String properties; private Map referenceItems; + private Content(final String visualizationClassUri, final List buckets) { + this(new UriObjQualifier(visualizationClassUri), buckets, null, null, null); + } + @JsonCreator private Content(@JsonProperty("visualizationClass") final UriObjQualifier visualizationClass, @JsonProperty("buckets") final List buckets, @@ -373,6 +395,7 @@ public UriObjQualifier getVisualizationClass() { return visualizationClass; } + @JsonProperty("references") public Map getReferenceItems() { return referenceItems; } diff --git a/src/test/groovy/com/gooddata/executeafm/afm/SimpleMeasureDefinitionTest.groovy b/src/test/groovy/com/gooddata/executeafm/afm/SimpleMeasureDefinitionTest.groovy index 7949e9030..29c6bcb5c 100644 --- a/src/test/groovy/com/gooddata/executeafm/afm/SimpleMeasureDefinitionTest.groovy +++ b/src/test/groovy/com/gooddata/executeafm/afm/SimpleMeasureDefinitionTest.groovy @@ -25,7 +25,7 @@ class SimpleMeasureDefinitionTest extends Specification { def "should serialize full"() { expect: that new SimpleMeasureDefinition(QUALIFIER, Aggregation.AVG, - true, new PositiveAttributeFilter(QUALIFIER,'foo')), + true, new PositiveAttributeFilter(QUALIFIER,'foo'), new NegativeAttributeFilter(QUALIFIER, 'foo')), jsonEquals(resource(SIMPLE_MEASURE_DEFINITION_FULL_JSON)) } @@ -50,15 +50,19 @@ class SimpleMeasureDefinitionTest extends Specification { SimpleMeasureDefinition definition = readObjectFromResource("/$SIMPLE_MEASURE_DEFINITION_FULL_JSON", SimpleMeasureDefinition) then: - with(definition.item as UriObjQualifier) { + with(definition?.item as UriObjQualifier) { uri == QUALIFIER.uri } - definition.aggregation == 'avg' - definition.computeRatio - with(definition.filters[0] as PositiveAttributeFilter) { - (it.displayForm as UriObjQualifier).uri == QUALIFIER.uri + definition?.aggregation == 'avg' + definition?.computeRatio + with(definition?.filters?.find { it.class == PositiveAttributeFilter }) { + it.displayForm?.uri == QUALIFIER.uri it.in == ['foo'] } + with(definition?.filters?.find { it.class == NegativeAttributeFilter }) { + it.displayForm?.uri == QUALIFIER.uri + it.notIn == ['foo'] + } } def "should have default properties"() { diff --git a/src/test/groovy/com/gooddata/md/visualization/MeasureTest.groovy b/src/test/groovy/com/gooddata/md/visualization/MeasureTest.groovy index 7d2b69797..96426d164 100644 --- a/src/test/groovy/com/gooddata/md/visualization/MeasureTest.groovy +++ b/src/test/groovy/com/gooddata/md/visualization/MeasureTest.groovy @@ -5,6 +5,7 @@ */ package com.gooddata.md.visualization +import com.gooddata.executeafm.UriObjQualifier import nl.jqno.equalsverifier.EqualsVerifier import org.apache.commons.lang3.SerializationUtils import spock.lang.Shared @@ -12,11 +13,13 @@ import spock.lang.Specification import static com.gooddata.util.ResourceUtils.readObjectFromResource import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals +import static net.javacrumbs.jsonunit.core.util.ResourceUtils.resource import static spock.util.matcher.HamcrestSupport.that class MeasureTest extends Specification { private static final String MULTIPLE_MEASURES_BUCKET = "md/visualization/multipleMeasuresBucket.json" private static final String MEASURE_BUCKET = "md/visualization/measureBucket.json" + public static final String SIMPLE_MEASURE_JSON = 'md/visualization/simpleMeasure.json' @Shared Bucket bucket = readObjectFromResource("/$MULTIPLE_MEASURES_BUCKET", Bucket) @@ -63,6 +66,11 @@ class MeasureTest extends Specification { that deserialized, jsonEquals(measureWithCr) } + def "test serialize simple"() { + expect: + that new Measure(new VOSimpleMeasureDefinition(new UriObjQualifier('uri')), 'loc1'), jsonEquals(resource(SIMPLE_MEASURE_JSON)) + } + def "should verify equals"() { expect: EqualsVerifier.forClass(Measure).usingGetClass() diff --git a/src/test/groovy/com/gooddata/md/visualization/VisualizationAttributeTest.groovy b/src/test/groovy/com/gooddata/md/visualization/VisualizationAttributeTest.groovy new file mode 100644 index 000000000..125ccaaba --- /dev/null +++ b/src/test/groovy/com/gooddata/md/visualization/VisualizationAttributeTest.groovy @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2004-2018, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. + */ + +package com.gooddata.md.visualization + +import com.gooddata.executeafm.UriObjQualifier +import spock.lang.Specification + +import static com.gooddata.util.ResourceUtils.readObjectFromResource +import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals +import static net.javacrumbs.jsonunit.core.util.ResourceUtils.resource +import static spock.util.matcher.HamcrestSupport.that + + +class VisualizationAttributeTest extends Specification { + + static final String JSON = 'md/visualization/visualizationAttribute.json' + static final String JSON_FULL = 'md/visualization/visualizationAttributeFull.json' + + def "should serialize"() { + expect: + that new VisualizationAttribute(new UriObjQualifier('/some/uri'), 'li1'), jsonEquals(resource(JSON)) + } + + def "should serialize full"() { + expect: + that new VisualizationAttribute(new UriObjQualifier('/some/uri'), 'li1', 'Some alias'), jsonEquals(resource(JSON_FULL)) + } + + def "should deserialize"() { + when: + def vizAttribute = readObjectFromResource("/$JSON_FULL".toString(), VisualizationAttribute) + + then: + vizAttribute?.displayForm?.uri == '/some/uri' + vizAttribute?.localIdentifier == 'li1' + vizAttribute?.alias == 'Some alias' + } +} diff --git a/src/test/groovy/com/gooddata/md/visualization/VisualizationObjectTest.groovy b/src/test/groovy/com/gooddata/md/visualization/VisualizationObjectTest.groovy index a81180edc..09ae144d3 100644 --- a/src/test/groovy/com/gooddata/md/visualization/VisualizationObjectTest.groovy +++ b/src/test/groovy/com/gooddata/md/visualization/VisualizationObjectTest.groovy @@ -10,7 +10,6 @@ import com.gooddata.executeafm.afm.AbsoluteDateFilter import com.gooddata.executeafm.afm.NegativeAttributeFilter import com.gooddata.executeafm.afm.PositiveAttributeFilter import com.gooddata.executeafm.afm.RelativeDateFilter -import com.gooddata.md.Meta import org.apache.commons.lang3.SerializationUtils import org.joda.time.LocalDate import spock.lang.Shared @@ -19,6 +18,7 @@ import spock.lang.Unroll import static com.gooddata.util.ResourceUtils.readObjectFromResource import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals +import static net.javacrumbs.jsonunit.core.util.ResourceUtils.resource import static spock.util.matcher.HamcrestSupport.that class VisualizationObjectTest extends Specification { @@ -41,70 +41,77 @@ class VisualizationObjectTest extends Specification { @Shared VisualizationObject multipleMeasuresVisualization = readObjectFromResource("/$MULTIPLE_MEASURE_BUCKETS", VisualizationObject) + def "should deserialize full"() { + expect: + complexVisualization?.title == 'complex' + complexVisualization?.visualizationClassUri == 'visClass' + complexVisualization?.buckets?.size() == 2 + complexVisualization?.buckets?.find { it.localIdentifier == 'bucket1' }?.items?.every { it.class == VisualizationAttribute } + complexVisualization?.buckets?.find { it.localIdentifier == 'bucket2' }?.items?.every { it.class == Measure } + complexVisualization?.filters?.size() == 4 + complexVisualization?.filters?.find { it.class == PositiveAttributeFilter } + complexVisualization?.filters?.find { it.class == NegativeAttributeFilter } + complexVisualization?.filters?.find { it.class == AbsoluteDateFilter } + complexVisualization?.filters?.find { it.class == RelativeDateFilter } + complexVisualization?.properties == '{"key":"value"}' + complexVisualization?.referenceItems?.size() == 2 + } + def "should serialize full"() { - VisualizationAttribute attribute1 = new VisualizationAttribute(new UriObjQualifier("/uri/to/displayForm/1"), "attribute1", "attributeAlias") - PositiveAttributeFilter positiveAttributeFilter = new PositiveAttributeFilter( new UriObjQualifier("/uri/to/displayForm/3"), ["ab", "cd"]) - NegativeAttributeFilter negativeAttributeFilter = new NegativeAttributeFilter( new UriObjQualifier("/uri/to/displayForm/3"), ["ab", "cd"]) - AbsoluteDateFilter absoluteDateFilter = new AbsoluteDateFilter( new UriObjQualifier("/uri/to/dataSet/1"), new LocalDate("2000-08-30"), new LocalDate("2017-08-07")) - RelativeDateFilter relativeDateFilter = new RelativeDateFilter( new UriObjQualifier("/uri/to/dataSet/2"), "month", 0, -11) - VOSimpleMeasureDefinition measureDefinition = new VOSimpleMeasureDefinition(new UriObjQualifier("/uri/to/measure/1"), "sum", false, [positiveAttributeFilter, negativeAttributeFilter, absoluteDateFilter, relativeDateFilter ]) + given: + VOSimpleMeasureDefinition measureDefinition = new VOSimpleMeasureDefinition(new UriObjQualifier("/uri/to/measure/1"), 'sum', false, + [new PositiveAttributeFilter(new UriObjQualifier("/uri/to/displayForm/3")), + new NegativeAttributeFilter(new UriObjQualifier("/uri/to/displayForm/3"), ["ab", "cd"]), + new AbsoluteDateFilter(new UriObjQualifier("/uri/to/dataSet/1"), null, null), + new RelativeDateFilter(new UriObjQualifier("/uri/to/dataSet/2"), "month", 0, -11)]) + Map references = new HashMap<>() references.put("key", "value") references.put("foo", "bar") + VisualizationObject vizObject = new VisualizationObject('complex', 'visClass') + vizObject.buckets = [ + new Bucket('bucket1', [new VisualizationAttribute(new UriObjQualifier("/uri/to/displayForm/1"), "attribute1", "attributeAlias")]), + new Bucket('bucket2', [ + new Measure( + new VOSimpleMeasureDefinition(new UriObjQualifier('/uri/to/measure/0')), + 'measure0', + 'Measure 0 alias', + null, + null + ), + new Measure( + measureDefinition, + 'measure1', + 'Measure 1 alias', + 'Measure 1', + null + ) + ]) + ] + vizObject.filters = [ + new PositiveAttributeFilter(new UriObjQualifier("/uri/to/displayForm/3"), ["ab", "cd"]), + new NegativeAttributeFilter(new UriObjQualifier("/uri/to/displayForm/3"), []), + new AbsoluteDateFilter(new UriObjQualifier("/uri/to/dataSet/1"), new LocalDate("2000-08-30"), new LocalDate("2017-08-07")), + new RelativeDateFilter(new UriObjQualifier("/uri/to/dataSet/2"), "month", null, null) + ] + vizObject.properties = '{"key":"value"}' + vizObject.referenceItems = references + expect: - that new VisualizationObject( - new VisualizationObject.Content( - new UriObjQualifier("visClass"), - [ - new Bucket("bucket1", [attribute1]), - new Bucket("bucket2", [ - new Measure( - new VOSimpleMeasureDefinition(new UriObjQualifier("/uri/to/measure/0"), null, null, null), - "measure0", - "Measure 0 alias", - null, - null - ), - new Measure( - measureDefinition, - "measure1", - "Measure 1 alias", - "Measure 1", - null - ) - ]) - ], - [ - positiveAttributeFilter, - negativeAttributeFilter, - absoluteDateFilter, - relativeDateFilter - ], - "{\"key\":\"value\"}", - references - ), - new Meta("complex") - ), jsonEquals(complexVisualization) + that vizObject, jsonEquals(resource(COMPLEX_VISUALIZATION)) } - def "should serialize"() { + def "should serialize simple"() { + given: VisualizationObject simpleVisualization = readObjectFromResource("/$SIMPLE_VISUALIZATION", VisualizationObject) expect: - that new VisualizationObject( - new VisualizationObject.Content( - new UriObjQualifier("visClass"), - [], - null, - null, - null - ), - new Meta("simple") - ), jsonEquals(simpleVisualization) + that new VisualizationObject('simple', 'visClass'), jsonEquals(simpleVisualization) } def "should return null when invalid collection requested"() { + given: VisualizationObject customChart = readObjectFromResource("/$CUSTOM_CHART", VisualizationObject) when: @@ -117,18 +124,16 @@ class VisualizationObjectTest extends Specification { } @Unroll - def "return item in #name collection"() { - VisualizationAttribute attribute = getter() - + "return item in #name collection"() { expect: - attribute == expected + getter() == expected where: name | getter | expected - "view" | stackedColumnChart.&getView | stackedColumnChart.getBuckets().get(0).getItems().get(0) - "stack" | stackedColumnChart.&getStack | stackedColumnChart.getBuckets().get(1).getItems().get(0) - "trend" | segmentedLineChart.&getTrend | segmentedLineChart.getBuckets().get(0).getItems().get(0) - "segment" | segmentedLineChart.&getSegment | segmentedLineChart.getBuckets().get(1).getItems().get(0) + "view" | stackedColumnChart.&getView | stackedColumnChart.buckets[0].items[0] + "stack" | stackedColumnChart.&getStack | stackedColumnChart.buckets[1].items[0] + "trend" | segmentedLineChart.&getTrend | segmentedLineChart.buckets[0].items[0] + "segment" | segmentedLineChart.&getSegment | segmentedLineChart.buckets[1].items[0] } def "should return null when non-existing key requested"() { @@ -145,9 +150,9 @@ class VisualizationObjectTest extends Specification { where: measures | expected - multipleMeasuresVisualization.getMeasures() | [ multipleMeasuresVisualization.content.buckets.get(0).getItems().get(0), - multipleMeasuresVisualization.content.buckets.get(1).getItems().get(0), - multipleMeasuresVisualization.content.buckets.get(1).getItems().get(1) ] + multipleMeasuresVisualization.getMeasures() | [ multipleMeasuresVisualization.buckets[0].items[0], + multipleMeasuresVisualization.buckets[1].items[0], + multipleMeasuresVisualization.buckets[1].items[1] ] emptyBucketsVisualization.getMeasures() | [] } @@ -157,8 +162,8 @@ class VisualizationObjectTest extends Specification { where: measures | expected - multipleMeasuresVisualization.getSimpleMeasures() | [ multipleMeasuresVisualization.content.buckets.get(0).getItems().get(0), - multipleMeasuresVisualization.content.buckets.get(1).getItems().get(0) ] + multipleMeasuresVisualization.getSimpleMeasures() | [ multipleMeasuresVisualization.buckets[0].items[0], + multipleMeasuresVisualization.buckets[1].items[0] ] emptyBucketsVisualization.getSimpleMeasures() | [] } @@ -168,12 +173,13 @@ class VisualizationObjectTest extends Specification { where: attributes | expected - segmentedLineChart.getAttributes() | [ segmentedLineChart.content.buckets.get(0).getItems().get(0), - segmentedLineChart.content.buckets.get(1).getItems().get(0) ] + segmentedLineChart.getAttributes() | [ segmentedLineChart.buckets[0].items[0], + segmentedLineChart.buckets[1].items[0] ] emptyBucketsVisualization.getAttributes() | [] } def "should check if visualization object has derived measures"() { + given: VisualizationObject visualizationWithPop = multipleMeasuresVisualization VisualizationObject visualizationWithoutPop = segmentedLineChart VisualizationObject noMeasuresVisualization = emptyBucketsVisualization @@ -187,7 +193,8 @@ class VisualizationObjectTest extends Specification { } @Unroll - def "should set #property"() { + "should set #property"() { + given: VisualizationObject empty = readObjectFromResource("/$EMPTY_BUCKETS", VisualizationObject) when: @@ -201,9 +208,10 @@ class VisualizationObjectTest extends Specification { } def "test serializable"() { + when: VisualizationObject deserialized = SerializationUtils.roundtrip(complexVisualization) - expect: + then: that deserialized, jsonEquals(complexVisualization) } } \ No newline at end of file diff --git a/src/test/resources/executeafm/afm/simpleMeasureDefinitionFull.json b/src/test/resources/executeafm/afm/simpleMeasureDefinitionFull.json index 275808662..ba00e3100 100644 --- a/src/test/resources/executeafm/afm/simpleMeasureDefinitionFull.json +++ b/src/test/resources/executeafm/afm/simpleMeasureDefinitionFull.json @@ -15,6 +15,16 @@ "foo" ] } + }, + { + "negativeAttributeFilter": { + "displayForm": { + "uri": "/gdc/md/projectId/obj/1" + }, + "notIn": [ + "foo" + ] + } } ] } diff --git a/src/test/resources/md/visualization/simpleMeasure.json b/src/test/resources/md/visualization/simpleMeasure.json new file mode 100644 index 000000000..7dbe39744 --- /dev/null +++ b/src/test/resources/md/visualization/simpleMeasure.json @@ -0,0 +1,12 @@ +{ + "measure": { + "localIdentifier": "loc1", + "definition": { + "measureDefinition": { + "item": { + "uri": "uri" + } + } + } + } +} \ No newline at end of file diff --git a/src/test/resources/md/visualization/visualizationAttribute.json b/src/test/resources/md/visualization/visualizationAttribute.json new file mode 100644 index 000000000..4e1b8eb90 --- /dev/null +++ b/src/test/resources/md/visualization/visualizationAttribute.json @@ -0,0 +1,8 @@ +{ + "visualizationAttribute": { + "displayForm": { + "uri": "/some/uri" + }, + "localIdentifier": "li1" + } +} diff --git a/src/test/resources/md/visualization/visualizationAttributeFull.json b/src/test/resources/md/visualization/visualizationAttributeFull.json new file mode 100644 index 000000000..368bf1326 --- /dev/null +++ b/src/test/resources/md/visualization/visualizationAttributeFull.json @@ -0,0 +1,9 @@ +{ + "visualizationAttribute": { + "displayForm": { + "uri": "/some/uri" + }, + "localIdentifier": "li1", + "alias": "Some alias" + } +} From db1fec0fa05e2383e4a250278487781ff79e91c3 Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Mon, 16 Apr 2018 13:38:40 +0200 Subject: [PATCH 005/487] add acceptance test for ExecuteAfm#executeVisualization --- .../executeafm/ExecuteAfmServiceAT.java | 69 ++++++++++++++++--- 1 file changed, 60 insertions(+), 9 deletions(-) diff --git a/src/test/java/com/gooddata/executeafm/ExecuteAfmServiceAT.java b/src/test/java/com/gooddata/executeafm/ExecuteAfmServiceAT.java index 0f9b72a4b..6eb334553 100644 --- a/src/test/java/com/gooddata/executeafm/ExecuteAfmServiceAT.java +++ b/src/test/java/com/gooddata/executeafm/ExecuteAfmServiceAT.java @@ -18,11 +18,18 @@ import com.gooddata.executeafm.result.DataValue; import com.gooddata.executeafm.result.ExecutionResult; import com.gooddata.executeafm.result.ResultHeaderItem; +import com.gooddata.md.visualization.Bucket; +import com.gooddata.md.visualization.Measure; +import com.gooddata.md.visualization.VOSimpleMeasureDefinition; +import com.gooddata.md.visualization.VisualizationAttribute; +import com.gooddata.md.visualization.VisualizationClass; +import com.gooddata.md.visualization.VisualizationObject; import org.testng.annotations.Test; import java.util.Collection; import java.util.List; +import static com.gooddata.md.Restriction.identifier; import static java.util.Arrays.asList; import static java.util.Collections.singletonList; import static java.util.stream.Collectors.toList; @@ -35,17 +42,64 @@ public class ExecuteAfmServiceAT extends AbstractGoodDataAT { - private ExecutionResponse response; + private static final String GDC_TABLE_VISUALIZATION_CLASS_ID = "gdc.visualization.table"; + private static final String ATTRIBUTE_LOCAL_IDENTIFIER = "a1"; + private static final String MEASURE_LOCAL_IDENTIFIER = "m1"; - @Test(dependsOnGroups = {"model", "md", "dataset"}) + private ExecutionResponse afmResponse; + private ExecutionResponse visResponse; + + @Test(groups = "executeAfm", dependsOnGroups = {"model", "md", "dataset"}) public void testExecuteAfm() { final Execution execution = new Execution(new Afm() - .addAttribute(new AttributeItem(new IdentifierObjQualifier(attr.getDefaultDisplayForm().getIdentifier()), "a1")) - .addMeasure(new MeasureItem(new SimpleMeasureDefinition(new UriObjQualifier(metric.getUri())), "m1")) + .addAttribute(new AttributeItem(new IdentifierObjQualifier(attr.getDefaultDisplayForm().getIdentifier()), + ATTRIBUTE_LOCAL_IDENTIFIER)) + .addMeasure(new MeasureItem(new SimpleMeasureDefinition(new UriObjQualifier(metric.getUri())), + MEASURE_LOCAL_IDENTIFIER)) ); - response = gd.getExecuteAfmService().executeAfm(project, execution); + afmResponse = gd.getExecuteAfmService().executeAfm(project, execution); + + checkExecutionResponse(afmResponse); + } + + @Test(groups = "executeAfm", dependsOnGroups = {"model", "md", "dataset"}) + public void testExecuteVisualization() { + final VisualizationObject vizObject = createVisualizationObject(); + final VisualizationExecution execution = new VisualizationExecution(vizObject.getUri()); + + visResponse = gd.getExecuteAfmService().executeVisualization(project, execution); + + checkExecutionResponse(visResponse); + } + + @Test(groups = "executeAfm", dependsOnMethods = "testExecuteAfm") + public void testGetAfmExecutionResult() { + final ExecutionResult afmResult = gd.getExecuteAfmService().getResult(afmResponse).get(); + checkExecutionResult(afmResult); + } + + @Test(groups = "executeAfm", dependsOnMethods = "testExecuteVisualization") + public void testGetVisualizationExecutionResult() { + final ExecutionResult visResult = gd.getExecuteAfmService().getResult(visResponse).get(); + checkExecutionResult(visResult); + } + private VisualizationObject createVisualizationObject() { + final String vizClassUri = gd.getMetadataService().getObjUri(project, VisualizationClass.class, + identifier(GDC_TABLE_VISUALIZATION_CLASS_ID)); + + final VisualizationObject vizObject = new VisualizationObject("some title", vizClassUri); + vizObject.setBuckets(asList( + new Bucket("vizObjBucket1", singletonList(new VisualizationAttribute( + new UriObjQualifier(attr.getDefaultDisplayForm().getUri()), ATTRIBUTE_LOCAL_IDENTIFIER))), + new Bucket("vizObjBucket2", singletonList(new Measure( + new VOSimpleMeasureDefinition(new UriObjQualifier(metric.getUri())), MEASURE_LOCAL_IDENTIFIER))) + )); + return gd.getMetadataService().createObj(project, vizObject); + } + + private static void checkExecutionResponse(final ExecutionResponse response) { assertThat(response, notNullValue()); assertThat("should have 2 dimensions", response.getDimensions(), hasSize(2)); @@ -63,10 +117,7 @@ public void testExecuteAfm() { assertThat("the only measureHeader should point to given metric", measureGroupHeader.getItems().get(0).getUri(), is(metric.getUri())); } - @Test(dependsOnMethods = "testExecuteAfm") - public void testGetResult() { - final ExecutionResult result = gd.getExecuteAfmService().getResult(response).get(); - + private static void checkExecutionResult(final ExecutionResult result) { assertThat(result, notNullValue()); final List firstDimHeaders = result.getHeaderItems().get(0).get(0); From 90b8924e38a62073b8184224bed11e06058a145b Mon Sep 17 00:00:00 2001 From: Richard Benkovsky Date: Tue, 17 Apr 2018 13:44:49 +0200 Subject: [PATCH 006/487] Make `release.sh` Mac compatible On Mac, we need to provide extension for backup-file - but when empty string is provided, it behaves exactly the same as `-i` (without argument) on Linux --- release.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release.sh b/release.sh index 3af0d471f..d15a687a1 100755 --- a/release.sh +++ b/release.sh @@ -61,6 +61,6 @@ then fi mvn --batch-mode release:prepare release:perform -DreleaseVersion=${version} -Darguments="-Dgpg.passphrase=${gpg_pass}" -sed -i "s/\(\)[0-9]*\.[0-9]*\.[0-9]*\(<\/version>\)/\1${version}\2/" README.md +sed -i '' "s/\(\)[0-9]*\.[0-9]*\.[0-9]*\(<\/version>\)/\1${version}\2/" README.md git commit -a -m "bump version" git push origin --tags HEAD From c41eea062d9002413e9922b8b41004eeb2790c25 Mon Sep 17 00:00:00 2001 From: Libor Rysavy Date: Tue, 17 Apr 2018 13:52:15 +0200 Subject: [PATCH 007/487] bump version --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e0fb845c2..bb550b65d 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ The *GoodData Java SDK* is available in Maven Central Repository, to use it from com.gooddata gooddata-java - 2.24.0 + 2.25.0 ``` See [releases page](https://github.com/gooddata/gooddata-java/releases) for information about versions and notable changes, From 89ea343fff30b57532d30d1ef4703905f00c97dd Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Fri, 11 May 2018 19:28:41 +0200 Subject: [PATCH 008/487] raise jackson version This should get rid of unauthenticated remote code execution vulnerability --- pom.xml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 938c05e3e..6a56f6e34 100644 --- a/pom.xml +++ b/pom.xml @@ -40,7 +40,8 @@ 4.3.3 - 2.8.4 + 2.8.11 + 2.8.11.1 4.3.1.RELEASE 1.1.1 1.23.0 @@ -317,7 +318,7 @@ com.fasterxml.jackson.core jackson-databind - ${jackson.version} + ${jackson.databind.version} com.fasterxml.jackson.core From db1ce7f9afd7e00cb5027c7203326b402275d6a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Mikul=C3=A1=C5=A1ek?= Date: Mon, 14 May 2018 13:30:14 +0200 Subject: [PATCH 009/487] bump version --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 6a56f6e34..e4b9db719 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.25.1-SNAPSHOT + 2.25.1 ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - HEAD + gooddata-java-2.25.1 From c6bbe023e70ab78e9b65e24742523c0e34f59bb2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Mikul=C3=A1=C5=A1ek?= Date: Mon, 14 May 2018 13:32:33 +0200 Subject: [PATCH 010/487] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index e4b9db719..2da31fb8f 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.25.1 + 2.25.2-SNAPSHOT ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - gooddata-java-2.25.1 + HEAD From 848a1ca0fd9f66db728bf5e178207445cc352765 Mon Sep 17 00:00:00 2001 From: xMort Date: Wed, 2 May 2018 08:10:09 +0200 Subject: [PATCH 011/487] Revert offset attribute from the PoP measure definition --- .../executeafm/afm/PopMeasureDefinition.java | 34 +---------------- .../visualization/VOPopMeasureDefinition.java | 20 +--------- .../afm/PopMeasureDefinitionTest.groovy | 38 ++++--------------- .../afm/popMeasureDefinitionWithOffset.json | 9 ----- 4 files changed, 11 insertions(+), 90 deletions(-) delete mode 100644 src/test/resources/executeafm/afm/popMeasureDefinitionWithOffset.json diff --git a/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java index 91c2daa5f..5da1e7dd4 100644 --- a/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java +++ b/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java @@ -31,8 +31,6 @@ public class PopMeasureDefinition implements MeasureDefinition, Serializable { private final ObjQualifier popAttribute; - private final Integer offset; - /** * Creates new definition from given measure identifier referencing another measure in {@link Afm} and given attribute qualifier (should qualify date * attribute) @@ -41,36 +39,17 @@ public class PopMeasureDefinition implements MeasureDefinition, Serializable { * measure identifier * @param popAttribute * "period over period" date attribute - * @param offset - * the number of periods the time window defined by {@code popAttribute} is offset about to the past (when value is negative) or future (when - * value is positive) */ @JsonCreator public PopMeasureDefinition(@JsonProperty("measureIdentifier") final String measureIdentifier, - @JsonProperty("popAttribute") final ObjQualifier popAttribute, - @JsonProperty("offset") final Integer offset) { + @JsonProperty("popAttribute") final ObjQualifier popAttribute) { this.measureIdentifier = measureIdentifier; this.popAttribute = popAttribute; - this.offset = offset; - } - - /** - * Creates new definition from given measure identifier referencing another measure in {@link Afm} and given attribute qualifier (should qualify date - * attribute) - * - * @param measureIdentifier - * measure identifier - * @param popAttribute - * "period over period" date attribute - */ - public PopMeasureDefinition(final String measureIdentifier, - final ObjQualifier popAttribute) { - this(measureIdentifier, popAttribute, null); } @Override public MeasureDefinition withObjUriQualifier(final UriObjQualifier qualifier) { - return new PopMeasureDefinition(measureIdentifier, qualifier, offset); + return new PopMeasureDefinition(measureIdentifier, qualifier); } /** @@ -89,15 +68,6 @@ public ObjQualifier getPopAttribute() { return popAttribute; } - /** - * Returns number of periods defined via {@link #popAttribute} time interval. - * - * @return positive or negative number of periods or {@code null} when offset was not defined - */ - public Integer getOffset() { - return offset; - } - @Override public ObjQualifier getObjQualifier() { return getPopAttribute(); diff --git a/src/main/java/com/gooddata/md/visualization/VOPopMeasureDefinition.java b/src/main/java/com/gooddata/md/visualization/VOPopMeasureDefinition.java index f031bcd16..08b6647e1 100644 --- a/src/main/java/com/gooddata/md/visualization/VOPopMeasureDefinition.java +++ b/src/main/java/com/gooddata/md/visualization/VOPopMeasureDefinition.java @@ -33,27 +33,11 @@ public class VOPopMeasureDefinition extends com.gooddata.executeafm.afm.PopMeasu * reference to local identifier of {@link VOSimpleMeasureDefinition} over which is PoP calculated * @param popAttribute * uri to attribute used for PoP - * @param offset - * the number of periods defined via the {@code popAttribute} time interval to the past (when value is negative) or to the future (when - * value is positive) */ @JsonCreator public VOPopMeasureDefinition(@JsonProperty("measureIdentifier") final String measureIdentifier, - @JsonProperty("popAttribute") final ObjQualifier popAttribute, - @JsonProperty("offset") final Integer offset) { - super(measureIdentifier, popAttribute, offset); - } - - /** - * Creates instance of Period over Period measure definition to be used in {@link VisualizationObject} - * - * @param measureIdentifier - * reference to local identifier of {@link VOSimpleMeasureDefinition} over which is PoP calculated - * @param popAttribute - * uri to attribute used for PoP - */ - public VOPopMeasureDefinition(final String measureIdentifier, - final ObjQualifier popAttribute) { + @JsonProperty("popAttribute") final ObjQualifier popAttribute) { super(measureIdentifier, popAttribute); } + } diff --git a/src/test/groovy/com/gooddata/executeafm/afm/PopMeasureDefinitionTest.groovy b/src/test/groovy/com/gooddata/executeafm/afm/PopMeasureDefinitionTest.groovy index c1c8ef847..6372e6262 100644 --- a/src/test/groovy/com/gooddata/executeafm/afm/PopMeasureDefinitionTest.groovy +++ b/src/test/groovy/com/gooddata/executeafm/afm/PopMeasureDefinitionTest.groovy @@ -17,64 +17,40 @@ import static spock.util.matcher.HamcrestSupport.that class PopMeasureDefinitionTest extends Specification { - private static final String POP_MEASURE_JSON = 'executeafm/afm/popMeasureDefinition.json' - private static final String POP_MEASURE_WITH_OFFSET_JSON = 'executeafm/afm/popMeasureDefinitionWithOffset.json' - + private static final String POP_MEASURE_DEFINITION_JSON = 'executeafm/afm/popMeasureDefinition.json' def "should serialize"() { expect: - that new PopMeasureDefinition('mId', new UriObjQualifier('/gdc/md/projectId/obj/1'), offset), - jsonEquals(resource(expectedJsonMeasureDefinition)) - - where: - offset | expectedJsonMeasureDefinition - null | POP_MEASURE_JSON - -2 | POP_MEASURE_WITH_OFFSET_JSON + that new PopMeasureDefinition('mId', new UriObjQualifier('/gdc/md/projectId/obj/1')), + jsonEquals(resource(POP_MEASURE_DEFINITION_JSON)) } def "should deserialize"() { when: - PopMeasureDefinition measure = readObjectFromResource("/$jsonMeasureDefinition", PopMeasureDefinition) + PopMeasureDefinition measure = readObjectFromResource("/$POP_MEASURE_DEFINITION_JSON", PopMeasureDefinition) then: measure.measureIdentifier == 'mId' (measure.popAttribute as UriObjQualifier).uri == '/gdc/md/projectId/obj/1' measure.isAdHoc() measure.toString() - measure.offset == expectedOffset - - where: - jsonMeasureDefinition | expectedOffset - POP_MEASURE_JSON | null - POP_MEASURE_WITH_OFFSET_JSON | -2 } def "should copy"() { when: - def measure = new PopMeasureDefinition("mId", new IdentifierObjQualifier("id"), inputOffset) + def measure = new PopMeasureDefinition("mid", new IdentifierObjQualifier("id")) def copy = measure.withObjUriQualifier(new UriObjQualifier("uri")) then: - copy.measureIdentifier == 'mId' copy.objQualifier.uri == 'uri' - copy.offset == expectedOffset - - where: - inputOffset | expectedOffset - null | null - -2 | -2 } def "test serializable"() { - when: - PopMeasureDefinition measureDefinition = readObjectFromResource("/$jsonMeasureDefinition", PopMeasureDefinition) + PopMeasureDefinition measureDefinition = readObjectFromResource("/$POP_MEASURE_DEFINITION_JSON", PopMeasureDefinition) PopMeasureDefinition deserialized = SerializationUtils.roundtrip(measureDefinition) - then: + expect: that deserialized, jsonEquals(measureDefinition) - - where: - jsonMeasureDefinition << [POP_MEASURE_JSON, POP_MEASURE_WITH_OFFSET_JSON] } } diff --git a/src/test/resources/executeafm/afm/popMeasureDefinitionWithOffset.json b/src/test/resources/executeafm/afm/popMeasureDefinitionWithOffset.json deleted file mode 100644 index adb5f1ae7..000000000 --- a/src/test/resources/executeafm/afm/popMeasureDefinitionWithOffset.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "popMeasure": { - "measureIdentifier": "mId", - "popAttribute": { - "uri": "/gdc/md/projectId/obj/1" - }, - "offset": -2 - } -} From 71408f2c07a162a917dc56e4868abab05c174cc6 Mon Sep 17 00:00:00 2001 From: xMort Date: Wed, 2 May 2018 17:47:47 +0200 Subject: [PATCH 012/487] Introduce support for Over period and Previous period measure definition --- .../executeafm/afm/MeasureDefinition.java | 55 +++++- .../afm/ObjIdentifierUtilities.java | 73 ++++++++ .../executeafm/afm/ObjQualifierConverter.java | 26 +++ .../afm/OverPeriodDateAttribute.java | 86 +++++++++ .../afm/OverPeriodMeasureDefinition.java | 166 ++++++++++++++++++ .../executeafm/afm/PopMeasureDefinition.java | 71 +++++++- .../afm/PreviousPeriodDateDataSet.java | 85 +++++++++ .../afm/PreviousPeriodMeasureDefinition.java | 166 ++++++++++++++++++ .../afm/SimpleMeasureDefinition.java | 125 ++++++++++--- .../afm/MeasureDefinitionTest.groovy | 8 +- .../afm/ObjIdentifierUtilitiesTest.groovy | 103 +++++++++++ .../afm/OverPeriodDateAttributeTest.groovy | 66 +++++++ .../OverPeriodMeasureDefinitionTest.groovy | 152 ++++++++++++++++ .../afm/PopMeasureDefinitionTest.groovy | 65 ++++++- .../afm/PreviousPeriodDateDataSetTest.groovy | 66 +++++++ ...PreviousPeriodMeasureDefinitionTest.groovy | 154 ++++++++++++++++ .../afm/SimpleMeasureDefinitionTest.groovy | 68 ++++++- .../afm/overPeriodDateAttribute.json | 6 + .../afm/overPeriodMeasureDefinition.json | 13 ++ ...iodMeasureDefinitionWithTwoAttributes.json | 19 ++ .../afm/previousPeriodDateDataSet.json | 6 + .../afm/previousPeriodMeasureDefinition.json | 13 ++ ...eriodMeasureDefinitionWithTwoDataSets.json | 19 ++ 23 files changed, 1576 insertions(+), 35 deletions(-) create mode 100644 src/main/java/com/gooddata/executeafm/afm/ObjIdentifierUtilities.java create mode 100644 src/main/java/com/gooddata/executeafm/afm/ObjQualifierConverter.java create mode 100644 src/main/java/com/gooddata/executeafm/afm/OverPeriodDateAttribute.java create mode 100644 src/main/java/com/gooddata/executeafm/afm/OverPeriodMeasureDefinition.java create mode 100644 src/main/java/com/gooddata/executeafm/afm/PreviousPeriodDateDataSet.java create mode 100644 src/main/java/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinition.java create mode 100644 src/test/groovy/com/gooddata/executeafm/afm/ObjIdentifierUtilitiesTest.groovy create mode 100644 src/test/groovy/com/gooddata/executeafm/afm/OverPeriodDateAttributeTest.groovy create mode 100644 src/test/groovy/com/gooddata/executeafm/afm/OverPeriodMeasureDefinitionTest.groovy create mode 100644 src/test/groovy/com/gooddata/executeafm/afm/PreviousPeriodDateDataSetTest.groovy create mode 100644 src/test/groovy/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinitionTest.groovy create mode 100644 src/test/resources/executeafm/afm/overPeriodDateAttribute.json create mode 100644 src/test/resources/executeafm/afm/overPeriodMeasureDefinition.json create mode 100644 src/test/resources/executeafm/afm/overPeriodMeasureDefinitionWithTwoAttributes.json create mode 100644 src/test/resources/executeafm/afm/previousPeriodDateDataSet.json create mode 100644 src/test/resources/executeafm/afm/previousPeriodMeasureDefinition.json create mode 100644 src/test/resources/executeafm/afm/previousPeriodMeasureDefinitionWithTwoDataSets.json diff --git a/src/main/java/com/gooddata/executeafm/afm/MeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/MeasureDefinition.java index 3d9b93e08..4f2ca5a4b 100644 --- a/src/main/java/com/gooddata/executeafm/afm/MeasureDefinition.java +++ b/src/main/java/com/gooddata/executeafm/afm/MeasureDefinition.java @@ -8,23 +8,29 @@ import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.gooddata.executeafm.IdentifierObjQualifier; import com.gooddata.executeafm.ObjQualifier; import com.gooddata.executeafm.UriObjQualifier; import com.gooddata.md.visualization.VOPopMeasureDefinition; import com.gooddata.md.visualization.VOSimpleMeasureDefinition; +import java.util.Collection; + @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonSubTypes({ @JsonSubTypes.Type(value = SimpleMeasureDefinition.class, name = SimpleMeasureDefinition.NAME), @JsonSubTypes.Type(value = PopMeasureDefinition.class, name = PopMeasureDefinition.NAME), @JsonSubTypes.Type(value = VOSimpleMeasureDefinition.class, name = VOSimpleMeasureDefinition.NAME), @JsonSubTypes.Type(value = VOPopMeasureDefinition.class, name = VOPopMeasureDefinition.NAME), + @JsonSubTypes.Type(value = OverPeriodMeasureDefinition.class, name = OverPeriodMeasureDefinition.NAME), + @JsonSubTypes.Type(value = PreviousPeriodMeasureDefinition.class, name = PreviousPeriodMeasureDefinition.NAME), }) public interface MeasureDefinition { /** * Returns the definition in the form of uri of {@link com.gooddata.md.Metric}. * Default implementation throws {@link UnsupportedOperationException} + * * @return uri of the measure */ @JsonIgnore @@ -34,18 +40,63 @@ default String getUri() { /** * Returns the qualifier, qualifying the {@link com.gooddata.md.Metric}. + * * @return qualifier of measure + * + * @throws UnsupportedOperationException + * The exception is thrown when the method is not supported by the implementation. + * @deprecated Use {@link #withObjUriQualifiers(ObjQualifierConverter)} instead as this method is not supported by all the existing implementations. */ @JsonIgnore + @Deprecated ObjQualifier getObjQualifier(); /** - * Copy itself using given uri qualifier - * @param qualifier qualifier to use for the new filter + * Returns all the qualifiers used by the measure definition and its encapsulated objects. + *

+ * This information comes handy if it is necessary, for example, to convert the measure definition to use just the URI object qualifiers instead of the + * identifier object qualifiers. It can be used to gather these for a conversion service. + * + * @return all the qualifiers the measure definition uses, even in its encapsulated objects (apart from the measure filters) + */ + @JsonIgnore + Collection getObjQualifiers(); + + /** + * Copy itself using given URI qualifier. + * + * @param qualifier + * The qualifier to use by the new object. + * * @return self copy with given qualifier + * + * @throws UnsupportedOperationException + * The exception is thrown when the method is not supported by the implementation. + * @deprecated Use {@link #withObjUriQualifiers(ObjQualifierConverter)} instead as this method is not supported by all the existing implementations. */ + @Deprecated MeasureDefinition withObjUriQualifier(UriObjQualifier qualifier); + /** + * Copy itself using the given object qualifier converter in case when {@link IdentifierObjQualifier} instances are used in the object otherwise the + * original object is returned. + *

+ * The provided converter must be able to handle the conversion for the qualifiers that are of the {@link IdentifierObjQualifier} type that are used by + * this object or its encapsulated child objects. + * + * @param objQualifierConverter + * The function that converts identifier qualifiers to the matching URI qualifiers. In case when the object uses the identifier qualifiers, it + * will return a new copy of itself or its encapsulated objects that used URI qualifiers, otherwise the original object is returned. + * The parameter must not be null. + * + * @return copy of itself with replaced qualifiers in case when some {@link IdentifierObjQualifier} were used, otherwise original object is returned. + * + * @throws IllegalArgumentException + * The exception is thrown when conversion for the identifier qualifier used by this measure definition could not be made by the provided + * converter or when provided converter is null. + */ + MeasureDefinition withObjUriQualifiers(ObjQualifierConverter objQualifierConverter); + /** * @return true if this definition represents ad hoc specified measure, false otherwise */ diff --git a/src/main/java/com/gooddata/executeafm/afm/ObjIdentifierUtilities.java b/src/main/java/com/gooddata/executeafm/afm/ObjIdentifierUtilities.java new file mode 100644 index 000000000..7cb682998 --- /dev/null +++ b/src/main/java/com/gooddata/executeafm/afm/ObjIdentifierUtilities.java @@ -0,0 +1,73 @@ +/* + * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + */ +package com.gooddata.executeafm.afm; + +import com.gooddata.executeafm.IdentifierObjQualifier; +import com.gooddata.executeafm.ObjQualifier; +import com.gooddata.executeafm.UriObjQualifier; + +import java.util.function.Function; + +import static com.gooddata.util.Validate.notNull; +import static java.lang.String.format; + +/** + * The utilities for conversion of the objects that use {@link IdentifierObjQualifier} to objects that use {@link UriObjQualifier}. + */ +abstract class ObjIdentifierUtilities { + + /** + * Copy {@code objectToBeCopied} via provided {@code objectCopyFactory} in case when {@code qualifierForPossibleConversion} is of {@link + * IdentifierObjQualifier} type. Otherwise the original object is returned. + * + * @param objectToBeCopied + * The object that should be copied in case {@code qualifierForPossibleConversion} is of {@link IdentifierObjQualifier} type. The parameter must + * not be null. + * @param qualifierForPossibleConversion + * The qualifier that defines if {@code objectToBeCopied} will be copied or not. In case when it is of the {@link IdentifierObjQualifier} type, + * it will be converted via {@code qualifierConverter} and used in copy of the {@code objectToBeCopied}. The parameter must not be null. + * @param objectCopyFactory + * The factory method that accepts the result of the {@code qualifierForPossibleConversion} conversion in form of {@link UriObjQualifier} and + * returns new copy of the {@code objectToBeCopied}. The parameter must not be null. + * @param qualifierConverter + * The convert that can convert {@code qualifierForPossibleConversion} into its matching {@link UriObjQualifier} form. The parameter must not be + * null. + * @param + * The type of the object that should be copied. + * + * @return Copy of the {@code objectToBeCopied} in case when {@code qualifierForPossibleConversion} was of {@link IdentifierObjQualifier} type. Otherwise + * the original object is returned. + * + * @throws IllegalArgumentException + * The exception is thrown when required parameter is null. + */ + static R copyIfNecessary(final R objectToBeCopied, + final ObjQualifier qualifierForPossibleConversion, + final Function objectCopyFactory, + final ObjQualifierConverter qualifierConverter) { + notNull(objectToBeCopied, "objectToBeCopied"); + notNull(qualifierForPossibleConversion, "qualifierForPossibleConversion"); + notNull(objectCopyFactory, "objectCopyFactory"); + notNull(qualifierConverter, "qualifierConverter"); + + if (qualifierForPossibleConversion instanceof IdentifierObjQualifier) { + final IdentifierObjQualifier identifierQualifierToConvert = (IdentifierObjQualifier) qualifierForPossibleConversion; + return copyWithUriQualifier(identifierQualifierToConvert, objectCopyFactory, qualifierConverter); + } + return objectToBeCopied; + } + + private static R copyWithUriQualifier(final IdentifierObjQualifier identifierQualifierToConvert, + final Function objectCopyFactory, + final ObjQualifierConverter qualifierConverter) { + return qualifierConverter.convertToUriQualifier(identifierQualifierToConvert) + .map(objectCopyFactory) + .orElseThrow(() -> buildExceptionForFailedConversion(identifierQualifierToConvert)); + } + + private static IllegalArgumentException buildExceptionForFailedConversion(final IdentifierObjQualifier qualifierFailedToConvert) { + return new IllegalArgumentException(format("Supplied converter does not provide conversion for '%s'!", qualifierFailedToConvert)); + } + +} diff --git a/src/main/java/com/gooddata/executeafm/afm/ObjQualifierConverter.java b/src/main/java/com/gooddata/executeafm/afm/ObjQualifierConverter.java new file mode 100644 index 000000000..9227d78ab --- /dev/null +++ b/src/main/java/com/gooddata/executeafm/afm/ObjQualifierConverter.java @@ -0,0 +1,26 @@ +/* + * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + */ +package com.gooddata.executeafm.afm; + +import com.gooddata.executeafm.IdentifierObjQualifier; +import com.gooddata.executeafm.UriObjQualifier; + +import java.util.Optional; + +/** + * The interface of the function that converts {@link IdentifierObjQualifier} to the matching {@link UriObjQualifier}. + */ +@FunctionalInterface +public interface ObjQualifierConverter { + + /** + * Convert provided {@link IdentifierObjQualifier} to the matching {@link UriObjQualifier}. + * + * @param identifierObjQualifier + * The identifier that must be converted. + * + * @return The optional matching {@link UriObjQualifier} obtained by the conversion. + */ + Optional convertToUriQualifier(IdentifierObjQualifier identifierObjQualifier); +} diff --git a/src/main/java/com/gooddata/executeafm/afm/OverPeriodDateAttribute.java b/src/main/java/com/gooddata/executeafm/afm/OverPeriodDateAttribute.java new file mode 100644 index 000000000..6d2465754 --- /dev/null +++ b/src/main/java/com/gooddata/executeafm/afm/OverPeriodDateAttribute.java @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. + */ +package com.gooddata.executeafm.afm; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.gooddata.executeafm.ObjQualifier; +import com.gooddata.util.GoodDataToStringBuilder; + +import java.io.Serializable; +import java.util.Objects; + +import static com.gooddata.util.Validate.notNull; + +/** + * Definition of the {@link OverPeriodMeasureDefinition} attribute. + */ +public class OverPeriodDateAttribute implements Serializable { + + private static final long serialVersionUID = 2311364644023464059L; + + private final ObjQualifier attribute; + private final Integer periodsAgo; + + /** + * Create a new instance of {@link OverPeriodDateAttribute}. + * + * @param attribute + * The {@link ObjQualifier} of the attribute from the date data set that defines the PoP period and date data set. The parameter must not be + * null. + * @param periodsAgo + * The number of periods defined by the {@code attribute} about which this period will be shifted about. The positive number shifts the period to + * the past, the negative to the future. The parameter must not be null. + * + * @throws IllegalArgumentException + * Thrown when one of the required parameter is null. + */ + @JsonCreator + public OverPeriodDateAttribute( + @JsonProperty("attribute") final ObjQualifier attribute, + @JsonProperty("periodsAgo") final Integer periodsAgo) { + this.attribute = notNull(attribute, "attribute"); + this.periodsAgo = notNull(periodsAgo, "periodsAgo"); + } + + @Override + public boolean equals(final Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + final OverPeriodDateAttribute that = (OverPeriodDateAttribute) o; + return Objects.equals(attribute, that.attribute) && + Objects.equals(periodsAgo, that.periodsAgo); + } + + @Override + public int hashCode() { + return Objects.hash(attribute, periodsAgo); + } + + @Override + public String toString() { + return GoodDataToStringBuilder.defaultToString(this); + } + + /** + * The {@link ObjQualifier} of the attribute from the date data set that defines the PoP period. + * + * @return The date data set attribute that defines the PoP attribute. + */ + public ObjQualifier getAttribute() { + return attribute; + } + + /** + * The number of periods defined by the {@code attribute} about which this period will be shifted about. The positive number shifts the period to + * the past, the negative to the future. + * + * @return The number of periods the data will be shifted about. + */ + public Integer getPeriodsAgo() { + return periodsAgo; + } +} diff --git a/src/main/java/com/gooddata/executeafm/afm/OverPeriodMeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/OverPeriodMeasureDefinition.java new file mode 100644 index 000000000..7ed267eae --- /dev/null +++ b/src/main/java/com/gooddata/executeafm/afm/OverPeriodMeasureDefinition.java @@ -0,0 +1,166 @@ +/* + * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. + */ +package com.gooddata.executeafm.afm; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonRootName; +import com.gooddata.executeafm.ObjQualifier; +import com.gooddata.executeafm.UriObjQualifier; +import com.gooddata.util.GoodDataToStringBuilder; + +import java.io.Serializable; +import java.util.Collection; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +import static com.gooddata.executeafm.afm.OverPeriodMeasureDefinition.NAME; +import static com.gooddata.util.Validate.notEmpty; +import static com.gooddata.util.Validate.notNull; + +/** + * Definition of the period over period measure that is used for the Same period last year and Same period 2 years back comparisons. + */ +@JsonRootName(NAME) +public class OverPeriodMeasureDefinition implements MeasureDefinition, Serializable { + + private static final long serialVersionUID = -8904516814279504098L; + + static final String NAME = "overPeriodMeasure"; + + private final String measureIdentifier; + private final List dateAttributes; + + /** + * Create a new instance of {@link OverPeriodMeasureDefinition}. + * + * @param measureIdentifier + * The local identifier of the measure this PoP measure refers to. The parameter must not be null. + * @param dateAttributes + * The date attributes that defines how this measure will be shifted in time. The parameter must not be null. + * + * @throws IllegalArgumentException + * Thrown when {@code dateAttributes} list is empty or required parameter is null. + */ + @JsonCreator + public OverPeriodMeasureDefinition( + @JsonProperty("measureIdentifier") final String measureIdentifier, + @JsonProperty("dateAttributes") final List dateAttributes) { + this.measureIdentifier = notNull(measureIdentifier, "measureIdentifier"); + this.dateAttributes = notEmpty(dateAttributes, "dateAttributes"); + } + + /** + * The method is not supported by the object. + * Use {@link #getObjQualifiers()} instead. + * + * @return throws {@link UnsupportedOperationException} + * + * @throws UnsupportedOperationException + * The exception is thrown every time the method is called. + * @deprecated Use {@link #getObjQualifiers()} instead. + */ + @Override + @Deprecated + public ObjQualifier getObjQualifier() { + throw new UnsupportedOperationException("The method is not supported by the object!"); + } + + @Override + public Collection getObjQualifiers() { + return this.dateAttributes.stream() + .map(OverPeriodDateAttribute::getAttribute) + .collect(Collectors.toSet()); + } + + /** + * The method is not supported by the object. + * Use {@link #withObjUriQualifiers(ObjQualifierConverter)} instead. + * + * @param uriQualifier + * The URI object qualifier. + * + * @return throws {@link UnsupportedOperationException} + * + * @throws UnsupportedOperationException + * The exception is thrown every time the method is called. + * @deprecated Use {@link #withObjUriQualifiers(ObjQualifierConverter)} instead. + */ + @Override + @Deprecated + public MeasureDefinition withObjUriQualifier(final UriObjQualifier uriQualifier) { + throw new UnsupportedOperationException("The method is not supported by the object!"); + } + + @Override + public MeasureDefinition withObjUriQualifiers(final ObjQualifierConverter objQualifierConverter) { + notNull(objQualifierConverter, "objQualifierConverter"); + return new OverPeriodMeasureDefinition(measureIdentifier, copyAttributesWithUriQualifiers(objQualifierConverter)); + } + + private List copyAttributesWithUriQualifiers(final ObjQualifierConverter objQualifierConverter) { + return dateAttributes.stream() + .map(attribute -> copyWithUriQualifier(attribute, objQualifierConverter)) + .collect(Collectors.toList()); + } + + private OverPeriodDateAttribute copyWithUriQualifier(final OverPeriodDateAttribute attribute, final ObjQualifierConverter objQualifierConverter) { + return ObjIdentifierUtilities.copyIfNecessary( + attribute, + attribute.getAttribute(), + uriObjQualifier -> new OverPeriodDateAttribute(uriObjQualifier, attribute.getPeriodsAgo()), + objQualifierConverter + ); + } + + /** + * Determine if measure is ad-hoc, i.e., if it does not exist in the catalog and was created on fly. + * + * @return always true ({@link OverPeriodMeasureDefinition} is always ad-hoc) + */ + @Override + public boolean isAdHoc() { + return true; + } + + @Override + public boolean equals(final Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + final OverPeriodMeasureDefinition that = (OverPeriodMeasureDefinition) o; + return Objects.equals(measureIdentifier, that.measureIdentifier) && + Objects.equals(dateAttributes, that.dateAttributes); + } + + @Override + public int hashCode() { + return Objects.hash(measureIdentifier, dateAttributes); + } + + @Override + public String toString() { + return GoodDataToStringBuilder.defaultToString(this); + } + + /** + * The local identifier of the measure this PoP measure refers to. + * + * @return The local identifier of the master measure. + */ + public String getMeasureIdentifier() { + return measureIdentifier; + } + + /** + * The date attributes that defines how this measure will be shifted in time. + * + * @return The list of date attributes. + */ + public List getDateAttributes() { + return dateAttributes; + } +} diff --git a/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java index 5da1e7dd4..8a7b8d221 100644 --- a/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java +++ b/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java @@ -14,12 +14,20 @@ import com.gooddata.util.GoodDataToStringBuilder; import java.io.Serializable; +import java.util.Collection; +import java.util.Collections; +import java.util.Objects; +import java.util.Optional; import static com.gooddata.executeafm.afm.PopMeasureDefinition.NAME; /** - * Definition of so called "period over period" measure + * Definition of so called "period over period" measure. + *

+ * The definition is deprecated. Use {@link OverPeriodMeasureDefinition} with {@link OverPeriodDateAttribute#getPeriodsAgo()} set to {@code + * 1} instead. */ +@Deprecated @JsonRootName(NAME) @JsonInclude(JsonInclude.Include.NON_NULL) public class PopMeasureDefinition implements MeasureDefinition, Serializable { @@ -28,7 +36,6 @@ public class PopMeasureDefinition implements MeasureDefinition, Serializable { static final String NAME = "popMeasure"; private final String measureIdentifier; - private final ObjQualifier popAttribute; /** @@ -48,11 +55,18 @@ public PopMeasureDefinition(@JsonProperty("measureIdentifier") final String meas } @Override - public MeasureDefinition withObjUriQualifier(final UriObjQualifier qualifier) { - return new PopMeasureDefinition(measureIdentifier, qualifier); + public MeasureDefinition withObjUriQualifiers(final ObjQualifierConverter objQualifierConverter) { + return ObjIdentifierUtilities.copyIfNecessary( + this, + popAttribute, + uriObjQualifier -> new PopMeasureDefinition(measureIdentifier, uriObjQualifier), + objQualifierConverter + ); } /** + * Determine if measure is ad-hoc + * * @return always true (PopMeasure is always ad-hoc) */ @Override @@ -68,9 +82,56 @@ public ObjQualifier getPopAttribute() { return popAttribute; } + /** + * Returns the qualifier used by the {@link com.gooddata.md.Metric}. + * + * @return qualifier used by the metric, which is its {@link #popAttribute}. The null is returned in case when {@link #popAttribute} was not set. + * + * @deprecated Use {@link #getObjQualifiers()} instead. + */ @Override + @Deprecated public ObjQualifier getObjQualifier() { - return getPopAttribute(); + return getObjQualifiers().stream() + .findFirst() + .orElse(null); + } + + @Override + public Collection getObjQualifiers() { + return popAttribute == null + ? Collections.emptySet() + : Collections.singleton(popAttribute); + } + + /** + * Copy itself using given URI qualifier. + * + * @param uriQualifier + * The qualifier to use by the new object instead of the currently used one. + * + * @return self copy with given qualifier + * + * @deprecated Use {@link #withObjUriQualifiers(ObjQualifierConverter)} instead. + */ + @Override + @Deprecated + public MeasureDefinition withObjUriQualifier(final UriObjQualifier uriQualifier) { + return withObjUriQualifiers((identifierObjQualifier) -> Optional.of(uriQualifier)); + } + + @Override + public boolean equals(final Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + final PopMeasureDefinition that = (PopMeasureDefinition) o; + return Objects.equals(measureIdentifier, that.measureIdentifier) && + Objects.equals(popAttribute, that.popAttribute); + } + + @Override + public int hashCode() { + return Objects.hash(measureIdentifier, popAttribute); } @Override diff --git a/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodDateDataSet.java b/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodDateDataSet.java new file mode 100644 index 000000000..34c5808f1 --- /dev/null +++ b/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodDateDataSet.java @@ -0,0 +1,85 @@ +/* + * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. + */ +package com.gooddata.executeafm.afm; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.gooddata.executeafm.ObjQualifier; +import com.gooddata.util.GoodDataToStringBuilder; + +import java.io.Serializable; +import java.util.Objects; + +import static com.gooddata.util.Validate.notNull; + +/** + * Definition of the {@link PreviousPeriodMeasureDefinition} data set. + */ +public class PreviousPeriodDateDataSet implements Serializable { + + private static final long serialVersionUID = 2311364644023464059L; + + private final ObjQualifier dataSet; + private final Integer periodsAgo; + + /** + * Create a new instance of {@link PreviousPeriodDateDataSet}. + * + * @param dataSet + * The {@link ObjQualifier} of the data set that match one of the {@link DateFilter} in the execution. The parameter must not be null. + * @param periodsAgo + * The number of periods defined by the matching date filter which this period will be shifted about. The positive number shifts the period to + * the past, the negative to the future. The parameter must not be null. + * + * @throws IllegalArgumentException + * Thrown when one of the required parameter is null. + */ + @JsonCreator + public PreviousPeriodDateDataSet( + @JsonProperty("dataSet") final ObjQualifier dataSet, + @JsonProperty("periodsAgo") final Integer periodsAgo) { + this.dataSet = notNull(dataSet, "dataSet"); + this.periodsAgo = notNull(periodsAgo, "periodsAgo"); + } + + @Override + public boolean equals(final Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + final PreviousPeriodDateDataSet that = (PreviousPeriodDateDataSet) o; + return Objects.equals(dataSet, that.dataSet) && + Objects.equals(periodsAgo, that.periodsAgo); + } + + @Override + public int hashCode() { + return Objects.hash(dataSet, periodsAgo); + } + + @Override + public String toString() { + return GoodDataToStringBuilder.defaultToString(this); + } + + /** + * The {@link ObjQualifier} of the data set that match one of the {@link DateFilter} in the execution. + * + * @return The data set for matching of the AFM filter. + */ + public ObjQualifier getDataSet() { + return dataSet; + } + + /** + * The number of periods defined by the matching date filter which this period will be shifted about. The positive number shifts the period to + * the past, the negative to the future. + * + * @return The number of periods the data will be shifted about. + */ + public Integer getPeriodsAgo() { + return periodsAgo; + } +} diff --git a/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinition.java new file mode 100644 index 000000000..ee8a1678d --- /dev/null +++ b/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinition.java @@ -0,0 +1,166 @@ +/* + * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. + */ +package com.gooddata.executeafm.afm; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonRootName; +import com.gooddata.executeafm.ObjQualifier; +import com.gooddata.executeafm.UriObjQualifier; +import com.gooddata.util.GoodDataToStringBuilder; + +import java.io.Serializable; +import java.util.Collection; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +import static com.gooddata.executeafm.afm.PreviousPeriodMeasureDefinition.NAME; +import static com.gooddata.util.Validate.notEmpty; +import static com.gooddata.util.Validate.notNull; + +/** + * Definition of the period over period measure that is used for the Previous period comparison. + */ +@JsonRootName(NAME) +public class PreviousPeriodMeasureDefinition implements MeasureDefinition, Serializable { + + private static final long serialVersionUID = -4741355657671354062L; + + static final String NAME = "previousPeriodMeasure"; + + private final String measureIdentifier; + private final List dateDataSets; + + /** + * Create a new instance of {@link PreviousPeriodMeasureDefinition}. + * + * @param measureIdentifier + * The local identifier of the measure this PoP measure refers to. The parameter must not be null. + * @param dateDataSets + * The date data sets that defines how this measure will be shifted in time. The parameter must not be null. + * + * @throws IllegalArgumentException + * Thrown when {@code attributes} list is empty or required parameter is null. + */ + @JsonCreator + public PreviousPeriodMeasureDefinition( + @JsonProperty("measureIdentifier") final String measureIdentifier, + @JsonProperty("dateDataSets") final List dateDataSets) { + this.measureIdentifier = notNull(measureIdentifier, "measureIdentifier"); + this.dateDataSets = notEmpty(dateDataSets, "dateDataSets"); + } + + /** + * The method is not supported by the object. + * Use {@link #getObjQualifiers()} instead. + * + * @return throws {@link UnsupportedOperationException} + * + * @throws UnsupportedOperationException + * The exception is thrown every time the method is called. + * @deprecated Use {@link #getObjQualifiers()} instead. + */ + @Override + @Deprecated + public ObjQualifier getObjQualifier() { + throw new UnsupportedOperationException("The method is not supported by the object!"); + } + + @Override + public Collection getObjQualifiers() { + return this.dateDataSets.stream() + .map(PreviousPeriodDateDataSet::getDataSet) + .collect(Collectors.toSet()); + } + + /** + * The method is not supported by the object. + * Use {@link #withObjUriQualifiers(ObjQualifierConverter)} instead. + * + * @param uriQualifier + * The URI object qualifier. + * + * @return throws {@link UnsupportedOperationException} + * + * @throws UnsupportedOperationException + * The exception is thrown every time the method is called. + * @deprecated Use {@link #withObjUriQualifiers(ObjQualifierConverter)} instead. + */ + @Override + @Deprecated + public MeasureDefinition withObjUriQualifier(final UriObjQualifier uriQualifier) { + throw new UnsupportedOperationException("The method is not supported by the object!"); + } + + @Override + public MeasureDefinition withObjUriQualifiers(final ObjQualifierConverter objQualifierConverter) { + notNull(objQualifierConverter, "objQualifierConverter"); + return new PreviousPeriodMeasureDefinition(measureIdentifier, copyDataSetsWithUriQualifiers(objQualifierConverter)); + } + + private List copyDataSetsWithUriQualifiers(final ObjQualifierConverter objQualifierConverter) { + return dateDataSets.stream() + .map(dataSet -> copyWithUriQualifier(dataSet, objQualifierConverter)) + .collect(Collectors.toList()); + } + + private PreviousPeriodDateDataSet copyWithUriQualifier(final PreviousPeriodDateDataSet dataSet, final ObjQualifierConverter objQualifierConverter) { + return ObjIdentifierUtilities.copyIfNecessary( + dataSet, + dataSet.getDataSet(), + uriObjQualifier -> new PreviousPeriodDateDataSet(uriObjQualifier, dataSet.getPeriodsAgo()), + objQualifierConverter + ); + } + + /** + * Determine if measure is ad-hoc, i.e., if it does not exist in the catalog and was created on fly. + * + * @return always true ({@link PreviousPeriodMeasureDefinition} is always ad-hoc) + */ + @Override + public boolean isAdHoc() { + return true; + } + + @Override + public boolean equals(final Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + final PreviousPeriodMeasureDefinition that = (PreviousPeriodMeasureDefinition) o; + return Objects.equals(measureIdentifier, that.measureIdentifier) && + Objects.equals(dateDataSets, that.dateDataSets); + } + + @Override + public int hashCode() { + return Objects.hash(measureIdentifier, dateDataSets); + } + + @Override + public String toString() { + return GoodDataToStringBuilder.defaultToString(this); + } + + /** + * The local identifier of the measure this PoP measure refers to. + * + * @return The local identifier of the master measure. + */ + public String getMeasureIdentifier() { + return measureIdentifier; + } + + /** + * The date data sets that defines how this measure will be shifted in time. + * + * @return The list of date data sets. + */ + public List getDateDataSets() { + return dateDataSets; + } +} diff --git a/src/main/java/com/gooddata/executeafm/afm/SimpleMeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/SimpleMeasureDefinition.java index 219be64e2..08f68a3cd 100644 --- a/src/main/java/com/gooddata/executeafm/afm/SimpleMeasureDefinition.java +++ b/src/main/java/com/gooddata/executeafm/afm/SimpleMeasureDefinition.java @@ -15,8 +15,11 @@ import java.io.Serializable; import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; import java.util.List; import java.util.Objects; +import java.util.Optional; import static com.gooddata.executeafm.afm.SimpleMeasureDefinition.NAME; import static com.gooddata.util.Validate.notNull; @@ -43,10 +46,15 @@ public SimpleMeasureDefinition(final ObjQualifier item) { /** * Creates new definition - * @param item item which is measured, can be attribute, fact or another measure - * @param aggregation additional aggregation applied - * @param computeRatio whether should be shown as ratio - * @param filters additional filters applied + * + * @param item + * item which is measured, can be attribute, fact or another measure + * @param aggregation + * additional aggregation applied + * @param computeRatio + * whether should be shown as ratio + * @param filters + * additional filters applied */ @JsonCreator public SimpleMeasureDefinition(@JsonProperty("item") final ObjQualifier item, @@ -61,10 +69,15 @@ public SimpleMeasureDefinition(@JsonProperty("item") final ObjQualifier item, /** * Creates new definition - * @param item item which is measured, can be attribute, fact or another measure - * @param aggregation additional aggregation applied - * @param computeRatio whether should be shown as ratio - * @param filters additional filters applied + * + * @param item + * item which is measured, can be attribute, fact or another measure + * @param aggregation + * additional aggregation applied + * @param computeRatio + * whether should be shown as ratio + * @param filters + * additional filters applied */ public SimpleMeasureDefinition(final ObjQualifier item, final Aggregation aggregation, final Boolean computeRatio, final List filters) { @@ -73,19 +86,28 @@ public SimpleMeasureDefinition(final ObjQualifier item, final Aggregation aggreg /** * Creates new definition - * @param item item which is measured, can be attribute, fact or another measure - * @param aggregation additional aggregation applied - * @param computeRatio whether should be shown as ratio - * @param filters additional filters applied + * + * @param item + * item which is measured, can be attribute, fact or another measure + * @param aggregation + * additional aggregation applied + * @param computeRatio + * whether should be shown as ratio + * @param filters + * additional filters applied */ - public SimpleMeasureDefinition(final ObjQualifier item, final Aggregation aggregation, final Boolean computeRatio, - final FilterItem... filters) { + public SimpleMeasureDefinition(final ObjQualifier item, final Aggregation aggregation, final Boolean computeRatio, final FilterItem... filters) { this(item, aggregation, computeRatio, asList(filters)); } @Override - public MeasureDefinition withObjUriQualifier(final UriObjQualifier qualifier) { - return new SimpleMeasureDefinition(qualifier, aggregation, computeRatio, filters); + public MeasureDefinition withObjUriQualifiers(final ObjQualifierConverter objQualifierConverter) { + return ObjIdentifierUtilities.copyIfNecessary( + this, + item, + uriObjQualifier -> new SimpleMeasureDefinition(uriObjQualifier, aggregation, computeRatio, filters), + objQualifierConverter + ); } @Override @@ -98,9 +120,42 @@ public String getUri() { return getItem().getUri(); } + /** + * Returns the qualifier used by the {@link com.gooddata.md.Metric}. + * + * @return qualifier used by the metric, which is its {@link #item}. The null is returned in case when {@link #item} was not set. + * + * @deprecated Use {@link #getObjQualifiers()} instead. + */ @Override + @Deprecated public ObjQualifier getObjQualifier() { - return getItem(); + return getObjQualifiers().stream() + .findFirst() + .orElse(null); + } + + @Override + public Collection getObjQualifiers() { + return item == null + ? Collections.emptySet() + : Collections.singleton(item); + } + + /** + * Copy itself using given URI qualifier. + * + * @param uriQualifier + * The qualifier to use by the new object instead of the currently used one. + * + * @return self copy with given qualifier + * + * @deprecated Use {@link #withObjUriQualifiers(ObjQualifierConverter)} instead. + */ + @Override + @Deprecated + public MeasureDefinition withObjUriQualifier(final UriObjQualifier uriQualifier) { + return withObjUriQualifiers((identifierObjQualifier) -> Optional.of(uriQualifier)); } /** @@ -119,7 +174,9 @@ public String getAggregation() { /** * Set additional aggregation applied - * @param aggregation additional aggregation applied + * + * @param aggregation + * additional aggregation applied */ public void setAggregation(final String aggregation) { this.aggregation = aggregation; @@ -127,7 +184,9 @@ public void setAggregation(final String aggregation) { /** * Set additional aggregation applied - * @param aggregation additional aggregation applied + * + * @param aggregation + * additional aggregation applied */ public void setAggregation(final Aggregation aggregation) { setAggregation(notNull(aggregation, "aggregation").toString()); @@ -142,7 +201,9 @@ public Boolean getComputeRatio() { /** * Set whether should be shown as ratio - * @param computeRatio whether should be shown as ratio + * + * @param computeRatio + * whether should be shown as ratio */ public void setComputeRatio(final Boolean computeRatio) { this.computeRatio = computeRatio; @@ -157,7 +218,9 @@ public List getFilters() { /** * Set additional filters applied - * @param filters additional filters applied + * + * @param filters + * additional filters applied */ public void setFilters(final List filters) { this.filters = filters; @@ -165,7 +228,9 @@ public void setFilters(final List filters) { /** * Apply additional filter - * @param filter filter to be applied + * + * @param filter + * filter to be applied */ public void addFilter(final FilterItem filter) { if (filters == null) { @@ -195,6 +260,22 @@ public boolean hasAggregation() { return aggregation != null; } + @Override + public boolean equals(final Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + final SimpleMeasureDefinition that = (SimpleMeasureDefinition) o; + return Objects.equals(item, that.item) && + Objects.equals(aggregation, that.aggregation) && + Objects.equals(computeRatio, that.computeRatio) && + Objects.equals(filters, that.filters); + } + + @Override + public int hashCode() { + return Objects.hash(item, aggregation, computeRatio, filters); + } + @Override public String toString() { return GoodDataToStringBuilder.defaultToString(this); diff --git a/src/test/groovy/com/gooddata/executeafm/afm/MeasureDefinitionTest.groovy b/src/test/groovy/com/gooddata/executeafm/afm/MeasureDefinitionTest.groovy index e6a50335b..cb4c8f2c0 100644 --- a/src/test/groovy/com/gooddata/executeafm/afm/MeasureDefinitionTest.groovy +++ b/src/test/groovy/com/gooddata/executeafm/afm/MeasureDefinitionTest.groovy @@ -21,9 +21,11 @@ class MeasureDefinitionTest extends Specification { typeClass.isInstance(instance) where: - type | typeClass - 'popMeasureDefinition' | PopMeasureDefinition - 'simpleMeasureDefinition' | SimpleMeasureDefinition + type | typeClass + 'popMeasureDefinition' | PopMeasureDefinition + 'simpleMeasureDefinition' | SimpleMeasureDefinition + 'overPeriodMeasureDefinition' | OverPeriodMeasureDefinition + 'previousPeriodMeasureDefinition' | PreviousPeriodMeasureDefinition } def "getUri() should throw exception"() { diff --git a/src/test/groovy/com/gooddata/executeafm/afm/ObjIdentifierUtilitiesTest.groovy b/src/test/groovy/com/gooddata/executeafm/afm/ObjIdentifierUtilitiesTest.groovy new file mode 100644 index 000000000..c11389dbd --- /dev/null +++ b/src/test/groovy/com/gooddata/executeafm/afm/ObjIdentifierUtilitiesTest.groovy @@ -0,0 +1,103 @@ +/* + * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + */ +package com.gooddata.executeafm.afm + +import com.gooddata.executeafm.IdentifierObjQualifier +import com.gooddata.executeafm.ObjQualifier +import com.gooddata.executeafm.UriObjQualifier +import spock.lang.Specification + +class ObjIdentifierUtilitiesTest extends Specification { + + + def "should throw when required parameter is null"() { + when: + ObjIdentifierUtilities.copyIfNecessary(objectToCopy, qualifier, copyFactory, converter) + + then: + thrown(IllegalArgumentException) + + where: + objectToCopy | qualifier | copyFactory | converter + null | new IdentifierObjQualifier("id") | { uri -> "new string" } | { id -> new UriObjQualifier("/uri") } + "string" | null | { uri -> "new string" } | { id -> new UriObjQualifier("/uri") } + "string" | new IdentifierObjQualifier("id") | null | { id -> new UriObjQualifier("/uri") } + "string" | new IdentifierObjQualifier("id") | { uri -> "new string" } | null + } + + def "should throw when uri conversion failed"() { + given: + SomeClass original = new SomeClass(new IdentifierObjQualifier("id")) + def copyFactory = { uriQualifier -> new SomeClass(uriQualifier) } + def qualifiersConversionMap = [ + (new IdentifierObjQualifier("another-id")): new UriObjQualifier("/uri") + ] + ObjQualifierConverter qualifierConverter = { identifierQualifier -> + return Optional.ofNullable(qualifiersConversionMap.get(identifierQualifier)) + } + + when: + ObjIdentifierUtilities.copyIfNecessary(original, original.qualifier, copyFactory, qualifierConverter) + + then: + thrown(IllegalArgumentException) + } + + def "should return copied object with result of the qualifier result"() { + given: + SomeClass original = new SomeClass(new IdentifierObjQualifier("id")) + def copyFactory = { uriQualifier -> new SomeClass(uriQualifier) } + def qualifiersConversionMap = [ + (new IdentifierObjQualifier("id")): new UriObjQualifier("/uri") + ] + ObjQualifierConverter qualifierConverter = { identifierQualifier -> + return Optional.ofNullable(qualifiersConversionMap.get(identifierQualifier)) + } + + when: + SomeClass copy = ObjIdentifierUtilities.copyIfNecessary(original, original.qualifier, copyFactory, qualifierConverter) + + then: + copy == new SomeClass(new UriObjQualifier("/uri")) + } + + def "should return the original object when it already uses the uri qualifier"() { + given: + SomeClass original = new SomeClass(new UriObjQualifier("/uri")) + def copyFactory = { uriQualifier -> new SomeClass(uriQualifier) } + def qualifiersConversionMap = [ + (new IdentifierObjQualifier("id")): new UriObjQualifier("/another-uri") + ] + ObjQualifierConverter qualifierConverter = { identifierQualifier -> + return Optional.ofNullable(qualifiersConversionMap.get(identifierQualifier)) + } + + when: + SomeClass copy = ObjIdentifierUtilities.copyIfNecessary(original, original.qualifier, copyFactory, qualifierConverter) + + then: + original == copy + } + + private class SomeClass { + + private ObjQualifier qualifier + + SomeClass(ObjQualifier qualifier) { + this.qualifier = qualifier + } + + boolean equals(final o) { + if (this.is(o)) return true + if (getClass() != o.class) return false + SomeClass someClass = (SomeClass) o + if (qualifier != someClass.qualifier) return false + return true + } + + int hashCode() { + return (qualifier != null ? qualifier.hashCode() : 0) + } + } +} diff --git a/src/test/groovy/com/gooddata/executeafm/afm/OverPeriodDateAttributeTest.groovy b/src/test/groovy/com/gooddata/executeafm/afm/OverPeriodDateAttributeTest.groovy new file mode 100644 index 000000000..62ee1330c --- /dev/null +++ b/src/test/groovy/com/gooddata/executeafm/afm/OverPeriodDateAttributeTest.groovy @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. + */ +package com.gooddata.executeafm.afm + +import com.gooddata.executeafm.UriObjQualifier +import nl.jqno.equalsverifier.EqualsVerifier +import org.apache.commons.lang3.SerializationUtils +import spock.lang.Specification + +import static com.gooddata.util.ResourceUtils.readObjectFromResource +import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals +import static net.javacrumbs.jsonunit.core.util.ResourceUtils.resource +import static spock.util.matcher.HamcrestSupport.that + +class OverPeriodDateAttributeTest extends Specification { + + private static final String ATTRIBUTE_JSON = "executeafm/afm/overPeriodDateAttribute.json" + + def "should serialize"() { + expect: + OverPeriodDateAttribute dateAttribute = new OverPeriodDateAttribute( + new UriObjQualifier('/gdc/md/projectId/obj/1'), 2) + that dateAttribute, jsonEquals(resource(ATTRIBUTE_JSON)) + } + + def "should deserialize"() { + when: + OverPeriodDateAttribute dateAttribute = readObjectFromResource("/$ATTRIBUTE_JSON", OverPeriodDateAttribute) + + then: + dateAttribute.attribute.uri == '/gdc/md/projectId/obj/1' + dateAttribute.periodsAgo == 2 + } + + def "test serializable"() { + given: + OverPeriodDateAttribute dateAttribute = readObjectFromResource("/$ATTRIBUTE_JSON", OverPeriodDateAttribute) + OverPeriodDateAttribute deserialized = SerializationUtils.roundtrip(dateAttribute) + + expect: + that deserialized, jsonEquals(dateAttribute) + } + + def "should throw when required construction parameter is null"() { + when: + new OverPeriodDateAttribute(attribute, periodsAgo) + + then: + thrown(IllegalArgumentException) + + where: + attribute | periodsAgo + null | 2 + new UriObjQualifier('/gdc/md/projectId/obj/1') | null + } + + def "should verify equals"() { + expect: + EqualsVerifier.forClass(OverPeriodDateAttribute) + .usingGetClass() + .verify() + } +} diff --git a/src/test/groovy/com/gooddata/executeafm/afm/OverPeriodMeasureDefinitionTest.groovy b/src/test/groovy/com/gooddata/executeafm/afm/OverPeriodMeasureDefinitionTest.groovy new file mode 100644 index 000000000..67072cb91 --- /dev/null +++ b/src/test/groovy/com/gooddata/executeafm/afm/OverPeriodMeasureDefinitionTest.groovy @@ -0,0 +1,152 @@ +/* + * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. + */ +package com.gooddata.executeafm.afm + +import com.gooddata.executeafm.IdentifierObjQualifier +import com.gooddata.executeafm.UriObjQualifier +import nl.jqno.equalsverifier.EqualsVerifier +import org.apache.commons.lang3.SerializationUtils +import spock.lang.Specification + +import static com.gooddata.util.ResourceUtils.readObjectFromResource +import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals +import static net.javacrumbs.jsonunit.core.util.ResourceUtils.resource +import static spock.util.matcher.HamcrestSupport.that + +class OverPeriodMeasureDefinitionTest extends Specification { + + private static final String path = 'executeafm/afm' + private static final String SINGLE_ATTRIBUTE_JSON = "$path/overPeriodMeasureDefinition.json" + private static final String TWO_ATTRIBUTES_JSON = "$path/overPeriodMeasureDefinitionWithTwoAttributes.json" + + def "should serialize"() { + expect: + OverPeriodMeasureDefinition measure = new OverPeriodMeasureDefinition( + 'mId', [new OverPeriodDateAttribute(new UriObjQualifier('/gdc/md/projectId/obj/1'), 2)] + ) + that measure, jsonEquals(resource(SINGLE_ATTRIBUTE_JSON)) + } + + def "should deserialize when single attribute is provided"() { + when: + OverPeriodMeasureDefinition measure = readObjectFromResource("/$SINGLE_ATTRIBUTE_JSON", OverPeriodMeasureDefinition) + + then: + measure.measureIdentifier == 'mId' + measure.getObjQualifiers()[0].uri == '/gdc/md/projectId/obj/1' + measure.dateAttributes.size() == 1 + measure.dateAttributes[0].periodsAgo == 2 + measure.dateAttributes[0].attribute.uri == '/gdc/md/projectId/obj/1' + measure.isAdHoc() + measure.toString() + } + + def "should deserialize when more attributes are provided"() { + when: + OverPeriodMeasureDefinition measure = readObjectFromResource("/$TWO_ATTRIBUTES_JSON", OverPeriodMeasureDefinition) + + then: + measure.measureIdentifier == 'mId' + measure.getObjQualifiers()[0].uri == '/gdc/md/projectId/obj/1' + measure.getObjQualifiers()[1].uri == '/gdc/md/projectId/obj/2' + measure.dateAttributes.size() == 2 + measure.dateAttributes[0].periodsAgo == 2 + measure.dateAttributes[0].attribute.uri == '/gdc/md/projectId/obj/1' + measure.dateAttributes[1].periodsAgo == 1 + measure.dateAttributes[1].attribute.uri == '/gdc/md/projectId/obj/2' + measure.isAdHoc() + measure.toString() + } + + def "test serializable"() { + given: + OverPeriodMeasureDefinition measureDefinition = readObjectFromResource("/$SINGLE_ATTRIBUTE_JSON", OverPeriodMeasureDefinition) + OverPeriodMeasureDefinition deserialized = SerializationUtils.roundtrip(measureDefinition) + + expect: + that deserialized, jsonEquals(measureDefinition) + } + + def "should throw when required construction parameter is null or empty"() { + when: + new OverPeriodMeasureDefinition(measureIdentifier, dateAttributes) + + then: + thrown(IllegalArgumentException) + + where: + measureIdentifier | dateAttributes + 'mId' | null + 'mId' | [] + null | [new OverPeriodDateAttribute(new UriObjQualifier('/gdc/md/projectId/obj/1'), 2)] + } + + def "should throw when getting used object qualifiers via deprecated method"() { + when: + OverPeriodMeasureDefinition measure = new OverPeriodMeasureDefinition('mId', [ + new OverPeriodDateAttribute(new IdentifierObjQualifier('id1'), -2), + ]) + measure.getObjQualifier() + then: + thrown(UnsupportedOperationException) + } + + def "should throw when try to copy with uri via deprecated method"() { + when: + OverPeriodMeasureDefinition measure = new OverPeriodMeasureDefinition('mId', [ + new OverPeriodDateAttribute(new IdentifierObjQualifier('id1'), -2), + ]) + measure.withObjUriQualifier(new UriObjQualifier("/gdc/md/projectId/obj/1")) + then: + thrown(UnsupportedOperationException) + } + + def "should copy with uri converter"() { + when: + OverPeriodMeasureDefinition measure = new OverPeriodMeasureDefinition('mId', [ + new OverPeriodDateAttribute(new IdentifierObjQualifier('id1'), -2), + new OverPeriodDateAttribute(new IdentifierObjQualifier('id2'), -3), + new OverPeriodDateAttribute(new UriObjQualifier('/gdc/md/projectId/obj/3'), -4) + ]) + def qualifiersConversionMap = [ + (new IdentifierObjQualifier("id2")): new UriObjQualifier("/gdc/md/projectId/obj/2"), + (new IdentifierObjQualifier("id1")): new UriObjQualifier("/gdc/md/projectId/obj/1") + ] + def copy = measure.withObjUriQualifiers({ identifierQualifier -> + return Optional.ofNullable(qualifiersConversionMap.get(identifierQualifier)) + }) + + then: + measure.measureIdentifier == 'mId' + copy.dateAttributes[0].attribute.uri == '/gdc/md/projectId/obj/1' + copy.dateAttributes[0].periodsAgo == -2 + copy.dateAttributes[1].attribute.uri == '/gdc/md/projectId/obj/2' + copy.dateAttributes[1].periodsAgo == -3 + copy.dateAttributes[2].attribute.uri == '/gdc/md/projectId/obj/3' + copy.dateAttributes[2].periodsAgo == -4 + } + + def "should fail when qualifier converter is not provided or cannot convert object's identifier qualifiers"() { + when: + OverPeriodMeasureDefinition measure = new OverPeriodMeasureDefinition('mId', [ + new OverPeriodDateAttribute(new IdentifierObjQualifier('id1'), -2) + ]) + measure.withObjUriQualifiers(invalidObjQualifierConverter) + + then: + thrown(IllegalArgumentException) + + where: + invalidObjQualifierConverter << [null, { identifierQualifier -> Optional.empty() }] + } + + def "should verify equals"() { + expect: + EqualsVerifier.forClass(OverPeriodMeasureDefinition) + .usingGetClass() + .verify() + } +} diff --git a/src/test/groovy/com/gooddata/executeafm/afm/PopMeasureDefinitionTest.groovy b/src/test/groovy/com/gooddata/executeafm/afm/PopMeasureDefinitionTest.groovy index 6372e6262..4a0d56163 100644 --- a/src/test/groovy/com/gooddata/executeafm/afm/PopMeasureDefinitionTest.groovy +++ b/src/test/groovy/com/gooddata/executeafm/afm/PopMeasureDefinitionTest.groovy @@ -7,6 +7,8 @@ package com.gooddata.executeafm.afm import com.gooddata.executeafm.IdentifierObjQualifier import com.gooddata.executeafm.UriObjQualifier +import nl.jqno.equalsverifier.EqualsVerifier +import nl.jqno.equalsverifier.Warning import org.apache.commons.lang3.SerializationUtils import spock.lang.Specification @@ -31,12 +33,13 @@ class PopMeasureDefinitionTest extends Specification { then: measure.measureIdentifier == 'mId' - (measure.popAttribute as UriObjQualifier).uri == '/gdc/md/projectId/obj/1' + measure.popAttribute.uri == '/gdc/md/projectId/obj/1' + measure.objQualifier.uri == '/gdc/md/projectId/obj/1' measure.isAdHoc() measure.toString() } - def "should copy"() { + def "should copy with uri"() { when: def measure = new PopMeasureDefinition("mid", new IdentifierObjQualifier("id")) def copy = measure.withObjUriQualifier(new UriObjQualifier("uri")) @@ -45,7 +48,41 @@ class PopMeasureDefinitionTest extends Specification { copy.objQualifier.uri == 'uri' } + def "should copy with uri converter"() { + when: + def measure = new PopMeasureDefinition("mid", new IdentifierObjQualifier("id")) + def qualifiersConversionMap = [(new IdentifierObjQualifier("id")): new UriObjQualifier("uri")] + def copy = measure.withObjUriQualifiers({ identifierQualifier -> + return Optional.ofNullable(qualifiersConversionMap.get(identifierQualifier)) + }) + + then: + copy.popAttribute.uri == 'uri' + } + + def "should return the same object when copying with uri converter and uri is already used"() { + when: + def definition = new PopMeasureDefinition("mid", new UriObjQualifier("uri")) + def copy = definition.withObjUriQualifiers({ identifierQualifier -> Optional.empty() }) + + then: + definition == copy + } + + def "should fail when qualifier converter is not provided or cannot convert object's identifier qualifiers"() { + when: + def measure = new PopMeasureDefinition("mid", new IdentifierObjQualifier("id")) + measure.withObjUriQualifiers(invalidObjQualifierConverter) + + then: + thrown(IllegalArgumentException) + + where: + invalidObjQualifierConverter << [null, { identifierQualifier -> Optional.empty() }] + } + def "test serializable"() { + given: PopMeasureDefinition measureDefinition = readObjectFromResource("/$POP_MEASURE_DEFINITION_JSON", PopMeasureDefinition) PopMeasureDefinition deserialized = SerializationUtils.roundtrip(measureDefinition) @@ -53,4 +90,28 @@ class PopMeasureDefinitionTest extends Specification { that deserialized, jsonEquals(measureDefinition) } + def "should verify equals"() { + expect: + EqualsVerifier.forClass(PopMeasureDefinition) + .usingGetClass() + .verify() + } + + def "should return null when qualifier is requested but was not set"() { + when: + def definition = new PopMeasureDefinition("mid", null) + def qualifier = definition.getObjQualifier() + + then: + qualifier == null + } + + def "should return empty collection when qualifiers are requested but none was set"() { + when: + def definition = new PopMeasureDefinition("mid", null) + def qualifiers = definition.getObjQualifiers() + + then: + qualifiers.size() == 0 + } } diff --git a/src/test/groovy/com/gooddata/executeafm/afm/PreviousPeriodDateDataSetTest.groovy b/src/test/groovy/com/gooddata/executeafm/afm/PreviousPeriodDateDataSetTest.groovy new file mode 100644 index 000000000..c83958739 --- /dev/null +++ b/src/test/groovy/com/gooddata/executeafm/afm/PreviousPeriodDateDataSetTest.groovy @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. + */ +package com.gooddata.executeafm.afm + +import com.gooddata.executeafm.UriObjQualifier +import nl.jqno.equalsverifier.EqualsVerifier +import org.apache.commons.lang3.SerializationUtils +import spock.lang.Specification + +import static com.gooddata.util.ResourceUtils.readObjectFromResource +import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals +import static net.javacrumbs.jsonunit.core.util.ResourceUtils.resource +import static spock.util.matcher.HamcrestSupport.that + +class PreviousPeriodDateDataSetTest extends Specification { + + private static final String DATA_SET_JSON = "executeafm/afm/previousPeriodDateDataSet.json" + + def "should serialize"() { + expect: + PreviousPeriodDateDataSet dateDataSet = new PreviousPeriodDateDataSet( + new UriObjQualifier('/gdc/md/projectId/obj/1'), 2) + that dateDataSet, jsonEquals(resource(DATA_SET_JSON)) + } + + def "should deserialize"() { + when: + PreviousPeriodDateDataSet dateDataSet = readObjectFromResource("/$DATA_SET_JSON", PreviousPeriodDateDataSet) + + then: + dateDataSet.dataSet.uri == '/gdc/md/projectId/obj/1' + dateDataSet.periodsAgo == 2 + } + + def "test serializable"() { + given: + PreviousPeriodDateDataSet dateDataSet = readObjectFromResource("/$DATA_SET_JSON", PreviousPeriodDateDataSet) + PreviousPeriodDateDataSet deserialized = SerializationUtils.roundtrip(dateDataSet) + + expect: + that deserialized, jsonEquals(dateDataSet) + } + + def "should throw when required construction parameter is null"() { + when: + new PreviousPeriodDateDataSet(dateDataSet, periodsAgo) + + then: + thrown(IllegalArgumentException) + + where: + dateDataSet | periodsAgo + null | 2 + new UriObjQualifier('/gdc/md/projectId/obj/1') | null + } + + def "should verify equals"() { + expect: + EqualsVerifier.forClass(PreviousPeriodDateDataSet) + .usingGetClass() + .verify() + } +} diff --git a/src/test/groovy/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinitionTest.groovy b/src/test/groovy/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinitionTest.groovy new file mode 100644 index 000000000..0c6d84c9e --- /dev/null +++ b/src/test/groovy/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinitionTest.groovy @@ -0,0 +1,154 @@ +/* + * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. + */ +package com.gooddata.executeafm.afm + +import com.gooddata.executeafm.IdentifierObjQualifier +import com.gooddata.executeafm.UriObjQualifier +import nl.jqno.equalsverifier.EqualsVerifier +import org.apache.commons.lang3.SerializationUtils +import spock.lang.Specification + +import static com.gooddata.util.ResourceUtils.readObjectFromResource +import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals +import static net.javacrumbs.jsonunit.core.util.ResourceUtils.resource +import static spock.util.matcher.HamcrestSupport.that + +class PreviousPeriodMeasureDefinitionTest extends Specification { + + private static final String path = 'executeafm/afm' + private static final String SINGLE_DATA_SET_JSON = "$path/previousPeriodMeasureDefinition.json" + private static final String TWO_DATA_SETS_JSON = "$path/previousPeriodMeasureDefinitionWithTwoDataSets.json" + + def "should serialize"() { + expect: + PreviousPeriodMeasureDefinition measure = new PreviousPeriodMeasureDefinition( + 'mId', [new PreviousPeriodDateDataSet(new UriObjQualifier('/gdc/md/projectId/obj/1'), 2)] + ) + that measure, jsonEquals(resource(SINGLE_DATA_SET_JSON)) + } + + def "should deserialize when single attribute is provided"() { + when: + PreviousPeriodMeasureDefinition measure = readObjectFromResource("/$SINGLE_DATA_SET_JSON", PreviousPeriodMeasureDefinition) + + then: + measure.measureIdentifier == 'mId' + measure.getObjQualifiers()[0].uri == '/gdc/md/projectId/obj/1' + measure.dateDataSets.size() == 1 + measure.dateDataSets[0].periodsAgo == 2 + measure.dateDataSets[0].dataSet.uri == '/gdc/md/projectId/obj/1' + measure.isAdHoc() + measure.toString() + } + + def "should deserialize when more attributes are provided"() { + when: + PreviousPeriodMeasureDefinition measure = readObjectFromResource("/$TWO_DATA_SETS_JSON", PreviousPeriodMeasureDefinition) + + then: + measure.measureIdentifier == 'mId' + measure.getObjQualifiers()[0].uri == '/gdc/md/projectId/obj/1' + measure.getObjQualifiers()[1].uri == '/gdc/md/projectId/obj/2' + measure.dateDataSets.size() == 2 + measure.dateDataSets[0].periodsAgo == 2 + measure.dateDataSets[0].dataSet.uri == '/gdc/md/projectId/obj/1' + measure.dateDataSets[1].periodsAgo == 1 + measure.dateDataSets[1].dataSet.uri == '/gdc/md/projectId/obj/2' + measure.isAdHoc() + measure.toString() + } + + def "test serializable"() { + given: + PreviousPeriodMeasureDefinition measureDefinition = readObjectFromResource("/$SINGLE_DATA_SET_JSON", PreviousPeriodMeasureDefinition) + PreviousPeriodMeasureDefinition deserialized = SerializationUtils.roundtrip(measureDefinition) + + expect: + that deserialized, jsonEquals(measureDefinition) + } + + def "should throw when required construction parameter is null or empty"() { + when: + new PreviousPeriodMeasureDefinition(measureIdentifier, dateDataSets) + + then: + thrown(IllegalArgumentException) + + where: + measureIdentifier | dateDataSets + 'mId' | null + 'mId' | [] + null | [new PreviousPeriodDateDataSet(new UriObjQualifier('/gdc/md/projectId/obj/1'), 2)] + } + + def "should throw when getting used object qualifiers via deprecated method"() { + when: + PreviousPeriodMeasureDefinition measure = new PreviousPeriodMeasureDefinition('mId', [ + new PreviousPeriodDateDataSet(new IdentifierObjQualifier('id1'), -2), + ]) + measure.getObjQualifier() + + then: + thrown(UnsupportedOperationException) + } + + def "should throw when try to copy with uri via deprecated method"() { + when: + PreviousPeriodMeasureDefinition measure = new PreviousPeriodMeasureDefinition('mId', [ + new PreviousPeriodDateDataSet(new IdentifierObjQualifier('id1'), -2), + ]) + measure.withObjUriQualifier(new UriObjQualifier("/gdc/md/projectId/obj/1")) + + then: + thrown(UnsupportedOperationException) + } + + def "should copy with uri converter"() { + when: + PreviousPeriodMeasureDefinition measure = new PreviousPeriodMeasureDefinition('mId', [ + new PreviousPeriodDateDataSet(new IdentifierObjQualifier('id1'), -2), + new PreviousPeriodDateDataSet(new IdentifierObjQualifier('id2'), -3), + new PreviousPeriodDateDataSet(new UriObjQualifier('/gdc/md/projectId/obj/3'), -4) + ]) + def qualifiersConversionMap = [ + (new IdentifierObjQualifier("id2")): new UriObjQualifier("/gdc/md/projectId/obj/2"), + (new IdentifierObjQualifier("id1")): new UriObjQualifier("/gdc/md/projectId/obj/1") + ] + def copy = measure.withObjUriQualifiers({ identifierQualifier -> + return Optional.ofNullable(qualifiersConversionMap.get(identifierQualifier)) + }) + + then: + measure.measureIdentifier == 'mId' + copy.dateDataSets[0].dataSet.uri == '/gdc/md/projectId/obj/1' + copy.dateDataSets[0].periodsAgo == -2 + copy.dateDataSets[1].dataSet.uri == '/gdc/md/projectId/obj/2' + copy.dateDataSets[1].periodsAgo == -3 + copy.dateDataSets[2].dataSet.uri == '/gdc/md/projectId/obj/3' + copy.dateDataSets[2].periodsAgo == -4 + } + + def "should fail when qualifier converter is not provided or cannot convert object's identifier qualifiers"() { + when: + PreviousPeriodMeasureDefinition measure = new PreviousPeriodMeasureDefinition('mId', [ + new PreviousPeriodDateDataSet(new IdentifierObjQualifier('id1'), -2) + ]) + measure.withObjUriQualifiers(invalidObjQualifierConverter) + + then: + thrown(IllegalArgumentException) + + where: + invalidObjQualifierConverter << [null, { identifierQualifier -> Optional.empty() }] + } + + def "should verify equals"() { + expect: + EqualsVerifier.forClass(PreviousPeriodMeasureDefinition) + .usingGetClass() + .verify() + } +} diff --git a/src/test/groovy/com/gooddata/executeafm/afm/SimpleMeasureDefinitionTest.groovy b/src/test/groovy/com/gooddata/executeafm/afm/SimpleMeasureDefinitionTest.groovy index 29c6bcb5c..f8716bad7 100644 --- a/src/test/groovy/com/gooddata/executeafm/afm/SimpleMeasureDefinitionTest.groovy +++ b/src/test/groovy/com/gooddata/executeafm/afm/SimpleMeasureDefinitionTest.groovy @@ -7,6 +7,8 @@ package com.gooddata.executeafm.afm import com.gooddata.executeafm.IdentifierObjQualifier import com.gooddata.executeafm.UriObjQualifier +import nl.jqno.equalsverifier.EqualsVerifier +import nl.jqno.equalsverifier.Warning import org.apache.commons.lang3.SerializationUtils import spock.lang.Specification @@ -25,7 +27,7 @@ class SimpleMeasureDefinitionTest extends Specification { def "should serialize full"() { expect: that new SimpleMeasureDefinition(QUALIFIER, Aggregation.AVG, - true, new PositiveAttributeFilter(QUALIFIER,'foo'), new NegativeAttributeFilter(QUALIFIER, 'foo')), + true, new PositiveAttributeFilter(QUALIFIER, 'foo'), new NegativeAttributeFilter(QUALIFIER, 'foo')), jsonEquals(resource(SIMPLE_MEASURE_DEFINITION_FULL_JSON)) } @@ -53,6 +55,9 @@ class SimpleMeasureDefinitionTest extends Specification { with(definition?.item as UriObjQualifier) { uri == QUALIFIER.uri } + with(definition?.objQualifier as UriObjQualifier) { + uri == QUALIFIER.uri + } definition?.aggregation == 'avg' definition?.computeRatio with(definition?.filters?.find { it.class == PositiveAttributeFilter }) { @@ -108,11 +113,72 @@ class SimpleMeasureDefinitionTest extends Specification { copy.getObjQualifier().getUri() == 'uri' } + def "should copy with uri converter"() { + when: + def definition = new SimpleMeasureDefinition(new IdentifierObjQualifier("id")) + def qualifiersConversionMap = [(new IdentifierObjQualifier("id")): new UriObjQualifier("uri")] + def copy = definition.withObjUriQualifiers({ identifierQualifier -> + return Optional.ofNullable(qualifiersConversionMap.get(identifierQualifier)) + }) + + then: + copy.getUri() == 'uri' + copy.getItem().getUri() == 'uri' + } + + def "should return the same object when copying with uri converter and uri is already used"() { + when: + def definition = new SimpleMeasureDefinition(new UriObjQualifier('uri')) + def copy = definition.withObjUriQualifiers({ identifierQualifier -> Optional.empty() }) + + then: + definition == copy + } + + def "should fail when qualifier converter is not provided or cannot convert object's identifier qualifiers"() { + when: + def definition = new SimpleMeasureDefinition(new IdentifierObjQualifier("id")) + definition.withObjUriQualifiers(invalidObjQualifierConverter) + + then: + thrown(IllegalArgumentException) + + where: + invalidObjQualifierConverter << [null, { identifierQualifier -> Optional.empty() }] + } + def "test serializable"() { + given: SimpleMeasureDefinition measureDefinition = readObjectFromResource("/$SIMPLE_MEASURE_DEFINITION_FULL_JSON", SimpleMeasureDefinition) SimpleMeasureDefinition deserialized = SerializationUtils.roundtrip(measureDefinition) expect: that deserialized, jsonEquals(measureDefinition) } + + def "should verify equals"() { + expect: + EqualsVerifier.forClass(SimpleMeasureDefinition) + .suppress(Warning.NONFINAL_FIELDS) + .usingGetClass() + .verify() + } + + def "should return null when qualifier is requested but was not set"() { + when: + def definition = new SimpleMeasureDefinition(null) + def qualifier = definition.getObjQualifier() + + then: + qualifier == null + } + + def "should return empty collection when qualifiers are requested but none was set"() { + when: + def definition = new SimpleMeasureDefinition(null) + def qualifiers = definition.getObjQualifiers() + + then: + qualifiers.size() == 0 + } } diff --git a/src/test/resources/executeafm/afm/overPeriodDateAttribute.json b/src/test/resources/executeafm/afm/overPeriodDateAttribute.json new file mode 100644 index 000000000..afef8f361 --- /dev/null +++ b/src/test/resources/executeafm/afm/overPeriodDateAttribute.json @@ -0,0 +1,6 @@ +{ + "attribute": { + "uri": "/gdc/md/projectId/obj/1" + }, + "periodsAgo": 2 +} diff --git a/src/test/resources/executeafm/afm/overPeriodMeasureDefinition.json b/src/test/resources/executeafm/afm/overPeriodMeasureDefinition.json new file mode 100644 index 000000000..6d5f79c38 --- /dev/null +++ b/src/test/resources/executeafm/afm/overPeriodMeasureDefinition.json @@ -0,0 +1,13 @@ +{ + "overPeriodMeasure": { + "measureIdentifier": "mId", + "dateAttributes": [ + { + "attribute": { + "uri": "/gdc/md/projectId/obj/1" + }, + "periodsAgo": 2 + } + ] + } +} diff --git a/src/test/resources/executeafm/afm/overPeriodMeasureDefinitionWithTwoAttributes.json b/src/test/resources/executeafm/afm/overPeriodMeasureDefinitionWithTwoAttributes.json new file mode 100644 index 000000000..4e2ab45e1 --- /dev/null +++ b/src/test/resources/executeafm/afm/overPeriodMeasureDefinitionWithTwoAttributes.json @@ -0,0 +1,19 @@ +{ + "overPeriodMeasure": { + "measureIdentifier": "mId", + "dateAttributes": [ + { + "attribute": { + "uri": "/gdc/md/projectId/obj/1" + }, + "periodsAgo": 2 + }, + { + "attribute": { + "uri": "/gdc/md/projectId/obj/2" + }, + "periodsAgo": 1 + } + ] + } +} diff --git a/src/test/resources/executeafm/afm/previousPeriodDateDataSet.json b/src/test/resources/executeafm/afm/previousPeriodDateDataSet.json new file mode 100644 index 000000000..106d80fe8 --- /dev/null +++ b/src/test/resources/executeafm/afm/previousPeriodDateDataSet.json @@ -0,0 +1,6 @@ +{ + "dataSet": { + "uri": "/gdc/md/projectId/obj/1" + }, + "periodsAgo": 2 +} diff --git a/src/test/resources/executeafm/afm/previousPeriodMeasureDefinition.json b/src/test/resources/executeafm/afm/previousPeriodMeasureDefinition.json new file mode 100644 index 000000000..398bf7e8e --- /dev/null +++ b/src/test/resources/executeafm/afm/previousPeriodMeasureDefinition.json @@ -0,0 +1,13 @@ +{ + "previousPeriodMeasure": { + "measureIdentifier": "mId", + "dateDataSets": [ + { + "dataSet": { + "uri": "/gdc/md/projectId/obj/1" + }, + "periodsAgo": 2 + } + ] + } +} diff --git a/src/test/resources/executeafm/afm/previousPeriodMeasureDefinitionWithTwoDataSets.json b/src/test/resources/executeafm/afm/previousPeriodMeasureDefinitionWithTwoDataSets.json new file mode 100644 index 000000000..478935e73 --- /dev/null +++ b/src/test/resources/executeafm/afm/previousPeriodMeasureDefinitionWithTwoDataSets.json @@ -0,0 +1,19 @@ +{ + "previousPeriodMeasure": { + "measureIdentifier": "mId", + "dateDataSets": [ + { + "dataSet": { + "uri": "/gdc/md/projectId/obj/1" + }, + "periodsAgo": 2 + }, + { + "dataSet": { + "uri": "/gdc/md/projectId/obj/2" + }, + "periodsAgo": 1 + } + ] + } +} From d45f675fda1495c3cfdbd013149321c46ced3d14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Mikul=C3=A1=C5=A1ek?= Date: Mon, 11 Jun 2018 11:11:46 +0200 Subject: [PATCH 013/487] Upgrade to httpclient 4.5.5 Note, that httpcore and httpclient versions are no longer aligned (released together). Resolves #423 --- README.md | 2 +- pom.xml | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index bb550b65d..0bfc7104f 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ and [Extensibility How-To](https://github.com/gooddata/gooddata-java/wiki/Extend The *GoodData Java SDK* uses: * the [GoodData HTTP client](https://github.com/gooddata/gooddata-http-client) version 0.9.3 or later -* the *Apache HTTP Client* version 4.3 or later (for white-labeled domains at least version 4.3.2 is required) +* the *Apache HTTP Client* version 4.5 or later (for white-labeled domains at least version 4.3.2 is required) * the *Spring Framework* version 4.3.* * the *Jackson JSON Processor* version 2.8.* * the *Java Development Kit (JDK)* version 8 or later diff --git a/pom.xml b/pom.xml index 2da31fb8f..cb50d96b1 100644 --- a/pom.xml +++ b/pom.xml @@ -39,7 +39,8 @@ - 4.3.3 + 4.5.5 + 4.4.9 2.8.11 2.8.11.1 4.3.1.RELEASE @@ -277,7 +278,7 @@ org.apache.httpcomponents httpcore - ${httpclient.version} + ${httpcore.version} org.springframework From b8321f91066eabe6c1c0a03e8b72db884f099525 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Mikul=C3=A1=C5=A1ek?= Date: Mon, 11 Jun 2018 13:46:27 +0200 Subject: [PATCH 014/487] Use gooddata-rest-common 1.2.1 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2da31fb8f..67eb228f1 100644 --- a/pom.xml +++ b/pom.xml @@ -257,7 +257,7 @@ com.gooddata gooddata-rest-common - 1.2.0 + 1.2.1 com.gooddata From da4b95b9a8efc9bb30970e2de42dd1b86f9402bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Mikul=C3=A1=C5=A1ek?= Date: Mon, 11 Jun 2018 14:26:36 +0200 Subject: [PATCH 015/487] [maven-release-plugin] prepare release gooddata-java-2.26.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 9258512f9..2faaa8099 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.25.2-SNAPSHOT + 2.26.0 ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - HEAD + gooddata-java-2.26.0 From ec4fdedbbc1303649bd86d5cf52cd0f96a1fc6e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Mikul=C3=A1=C5=A1ek?= Date: Mon, 11 Jun 2018 14:26:36 +0200 Subject: [PATCH 016/487] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 2faaa8099..b0a1eac82 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.26.0 + 2.26.1-SNAPSHOT ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - gooddata-java-2.26.0 + HEAD From 8aede8673f4fc38c7a407b5de60b2966fd6fd493 Mon Sep 17 00:00:00 2001 From: Libor Rysavy Date: Fri, 15 Jun 2018 13:56:56 +0200 Subject: [PATCH 017/487] Use patched jackson-databind dependency See changelog: https://github.com/FasterXML/jackson/wiki/Jackson-Release-2.8 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b0a1eac82..d7a584170 100644 --- a/pom.xml +++ b/pom.xml @@ -42,7 +42,7 @@ 4.5.5 4.4.9 2.8.11 - 2.8.11.1 + 2.8.11.2 4.3.1.RELEASE 1.1.1 1.23.0 From 1d45c72fb3de98a3d7c1c7bd7f31471cb4c3acc9 Mon Sep 17 00:00:00 2001 From: xMort Date: Mon, 25 Jun 2018 10:38:34 +0200 Subject: [PATCH 018/487] Introduce interface for derived measures --- .../afm/DerivedMeasureDefinition.java | 67 +++++++++++++++++++ .../afm/OverPeriodMeasureDefinition.java | 20 ++---- .../executeafm/afm/PopMeasureDefinition.java | 16 ++--- .../afm/PreviousPeriodMeasureDefinition.java | 20 ++---- 4 files changed, 83 insertions(+), 40 deletions(-) create mode 100644 src/main/java/com/gooddata/executeafm/afm/DerivedMeasureDefinition.java diff --git a/src/main/java/com/gooddata/executeafm/afm/DerivedMeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/DerivedMeasureDefinition.java new file mode 100644 index 000000000..bccd533bc --- /dev/null +++ b/src/main/java/com/gooddata/executeafm/afm/DerivedMeasureDefinition.java @@ -0,0 +1,67 @@ +/* + * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. + */ +package com.gooddata.executeafm.afm; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonSubTypes; +import com.fasterxml.jackson.annotation.JsonTypeInfo; + +import java.io.Serializable; +import java.util.Objects; + +import static com.gooddata.util.Validate.notNull; + +/** + * The superclass of the {@link MeasureDefinition} classes that are derived from the master measure and have the identifier of the master measure. + */ +@JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) +@JsonSubTypes({ + @JsonSubTypes.Type(value = PopMeasureDefinition.class, name = PopMeasureDefinition.NAME), + @JsonSubTypes.Type(value = OverPeriodMeasureDefinition.class, name = OverPeriodMeasureDefinition.NAME), + @JsonSubTypes.Type(value = PreviousPeriodMeasureDefinition.class, name = PreviousPeriodMeasureDefinition.NAME) +}) +public abstract class DerivedMeasureDefinition implements MeasureDefinition, Serializable { + + private static final long serialVersionUID = -1203802872091017113L; + + protected final String measureIdentifier; + + /** + * Create a new instance of {@link DerivedMeasureDefinition}. + * + * @param measureIdentifier + * The local identifier of the master measure this derived measure refers to. The parameter must not be null. + * + * @throws IllegalArgumentException + * Thrown when required parameter is null. + */ + DerivedMeasureDefinition(final String measureIdentifier) { + this.measureIdentifier = notNull(measureIdentifier, "measureIdentifier"); + } + + /** + * The local identifier of the master measure this derived measure refers to. + * + * @return The local identifier of the master measure. + */ + @JsonProperty + public String getMeasureIdentifier() { + return measureIdentifier; + } + + @Override + public boolean equals(final Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + final DerivedMeasureDefinition that = (DerivedMeasureDefinition) o; + return Objects.equals(measureIdentifier, that.measureIdentifier); + } + + @Override + public int hashCode() { + return Objects.hash(measureIdentifier); + } +} diff --git a/src/main/java/com/gooddata/executeafm/afm/OverPeriodMeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/OverPeriodMeasureDefinition.java index 7ed267eae..470b3a5a5 100644 --- a/src/main/java/com/gooddata/executeafm/afm/OverPeriodMeasureDefinition.java +++ b/src/main/java/com/gooddata/executeafm/afm/OverPeriodMeasureDefinition.java @@ -26,13 +26,12 @@ * Definition of the period over period measure that is used for the Same period last year and Same period 2 years back comparisons. */ @JsonRootName(NAME) -public class OverPeriodMeasureDefinition implements MeasureDefinition, Serializable { +public class OverPeriodMeasureDefinition extends DerivedMeasureDefinition implements Serializable { private static final long serialVersionUID = -8904516814279504098L; static final String NAME = "overPeriodMeasure"; - private final String measureIdentifier; private final List dateAttributes; /** @@ -50,7 +49,7 @@ public class OverPeriodMeasureDefinition implements MeasureDefinition, Serializa public OverPeriodMeasureDefinition( @JsonProperty("measureIdentifier") final String measureIdentifier, @JsonProperty("dateAttributes") final List dateAttributes) { - this.measureIdentifier = notNull(measureIdentifier, "measureIdentifier"); + super(measureIdentifier); this.dateAttributes = notEmpty(dateAttributes, "dateAttributes"); } @@ -131,14 +130,14 @@ public boolean isAdHoc() { public boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; + if (!super.equals(o)) return false; final OverPeriodMeasureDefinition that = (OverPeriodMeasureDefinition) o; - return Objects.equals(measureIdentifier, that.measureIdentifier) && - Objects.equals(dateAttributes, that.dateAttributes); + return Objects.equals(dateAttributes, that.dateAttributes); } @Override public int hashCode() { - return Objects.hash(measureIdentifier, dateAttributes); + return Objects.hash(super.hashCode(), dateAttributes); } @Override @@ -146,15 +145,6 @@ public String toString() { return GoodDataToStringBuilder.defaultToString(this); } - /** - * The local identifier of the measure this PoP measure refers to. - * - * @return The local identifier of the master measure. - */ - public String getMeasureIdentifier() { - return measureIdentifier; - } - /** * The date attributes that defines how this measure will be shifted in time. * diff --git a/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java index 8a7b8d221..79f316ae4 100644 --- a/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java +++ b/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java @@ -30,12 +30,12 @@ @Deprecated @JsonRootName(NAME) @JsonInclude(JsonInclude.Include.NON_NULL) -public class PopMeasureDefinition implements MeasureDefinition, Serializable { +public class PopMeasureDefinition extends DerivedMeasureDefinition implements Serializable { private static final long serialVersionUID = 1430640153994197345L; + static final String NAME = "popMeasure"; - private final String measureIdentifier; private final ObjQualifier popAttribute; /** @@ -50,7 +50,7 @@ public class PopMeasureDefinition implements MeasureDefinition, Serializable { @JsonCreator public PopMeasureDefinition(@JsonProperty("measureIdentifier") final String measureIdentifier, @JsonProperty("popAttribute") final ObjQualifier popAttribute) { - this.measureIdentifier = measureIdentifier; + super(measureIdentifier); this.popAttribute = popAttribute; } @@ -74,10 +74,6 @@ public boolean isAdHoc() { return true; } - public String getMeasureIdentifier() { - return measureIdentifier; - } - public ObjQualifier getPopAttribute() { return popAttribute; } @@ -124,14 +120,14 @@ public MeasureDefinition withObjUriQualifier(final UriObjQualifier uriQualifier) public boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; + if (!super.equals(o)) return false; final PopMeasureDefinition that = (PopMeasureDefinition) o; - return Objects.equals(measureIdentifier, that.measureIdentifier) && - Objects.equals(popAttribute, that.popAttribute); + return Objects.equals(popAttribute, that.popAttribute); } @Override public int hashCode() { - return Objects.hash(measureIdentifier, popAttribute); + return Objects.hash(super.hashCode(), popAttribute); } @Override diff --git a/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinition.java index ee8a1678d..80c5389e5 100644 --- a/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinition.java +++ b/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinition.java @@ -26,13 +26,12 @@ * Definition of the period over period measure that is used for the Previous period comparison. */ @JsonRootName(NAME) -public class PreviousPeriodMeasureDefinition implements MeasureDefinition, Serializable { +public class PreviousPeriodMeasureDefinition extends DerivedMeasureDefinition implements Serializable { private static final long serialVersionUID = -4741355657671354062L; static final String NAME = "previousPeriodMeasure"; - private final String measureIdentifier; private final List dateDataSets; /** @@ -50,7 +49,7 @@ public class PreviousPeriodMeasureDefinition implements MeasureDefinition, Seria public PreviousPeriodMeasureDefinition( @JsonProperty("measureIdentifier") final String measureIdentifier, @JsonProperty("dateDataSets") final List dateDataSets) { - this.measureIdentifier = notNull(measureIdentifier, "measureIdentifier"); + super(measureIdentifier); this.dateDataSets = notEmpty(dateDataSets, "dateDataSets"); } @@ -131,14 +130,14 @@ public boolean isAdHoc() { public boolean equals(final Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; + if (!super.equals(o)) return false; final PreviousPeriodMeasureDefinition that = (PreviousPeriodMeasureDefinition) o; - return Objects.equals(measureIdentifier, that.measureIdentifier) && - Objects.equals(dateDataSets, that.dateDataSets); + return Objects.equals(dateDataSets, that.dateDataSets); } @Override public int hashCode() { - return Objects.hash(measureIdentifier, dateDataSets); + return Objects.hash(super.hashCode(), dateDataSets); } @Override @@ -146,15 +145,6 @@ public String toString() { return GoodDataToStringBuilder.defaultToString(this); } - /** - * The local identifier of the measure this PoP measure refers to. - * - * @return The local identifier of the master measure. - */ - public String getMeasureIdentifier() { - return measureIdentifier; - } - /** * The date data sets that defines how this measure will be shifted in time. * From 1b8fcd7d3ef5ff4fe6f0428bc1d0bf0b88979c7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Mikul=C3=A1=C5=A1ek?= Date: Tue, 26 Jun 2018 09:13:37 +0200 Subject: [PATCH 019/487] Fix the releasing sed command both for Mac and GNU --- release.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release.sh b/release.sh index d15a687a1..c8c6e9703 100755 --- a/release.sh +++ b/release.sh @@ -61,6 +61,6 @@ then fi mvn --batch-mode release:prepare release:perform -DreleaseVersion=${version} -Darguments="-Dgpg.passphrase=${gpg_pass}" -sed -i '' "s/\(\)[0-9]*\.[0-9]*\.[0-9]*\(<\/version>\)/\1${version}\2/" README.md +sed -i.bak "s/\(\)[0-9]*\.[0-9]*\.[0-9]*\(<\/version>\)/\1${version}\2/" README.md && rm -f README.md.bak git commit -a -m "bump version" git push origin --tags HEAD From 75e5efdfb72f75216bc658f56c79eeca365cad9f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Mikul=C3=A1=C5=A1ek?= Date: Tue, 26 Jun 2018 09:18:20 +0200 Subject: [PATCH 020/487] Sanitize failed mvn build when releasing Resolves #598 --- release.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/release.sh b/release.sh index c8c6e9703..5c174d854 100755 --- a/release.sh +++ b/release.sh @@ -61,6 +61,12 @@ then fi mvn --batch-mode release:prepare release:perform -DreleaseVersion=${version} -Darguments="-Dgpg.passphrase=${gpg_pass}" +mvnRetVal=$? +if [ $mvnRetVal -ne 0 ]; then + echo "Mvn build failed - please fix it and try to release again" + exit $mvnRetVal +fi + sed -i.bak "s/\(\)[0-9]*\.[0-9]*\.[0-9]*\(<\/version>\)/\1${version}\2/" README.md && rm -f README.md.bak git commit -a -m "bump version" git push origin --tags HEAD From 412824d6c1fcca719094d2a816cd5e9a3a1cd08e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Mikul=C3=A1=C5=A1ek?= Date: Tue, 26 Jun 2018 11:19:22 +0200 Subject: [PATCH 021/487] [maven-release-plugin] prepare release gooddata-java-2.27.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index d7a584170..d15e3adb4 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.26.1-SNAPSHOT + 2.27.0 ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - HEAD + gooddata-java-2.27.0 From c94e9bea71a7a50329c55692f65e4cf660399dfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Mikul=C3=A1=C5=A1ek?= Date: Tue, 26 Jun 2018 11:19:22 +0200 Subject: [PATCH 022/487] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index d15e3adb4..d763673e4 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.27.0 + 2.27.1-SNAPSHOT ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - gooddata-java-2.27.0 + HEAD From 5f48b3c77160e4d6d40f184309ef9897ae3b6090 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Mikul=C3=A1=C5=A1ek?= Date: Tue, 26 Jun 2018 11:23:56 +0200 Subject: [PATCH 023/487] bump version --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0bfc7104f..15d434cff 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ The *GoodData Java SDK* is available in Maven Central Repository, to use it from com.gooddata gooddata-java - 2.25.0 + 2.27.0 ``` See [releases page](https://github.com/gooddata/gooddata-java/releases) for information about versions and notable changes, From 462a416a82b698634d5452a3cf65cbb9c39f6493 Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Fri, 13 Jul 2018 08:41:24 +0200 Subject: [PATCH 024/487] introduce totals measure sort locator in the execute AFM --- .../executeafm/resultspec/LocatorItem.java | 3 +- .../resultspec/TotalLocatorItem.java | 42 +++++++++++++++++++ .../resultspec/TotalLocatorItemTest.groovy | 36 ++++++++++++++++ .../resultspec/totalLocatorItem.json | 6 +++ 4 files changed, 86 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/gooddata/executeafm/resultspec/TotalLocatorItem.java create mode 100644 src/test/groovy/com/gooddata/executeafm/resultspec/TotalLocatorItemTest.groovy create mode 100644 src/test/resources/executeafm/resultspec/totalLocatorItem.json diff --git a/src/main/java/com/gooddata/executeafm/resultspec/LocatorItem.java b/src/main/java/com/gooddata/executeafm/resultspec/LocatorItem.java index 6b07b03ee..3e20e279a 100644 --- a/src/main/java/com/gooddata/executeafm/resultspec/LocatorItem.java +++ b/src/main/java/com/gooddata/executeafm/resultspec/LocatorItem.java @@ -15,7 +15,8 @@ @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonSubTypes({ @JsonSubTypes.Type(value = AttributeLocatorItem.class, name = "attributeLocatorItem"), - @JsonSubTypes.Type(value = MeasureLocatorItem.class, name = "measureLocatorItem") + @JsonSubTypes.Type(value = MeasureLocatorItem.class, name = "measureLocatorItem"), + @JsonSubTypes.Type(value = TotalLocatorItem.class, name = "totalLocatorItem") }) public interface LocatorItem { } diff --git a/src/main/java/com/gooddata/executeafm/resultspec/TotalLocatorItem.java b/src/main/java/com/gooddata/executeafm/resultspec/TotalLocatorItem.java new file mode 100644 index 000000000..cda7ea269 --- /dev/null +++ b/src/main/java/com/gooddata/executeafm/resultspec/TotalLocatorItem.java @@ -0,0 +1,42 @@ +/* + * Copyright (C) 2004-2018, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. + */ + +package com.gooddata.executeafm.resultspec; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.gooddata.util.GoodDataToStringBuilder; + +/** + * Holds total type and attribute to which this total corresponds. + * This enables sorting measure by specific totals. + */ +public class TotalLocatorItem implements LocatorItem { + + private final String attributeIdentifier; + private final String totalType; + + @JsonCreator + public TotalLocatorItem( + @JsonProperty("attributeIdentifier") String attributeIdentifier, + @JsonProperty("totalType") String totalType) { + this.attributeIdentifier = attributeIdentifier; + this.totalType = totalType; + } + + public String getAttributeIdentifier() { + return attributeIdentifier; + } + + public String getTotalType() { + return totalType; + } + + @Override + public String toString() { + return GoodDataToStringBuilder.defaultToString(this); + } +} diff --git a/src/test/groovy/com/gooddata/executeafm/resultspec/TotalLocatorItemTest.groovy b/src/test/groovy/com/gooddata/executeafm/resultspec/TotalLocatorItemTest.groovy new file mode 100644 index 000000000..bb0ac3862 --- /dev/null +++ b/src/test/groovy/com/gooddata/executeafm/resultspec/TotalLocatorItemTest.groovy @@ -0,0 +1,36 @@ +/* + * Copyright (C) 2004-2018, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. + */ + +package com.gooddata.executeafm.resultspec + +import spock.lang.Specification + +import static com.gooddata.util.ResourceUtils.readObjectFromResource +import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals +import static net.javacrumbs.jsonunit.core.util.ResourceUtils.resource +import static spock.util.matcher.HamcrestSupport.that + + +class TotalLocatorItemTest extends Specification { + + private static final String TOTAL_LOCATOR_ITEM_JSON = 'executeafm/resultspec/totalLocatorItem.json' + + def "should serialize"() { + expect: + that new TotalLocatorItem('aId', 'avg'), + jsonEquals(resource(TOTAL_LOCATOR_ITEM_JSON)) + } + + def "should deserialize"() { + when: + TotalLocatorItem item = readObjectFromResource("/$TOTAL_LOCATOR_ITEM_JSON".toString(), TotalLocatorItem) + + then: + item.attributeIdentifier == 'aId' + item.totalType == 'avg' + item.toString() + } +} diff --git a/src/test/resources/executeafm/resultspec/totalLocatorItem.json b/src/test/resources/executeafm/resultspec/totalLocatorItem.json new file mode 100644 index 000000000..288e326c6 --- /dev/null +++ b/src/test/resources/executeafm/resultspec/totalLocatorItem.json @@ -0,0 +1,6 @@ +{ + "totalLocatorItem": { + "attributeIdentifier": "aId", + "totalType": "avg" + } +} \ No newline at end of file From 59a9f6f40788f4f73d1afd89fc415a6b9e8d8b64 Mon Sep 17 00:00:00 2001 From: Tantalor93 Date: Tue, 10 Jul 2018 11:09:29 +0200 Subject: [PATCH 025/487] Add support for new arithmetic measure definition close #627 --- .../afm/ArithmeticMeasureDefinition.java | 100 ++++++++++++++++++ .../executeafm/afm/MeasureDefinition.java | 1 + .../ArithmeticMeasureDefinitionTest.groovy | 69 ++++++++++++ .../afm/arithmeticMeasureDefinition.json | 6 ++ 4 files changed, 176 insertions(+) create mode 100644 src/main/java/com/gooddata/executeafm/afm/ArithmeticMeasureDefinition.java create mode 100644 src/test/groovy/com/gooddata/executeafm/afm/ArithmeticMeasureDefinitionTest.groovy create mode 100644 src/test/resources/executeafm/afm/arithmeticMeasureDefinition.json diff --git a/src/main/java/com/gooddata/executeafm/afm/ArithmeticMeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/ArithmeticMeasureDefinition.java new file mode 100644 index 000000000..829e7c81f --- /dev/null +++ b/src/main/java/com/gooddata/executeafm/afm/ArithmeticMeasureDefinition.java @@ -0,0 +1,100 @@ +/* + * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. + */ +package com.gooddata.executeafm.afm; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.annotation.JsonRootName; +import com.gooddata.executeafm.ObjQualifier; +import com.gooddata.executeafm.UriObjQualifier; +import com.gooddata.util.GoodDataToStringBuilder; + +import java.util.Collection; +import java.util.Collections; +import java.util.List; + +import static com.gooddata.executeafm.afm.PreviousPeriodMeasureDefinition.NAME; + +/** + * Arithmetic measure definition representing aggregation of existing measures, for example sum of measures, difference,... + */ +@JsonRootName(NAME) +public class ArithmeticMeasureDefinition implements MeasureDefinition { + + static final String NAME = "arithmeticMeasure"; + + private final List measures; + private final String operator; + + /** + * Constructor of {@link ArithmeticMeasureDefinition} + * @param measures local identifiers of measures + * @param operator operator used for aggregation, for example sum, difference, multiplication, ratio, growth + */ + @JsonCreator + public ArithmeticMeasureDefinition( + @JsonProperty("measures") final List measures, + @JsonProperty("operator") final String operator) { + this.measures = measures; + this.operator = operator; + } + + @Deprecated + @Override + public ObjQualifier getObjQualifier() { + throw new UnsupportedOperationException("not supported operation"); + } + + /** + * no qualifiers are used, only local identifiers are used see {@link ArithmeticMeasureDefinition#getOperator()} + * @return empty set + */ + @Override + public Collection getObjQualifiers() { + return Collections.EMPTY_SET; //has no qualifiers + } + + @Deprecated + @Override + public MeasureDefinition withObjUriQualifier(UriObjQualifier qualifier) { + throw new UnsupportedOperationException("not supported operation"); + } + + /** + * no conversion is done, because this definition uses only local identifiers + * @return this instance + */ + @Override + public MeasureDefinition withObjUriQualifiers(ObjQualifierConverter objQualifierConverter) { + return this; //nothing to convert + } + + @Override + public boolean isAdHoc() { + return true; + } + + /** + * get local identifiers of used measures + * @return local identifiers of measure + */ + public List getMeasures() { + return measures; + } + + /** + * get used operator + * @return used operator + */ + public String getOperator() { + return operator; + } + + @Override + public String toString() { + return GoodDataToStringBuilder.defaultToString(this); + } +} diff --git a/src/main/java/com/gooddata/executeafm/afm/MeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/MeasureDefinition.java index 4f2ca5a4b..b53f14315 100644 --- a/src/main/java/com/gooddata/executeafm/afm/MeasureDefinition.java +++ b/src/main/java/com/gooddata/executeafm/afm/MeasureDefinition.java @@ -24,6 +24,7 @@ @JsonSubTypes.Type(value = VOPopMeasureDefinition.class, name = VOPopMeasureDefinition.NAME), @JsonSubTypes.Type(value = OverPeriodMeasureDefinition.class, name = OverPeriodMeasureDefinition.NAME), @JsonSubTypes.Type(value = PreviousPeriodMeasureDefinition.class, name = PreviousPeriodMeasureDefinition.NAME), + @JsonSubTypes.Type(value = ArithmeticMeasureDefinition.class, name = ArithmeticMeasureDefinition.NAME) }) public interface MeasureDefinition { diff --git a/src/test/groovy/com/gooddata/executeafm/afm/ArithmeticMeasureDefinitionTest.groovy b/src/test/groovy/com/gooddata/executeafm/afm/ArithmeticMeasureDefinitionTest.groovy new file mode 100644 index 000000000..e75eacc18 --- /dev/null +++ b/src/test/groovy/com/gooddata/executeafm/afm/ArithmeticMeasureDefinitionTest.groovy @@ -0,0 +1,69 @@ +/* + * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. + */ +package com.gooddata.executeafm.afm + +import com.gooddata.executeafm.UriObjQualifier +import net.javacrumbs.jsonunit.JsonMatchers +import spock.lang.Specification + +import static com.gooddata.util.ResourceUtils.readObjectFromResource +import static net.javacrumbs.jsonunit.core.util.ResourceUtils.resource +import static spock.util.matcher.HamcrestSupport.that + +class ArithmeticMeasureDefinitionTest extends Specification { + + private static final String ARITHMETIC_MEASURE_DEFINITION_JSON = 'executeafm/afm/arithmeticMeasureDefinition.json' + + def "should serialize"() { + expect: + that new ArithmeticMeasureDefinition(["localIdentifier1", "localIdentifier2"], "sum"), JsonMatchers.jsonEquals(resource(ARITHMETIC_MEASURE_DEFINITION_JSON)) + } + + def "should deserialize"() { + when: + ArithmeticMeasureDefinition measure = readObjectFromResource("/$ARITHMETIC_MEASURE_DEFINITION_JSON", ArithmeticMeasureDefinition) + + then: + measure.getOperator() == "sum" + measure.getMeasures() == ["localIdentifier1", "localIdentifier2"] + } + + def "should throw when getting used object qualifier"() { + given: + ArithmeticMeasureDefinition measure = new ArithmeticMeasureDefinition(["localIdentifier1", "localIdentifier2"], "sum") + + when: + measure.getObjQualifier() + + then: + thrown(UnsupportedOperationException) + } + + def "should return empty list when getting used object qualifiers"() { + expect: + new ArithmeticMeasureDefinition(["localIdentifier1", "localIdentifier2"], "sum").getObjQualifiers().isEmpty() + } + + def "should throw when calling withObjectUriQualifier"() { + given: + ArithmeticMeasureDefinition measure = new ArithmeticMeasureDefinition(["localIdentifier1", "localIdentifier2"], "sum") + + when: + measure.withObjUriQualifier(new UriObjQualifier("/gdc/md/a12332")) + + then: + thrown(UnsupportedOperationException) + } + + def "should return same object when calling withObjUriQualifiers"() { + setup: + ArithmeticMeasureDefinition measure = new ArithmeticMeasureDefinition(["localIdentifier1", "localIdentifier2"], "sum") + + expect: + measure.withObjUriQualifiers(Mock(ObjQualifierConverter)) == measure + + } +} diff --git a/src/test/resources/executeafm/afm/arithmeticMeasureDefinition.json b/src/test/resources/executeafm/afm/arithmeticMeasureDefinition.json new file mode 100644 index 000000000..a37305c6b --- /dev/null +++ b/src/test/resources/executeafm/afm/arithmeticMeasureDefinition.json @@ -0,0 +1,6 @@ +{ + "arithmeticMeasure" : { + "measures" : ["localIdentifier1","localIdentifier2"], + "operator" : "sum" + } +} From ec517bb1bc0cb34a9c587acdc88465978b3e999a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Ploch=C3=A1=C5=88?= Date: Tue, 17 Jul 2018 16:25:56 +0200 Subject: [PATCH 026/487] bump version --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 15d434cff..69ee62e84 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ The *GoodData Java SDK* is available in Maven Central Repository, to use it from com.gooddata gooddata-java - 2.27.0 + 2.28.0 ``` See [releases page](https://github.com/gooddata/gooddata-java/releases) for information about versions and notable changes, From 87ff68e0ec286c5868ebb93b7138a70273b1411b Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Tue, 17 Jul 2018 11:47:07 +0200 Subject: [PATCH 027/487] [maven-release-plugin] prepare release gooddata-java-2.28.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index d763673e4..1e392013b 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.27.1-SNAPSHOT + 2.28.0 ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - HEAD + gooddata-java-2.28.0 From 02a727e26c7454ef73bb0db9ced42fae83c5fc00 Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Tue, 17 Jul 2018 11:47:07 +0200 Subject: [PATCH 028/487] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 1e392013b..24135f3fb 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.28.0 + 2.28.1-SNAPSHOT ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - gooddata-java-2.28.0 + HEAD From 2f4ff5a34ee94a478c0e485aed1dab415a8338a0 Mon Sep 17 00:00:00 2001 From: Tantalor93 Date: Thu, 19 Jul 2018 14:08:22 +0200 Subject: [PATCH 029/487] rename measures to measureIdentifiers in ArithmeticMeasureDefinition close #629 --- .../executeafm/afm/ArithmeticMeasureDefinition.java | 12 ++++++------ .../afm/ArithmeticMeasureDefinitionTest.groovy | 2 +- .../executeafm/afm/arithmeticMeasureDefinition.json | 2 +- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/gooddata/executeafm/afm/ArithmeticMeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/ArithmeticMeasureDefinition.java index 829e7c81f..9974a82b5 100644 --- a/src/main/java/com/gooddata/executeafm/afm/ArithmeticMeasureDefinition.java +++ b/src/main/java/com/gooddata/executeafm/afm/ArithmeticMeasureDefinition.java @@ -26,19 +26,19 @@ public class ArithmeticMeasureDefinition implements MeasureDefinition { static final String NAME = "arithmeticMeasure"; - private final List measures; + private final List measureIdentifiers; private final String operator; /** * Constructor of {@link ArithmeticMeasureDefinition} - * @param measures local identifiers of measures + * @param measureIdentifiers local identifiers of measures * @param operator operator used for aggregation, for example sum, difference, multiplication, ratio, growth */ @JsonCreator public ArithmeticMeasureDefinition( - @JsonProperty("measures") final List measures, + @JsonProperty("measureIdentifiers") final List measureIdentifiers, @JsonProperty("operator") final String operator) { - this.measures = measures; + this.measureIdentifiers = measureIdentifiers; this.operator = operator; } @@ -81,8 +81,8 @@ public boolean isAdHoc() { * get local identifiers of used measures * @return local identifiers of measure */ - public List getMeasures() { - return measures; + public List getMeasureIdentifiers() { + return measureIdentifiers; } /** diff --git a/src/test/groovy/com/gooddata/executeafm/afm/ArithmeticMeasureDefinitionTest.groovy b/src/test/groovy/com/gooddata/executeafm/afm/ArithmeticMeasureDefinitionTest.groovy index e75eacc18..b4f7938ff 100644 --- a/src/test/groovy/com/gooddata/executeafm/afm/ArithmeticMeasureDefinitionTest.groovy +++ b/src/test/groovy/com/gooddata/executeafm/afm/ArithmeticMeasureDefinitionTest.groovy @@ -28,7 +28,7 @@ class ArithmeticMeasureDefinitionTest extends Specification { then: measure.getOperator() == "sum" - measure.getMeasures() == ["localIdentifier1", "localIdentifier2"] + measure.getMeasureIdentifiers() == ["localIdentifier1", "localIdentifier2"] } def "should throw when getting used object qualifier"() { diff --git a/src/test/resources/executeafm/afm/arithmeticMeasureDefinition.json b/src/test/resources/executeafm/afm/arithmeticMeasureDefinition.json index a37305c6b..b34c3e713 100644 --- a/src/test/resources/executeafm/afm/arithmeticMeasureDefinition.json +++ b/src/test/resources/executeafm/afm/arithmeticMeasureDefinition.json @@ -1,6 +1,6 @@ { "arithmeticMeasure" : { - "measures" : ["localIdentifier1","localIdentifier2"], + "measureIdentifiers" : ["localIdentifier1","localIdentifier2"], "operator" : "sum" } } From 9060f5156940e24013ec3509d2053f3501cab821 Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Thu, 19 Jul 2018 15:07:56 +0200 Subject: [PATCH 030/487] bump version in README before mvn release --- release.sh | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/release.sh b/release.sh index 5c174d854..58ef61f1a 100755 --- a/release.sh +++ b/release.sh @@ -60,13 +60,16 @@ then fi fi +sed -i.bak "s/\(\)[0-9]*\.[0-9]*\.[0-9]*\(<\/version>\)/\1${version}\2/" README.md && rm -f README.md.bak +git commit -a -m "bump version" + mvn --batch-mode release:prepare release:perform -DreleaseVersion=${version} -Darguments="-Dgpg.passphrase=${gpg_pass}" mvnRetVal=$? if [ $mvnRetVal -ne 0 ]; then echo "Mvn build failed - please fix it and try to release again" + echo "Removing last commit '$(git log -1 --pretty="%h %s")'" + git reset --hard HEAD~1 exit $mvnRetVal fi -sed -i.bak "s/\(\)[0-9]*\.[0-9]*\.[0-9]*\(<\/version>\)/\1${version}\2/" README.md && rm -f README.md.bak -git commit -a -m "bump version" git push origin --tags HEAD From 6bf860fccb327c217386e702593e8a85bd92e66a Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Thu, 19 Jul 2018 15:47:43 +0200 Subject: [PATCH 031/487] bump version --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 69ee62e84..1d053c63e 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ The *GoodData Java SDK* is available in Maven Central Repository, to use it from com.gooddata gooddata-java - 2.28.0 + 2.28.1 ``` See [releases page](https://github.com/gooddata/gooddata-java/releases) for information about versions and notable changes, From 4f549b2bcd08e9409d097de643c401a781a48b9e Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Thu, 19 Jul 2018 15:49:37 +0200 Subject: [PATCH 032/487] [maven-release-plugin] prepare release gooddata-java-2.28.1 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 24135f3fb..97ff5d230 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.28.1-SNAPSHOT + 2.28.1 ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - HEAD + gooddata-java-2.28.1 From ba23c60fbea0d0d93e632fee71eb87e414d8fe6f Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Thu, 19 Jul 2018 15:49:38 +0200 Subject: [PATCH 033/487] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 97ff5d230..6d70e0f74 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.28.1 + 2.28.2-SNAPSHOT ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - gooddata-java-2.28.1 + HEAD From 5a3ee2a50e761a9f13570ea291f7aeff9a6c5357 Mon Sep 17 00:00:00 2001 From: Libor Rysavy Date: Mon, 30 Jul 2018 15:36:40 +0200 Subject: [PATCH 034/487] Raise Spring version (with bugfixes) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6d70e0f74..9ea4dbfd4 100644 --- a/pom.xml +++ b/pom.xml @@ -43,7 +43,7 @@ 4.4.9 2.8.11 2.8.11.2 - 4.3.1.RELEASE + 4.3.18.RELEASE 1.1.1 1.23.0 2.20.1 From 46d864d2e4ec90f23e1ee964a0b2e7089a896122 Mon Sep 17 00:00:00 2001 From: Libor Rysavy Date: Mon, 30 Jul 2018 15:42:19 +0200 Subject: [PATCH 035/487] Raise HttpClient version (with bugfixes) --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 9ea4dbfd4..e6135990e 100644 --- a/pom.xml +++ b/pom.xml @@ -39,8 +39,8 @@ - 4.5.5 - 4.4.9 + 4.5.6 + 4.4.10 2.8.11 2.8.11.2 4.3.18.RELEASE From c36fbb76eba92bb3038c620ba0af947b27005f91 Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Fri, 3 Aug 2018 11:16:47 +0200 Subject: [PATCH 036/487] introduce totalTotals in execute AFM ExecutionResult structure --- .../executeafm/result/ExecutionResult.java | 26 +++++++++ .../result/ExecutionResultTest.groovy | 54 ++++++++++++------- .../executeafm/result/executionResult.json | 22 +++++--- .../result/executionResultFull.json | 50 ++++++++++++++--- 4 files changed, 120 insertions(+), 32 deletions(-) diff --git a/src/main/java/com/gooddata/executeafm/result/ExecutionResult.java b/src/main/java/com/gooddata/executeafm/result/ExecutionResult.java index 3d133aba4..243884d34 100644 --- a/src/main/java/com/gooddata/executeafm/result/ExecutionResult.java +++ b/src/main/java/com/gooddata/executeafm/result/ExecutionResult.java @@ -30,6 +30,7 @@ public class ExecutionResult { private List>> headerItems; private List>> totals; + private List>> totalTotals; private List warnings; /** @@ -64,11 +65,13 @@ public ExecutionResult(final String[][] data, final Paging paging) { @JsonProperty("paging") final Paging paging, @JsonProperty("headerItems") final List>> headerItems, @JsonProperty("totals") final List>> totals, + @JsonProperty("totalTotals") final List>> totalTotals, @JsonProperty("warnings") final List warnings) { this.data = data; this.paging = paging; this.headerItems = headerItems; this.totals = totals; + this.totalTotals = totalTotals; this.warnings = warnings; } @@ -127,6 +130,29 @@ public void setTotals(final List>> totals) { this.totals = totals; } + /** + * Gets totals of totals data. + * The totals of totals represent intersection between totals in multiple dimensions. + * For each dimension and total combination, there is a list of totals of totals values. + * + * @return 3-dimensional matrix of totals of totals data + */ + public List>> getTotalTotals() { + return totalTotals; + } + + /** + * Sets totals of totals data. + * The totals of totals represent intersection between totals in multiple dimensions. + * For each dimension and total combination, there is a list of totals of totals values. + * + * @param totalTotals 3-dimensional matrix of totals of totals data + */ + public ExecutionResult setTotalTotals(List>> totalTotals) { + this.totalTotals = totalTotals; + return this; + } + /** * @return result's warnings */ diff --git a/src/test/groovy/com/gooddata/executeafm/result/ExecutionResultTest.groovy b/src/test/groovy/com/gooddata/executeafm/result/ExecutionResultTest.groovy index 56087edb8..801f72090 100644 --- a/src/test/groovy/com/gooddata/executeafm/result/ExecutionResultTest.groovy +++ b/src/test/groovy/com/gooddata/executeafm/result/ExecutionResultTest.groovy @@ -17,12 +17,15 @@ class ExecutionResultTest extends Specification { private static final String EXECUTION_RESULT_JSON = 'executeafm/result/executionResult.json' private static final String EXECUTION_RESULT_FULL_JSON = 'executeafm/result/executionResultFull.json' - private static final String[] DATA = ["-12958511.8099999", "25315434.8199999", "-2748323.76", "-7252542.67"] + private static final String[][] DATA = [ + ["-12958511.8099999", "25315434.8199999", "-2748323.76", "-7252542.67"], + ["1234", "5853", "12340", "9999"] + ] def "should serialize"() { expect: that new ExecutionResult(DATA, - new Paging([4], [0], [4])), + new Paging([2, 4], [0, 0], [2, 4])), jsonEquals(resource(EXECUTION_RESULT_JSON)) } @@ -31,19 +34,26 @@ class ExecutionResultTest extends Specification { ExecutionResult result = readObjectFromResource("/$EXECUTION_RESULT_JSON", ExecutionResult) then: - result.paging.count == [4] - result.paging.offset == [0] - result.paging.total == [4] + result.paging.count == [2, 4] + result.paging.offset == [0, 0] + result.paging.total == [2, 4] } def "should serialize full"() { expect: - that new ExecutionResult(new DataList(DATA.collect{new DataValue(it)}), - new Paging([4], [0], [4]), - [[[ - new AttributeHeaderItem('Cost of Goods Sold', '/gdc/md/FoodMartDemo/obj/124/elements?id=3200'), - new AttributeHeaderItem('Salaries', '/gdc/md/FoodMartDemo/obj/124/elements?id=6000')]]], - [[['25']]], + that new ExecutionResult(new DataList(DATA.collect{ + def values = it.collect { new DataValue(it) } + new DataList(values) + }), + new Paging([2, 4], [0, 0], [2, 4]), + [ + [[new AttributeHeaderItem('Employee1', '/gdc/md/FoodMartDemo/obj/122/elements?id=123'), + new AttributeHeaderItem('Employee2', '/gdc/md/FoodMartDemo/obj/122/elements?id=456')]], + [[new AttributeHeaderItem('Cost of Goods Sold', '/gdc/md/FoodMartDemo/obj/124/elements?id=3200'), + new AttributeHeaderItem('Salaries', '/gdc/md/FoodMartDemo/obj/124/elements?id=6000')]] + ], + [[['25']], [['38']]], + [[['43']]], [new Warning('gdc123', 'Some msg %s %s %s', ['bum', 1, null])]), jsonEquals(resource(EXECUTION_RESULT_FULL_JSON)) } @@ -53,18 +63,26 @@ class ExecutionResultTest extends Specification { ExecutionResult result = readObjectFromResource("/$EXECUTION_RESULT_FULL_JSON", ExecutionResult) then: - result.paging.count == [4] - result.paging.offset == [0] - result.paging.total == [4] + result.paging.count == [2, 4] + result.paging.offset == [0, 0] + result.paging.total == [2, 4] def accountHeaderItems = result.headerItems - accountHeaderItems[0][0][0].uri == '/gdc/md/FoodMartDemo/obj/124/elements?id=3200' - accountHeaderItems[0][0][0].name == 'Cost of Goods Sold' - accountHeaderItems[0][0][1].uri == '/gdc/md/FoodMartDemo/obj/124/elements?id=6000' - accountHeaderItems[0][0][1].name == 'Salaries' + accountHeaderItems[0][0][0].uri == '/gdc/md/FoodMartDemo/obj/122/elements?id=123' + accountHeaderItems[0][0][0].name == 'Employee1' + accountHeaderItems[0][0][1].uri == '/gdc/md/FoodMartDemo/obj/122/elements?id=456' + accountHeaderItems[0][0][1].name == 'Employee2' + accountHeaderItems[1][0][0].uri == '/gdc/md/FoodMartDemo/obj/124/elements?id=3200' + accountHeaderItems[1][0][0].name == 'Cost of Goods Sold' + accountHeaderItems[1][0][1].uri == '/gdc/md/FoodMartDemo/obj/124/elements?id=6000' + accountHeaderItems[1][0][1].name == 'Salaries' def totals = result.totals totals[0][0][0] == '25' + totals[1][0][0] == '38' + + def totalTotals = result.totalTotals + totalTotals[0][0][0] == '43' def warnings = result.warnings warnings == [new Warning('gdc123', 'Some msg %s %s %s', ['bum', 1, null])] diff --git a/src/test/resources/executeafm/result/executionResult.json b/src/test/resources/executeafm/result/executionResult.json index cc2ce1d31..4ad010553 100644 --- a/src/test/resources/executeafm/result/executionResult.json +++ b/src/test/resources/executeafm/result/executionResult.json @@ -1,20 +1,28 @@ { "executionResult": { "data": [ - "-12958511.8099999", - "25315434.8199999", - "-2748323.76", - "-7252542.67" + [ + "-12958511.8099999", + "25315434.8199999", + "-2748323.76", + "-7252542.67" + ], + [ + "1234", + "5853", + "12340", + "9999" + ] ], "paging" : { "count": [ - 4 + 2,4 ], "offset": [ - 0 + 0,0 ], "total": [ - 4 + 2,4 ] } } diff --git a/src/test/resources/executeafm/result/executionResultFull.json b/src/test/resources/executeafm/result/executionResultFull.json index 119195f8f..b6fbc4ed4 100644 --- a/src/test/resources/executeafm/result/executionResultFull.json +++ b/src/test/resources/executeafm/result/executionResultFull.json @@ -1,23 +1,47 @@ { "executionResult": { "data": [ - "-12958511.8099999", - "25315434.8199999", - "-2748323.76", - "-7252542.67" + [ + "-12958511.8099999", + "25315434.8199999", + "-2748323.76", + "-7252542.67" + ], + [ + "1234", + "5853", + "12340", + "9999" + ] ], "paging" : { "count": [ - 4 + 2,4 ], "offset": [ - 0 + 0,0 ], "total": [ - 4 + 2,4 ] }, "headerItems": [ + [ + [ + { + "attributeHeaderItem": { + "uri": "/gdc/md/FoodMartDemo/obj/122/elements?id=123", + "name": "Employee1" + } + }, + { + "attributeHeaderItem": { + "uri": "/gdc/md/FoodMartDemo/obj/122/elements?id=456", + "name": "Employee2" + } + } + ] + ], [ [ { @@ -40,6 +64,18 @@ [ "25" ] + ], + [ + [ + "38" + ] + ] + ], + "totalTotals": [ + [ + [ + "43" + ] ] ], "warnings": [ From a12d0cdbc93f2f05b4d32e2bab4d8b3f384cf3d8 Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Fri, 3 Aug 2018 14:30:32 +0200 Subject: [PATCH 037/487] bump version --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1d053c63e..949cc95bb 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ The *GoodData Java SDK* is available in Maven Central Repository, to use it from com.gooddata gooddata-java - 2.28.1 + 2.29.0 ``` See [releases page](https://github.com/gooddata/gooddata-java/releases) for information about versions and notable changes, From 75fe971d26e4061e70e74db4eeae2bb2315507b9 Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Fri, 3 Aug 2018 14:32:00 +0200 Subject: [PATCH 038/487] [maven-release-plugin] prepare release gooddata-java-2.29.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index e6135990e..2e432a580 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.28.2-SNAPSHOT + 2.29.0 ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - HEAD + gooddata-java-2.29.0 From dff627fee5d8e8c0ea198779c2ae5c6324255e28 Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Fri, 3 Aug 2018 14:32:00 +0200 Subject: [PATCH 039/487] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 2e432a580..b9f14af5b 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.29.0 + 2.29.1-SNAPSHOT ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - gooddata-java-2.29.0 + HEAD From b987605786e3665af7d049054af04f8167a4481b Mon Sep 17 00:00:00 2001 From: Libor Rysavy Date: Fri, 10 Aug 2018 14:36:32 +0200 Subject: [PATCH 040/487] Differentiate AttributeContent from Content Mainly same field name 'content' as in DisplayForm parent was causing chaos. --- .../com/gooddata/md/AttributeDisplayForm.java | 34 +++++++++---------- .../gooddata/md/AttributeDisplayFormTest.java | 34 ++++++++++++++----- 2 files changed, 42 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/gooddata/md/AttributeDisplayForm.java b/src/main/java/com/gooddata/md/AttributeDisplayForm.java index ae15f12c9..a199c5c7e 100644 --- a/src/main/java/com/gooddata/md/AttributeDisplayForm.java +++ b/src/main/java/com/gooddata/md/AttributeDisplayForm.java @@ -5,16 +5,11 @@ */ package com.gooddata.md; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.gooddata.util.BooleanDeserializer; -import com.gooddata.util.BooleanIntegerSerializer; -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.annotation.JsonTypeName; +import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.gooddata.util.BooleanDeserializer; +import com.gooddata.util.BooleanIntegerSerializer; import com.gooddata.util.GoodDataToStringBuilder; /** @@ -27,24 +22,29 @@ public class AttributeDisplayForm extends DisplayForm implements Updatable { private static final long serialVersionUID = -7903851496647992573L; + /** @deprecated use {@link #attributeContent} instead */ + @Deprecated + protected final AttributeContent content; + @JsonProperty("content") - protected final Content content; + protected final AttributeContent attributeContent; @JsonCreator - private AttributeDisplayForm(@JsonProperty("meta") Meta meta, @JsonProperty("content") Content content, + private AttributeDisplayForm(@JsonProperty("meta") Meta meta, @JsonProperty("content") AttributeContent content, @JsonProperty("links") Links links) { super(meta, content, links); this.content = content; + this.attributeContent = content; } /* Just for serialization test */ AttributeDisplayForm(String title, String formOf, String expression, boolean isDefault, String ldmExpression, String type, String elements) { - this(new Meta(title), new Content(formOf, expression, isDefault, ldmExpression, type), new Links(elements)); + this(new Meta(title), new AttributeContent(formOf, expression, isDefault, ldmExpression, type), new Links(elements)); } @JsonIgnore public boolean isDefault() { - return Boolean.TRUE.equals(content.isDefault()); + return Boolean.TRUE.equals(attributeContent.isDefault()); } @Override @@ -53,15 +53,15 @@ public String toString() { } @JsonInclude(JsonInclude.Include.NON_NULL) - private static class Content extends DisplayForm.Content { + private static class AttributeContent extends DisplayForm.Content { private static final long serialVersionUID = -8502672468934478137L; private final boolean isDefault; - private Content(@JsonProperty("formOf") String formOf, @JsonProperty("expression") String expression, - @JsonProperty("default") @JsonDeserialize(using = BooleanDeserializer.class) Boolean isDefault, - @JsonProperty("ldmexpression") String ldmExpression, - @JsonProperty("type") String type) { + private AttributeContent(@JsonProperty("formOf") String formOf, @JsonProperty("expression") String expression, + @JsonProperty("default") @JsonDeserialize(using = BooleanDeserializer.class) Boolean isDefault, + @JsonProperty("ldmexpression") String ldmExpression, + @JsonProperty("type") String type) { super(formOf, expression, ldmExpression, type); this.isDefault = isDefault; } diff --git a/src/test/java/com/gooddata/md/AttributeDisplayFormTest.java b/src/test/java/com/gooddata/md/AttributeDisplayFormTest.java index fe241e760..eeb9611e9 100644 --- a/src/test/java/com/gooddata/md/AttributeDisplayFormTest.java +++ b/src/test/java/com/gooddata/md/AttributeDisplayFormTest.java @@ -18,13 +18,14 @@ public class AttributeDisplayFormTest { - public static final String FORM_OF = "/gdc/md/PROJECT_ID/obj/DF_FORM_OF_ID"; - public static final String EXPRESSION = "[/gdc/md/PROJECT_ID/obj/DF_EXPRESSION_ID]"; - public static final boolean DEFAULT = false; - public static final boolean DEFAULT_TRUE = true; - public static final String LDM_EXPRESSION = ""; + private static final String FORM_OF = "/gdc/md/PROJECT_ID/obj/DF_FORM_OF_ID"; + private static final String EXPRESSION = "[/gdc/md/PROJECT_ID/obj/DF_EXPRESSION_ID]"; + private static final boolean DEFAULT = false; + private static final boolean DEFAULT_TRUE = true; + private static final String LDM_EXPRESSION = ""; private static final String TYPE = "TYPE"; private static final String ELEMENTS_LINK = "/gdc/md/PROJECT_ID/obj/DF_ID/elements"; + private static final String TITLE = "Person Name"; @SuppressWarnings("deprecation") @Test @@ -43,21 +44,21 @@ public void shouldDeserialize() throws Exception { @Test public void testSerialization() throws Exception { - final DisplayForm attrDF = new AttributeDisplayForm("Person Name", FORM_OF, EXPRESSION, DEFAULT, + final DisplayForm attrDF = new AttributeDisplayForm(TITLE, FORM_OF, EXPRESSION, DEFAULT, LDM_EXPRESSION, TYPE, ELEMENTS_LINK); assertThat(attrDF, jsonEquals(resource("md/attributeDisplayForm-input.json"))); } @Test - public void shouldSerializeSameAsDeserializationInput() throws Exception { + public void shouldSerializeSameAsDeserializationInput() { final AttributeDisplayForm attrDF = readObjectFromResource("/md/attributeDisplayForm.json", AttributeDisplayForm.class); assertThat(attrDF, jsonEquals(resource("md/attributeDisplayForm-inputOrig.json"))); } @Test public void testToStringFormat() { - final DisplayForm attrDF = new AttributeDisplayForm("Person Name", FORM_OF, EXPRESSION, DEFAULT, + final DisplayForm attrDF = new AttributeDisplayForm(TITLE, FORM_OF, EXPRESSION, DEFAULT, LDM_EXPRESSION, TYPE, ELEMENTS_LINK); assertThat(attrDF.toString(), matchesPattern(AttributeDisplayForm.class.getSimpleName() + "\\[.*\\]")); @@ -65,11 +66,26 @@ public void testToStringFormat() { @Test public void testSerializable() throws Exception { - final DisplayForm attrDF = new AttributeDisplayForm("Person Name", FORM_OF, EXPRESSION, DEFAULT, + final DisplayForm attrDF = new AttributeDisplayForm(TITLE, FORM_OF, EXPRESSION, DEFAULT, LDM_EXPRESSION, TYPE, ELEMENTS_LINK); final DisplayForm deserialized = SerializationUtils.roundtrip(attrDF); assertThat(deserialized, jsonEquals(attrDF)); } + @Test + public void testSubclass() { + class Subclass extends AttributeDisplayForm { + private Subclass(final String title, final String formOf, final String expression, final boolean isDefault, + final String ldmExpression, + final String type, final String elements) { + super(title, formOf, expression, isDefault, ldmExpression, type, elements); + } + } + final Subclass subclass = new Subclass(TITLE, FORM_OF, EXPRESSION, DEFAULT, LDM_EXPRESSION, TYPE, + ELEMENTS_LINK); + + //noinspection deprecation + assertThat(subclass.content, is(subclass.attributeContent)); + } } From 4d69de05636d29d18cc37a636d2e031a95ad8967 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20=C5=A0tumpf?= Date: Thu, 11 Oct 2018 09:02:45 +0200 Subject: [PATCH 041/487] Remove acceptance test for Datawarehouse S3 creds --- .../warehouse/WarehouseServiceAT.java | 57 ------------------- 1 file changed, 57 deletions(-) diff --git a/src/test/java/com/gooddata/warehouse/WarehouseServiceAT.java b/src/test/java/com/gooddata/warehouse/WarehouseServiceAT.java index b436ba3f7..d6fcfd951 100644 --- a/src/test/java/com/gooddata/warehouse/WarehouseServiceAT.java +++ b/src/test/java/com/gooddata/warehouse/WarehouseServiceAT.java @@ -11,8 +11,6 @@ import com.gooddata.collections.PageRequest; import com.gooddata.collections.PageableList; import com.gooddata.project.Environment; -import org.apache.commons.lang3.RandomStringUtils; -import org.joda.time.DateTime; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -28,7 +26,6 @@ import static org.hamcrest.Matchers.hasProperty; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.nullValue; import static org.hamcrest.core.IsCollectionContaining.hasItem; @@ -41,8 +38,6 @@ public class WarehouseServiceAT extends AbstractGoodDataAT { private static final String LOGIN = "john.smith." + UUID.randomUUID() + "@gooddata.com"; private static final String SCHEMA_NAME = "default"; - private static final String S3_CREDENTIALS_REGION = "us-east-1"; - private static final String S3_CREDENTIALS_ACCESS_KEY = "WarehouseServiceAt" + RandomStringUtils.randomAlphanumeric(5); private final String warehouseToken; private final WarehouseService service; @@ -52,7 +47,6 @@ public class WarehouseServiceAT extends AbstractGoodDataAT { private Account account; private WarehouseUser warehouseUser; - private WarehouseS3Credentials s3Credentials; public WarehouseServiceAT() { warehouseToken = getProperty("warehouseToken"); @@ -64,15 +58,6 @@ public void initIsolatedDomainGroup() { account = gd.getAccountService().createAccount(new Account(LOGIN, "nnPvcGXU7f", "FirstName", "LastName"), getProperty("domain")); } - @Test(groups = "warehouse", dependsOnGroups = "account") - public void createWarehouse() throws Exception { - final Warehouse wh = new Warehouse(title, warehouseToken); - wh.setEnvironment(Environment.TESTING); - warehouse = service.createWarehouse(wh).get(60, TimeUnit.MINUTES); - s3Credentials = new WarehouseS3Credentials(S3_CREDENTIALS_REGION, S3_CREDENTIALS_ACCESS_KEY, "secret"); - String jdbc = warehouse.getConnectionUrl(); - } - @Test(groups = "warehouse", dependsOnMethods = "createWarehouse") public void getWarehouse() throws Exception { final Warehouse warehouse = service.getWarehouseById(this.warehouse.getId()); @@ -156,48 +141,6 @@ public void getDefaultWarehouseSchema() { assertThat(warehouseSchema, is(notNullValue())); } - @Test(groups = "warehouse", dependsOnMethods = "createWarehouse") - public void addS3Credentials() { - s3Credentials = service.addS3Credentials(warehouse, s3Credentials) - .get(1, TimeUnit.MINUTES); - - assertThat(s3Credentials, notNullValue()); - } - - @Test(groups = "warehouse", dependsOnMethods = "addS3Credentials") - public void updateS3Credentials() { - final DateTime lastUpdated = s3Credentials.getUpdated(); - s3Credentials.setSecretKey("newSecretKey"); - s3Credentials = service.updateS3Credentials(s3Credentials) - .get(1, TimeUnit.MINUTES); - - assertThat(s3Credentials, notNullValue()); - assertThat(s3Credentials.getUpdated(), is(not(lastUpdated))); - } - - @Test(groups = "warehouse", dependsOnMethods = "updateS3Credentials") - public void getS3SpecificCredentials() { - final WarehouseS3Credentials result = service.getWarehouseS3Credentials(warehouse, S3_CREDENTIALS_REGION, - S3_CREDENTIALS_ACCESS_KEY); - - assertThat(result, notNullValue()); - assertThat(result.getAccessKey(), is(S3_CREDENTIALS_ACCESS_KEY)); - } - - @Test(groups = "warehouse", dependsOnMethods = "updateS3Credentials") - public void listS3Credentials() { - final PageableList result = service.listWarehouseS3Credentials(warehouse); - - assertThat(result, notNullValue()); - assertThat(result.size(), is(1)); - assertThat(result.getNextPage(), nullValue()); - } - - @Test(groups = "warehouse", dependsOnMethods = { "listS3Credentials", "getS3SpecificCredentials" }) - public void removeS3Credentials() { - service.removeS3Credentials(s3Credentials).get(1, TimeUnit.MINUTES); - } - @Test(dependsOnGroups = "warehouse") public void removeWarehouse() throws Exception { service.removeWarehouse(warehouse); From 8983c20391943c17651554bb2ad2dab310df2973 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20=C5=A0tumpf?= Date: Thu, 11 Oct 2018 09:02:45 +0200 Subject: [PATCH 042/487] Remove support for Datawarehouse S3 credentials --- .../warehouse/WarehouseS3Credentials.java | 196 ---------- .../WarehouseS3CredentialsException.java | 29 -- .../warehouse/WarehouseS3CredentialsList.java | 41 --- ...arehouseS3CredentialsListDeserializer.java | 24 -- .../WarehouseS3CredentialsListSerializer.java | 15 - ...rehouseS3CredentialsNotFoundException.java | 17 - .../gooddata/warehouse/WarehouseService.java | 188 ---------- .../com/gooddata/warehouse/WarehouseTask.java | 4 - .../WarehouseS3CredentialsExceptionTest.java | 20 - .../WarehouseS3CredentialsListTest.java | 58 --- .../warehouse/WarehouseS3CredentialsTest.java | 132 ------- .../warehouse/WarehouseServiceAT.java | 57 --- .../warehouse/WarehouseServiceIT.java | 347 ------------------ .../warehouse/WarehouseServiceTest.java | 47 --- .../gooddata/warehouse/WarehouseTaskTest.java | 1 - .../warehouse/s3Credentials-create.json | 7 - .../warehouse/s3Credentials-get.json | 13 - .../warehouse/s3Credentials-update.json | 7 - .../warehouse/s3CredentialsList.json | 32 -- .../warehouse/warehouseTask-finished.json | 3 +- 20 files changed, 1 insertion(+), 1237 deletions(-) delete mode 100644 src/main/java/com/gooddata/warehouse/WarehouseS3Credentials.java delete mode 100644 src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsException.java delete mode 100644 src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsList.java delete mode 100644 src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsListDeserializer.java delete mode 100644 src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsListSerializer.java delete mode 100644 src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsNotFoundException.java delete mode 100644 src/test/java/com/gooddata/warehouse/WarehouseS3CredentialsExceptionTest.java delete mode 100644 src/test/java/com/gooddata/warehouse/WarehouseS3CredentialsListTest.java delete mode 100644 src/test/java/com/gooddata/warehouse/WarehouseS3CredentialsTest.java delete mode 100644 src/test/java/com/gooddata/warehouse/WarehouseServiceTest.java delete mode 100644 src/test/resources/warehouse/s3Credentials-create.json delete mode 100644 src/test/resources/warehouse/s3Credentials-get.json delete mode 100644 src/test/resources/warehouse/s3Credentials-update.json delete mode 100644 src/test/resources/warehouse/s3CredentialsList.json diff --git a/src/main/java/com/gooddata/warehouse/WarehouseS3Credentials.java b/src/main/java/com/gooddata/warehouse/WarehouseS3Credentials.java deleted file mode 100644 index bede8aa5e..000000000 --- a/src/main/java/com/gooddata/warehouse/WarehouseS3Credentials.java +++ /dev/null @@ -1,196 +0,0 @@ -/* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. - * This source code is licensed under the BSD-style license found in the - * LICENSE.txt file in the root directory of this source tree. - */ -package com.gooddata.warehouse; - -import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonInclude; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.annotation.JsonView; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.gooddata.util.GoodDataToStringBuilder; -import com.gooddata.util.ISODateTimeDeserializer; -import com.gooddata.util.ISODateTimeSerializer; -import org.joda.time.DateTime; -import org.springframework.web.util.UriTemplate; - -import static com.gooddata.util.Validate.notNullState; - -/** - * Single warehouse S3 credentials record (identified uniquely by warehouse ID, region and access key) - */ -@JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) -@JsonTypeName("s3Credentials") -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonInclude(JsonInclude.Include.NON_NULL) -public class WarehouseS3Credentials { - public static final String URI = WarehouseS3CredentialsList.URI + "/{region}/{accessKey}"; - public static final UriTemplate TEMPLATE = new UriTemplate(URI); - - @JsonView(UpdateView.class) - private final String region; - - @JsonView(UpdateView.class) - private final String accessKey; - - private final DateTime updated; - - @JsonView(UpdateView.class) - private String secretKey; - - private final Links links; - - /** - * Used to add new S3 credentials - * - * @param region S3 region - * @param accessKey S3 access key - * @param secretKey S3 secret key - */ - public WarehouseS3Credentials(final String region, - final String accessKey, - final String secretKey) { - this(region, accessKey, secretKey, null, null); - } - - @JsonCreator - protected WarehouseS3Credentials(@JsonProperty("region") final String region, - @JsonProperty("accessKey") final String accessKey, - @JsonProperty("secretKey") final String secretKey, - @JsonProperty("updated") @JsonDeserialize(using = ISODateTimeDeserializer.class) - final DateTime updated, - @JsonProperty("links") final Links links) { - this.region = region; - this.accessKey = accessKey; - this.secretKey = secretKey; - this.updated = updated; - this.links = links; - } - - /** - * @return the date and time of last modification - */ - @JsonSerialize(using = ISODateTimeSerializer.class) - public DateTime getUpdated() { - return updated; - } - - /** - * not returned when listing - * @return S3 secret key - */ - public String getSecretKey() { - return secretKey; - } - - /** - * Sets new secret key - * - * @param secretKey secret key to set - */ - public void setSecretKey(final String secretKey) { - this.secretKey = secretKey; - } - - public String getAccessKey() { - return accessKey; - } - - public String getRegion() { - return region; - } - - public Links getLinks() { - return links; - } - - /** - * @return URI of this resource - */ - @JsonIgnore - public String getUri() { - return notNullState(links, "links").getSelf(); - } - - /** - * @return URI of the parent of warehouse S3 credentials - */ - @JsonIgnore - public String getListUri() { - return notNullState(links, "links").getParent(); - } - - /** - * @return URI of the warehouse - */ - @JsonIgnore - public String getInstanceUri() { - return notNullState(links, "links").getInstance(); - } - - /** - * @return URI of the user profile, who was the last to modify this resource - */ - @JsonIgnore - public String getUpdatedByUri() { - return notNullState(links, "links").getUpdatedBy(); - } - - @JsonIgnoreProperties(ignoreUnknown = true) - public static class Links { - private final String self; - private final String parent; - private final String instance; - private final String updatedBy; - - @JsonCreator - public Links(@JsonProperty("self") String self, - @JsonProperty("parent") String parent, - @JsonProperty("instance") String instance, - @JsonProperty("updatedBy") String updatedBy) { - this.self = self; - this.parent = parent; - this.instance = instance; - this.updatedBy = updatedBy; - } - - public String getSelf() { - return self; - } - - public String getParent() { - return parent; - } - - public String getInstance() { - return instance; - } - - public String getUpdatedBy() { - return updatedBy; - } - - @Override - public String toString() { - return GoodDataToStringBuilder.defaultToString(this); - } - } - - @Override - public String toString() { - return GoodDataToStringBuilder.defaultToString(this, "secretKey"); - } - - /** - * Class representing update view of warehouse S3 credentials - */ - static class UpdateView { - } -} diff --git a/src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsException.java b/src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsException.java deleted file mode 100644 index 2f51996f7..000000000 --- a/src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsException.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. - * This source code is licensed under the BSD-style license found in the - * LICENSE.txt file in the root directory of this source tree. - */ -package com.gooddata.warehouse; - -import com.gooddata.GoodDataException; - -/** - * Thrown when REST operation failed for S3 credentials - */ -public class WarehouseS3CredentialsException extends GoodDataException { - - private final String uri; - - public WarehouseS3CredentialsException(String uri, String message, Exception cause) { - super(message, cause); - this.uri = uri; - } - - public WarehouseS3CredentialsException(final String uri, final String message) { - this(uri, message, null); - } - - public String getUri() { - return uri; - } -} diff --git a/src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsList.java b/src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsList.java deleted file mode 100644 index b3cd06e62..000000000 --- a/src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsList.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. - * This source code is licensed under the BSD-style license found in the - * LICENSE.txt file in the root directory of this source tree. - */ -package com.gooddata.warehouse; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.annotation.JsonTypeName; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.gooddata.collections.PageableList; -import org.springframework.web.util.UriTemplate; - -import java.util.List; -import java.util.Map; - -/** - * List of warehouse S3 credentials for a given warehouse - */ -@JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) -@JsonTypeName("s3CredentialsList") -@JsonIgnoreProperties(ignoreUnknown = true) -@JsonDeserialize(using = WarehouseS3CredentialsListDeserializer.class) -@JsonSerialize(using = WarehouseS3CredentialsListSerializer.class) -public class WarehouseS3CredentialsList extends PageableList { - - static final String ROOT_NODE = "s3CredentialsList"; - public static final String URI = Warehouse.URI + "/s3"; - public static final UriTemplate TEMPLATE = new UriTemplate(URI); - - public WarehouseS3CredentialsList(final List items) { - this(items, null); - } - - public WarehouseS3CredentialsList(final List items, - final Map links) { - super(items, null, links); - } -} diff --git a/src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsListDeserializer.java b/src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsListDeserializer.java deleted file mode 100644 index 4c9f2db34..000000000 --- a/src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsListDeserializer.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. - * This source code is licensed under the BSD-style license found in the - * LICENSE.txt file in the root directory of this source tree. - */ -package com.gooddata.warehouse; - -import com.gooddata.collections.PageableListDeserializer; -import com.gooddata.collections.Paging; - -import java.util.List; -import java.util.Map; - -class WarehouseS3CredentialsListDeserializer extends PageableListDeserializer { - - WarehouseS3CredentialsListDeserializer() { - super(WarehouseS3Credentials.class); - } - - @Override - protected WarehouseS3CredentialsList createList(List items, Paging paging, Map links) { - return new WarehouseS3CredentialsList(items, links); - } -} diff --git a/src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsListSerializer.java b/src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsListSerializer.java deleted file mode 100644 index cdfa51d20..000000000 --- a/src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsListSerializer.java +++ /dev/null @@ -1,15 +0,0 @@ -/* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. - * This source code is licensed under the BSD-style license found in the - * LICENSE.txt file in the root directory of this source tree. - */ -package com.gooddata.warehouse; - -import com.gooddata.collections.PageableListSerializer; - -class WarehouseS3CredentialsListSerializer extends PageableListSerializer { - - WarehouseS3CredentialsListSerializer() { - super(WarehouseS3CredentialsList.ROOT_NODE); - } -} diff --git a/src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsNotFoundException.java b/src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsNotFoundException.java deleted file mode 100644 index 832b5dfd5..000000000 --- a/src/main/java/com/gooddata/warehouse/WarehouseS3CredentialsNotFoundException.java +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. - * This source code is licensed under the BSD-style license found in the - * LICENSE.txt file in the root directory of this source tree. - */ -package com.gooddata.warehouse; - -import com.gooddata.GoodDataRestException; - -/** - * Thrown when specific S3 credentials, identified by warehouse ID, region and access key cannot be found - */ -public class WarehouseS3CredentialsNotFoundException extends WarehouseS3CredentialsException { - public WarehouseS3CredentialsNotFoundException(String uri, GoodDataRestException cause) { - super(uri, "Warehouse S3 credentials " + uri + " not found", cause); - } -} diff --git a/src/main/java/com/gooddata/warehouse/WarehouseService.java b/src/main/java/com/gooddata/warehouse/WarehouseService.java index 92378f8d6..30098059b 100644 --- a/src/main/java/com/gooddata/warehouse/WarehouseService.java +++ b/src/main/java/com/gooddata/warehouse/WarehouseService.java @@ -16,23 +16,18 @@ import com.gooddata.collections.Page; import com.gooddata.collections.PageRequest; import com.gooddata.collections.PageableList; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; import org.springframework.http.HttpMethod; import org.springframework.http.HttpStatus; import org.springframework.http.client.ClientHttpResponse; -import org.springframework.http.converter.json.MappingJacksonValue; import org.springframework.web.client.RestClientException; import org.springframework.web.client.RestTemplate; import org.springframework.web.util.UriComponentsBuilder; -import org.springframework.web.util.UriTemplate; import java.io.IOException; import java.net.URI; import static com.gooddata.util.Validate.notEmpty; import static com.gooddata.util.Validate.notNull; -import static java.lang.String.format; /** * Provide access to warehouse API - create, update, list and delete warehouses. @@ -464,187 +459,4 @@ public WarehouseSchema getDefaultWarehouseSchema(final Warehouse warehouse) { return getWarehouseSchemaByName(warehouse, DEFAULT_SCHEMA_NAME); } - /** - * List S3 credentials for the Warehouse. Returns empty list if no credentials are found. - * - * @param warehouse warehouse to get S3 credentials for - * @return PageableList with all S3 credentials belonging to the Warehouse (not null) - * @throws WarehouseS3CredentialsException in case of failure during the REST operation - */ - public PageableList listWarehouseS3Credentials(final Warehouse warehouse) { - notNull(warehouse, "warehouse"); - - final String uri = getWarehouseS3CredentialsListUri(warehouse).toString(); - try { - final WarehouseS3CredentialsList result = restTemplate.getForObject(uri, WarehouseS3CredentialsList.class); - if (result == null) { - return new PageableList<>(); - } - return result; - } catch (GoodDataException | RestClientException e) { - throw new WarehouseS3CredentialsException(uri, "Unable to list Warehouse S3 credentials at " + uri, e); - } - } - - /** - * Get S3 credentials for the Warehouse based on {@code region} and {@code accessKey}. - * - * @param warehouse warehouse to get S3 credentials for - * @return single S3 credentials record (not null) - * @throws WarehouseS3CredentialsNotFoundException if no S3 credentials for the given parameters were found - * @throws WarehouseS3CredentialsException in case of failure during the REST operation - */ - public WarehouseS3Credentials getWarehouseS3Credentials(final Warehouse warehouse, - final String region, - final String accessKey) { - notNull(warehouse, "warehouse"); - notEmpty(region, "region"); - notEmpty(accessKey, "accessKey"); - - final String uri = getWarehouseS3CredentialsUri(warehouse, region, accessKey).toString(); - - try { - return restTemplate.getForObject(uri, WarehouseS3Credentials.class); - } catch (GoodDataRestException e) { - if (HttpStatus.NOT_FOUND.value() == e.getStatusCode()) { - throw new WarehouseS3CredentialsNotFoundException(uri, e); - } else { - throw e; - } - } catch (RestClientException e) { - throw new WarehouseS3CredentialsException(uri, "Unable to get Warehouse S3 credentials " + uri, e); - } - } - - /** - * add new S3 credentials to the Warehouse - * - * @param warehouse warehouse the S3 credentials should be added to - * @param s3Credentials the credentials to store - * @return added credentials (not null) - * @throws WarehouseS3CredentialsException in case of failure during the REST operation - */ - public FutureResult addS3Credentials(final Warehouse warehouse, - final WarehouseS3Credentials s3Credentials) { - notNull(warehouse, "warehouse"); - notEmpty(warehouse.getId(), "warehouse.id"); - notNull(s3Credentials, "s3Credentials"); - - final WarehouseTask task = createWarehouseTask(WarehouseS3CredentialsList.URI, HttpMethod.POST, - s3Credentials, createUpdateHttpEntity(s3Credentials), warehouse.getId()); - final String newCredentialsUri = WarehouseS3Credentials.TEMPLATE.expand(warehouse.getId(), - s3Credentials.getRegion(), s3Credentials.getAccessKey()).toString(); - return new PollResult<>(this, createS3PollHandler(newCredentialsUri, task, "add")); - } - - /** - * update S3 credentials in the Warehouse - * - * @param s3Credentials the credentials to update - * @return updated credentials (not null) - * @throws WarehouseS3CredentialsException in case of failure during the REST operation - */ - public FutureResult updateS3Credentials(final WarehouseS3Credentials s3Credentials) { - notNull(s3Credentials, "s3Credentials"); - notNull(s3Credentials.getUri(), "s3Credentials.links.self"); - - final WarehouseTask task = createWarehouseTask(s3Credentials.getUri(), HttpMethod.PUT, - s3Credentials, createUpdateHttpEntity(s3Credentials)); - return new PollResult<>(this, createS3PollHandler(s3Credentials.getUri(), task, "update")); - } - - /** - * delete S3 credentials in the Warehouse - * - * @param s3Credentials the credentials to delete - * @return nothing (Void) - * @throws WarehouseS3CredentialsException in case of failure during the REST operation - */ - public FutureResult removeS3Credentials(final WarehouseS3Credentials s3Credentials) { - notNull(s3Credentials, "s3Credentials"); - notNull(s3Credentials.getUri(), "s3Credentials.links.self"); - - final HttpEntity emptyRequestEntity = new HttpEntity<>(new HttpHeaders()); - final WarehouseTask task = createWarehouseTask(s3Credentials.getUri(), HttpMethod.DELETE, - s3Credentials, emptyRequestEntity); - return new PollResult<>(this, createS3PollHandler(s3Credentials.getUri(), task, Void.class, "delete")); - } - - private WarehouseTask createWarehouseTask(final String targetUri, - final HttpMethod httpMethod, - final WarehouseS3Credentials s3Credentials, - final HttpEntity requestEntity, - final Object... args) { - try { - final HttpEntity taskHttpEntity = restTemplate.exchange(targetUri, httpMethod, - requestEntity, WarehouseTask.class, args); - - if (taskHttpEntity == null || taskHttpEntity.getBody() == null) { - throw new WarehouseS3CredentialsException(targetUri, - format("Empty response when trying to %s S3 credentials via API", httpMethod.name())); - } - return taskHttpEntity.getBody(); - } catch (GoodDataException | RestClientException e) { - final String expandedTargetUri = new UriTemplate(targetUri).expand(args).toString(); - throw new WarehouseS3CredentialsException(targetUri, format("Unable to %s S3 credentials %s with region: %s, access key: %s", - httpMethod.name(), expandedTargetUri, s3Credentials.getRegion(), s3Credentials.getAccessKey()), e); - } - } - - private HttpEntity createUpdateHttpEntity(final WarehouseS3Credentials s3Credentials) { - final MappingJacksonValue jacksonValue = new MappingJacksonValue(s3Credentials); - jacksonValue.setSerializationView(WarehouseS3Credentials.UpdateView.class); - return new HttpEntity<>(jacksonValue); - } - - private AbstractPollHandler createS3PollHandler(final String credentialsUri, - final WarehouseTask task, - final String action) { - return createS3PollHandler(credentialsUri, task, WarehouseS3Credentials.class, action); - } - - private AbstractPollHandler createS3PollHandler(final String credentialsUri, - final WarehouseTask task, - final Class resultClass, - final String action) { - return new AbstractPollHandler(task.getPollUri(), WarehouseTask.class, resultClass) { - - @Override - public boolean isFinished(ClientHttpResponse response) throws IOException { - final HttpStatus expectedStatus = "add".equals(action) ? HttpStatus.CREATED : HttpStatus.OK; - return response.getStatusCode() == expectedStatus; - } - - @Override - public void handlePollResult(WarehouseTask pollResult) { - final String uri = pollResult.getWarehouseS3CredentialsUri(); - try { - final R result = restTemplate.getForObject(uri, resultClass); - setResult(result); - } catch (GoodDataException | RestClientException e) { - throw new WarehouseS3CredentialsException(uri, - format("Attempt to %s S3 credentials in warehouse failed, can't get the result, uri: %s", - action, uri), e); - } - } - - @Override - public void handlePollException(final GoodDataRestException e) { - throw new WarehouseS3CredentialsException(credentialsUri, - format("Unable to %s S3 credentials in warehouse, uri: %s", action, credentialsUri), e); - } - }; - } - - private URI getWarehouseS3CredentialsListUri(final Warehouse warehouse) { - notEmpty(warehouse.getId(), "warehouse.id"); - - return WarehouseS3CredentialsList.TEMPLATE.expand(warehouse.getId()); - } - - private URI getWarehouseS3CredentialsUri(final Warehouse warehouse, final String region, final String accessKey) { - notEmpty(warehouse.getId(), "warehouse.id"); - - return WarehouseS3Credentials.TEMPLATE.expand(warehouse.getId(), region, accessKey); - } } diff --git a/src/main/java/com/gooddata/warehouse/WarehouseTask.java b/src/main/java/com/gooddata/warehouse/WarehouseTask.java index d99eadf68..69732b839 100644 --- a/src/main/java/com/gooddata/warehouse/WarehouseTask.java +++ b/src/main/java/com/gooddata/warehouse/WarehouseTask.java @@ -24,7 +24,6 @@ class WarehouseTask { private static final String POLL_LINK = "poll"; private static final String WAREHOUSE_LINK = "instance"; private static final String WAREHOUSE_USER_LINK = "user"; - private static final String WAREHOUSE_S3_CREDENTIALS_LINK = "s3Credentials"; private final Map links; @@ -60,7 +59,4 @@ String getWarehouseUserUri() { return links.get(WAREHOUSE_USER_LINK); } - String getWarehouseS3CredentialsUri() { - return links.get(WAREHOUSE_S3_CREDENTIALS_LINK); - } } diff --git a/src/test/java/com/gooddata/warehouse/WarehouseS3CredentialsExceptionTest.java b/src/test/java/com/gooddata/warehouse/WarehouseS3CredentialsExceptionTest.java deleted file mode 100644 index ad12416f0..000000000 --- a/src/test/java/com/gooddata/warehouse/WarehouseS3CredentialsExceptionTest.java +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. - * This source code is licensed under the BSD-style license found in the - * LICENSE.txt file in the root directory of this source tree. - */ -package com.gooddata.warehouse; - -import org.testng.annotations.Test; -import static org.hamcrest.MatcherAssert.assertThat; -import static org.hamcrest.Matchers.is; - -public class WarehouseS3CredentialsExceptionTest { - - public static final String URI = "/some/uri"; - - @Test - public void getUri() { - assertThat(new WarehouseS3CredentialsException(URI, "message").getUri(), is(URI)); - } -} diff --git a/src/test/java/com/gooddata/warehouse/WarehouseS3CredentialsListTest.java b/src/test/java/com/gooddata/warehouse/WarehouseS3CredentialsListTest.java deleted file mode 100644 index fbce5d81b..000000000 --- a/src/test/java/com/gooddata/warehouse/WarehouseS3CredentialsListTest.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. - * This source code is licensed under the BSD-style license found in the - * LICENSE.txt file in the root directory of this source tree. - */ -package com.gooddata.warehouse; - -import org.joda.time.DateTime; -import org.testng.annotations.Test; - -import java.util.HashMap; -import java.util.Map; - -import static com.gooddata.util.ResourceUtils.readObjectFromResource; -import static java.util.Arrays.asList; -import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals; -import static net.javacrumbs.jsonunit.core.util.ResourceUtils.resource; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.MatcherAssert.assertThat; - -public class WarehouseS3CredentialsListTest { - - private static final String SELF_LINK = "/gdc/datawarehouse/instances/{instance-id}/s3/region/accessKey"; - private static final String PARENT_LINK = "/gdc/datawarehouse/instances/{instance-id}/s3"; - private static final String INSTANCE_LINK = "/gdc/datawarehouse/instances/{instance-id}"; - private static final String UPDATED_BY_LINK = "/gdc/datawarehouse/instances/{instance-id}/users/{user-id}"; - - private final WarehouseS3Credentials.Links credentials1Links = new WarehouseS3Credentials.Links( - SELF_LINK, PARENT_LINK, INSTANCE_LINK, UPDATED_BY_LINK - ); - private final WarehouseS3Credentials credentials1 = new WarehouseS3Credentials("region", "accessKey", - "secretKey", - DateTime.parse("2017-08-02T09:40:24.064Z"), credentials1Links); - private final WarehouseS3Credentials credentials2 = new WarehouseS3Credentials( "region2", "accessKey2", - "secretKey2", null, null); - - private final Map links = new HashMap() {{ - put("self", "/gdc/datawarehouse/instances/{instance-id}/s3"); - put("parent", "/gdc/datawarehouse/instances/{instance-id}"); - }}; - - private final WarehouseS3CredentialsList credentialsList = new WarehouseS3CredentialsList( - asList(credentials1, credentials2), links); - - @Test - public void serialize() { - assertThat(credentialsList, jsonEquals(resource("warehouse/s3CredentialsList.json"))); - } - - @Test - public void deserialize() { - final WarehouseS3CredentialsList result = readObjectFromResource("/warehouse/s3CredentialsList.json", - WarehouseS3CredentialsList.class); - - assertThat(result.size(), is(2)); - assertThat(result.getLinks(), is(links)); - } -} diff --git a/src/test/java/com/gooddata/warehouse/WarehouseS3CredentialsTest.java b/src/test/java/com/gooddata/warehouse/WarehouseS3CredentialsTest.java deleted file mode 100644 index 05326ef40..000000000 --- a/src/test/java/com/gooddata/warehouse/WarehouseS3CredentialsTest.java +++ /dev/null @@ -1,132 +0,0 @@ -/* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. - * This source code is licensed under the BSD-style license found in the - * LICENSE.txt file in the root directory of this source tree. - */ -package com.gooddata.warehouse; - -import com.fasterxml.jackson.core.JsonProcessingException; -import com.fasterxml.jackson.databind.MapperFeature; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.joda.time.DateTime; -import org.testng.annotations.Test; - -import static com.gooddata.util.ResourceUtils.readObjectFromResource; -import static com.shazam.shazamcrest.matcher.Matchers.sameBeanAs; -import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals; -import static net.javacrumbs.jsonunit.core.util.ResourceUtils.resource; -import static org.hamcrest.CoreMatchers.endsWith; -import static org.hamcrest.CoreMatchers.is; -import static org.hamcrest.CoreMatchers.notNullValue; -import static org.hamcrest.CoreMatchers.nullValue; -import static org.hamcrest.MatcherAssert.assertThat; - -public class WarehouseS3CredentialsTest { - - private static final String REGION = "region"; - private static final String ACCESS_KEY = "accessKey"; - private static final String UPDATED_BY = "/gdc/datawarehouse/instances/instanceId/users/{user-id}"; - private static final String SECRET_KEY = "secretKey"; - private static final String NEW_SECRET_KEY = "newSecretKey"; - private static final DateTime UPDATED_AT = DateTime.parse("2017-08-02T09:40:24.064Z"); - private static final String SELF_LINK = "/gdc/datawarehouse/instances/instanceId/s3/region/accessKey"; - private static final String PARENT_LINK = "/gdc/datawarehouse/instances/instanceId/s3"; - private static final String INSTANCE_LINK = "/gdc/datawarehouse/instances/instanceId"; - private static final WarehouseS3Credentials.Links LINKS = new WarehouseS3Credentials.Links( - SELF_LINK, PARENT_LINK, INSTANCE_LINK, UPDATED_BY - ); - - @Test - public void serializeGet() { - final WarehouseS3Credentials credentials = new WarehouseS3Credentials(REGION, ACCESS_KEY, null, - UPDATED_AT, LINKS); - assertThat(credentials, jsonEquals(resource("warehouse/s3Credentials-get.json"))); - } - - @Test - public void serializeUsingUpdateView() throws JsonProcessingException { - final WarehouseS3Credentials credentials = new WarehouseS3Credentials(REGION, ACCESS_KEY, NEW_SECRET_KEY, - UPDATED_AT, LINKS); - final ObjectMapper objectMapper = new ObjectMapper(); - objectMapper.disable(MapperFeature.DEFAULT_VIEW_INCLUSION); - - final String json = objectMapper - .writerWithView(WarehouseS3Credentials.UpdateView.class) - .writeValueAsString(credentials); - assertThat(json, jsonEquals(resource("warehouse/s3Credentials-update.json"))); - } - - @Test - public void serializeCreate() { - final WarehouseS3Credentials credentials = new WarehouseS3Credentials(REGION, ACCESS_KEY, SECRET_KEY); - assertThat(credentials, jsonEquals(resource("warehouse/s3Credentials-create.json"))); - } - - @Test - public void deserializeGet() { - final WarehouseS3Credentials credentials = readObjectFromResource("/warehouse/s3Credentials-get.json", - WarehouseS3Credentials.class); - - assertThat(credentials.getRegion(), is(REGION)); - assertThat(credentials.getAccessKey(), is(ACCESS_KEY)); - assertThat(credentials.getSecretKey(), is(nullValue())); - assertThat(credentials.getUpdated().toString(), is(UPDATED_AT.toString())); - assertThat(credentials.getLinks(), is(sameBeanAs(LINKS))); - assertThat(credentials.getLinks().toString(), is(notNullValue())); - } - - @Test - public void deserializeCreate() { - final WarehouseS3Credentials credentials = readObjectFromResource("/warehouse/s3Credentials-create.json", - WarehouseS3Credentials.class); - - assertThat(credentials.getRegion(), is(REGION)); - assertThat(credentials.getAccessKey(), is(ACCESS_KEY)); - assertThat(credentials.getSecretKey(), is(SECRET_KEY)); - assertThat(credentials.getUpdated(), is(nullValue())); - assertThat(credentials.getLinks(), is(nullValue())); - } - - @Test - public void withSecretKey() { - final WarehouseS3Credentials credentials = new WarehouseS3Credentials(REGION, ACCESS_KEY, null, - UPDATED_AT, null); - assertThat(credentials.getSecretKey(), is(nullValue())); - - credentials.setSecretKey(SECRET_KEY); - assertThat(credentials.getSecretKey(), is(SECRET_KEY)); - } - - @Test - public void withLinks() { - final WarehouseS3Credentials credentials = new WarehouseS3Credentials(REGION, ACCESS_KEY, - SECRET_KEY, UPDATED_AT, LINKS); - assertThat(credentials.getLinks(), is(LINKS)); - } - - @Test - public void withLinksForWarehouse() { - final WarehouseS3Credentials credentials = new WarehouseS3Credentials(REGION, ACCESS_KEY, - "updaterId", UPDATED_AT, LINKS); - assertThat(credentials.getInstanceUri(), endsWith("/instanceId")); - assertThat(credentials.getListUri(), endsWith("/instanceId/s3")); - assertThat(credentials.getUri(), endsWith("/instanceId/s3/region/accessKey")); - assertThat(credentials.getUpdatedByUri(), endsWith("/users/{user-id}")); - } - - @Test - public void getUri() { - final WarehouseS3Credentials credentials = new WarehouseS3Credentials(REGION, ACCESS_KEY, - UPDATED_BY, UPDATED_AT, LINKS); - - assertThat(credentials.getUri(), is("/gdc/datawarehouse/instances/instanceId/s3/region/accessKey")); - } - - @Test - public void testToString() { - final WarehouseS3Credentials credentials = readObjectFromResource("/warehouse/s3Credentials-create.json", - WarehouseS3Credentials.class); - - assertThat(credentials.toString(), is("WarehouseS3Credentials[region=region,accessKey=accessKey,updated=]")); - } -} diff --git a/src/test/java/com/gooddata/warehouse/WarehouseServiceAT.java b/src/test/java/com/gooddata/warehouse/WarehouseServiceAT.java index b436ba3f7..d6fcfd951 100644 --- a/src/test/java/com/gooddata/warehouse/WarehouseServiceAT.java +++ b/src/test/java/com/gooddata/warehouse/WarehouseServiceAT.java @@ -11,8 +11,6 @@ import com.gooddata.collections.PageRequest; import com.gooddata.collections.PageableList; import com.gooddata.project.Environment; -import org.apache.commons.lang3.RandomStringUtils; -import org.joda.time.DateTime; import org.testng.annotations.AfterClass; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -28,7 +26,6 @@ import static org.hamcrest.Matchers.hasProperty; import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; -import static org.hamcrest.Matchers.not; import static org.hamcrest.Matchers.notNullValue; import static org.hamcrest.Matchers.nullValue; import static org.hamcrest.core.IsCollectionContaining.hasItem; @@ -41,8 +38,6 @@ public class WarehouseServiceAT extends AbstractGoodDataAT { private static final String LOGIN = "john.smith." + UUID.randomUUID() + "@gooddata.com"; private static final String SCHEMA_NAME = "default"; - private static final String S3_CREDENTIALS_REGION = "us-east-1"; - private static final String S3_CREDENTIALS_ACCESS_KEY = "WarehouseServiceAt" + RandomStringUtils.randomAlphanumeric(5); private final String warehouseToken; private final WarehouseService service; @@ -52,7 +47,6 @@ public class WarehouseServiceAT extends AbstractGoodDataAT { private Account account; private WarehouseUser warehouseUser; - private WarehouseS3Credentials s3Credentials; public WarehouseServiceAT() { warehouseToken = getProperty("warehouseToken"); @@ -64,15 +58,6 @@ public void initIsolatedDomainGroup() { account = gd.getAccountService().createAccount(new Account(LOGIN, "nnPvcGXU7f", "FirstName", "LastName"), getProperty("domain")); } - @Test(groups = "warehouse", dependsOnGroups = "account") - public void createWarehouse() throws Exception { - final Warehouse wh = new Warehouse(title, warehouseToken); - wh.setEnvironment(Environment.TESTING); - warehouse = service.createWarehouse(wh).get(60, TimeUnit.MINUTES); - s3Credentials = new WarehouseS3Credentials(S3_CREDENTIALS_REGION, S3_CREDENTIALS_ACCESS_KEY, "secret"); - String jdbc = warehouse.getConnectionUrl(); - } - @Test(groups = "warehouse", dependsOnMethods = "createWarehouse") public void getWarehouse() throws Exception { final Warehouse warehouse = service.getWarehouseById(this.warehouse.getId()); @@ -156,48 +141,6 @@ public void getDefaultWarehouseSchema() { assertThat(warehouseSchema, is(notNullValue())); } - @Test(groups = "warehouse", dependsOnMethods = "createWarehouse") - public void addS3Credentials() { - s3Credentials = service.addS3Credentials(warehouse, s3Credentials) - .get(1, TimeUnit.MINUTES); - - assertThat(s3Credentials, notNullValue()); - } - - @Test(groups = "warehouse", dependsOnMethods = "addS3Credentials") - public void updateS3Credentials() { - final DateTime lastUpdated = s3Credentials.getUpdated(); - s3Credentials.setSecretKey("newSecretKey"); - s3Credentials = service.updateS3Credentials(s3Credentials) - .get(1, TimeUnit.MINUTES); - - assertThat(s3Credentials, notNullValue()); - assertThat(s3Credentials.getUpdated(), is(not(lastUpdated))); - } - - @Test(groups = "warehouse", dependsOnMethods = "updateS3Credentials") - public void getS3SpecificCredentials() { - final WarehouseS3Credentials result = service.getWarehouseS3Credentials(warehouse, S3_CREDENTIALS_REGION, - S3_CREDENTIALS_ACCESS_KEY); - - assertThat(result, notNullValue()); - assertThat(result.getAccessKey(), is(S3_CREDENTIALS_ACCESS_KEY)); - } - - @Test(groups = "warehouse", dependsOnMethods = "updateS3Credentials") - public void listS3Credentials() { - final PageableList result = service.listWarehouseS3Credentials(warehouse); - - assertThat(result, notNullValue()); - assertThat(result.size(), is(1)); - assertThat(result.getNextPage(), nullValue()); - } - - @Test(groups = "warehouse", dependsOnMethods = { "listS3Credentials", "getS3SpecificCredentials" }) - public void removeS3Credentials() { - service.removeS3Credentials(s3Credentials).get(1, TimeUnit.MINUTES); - } - @Test(dependsOnGroups = "warehouse") public void removeWarehouse() throws Exception { service.removeWarehouse(warehouse); diff --git a/src/test/java/com/gooddata/warehouse/WarehouseServiceIT.java b/src/test/java/com/gooddata/warehouse/WarehouseServiceIT.java index 2b7bad4b0..4e02c4ae5 100644 --- a/src/test/java/com/gooddata/warehouse/WarehouseServiceIT.java +++ b/src/test/java/com/gooddata/warehouse/WarehouseServiceIT.java @@ -14,8 +14,6 @@ import org.hamcrest.BaseMatcher; import org.hamcrest.Description; import org.hamcrest.Matchers; -import org.joda.time.DateTime; -import org.springframework.web.client.RestClientException; import org.testng.annotations.BeforeClass; import org.testng.annotations.Test; @@ -25,14 +23,11 @@ import static com.gooddata.util.ResourceUtils.OBJECT_MAPPER; import static com.gooddata.util.ResourceUtils.readFromResource; import static com.gooddata.util.ResourceUtils.readObjectFromResource; -import static com.gooddata.util.ResourceUtils.readStringFromResource; import static net.jadler.Jadler.onRequest; import static net.jadler.Jadler.verifyThatRequest; -import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.notNullValue; -import static org.hamcrest.Matchers.nullValue; import static org.hamcrest.collection.IsCollectionWithSize.hasSize; import static org.hamcrest.core.Is.is; @@ -47,31 +42,18 @@ public class WarehouseServiceIT extends AbstractGoodDataIT { private static final String WAREHOUSE = "/warehouse/warehouse.json"; private static final String WAREHOUSE_USER = "/warehouse/user.json"; private static final String WAREHOUSE_SCHEMA = "/warehouse/schema.json"; - private static final String S3_CREDENTIALS_CREATE = "/warehouse/s3Credentials-create.json"; - private static final String S3_CREDENTIALS_UPDATE = "/warehouse/s3Credentials-update.json"; - private static final String REGION = "region"; - private static final String ACCESS_KEY = "accessKey"; - private static final String SECRET_KEY = "secretKey"; - private static final String NEW_SECRET_KEY = "newSecretKey"; private static final String WAREHOUSE_URI = Warehouse.TEMPLATE.expand(WAREHOUSE_ID).toString(); private static final String WAREHOUSE_USER_URI = WarehouseUsers.TEMPLATE.expand(WAREHOUSE_ID).toString(); - private static final String WAREHOUSE_S3_CREDENTIALS_LIST_URI = WarehouseS3CredentialsList.TEMPLATE.expand(WAREHOUSE_ID).toString(); - private static final String WAREHOUSE_S3_CREDENTIALS_URI = WarehouseS3Credentials.TEMPLATE.expand(WAREHOUSE_ID, REGION, ACCESS_KEY).toString(); private static final String REMOVE_USER_TASK_DONE = "/warehouse/removeUserTask-finished.json"; private static final String UPDATED_BY_URI = Account.TEMPLATE.expand("updatedBy").toString(); private static final String CONNECTION_URL = "CONNECTION_URL"; - private static final WarehouseS3Credentials.Links LINKS = new WarehouseS3Credentials.Links( - WAREHOUSE_S3_CREDENTIALS_URI, WAREHOUSE_S3_CREDENTIALS_LIST_URI, WAREHOUSE_URI, UPDATED_BY_URI - ); private WarehouseTask pollingTask; private WarehouseTask finishedTask; private Warehouse warehouse; private WarehouseSchema warehouseSchema; - private WarehouseS3Credentials s3Credentials; - private WarehouseS3Credentials s3CredentialsWithLinks; @BeforeClass public void setUp() throws Exception { @@ -79,8 +61,6 @@ public void setUp() throws Exception { finishedTask = readObjectFromResource(TASK_DONE, WarehouseTask.class); warehouse = readObjectFromResource(WAREHOUSE, Warehouse.class); warehouseSchema = readObjectFromResource(WAREHOUSE_SCHEMA, WarehouseSchema.class); - s3Credentials = new WarehouseS3Credentials(REGION, ACCESS_KEY, SECRET_KEY); - s3CredentialsWithLinks = new WarehouseS3Credentials(REGION, ACCESS_KEY, SECRET_KEY, DateTime.now(), LINKS); } @Test @@ -424,331 +404,4 @@ public void shouldFailWarehouseSchemaByNameNotFound() throws Exception { assertThat(result.getName(), is(SCHEMA_NAME)); } - @Test - public void shouldListWarehouseS3Credentials() { - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(WAREHOUSE_S3_CREDENTIALS_LIST_URI) - .respond() - .withBody(readFromResource("/warehouse/s3CredentialsList.json")) - .withStatus(200); - - final PageableList credentials = gd.getWarehouseService().listWarehouseS3Credentials(warehouse); - - assertThat(credentials, notNullValue()); - assertThat(credentials, hasSize(2)); - assertThat(credentials.get(0).getRegion(), is(REGION)); - assertThat(credentials.get(0).getAccessKey(), is(ACCESS_KEY)); - } - - @Test(expectedExceptions = GoodDataException.class, expectedExceptionsMessageRegExp = ".*Unable to list Warehouse S3 credentials.*") - public void shouldFailToListWarehouseS3Credentials_restClientError() { - onRequest().respondUsing(request -> { - throw new RestClientException("error"); - }); - - gd.getWarehouseService().listWarehouseS3Credentials(warehouse); - } - - @Test - public void shouldGetSpecificWarehouseS3Credentials() { - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(WarehouseS3Credentials.TEMPLATE.expand(WAREHOUSE_ID, REGION, ACCESS_KEY).toString()) - .respond() - .withBody(readFromResource("/warehouse/s3Credentials-get.json")) - .withStatus(200); - - final WarehouseS3Credentials credentials = gd.getWarehouseService() - .getWarehouseS3Credentials(warehouse, REGION, ACCESS_KEY); - - assertThat(credentials, notNullValue()); - assertThat(credentials.getRegion(), is(REGION)); - assertThat(credentials.getAccessKey(), is(ACCESS_KEY)); - } - - @Test(expectedExceptions = WarehouseS3CredentialsNotFoundException.class) - public void shouldFailToGetSpecificWarehouseS3Credentials_credentialsNotFound() { - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(WarehouseS3Credentials.TEMPLATE.expand(warehouse.getId(), REGION, ACCESS_KEY).toString()) - .respond() - .withStatus(404); - - gd.getWarehouseService().getWarehouseS3Credentials(warehouse, REGION, ACCESS_KEY); - } - - @Test(expectedExceptions = GoodDataException.class, expectedExceptionsMessageRegExp = ".*Service Unavailable$") - public void shouldFailToGetSpecificWarehouseS3Credentials_serviceNotFound() { - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(WarehouseS3Credentials.TEMPLATE.expand(warehouse.getId(), REGION, ACCESS_KEY).toString()) - .respond() - .withStatus(503); - - gd.getWarehouseService().getWarehouseS3Credentials(warehouse, REGION, ACCESS_KEY); - } - - @Test - public void shouldAddS3Credentials() { - onRequest() - .havingMethodEqualTo("POST") - .havingPathEqualTo(WAREHOUSE_S3_CREDENTIALS_LIST_URI) - .havingBody(jsonEquals(readStringFromResource(S3_CREDENTIALS_CREATE))) - .respond() - .withBody(readFromResource(TASK_POLL)) - .withStatus(202); - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(pollingTask.getPollUri()) - .respond() - .withStatus(202) - .thenRespond() - .withBody(readFromResource(TASK_DONE)) - .withStatus(201); - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(finishedTask.getWarehouseS3CredentialsUri()) - .respond() - .withBody(readFromResource("/warehouse/s3Credentials-get.json")) - .withStatus(200); - - final WarehouseS3Credentials created = gd.getWarehouseService().addS3Credentials(warehouse, s3Credentials).get(); - assertThat(created, notNullValue()); - assertThat(created.getRegion(), is(REGION)); - assertThat(created.getAccessKey(), is(ACCESS_KEY)); - assertThat(created.getSecretKey(), is(nullValue())); - } - - @Test(expectedExceptions = WarehouseS3CredentialsException.class, - expectedExceptionsMessageRegExp = ".*Unable to add S3 credentials in warehouse, uri: /gdc/datawarehouse/instances/instanceId/s3/region/accessKey$") - public void shouldFailToAddS3Credentials_failOnPoll() throws Exception { - onRequest() - .havingMethodEqualTo("POST") - .havingPathEqualTo(WAREHOUSE_S3_CREDENTIALS_LIST_URI) - .respond() - .withBody(readFromResource(TASK_POLL)) - .withStatus(202); - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(pollingTask.getPollUri()) - .respond() - .withStatus(409); - - gd.getWarehouseService().addS3Credentials(warehouse, s3Credentials).get(); - } - - @Test(expectedExceptions = WarehouseS3CredentialsException.class, - expectedExceptionsMessageRegExp = ".*Unable to POST S3 credentials /gdc/datawarehouse/instances/instanceId/s3 with region: region, access key: accessKey") - public void shouldFailToAddS3Credentials_failOnPost() throws Exception { - onRequest() - .havingMethodEqualTo("POST") - .havingPathEqualTo(WAREHOUSE_S3_CREDENTIALS_LIST_URI) - .respond() - .withStatus(409); - - gd.getWarehouseService().addS3Credentials(warehouse, s3Credentials).get(); - } - - @Test(expectedExceptions = WarehouseS3CredentialsException.class, - expectedExceptionsMessageRegExp = ".*Attempt to add S3 credentials in warehouse failed, can't get the result, uri: /gdc/datawarehouse/instances/instanceId/s3/region/accessKey$") - public void shouldFailToAddS3Credentials_failOnResult() { - onRequest() - .havingMethodEqualTo("POST") - .havingPathEqualTo(WAREHOUSE_S3_CREDENTIALS_LIST_URI) - .respond() - .withBody(readFromResource(TASK_POLL)) - .withStatus(202); - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(pollingTask.getPollUri()) - .respond() - .withStatus(202) - .thenRespond() - .withBody(readFromResource(TASK_DONE)) - .withStatus(201); - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(finishedTask.getWarehouseS3CredentialsUri()) - .respond() - .withStatus(409); - - gd.getWarehouseService().addS3Credentials(warehouse, s3Credentials).get(); - } - - - @Test - public void shouldUpdateS3Credentials() { - onRequest() - .havingMethodEqualTo("PUT") - .havingPathEqualTo(WAREHOUSE_S3_CREDENTIALS_URI) - .havingBody(jsonEquals(readStringFromResource(S3_CREDENTIALS_UPDATE))) - .respond() - .withBody(readFromResource(TASK_POLL)) - .withStatus(202); - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(pollingTask.getPollUri()) - .respond() - .withStatus(202) - .thenRespond() - .withBody(readFromResource(TASK_DONE)) - .withStatus(200); - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(finishedTask.getWarehouseS3CredentialsUri()) - .respond() - .withBody(readFromResource("/warehouse/s3Credentials-get.json")) - .withStatus(200); - - final WarehouseS3Credentials credentials = gd.getWarehouseService() - .getWarehouseS3Credentials(warehouse, s3Credentials.getRegion(), s3Credentials.getAccessKey()); - credentials.setSecretKey(NEW_SECRET_KEY); - - final WarehouseS3Credentials updated = gd.getWarehouseService() - .updateS3Credentials(credentials).get(); - assertThat(updated, notNullValue()); - assertThat(updated.getRegion(), is(REGION)); - assertThat(updated.getAccessKey(), is(ACCESS_KEY)); - assertThat(updated.getSecretKey(), is(nullValue())); - } - - @Test(expectedExceptions = WarehouseS3CredentialsException.class, - expectedExceptionsMessageRegExp = ".*Unable to update S3 credentials in warehouse, uri: /gdc/datawarehouse/instances/instanceId/s3/region/accessKey$") - public void shouldFailToUpdateS3Credentials_failOnPoll() throws Exception { - onRequest() - .havingMethodEqualTo("PUT") - .havingPathEqualTo(WAREHOUSE_S3_CREDENTIALS_URI) - .respond() - .withBody(readFromResource(TASK_POLL)) - .withStatus(202); - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(pollingTask.getPollUri()) - .respond() - .withStatus(409); - - gd.getWarehouseService().updateS3Credentials(s3CredentialsWithLinks).get(); - } - - @Test(expectedExceptions = WarehouseS3CredentialsException.class, - expectedExceptionsMessageRegExp = ".*Unable to PUT S3 credentials /gdc/datawarehouse/instances/instanceId/s3/region/accessKey with region: region, access key: accessKey") - public void shouldFailToUpdateS3Credentials_failOnPut() throws Exception { - onRequest() - .havingMethodEqualTo("PUT") - .havingPathEqualTo(WAREHOUSE_S3_CREDENTIALS_URI) - .respond() - .withStatus(409); - - gd.getWarehouseService().updateS3Credentials(s3CredentialsWithLinks).get(); - } - - @Test(expectedExceptions = WarehouseS3CredentialsException.class, - expectedExceptionsMessageRegExp = ".*Attempt to update S3 credentials in warehouse failed, can't get the result, uri: /gdc/datawarehouse/instances/instanceId/s3/region/accessKey$") - public void shouldFailToUpdateS3Credentials_failOnResult() { - onRequest() - .havingMethodEqualTo("PUT") - .havingPathEqualTo(WAREHOUSE_S3_CREDENTIALS_URI) - .respond() - .withBody(readFromResource(TASK_POLL)) - .withStatus(202); - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(pollingTask.getPollUri()) - .respond() - .withStatus(202) - .thenRespond() - .withBody(readFromResource(TASK_DONE)) - .withStatus(200); - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(finishedTask.getWarehouseS3CredentialsUri()) - .respond() - .withStatus(409); - - gd.getWarehouseService().updateS3Credentials(s3CredentialsWithLinks).get(); - } - - @Test - public void shouldRemoveS3Credentials() { - onRequest() - .havingMethodEqualTo("DELETE") - .havingPathEqualTo(WAREHOUSE_S3_CREDENTIALS_URI) - .havingBodyEqualTo("") - .respond() - .withBody(readFromResource(TASK_POLL)) - .withStatus(202); - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(pollingTask.getPollUri()) - .respond() - .withStatus(202) - .thenRespond() - .withBody(readFromResource(TASK_DONE)) - .withStatus(200); - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(finishedTask.getWarehouseS3CredentialsUri()) - .respond() - .withBody(readFromResource("/warehouse/s3CredentialsList.json")) - .withStatus(200); - - gd.getWarehouseService().removeS3Credentials(s3CredentialsWithLinks).get(); - } - - @Test(expectedExceptions = WarehouseS3CredentialsException.class, - expectedExceptionsMessageRegExp = ".*Unable to delete S3 credentials in warehouse, uri: /gdc/datawarehouse/instances/instanceId/s3/region/accessKey$") - public void shouldFailToRemoveS3Credentials_failOnPoll() throws Exception { - onRequest() - .havingMethodEqualTo("DELETE") - .havingPathEqualTo(WAREHOUSE_S3_CREDENTIALS_URI) - .respond() - .withBody(readFromResource(TASK_POLL)) - .withStatus(202); - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(pollingTask.getPollUri()) - .respond() - .withStatus(409); - - gd.getWarehouseService().removeS3Credentials(s3CredentialsWithLinks).get(); - } - - @Test(expectedExceptions = WarehouseS3CredentialsException.class, - expectedExceptionsMessageRegExp = ".*Unable to DELETE S3 credentials /gdc/datawarehouse/instances/instanceId/s3/region/accessKey with region: region, access key: accessKey") - public void shouldFailToRemoveS3Credentials_failOnDelete() throws Exception { - onRequest() - .havingMethodEqualTo("DELETE") - .havingPathEqualTo(WAREHOUSE_S3_CREDENTIALS_URI) - .respond() - .withStatus(409); - - gd.getWarehouseService().removeS3Credentials(s3CredentialsWithLinks).get(); - } - - @Test(expectedExceptions = WarehouseS3CredentialsException.class, - expectedExceptionsMessageRegExp = ".*Attempt to delete S3 credentials in warehouse failed, can't get the result, uri: /gdc/datawarehouse/instances/instanceId/s3/region/accessKey$") - public void shouldFailToRemoveS3Credentials_failOnResult() { - onRequest() - .havingMethodEqualTo("DELETE") - .havingPathEqualTo(WAREHOUSE_S3_CREDENTIALS_URI) - .respond() - .withBody(readFromResource(TASK_POLL)) - .withStatus(202); - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(pollingTask.getPollUri()) - .respond() - .withStatus(202) - .thenRespond() - .withBody(readFromResource(TASK_DONE)) - .withStatus(200); - onRequest() - .havingMethodEqualTo("GET") - .havingPathEqualTo(finishedTask.getWarehouseS3CredentialsUri()) - .respond() - .withStatus(409); - - gd.getWarehouseService().removeS3Credentials(s3CredentialsWithLinks).get(); - } } diff --git a/src/test/java/com/gooddata/warehouse/WarehouseServiceTest.java b/src/test/java/com/gooddata/warehouse/WarehouseServiceTest.java deleted file mode 100644 index 1ae77fe53..000000000 --- a/src/test/java/com/gooddata/warehouse/WarehouseServiceTest.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. - * This source code is licensed under the BSD-style license found in the - * LICENSE.txt file in the root directory of this source tree. - */ -package com.gooddata.warehouse; - -import com.gooddata.GoodDataSettings; -import org.mockito.Mock; -import org.mockito.MockitoAnnotations; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpMethod; -import org.springframework.http.ResponseEntity; -import org.springframework.web.client.RestTemplate; -import org.testng.annotations.BeforeMethod; -import org.testng.annotations.Test; - -import static org.mockito.Matchers.any; -import static org.mockito.Matchers.anyCollection; -import static org.mockito.Matchers.anyString; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.when; - -public class WarehouseServiceTest { - private WarehouseService service; - - private WarehouseS3Credentials s3Credentials = new WarehouseS3Credentials("region", "accessKey", "secretKey"); - - @Mock - private Warehouse warehouse; - @Mock - private RestTemplate restTemplate; - - @BeforeMethod - public void setUp() throws Exception { - MockitoAnnotations.initMocks(this); - service = new WarehouseService(restTemplate, new GoodDataSettings()); - when(warehouse.getId()).thenReturn("instanceId"); - } - - @Test(expectedExceptions = WarehouseS3CredentialsException.class, expectedExceptionsMessageRegExp = ".*Unable to POST S3 credentials.*") - public void addS3Credentials_shouldFailUponEmptyResponse() { - when(restTemplate.exchange(anyString(), any(HttpMethod.class), any(HttpEntity.class), any(Class.class), anyCollection())) - .thenReturn(null); - service.addS3Credentials(warehouse, s3Credentials); - } -} diff --git a/src/test/java/com/gooddata/warehouse/WarehouseTaskTest.java b/src/test/java/com/gooddata/warehouse/WarehouseTaskTest.java index ae094ce87..0960672c4 100644 --- a/src/test/java/com/gooddata/warehouse/WarehouseTaskTest.java +++ b/src/test/java/com/gooddata/warehouse/WarehouseTaskTest.java @@ -27,7 +27,6 @@ public void testDeserializeInstance() throws Exception { final WarehouseTask warehouseTask = readObjectFromResource("/warehouse/warehouseTask-finished.json", WarehouseTask.class); assertThat(warehouseTask.getWarehouseLink(), is("/gdc/datawarehouse/instances/instanceId")); assertThat(warehouseTask.getWarehouseUri(), is("/gdc/datawarehouse/instances/instanceId")); - assertThat(warehouseTask.getWarehouseS3CredentialsUri(), is("/gdc/datawarehouse/instances/instanceId/s3/region/accessKey")); } } diff --git a/src/test/resources/warehouse/s3Credentials-create.json b/src/test/resources/warehouse/s3Credentials-create.json deleted file mode 100644 index 50a975802..000000000 --- a/src/test/resources/warehouse/s3Credentials-create.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "s3Credentials": { - "region": "region", - "accessKey": "accessKey", - "secretKey": "secretKey" - } -} diff --git a/src/test/resources/warehouse/s3Credentials-get.json b/src/test/resources/warehouse/s3Credentials-get.json deleted file mode 100644 index 0c657593c..000000000 --- a/src/test/resources/warehouse/s3Credentials-get.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "s3Credentials": { - "region": "region", - "accessKey": "accessKey", - "updated": "2017-08-02T09:40:24.064Z", - "links": { - "self": "/gdc/datawarehouse/instances/instanceId/s3/region/accessKey", - "parent": "/gdc/datawarehouse/instances/instanceId/s3", - "instance": "/gdc/datawarehouse/instances/instanceId", - "updatedBy": "/gdc/datawarehouse/instances/instanceId/users/{user-id}" - } - } -} diff --git a/src/test/resources/warehouse/s3Credentials-update.json b/src/test/resources/warehouse/s3Credentials-update.json deleted file mode 100644 index a0e5e7342..000000000 --- a/src/test/resources/warehouse/s3Credentials-update.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "s3Credentials": { - "region": "region", - "accessKey": "accessKey", - "secretKey": "newSecretKey" - } -} diff --git a/src/test/resources/warehouse/s3CredentialsList.json b/src/test/resources/warehouse/s3CredentialsList.json deleted file mode 100644 index 8555cb1bc..000000000 --- a/src/test/resources/warehouse/s3CredentialsList.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "s3CredentialsList": { - "items": [ - { - "s3Credentials": { - "region": "region", - "accessKey": "accessKey", - "secretKey": "secretKey", - "updated": "2017-08-02T09:40:24.064Z", - "links": { - "self": "/gdc/datawarehouse/instances/{instance-id}/s3/region/accessKey", - "parent": "/gdc/datawarehouse/instances/{instance-id}/s3", - "instance": "/gdc/datawarehouse/instances/{instance-id}", - "updatedBy": "/gdc/datawarehouse/instances/{instance-id}/users/{user-id}" - } - } - }, - { - "s3Credentials": { - "region": "region2", - "accessKey": "accessKey2", - "secretKey": "secretKey2" - } - } - ], - "paging": {}, - "links": { - "parent": "/gdc/datawarehouse/instances/{instance-id}", - "self": "/gdc/datawarehouse/instances/{instance-id}/s3" - } - } -} diff --git a/src/test/resources/warehouse/warehouseTask-finished.json b/src/test/resources/warehouse/warehouseTask-finished.json index c17ec01c8..27ccccf5c 100644 --- a/src/test/resources/warehouse/warehouseTask-finished.json +++ b/src/test/resources/warehouse/warehouseTask-finished.json @@ -3,8 +3,7 @@ "links": { "instance": "/gdc/datawarehouse/instances/instanceId", "user": "/gdc/datawarehouse/instances/instanceId/users/userId", - "users": "/gdc/datawarehouse/instances/instanceId/users", - "s3Credentials": "/gdc/datawarehouse/instances/instanceId/s3/region/accessKey" + "users": "/gdc/datawarehouse/instances/instanceId/users" } } } From e02ae12a0a1a4cae5ceadf80633e1878d5493920 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20=C5=A0tumpf?= Date: Thu, 11 Oct 2018 10:52:31 +0200 Subject: [PATCH 043/487] Fix dependency in WarehouseServiceAT --- .../java/com/gooddata/warehouse/WarehouseServiceAT.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/test/java/com/gooddata/warehouse/WarehouseServiceAT.java b/src/test/java/com/gooddata/warehouse/WarehouseServiceAT.java index d6fcfd951..17c891621 100644 --- a/src/test/java/com/gooddata/warehouse/WarehouseServiceAT.java +++ b/src/test/java/com/gooddata/warehouse/WarehouseServiceAT.java @@ -58,6 +58,13 @@ public void initIsolatedDomainGroup() { account = gd.getAccountService().createAccount(new Account(LOGIN, "nnPvcGXU7f", "FirstName", "LastName"), getProperty("domain")); } + @Test(groups = "warehouse", dependsOnGroups = "account") + public void createWarehouse() throws Exception { + final Warehouse wh = new Warehouse(title, warehouseToken); + wh.setEnvironment(Environment.TESTING); + warehouse = service.createWarehouse(wh).get(60, TimeUnit.MINUTES); + } + @Test(groups = "warehouse", dependsOnMethods = "createWarehouse") public void getWarehouse() throws Exception { final Warehouse warehouse = service.getWarehouseById(this.warehouse.getId()); From 5992b57bc15f916340c1f84960bdbcf5a53adbdf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 11 Oct 2018 09:51:14 +0000 Subject: [PATCH 044/487] Bump jadler.version from 1.1.1 to 1.3.0 Bumps `jadler.version` from 1.1.1 to 1.3.0. Updates `jadler-core` from 1.1.1 to 1.3.0 - [Release notes](https://github.com/jadler-mocking/jadler/releases) - [Changelog](https://github.com/jadler-mocking/jadler/blob/master/RELEASENOTES.md) - [Commits](https://github.com/jadler-mocking/jadler/compare/jadler-pom-1.1.1...jadler-pom-1.3.0) Updates `jadler-all` from 1.1.1 to 1.3.0 - [Release notes](https://github.com/jadler-mocking/jadler/releases) - [Changelog](https://github.com/jadler-mocking/jadler/blob/master/RELEASENOTES.md) - [Commits](https://github.com/jadler-mocking/jadler/compare/jadler-pom-1.1.1...jadler-pom-1.3.0) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b9f14af5b..96f7c77cf 100644 --- a/pom.xml +++ b/pom.xml @@ -44,7 +44,7 @@ 2.8.11 2.8.11.2 4.3.18.RELEASE - 1.1.1 + 1.3.0 1.23.0 2.20.1 2.20.1 From 38b105693f6bd95b5cc8f68664f126babe1a86b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 11 Oct 2018 09:51:18 +0000 Subject: [PATCH 045/487] Bump build-helper-maven-plugin from 1.9.1 to 3.0.0 Bumps [build-helper-maven-plugin](https://github.com/mojohaus/build-helper-maven-plugin) from 1.9.1 to 3.0.0. - [Release notes](https://github.com/mojohaus/build-helper-maven-plugin/releases) - [Commits](https://github.com/mojohaus/build-helper-maven-plugin/compare/build-helper-maven-plugin-1.9.1...build-helper-maven-plugin-3.0.0) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b9f14af5b..164b40b47 100644 --- a/pom.xml +++ b/pom.xml @@ -75,7 +75,7 @@ org.codehaus.mojo build-helper-maven-plugin - 1.9.1 + 3.0.0 set-animalSnifferJdkVersion-property From 06a0ac427fcf589ac5a89c0d0a0782cf905e5ba0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 11 Oct 2018 13:18:31 +0000 Subject: [PATCH 046/487] Bump gooddata-rest-common from 1.2.1 to 1.2.2 Bumps [gooddata-rest-common](https://github.com/gooddata/gooddata-rest-common) from 1.2.1 to 1.2.2. - [Release notes](https://github.com/gooddata/gooddata-rest-common/releases) - [Commits](https://github.com/gooddata/gooddata-rest-common/commits/gooddata-rest-common-1.2.2) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 96f7c77cf..b5016444b 100644 --- a/pom.xml +++ b/pom.xml @@ -258,7 +258,7 @@ com.gooddata gooddata-rest-common - 1.2.1 + 1.2.2 com.gooddata From 49f00714377bb54923df8241e5541a8a81c281bb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 11 Oct 2018 13:18:39 +0000 Subject: [PATCH 047/487] Bump sardine from 5.1 to 5.8 Bumps [sardine](https://github.com/lookfirst/sardine) from 5.1 to 5.8. - [Release notes](https://github.com/lookfirst/sardine/releases) - [Commits](https://github.com/lookfirst/sardine/compare/sardine-5.1...sardine-5.8) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 96f7c77cf..6b368a938 100644 --- a/pom.xml +++ b/pom.xml @@ -329,7 +329,7 @@ com.github.lookfirst sardine - 5.1 + 5.8 joda-time From 7215cc74f4405de39d48def297bc18df7221d00f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 11 Oct 2018 13:18:41 +0000 Subject: [PATCH 048/487] Bump maven-failsafe-plugin from 2.20.1 to 2.22.0 Bumps [maven-failsafe-plugin](https://github.com/apache/maven-surefire) from 2.20.1 to 2.22.0. - [Release notes](https://github.com/apache/maven-surefire/releases) - [Commits](https://github.com/apache/maven-surefire/compare/surefire-2.20.1...surefire-2.22.0) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 96f7c77cf..da3896694 100644 --- a/pom.xml +++ b/pom.xml @@ -47,7 +47,7 @@ 1.3.0 1.23.0 2.20.1 - 2.20.1 + 2.22.0 From ca9c38ff4c2e84148a0c5e9738911d084b207fc8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 11 Oct 2018 13:18:49 +0000 Subject: [PATCH 049/487] Bump json-unit.version from 1.23.0 to 1.31.1 Bumps `json-unit.version` from 1.23.0 to 1.31.1. Updates `json-unit` from 1.23.0 to 1.31.1 - [Release notes](https://github.com/lukas-krecan/JsonUnit/releases) - [Commits](https://github.com/lukas-krecan/JsonUnit/compare/json-unit-parent-1.23.0...json-unit-parent-1.31.1) Updates `json-unit-core` from 1.23.0 to 1.31.1 - [Release notes](https://github.com/lukas-krecan/JsonUnit/releases) - [Commits](https://github.com/lukas-krecan/JsonUnit/compare/json-unit-parent-1.23.0...json-unit-parent-1.31.1) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 96f7c77cf..e4cf04684 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ 2.8.11.2 4.3.18.RELEASE 1.3.0 - 1.23.0 + 1.31.1 2.20.1 2.20.1 From ef5fce08e014510245c1d46381560a703c0233ed Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 11 Oct 2018 13:27:10 +0000 Subject: [PATCH 050/487] Bump surefire.version from 2.20.1 to 2.22.0 Bumps `surefire.version` from 2.20.1 to 2.22.0. Updates `surefire-junit47` from 2.20.1 to 2.22.0 Updates `surefire-testng` from 2.20.1 to 2.22.0 Updates `maven-surefire-plugin` from 2.20.1 to 2.22.0 - [Release notes](https://github.com/apache/maven-surefire/releases) - [Commits](https://github.com/apache/maven-surefire/compare/surefire-2.20.1...surefire-2.22.0) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cf2538ce0..a17503ccf 100644 --- a/pom.xml +++ b/pom.xml @@ -46,7 +46,7 @@ 4.3.18.RELEASE 1.3.0 1.31.1 - 2.20.1 + 2.22.0 2.22.0 From 78acd985d8ae5c639a9112827a453ef3a0fa8d84 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Fri, 12 Oct 2018 13:19:05 +0000 Subject: [PATCH 051/487] Bump equalsverifier from 2.4.2 to 3.0 Bumps [equalsverifier](https://github.com/jqno/equalsverifier) from 2.4.2 to 3.0. - [Release notes](https://github.com/jqno/equalsverifier/releases) - [Commits](https://github.com/jqno/equalsverifier/compare/equalsverifier-2.4.2...equalsverifier-3.0) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a17503ccf..abe45dc16 100644 --- a/pom.xml +++ b/pom.xml @@ -412,7 +412,7 @@ nl.jqno.equalsverifier equalsverifier - 2.4.2 + 3.0 test From 94769662ecb01cf72d642245f2d21982ccc9904e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Fri, 12 Oct 2018 13:19:13 +0000 Subject: [PATCH 052/487] Bump surefire.version from 2.22.0 to 2.22.1 Bumps `surefire.version` from 2.22.0 to 2.22.1. Updates `surefire-junit47` from 2.22.0 to 2.22.1 Updates `surefire-testng` from 2.22.0 to 2.22.1 Updates `maven-surefire-plugin` from 2.22.0 to 2.22.1 - [Release notes](https://github.com/apache/maven-surefire/releases) - [Commits](https://github.com/apache/maven-surefire/compare/surefire-2.22.0...surefire-2.22.1) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a17503ccf..5271a1c1e 100644 --- a/pom.xml +++ b/pom.xml @@ -46,7 +46,7 @@ 4.3.18.RELEASE 1.3.0 1.31.1 - 2.22.0 + 2.22.1 2.22.0 From c6cc0eafc8236f9b7583dd057c1af6b399fd3d51 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Fri, 12 Oct 2018 13:19:13 +0000 Subject: [PATCH 053/487] Bump cglib-nodep from 3.2.5 to 3.2.8 Bumps [cglib-nodep](https://github.com/cglib/cglib) from 3.2.5 to 3.2.8. - [Release notes](https://github.com/cglib/cglib/releases) - [Commits](https://github.com/cglib/cglib/commits) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a17503ccf..8c033f5ad 100644 --- a/pom.xml +++ b/pom.xml @@ -430,7 +430,7 @@ cglib cglib-nodep - 3.2.5 + 3.2.8 test From 3154f70c71c0b134606a629ccd203a8540e2ae31 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Fri, 12 Oct 2018 13:19:15 +0000 Subject: [PATCH 054/487] Bump animal-sniffer-maven-plugin from 1.14 to 1.17 Bumps [animal-sniffer-maven-plugin](https://github.com/mojohaus/animal-sniffer) from 1.14 to 1.17. - [Release notes](https://github.com/mojohaus/animal-sniffer/releases) - [Commits](https://github.com/mojohaus/animal-sniffer/compare/animal-sniffer-parent-1.14...animal-sniffer-parent-1.17) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index a17503ccf..cbc844645 100644 --- a/pom.xml +++ b/pom.xml @@ -95,7 +95,7 @@ org.codehaus.mojo animal-sniffer-maven-plugin - 1.14 + 1.17 org.codehaus.mojo.signature From 3d2eae55a5a38d07057770c905a86e909447d418 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 11 Oct 2018 09:51:24 +0000 Subject: [PATCH 055/487] Bump jackson.version from 2.8.11 to 2.9.7 Bumps `jackson.version` from 2.8.11 to 2.9.7. Updates `jackson-core` from 2.8.11 to 2.9.7 - [Release notes](https://github.com/FasterXML/jackson-core/releases) - [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.8.11...jackson-core-2.9.7) Updates `jackson-annotations` from 2.8.11 to 2.9.7 - [Release notes](https://github.com/FasterXML/jackson/releases) - [Commits](https://github.com/FasterXML/jackson/commits) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b9f14af5b..050cb2d15 100644 --- a/pom.xml +++ b/pom.xml @@ -41,7 +41,7 @@ 4.5.6 4.4.10 - 2.8.11 + 2.9.7 2.8.11.2 4.3.18.RELEASE 1.1.1 From a971eee63ccea772475dc8f59a6928fbe044a268 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 11 Oct 2018 09:51:14 +0000 Subject: [PATCH 056/487] Bump jadler.version from 1.1.1 to 1.3.0 Bumps `jadler.version` from 1.1.1 to 1.3.0. Updates `jadler-core` from 1.1.1 to 1.3.0 - [Release notes](https://github.com/jadler-mocking/jadler/releases) - [Changelog](https://github.com/jadler-mocking/jadler/blob/master/RELEASENOTES.md) - [Commits](https://github.com/jadler-mocking/jadler/compare/jadler-pom-1.1.1...jadler-pom-1.3.0) Updates `jadler-all` from 1.1.1 to 1.3.0 - [Release notes](https://github.com/jadler-mocking/jadler/releases) - [Changelog](https://github.com/jadler-mocking/jadler/blob/master/RELEASENOTES.md) - [Commits](https://github.com/jadler-mocking/jadler/compare/jadler-pom-1.1.1...jadler-pom-1.3.0) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b9f14af5b..96f7c77cf 100644 --- a/pom.xml +++ b/pom.xml @@ -44,7 +44,7 @@ 2.8.11 2.8.11.2 4.3.18.RELEASE - 1.1.1 + 1.3.0 1.23.0 2.20.1 2.20.1 From 107bc8a9898a62e0092ca4fb672d56ad87175aa7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 11 Oct 2018 13:18:31 +0000 Subject: [PATCH 057/487] Bump gooddata-rest-common from 1.2.1 to 1.2.2 Bumps [gooddata-rest-common](https://github.com/gooddata/gooddata-rest-common) from 1.2.1 to 1.2.2. - [Release notes](https://github.com/gooddata/gooddata-rest-common/releases) - [Commits](https://github.com/gooddata/gooddata-rest-common/commits/gooddata-rest-common-1.2.2) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 96f7c77cf..b5016444b 100644 --- a/pom.xml +++ b/pom.xml @@ -258,7 +258,7 @@ com.gooddata gooddata-rest-common - 1.2.1 + 1.2.2 com.gooddata From b60c789b1386fe485d160c5a42d4e52569f927fa Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 11 Oct 2018 13:18:41 +0000 Subject: [PATCH 058/487] Bump maven-failsafe-plugin from 2.20.1 to 2.22.0 Bumps [maven-failsafe-plugin](https://github.com/apache/maven-surefire) from 2.20.1 to 2.22.0. - [Release notes](https://github.com/apache/maven-surefire/releases) - [Commits](https://github.com/apache/maven-surefire/compare/surefire-2.20.1...surefire-2.22.0) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index b5016444b..d0d8423fb 100644 --- a/pom.xml +++ b/pom.xml @@ -47,7 +47,7 @@ 1.3.0 1.23.0 2.20.1 - 2.20.1 + 2.22.0 From 2491877a261b24803cdfb145c0205ad1c94de3c3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 11 Oct 2018 13:18:49 +0000 Subject: [PATCH 059/487] Bump json-unit.version from 1.23.0 to 1.31.1 Bumps `json-unit.version` from 1.23.0 to 1.31.1. Updates `json-unit` from 1.23.0 to 1.31.1 - [Release notes](https://github.com/lukas-krecan/JsonUnit/releases) - [Commits](https://github.com/lukas-krecan/JsonUnit/compare/json-unit-parent-1.23.0...json-unit-parent-1.31.1) Updates `json-unit-core` from 1.23.0 to 1.31.1 - [Release notes](https://github.com/lukas-krecan/JsonUnit/releases) - [Commits](https://github.com/lukas-krecan/JsonUnit/compare/json-unit-parent-1.23.0...json-unit-parent-1.31.1) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d0d8423fb..cf2538ce0 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ 2.8.11.2 4.3.18.RELEASE 1.3.0 - 1.23.0 + 1.31.1 2.20.1 2.22.0 From 6fff275e5214057f9a6599d8e75a469c33398823 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 11 Oct 2018 13:27:10 +0000 Subject: [PATCH 060/487] Bump surefire.version from 2.20.1 to 2.22.0 Bumps `surefire.version` from 2.20.1 to 2.22.0. Updates `surefire-junit47` from 2.20.1 to 2.22.0 Updates `surefire-testng` from 2.20.1 to 2.22.0 Updates `maven-surefire-plugin` from 2.20.1 to 2.22.0 - [Release notes](https://github.com/apache/maven-surefire/releases) - [Commits](https://github.com/apache/maven-surefire/compare/surefire-2.20.1...surefire-2.22.0) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cf2538ce0..a17503ccf 100644 --- a/pom.xml +++ b/pom.xml @@ -46,7 +46,7 @@ 4.3.18.RELEASE 1.3.0 1.31.1 - 2.20.1 + 2.22.0 2.22.0 From f38f28d1d2d53849c6ffc3ea686252a32d401725 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Fri, 12 Oct 2018 13:18:59 +0000 Subject: [PATCH 061/487] Bump jackson-databind from 2.8.11.2 to 2.9.7 Bumps [jackson-databind](https://github.com/FasterXML/jackson) from 2.8.11.2 to 2.9.7. - [Release notes](https://github.com/FasterXML/jackson/releases) - [Commits](https://github.com/FasterXML/jackson/commits) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 9b4d6b925..77a5638cd 100644 --- a/pom.xml +++ b/pom.xml @@ -42,7 +42,7 @@ 4.5.6 4.4.10 2.9.7 - 2.8.11.2 + 2.9.7 4.3.18.RELEASE 1.3.0 1.31.1 From 8269117cbc6d72a0a042116aedec1cb0cc4d89c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Fri, 12 Oct 2018 20:37:00 +0000 Subject: [PATCH 062/487] Bump groovy-all from 2.4.12 to 2.4.15 Bumps [groovy-all](https://github.com/apache/groovy) from 2.4.12 to 2.4.15. - [Release notes](https://github.com/apache/groovy/releases) - [Commits](https://github.com/apache/groovy/commits) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d1ad0855b..baf32c5ef 100644 --- a/pom.xml +++ b/pom.xml @@ -424,7 +424,7 @@ org.codehaus.groovy groovy-all - 2.4.12 + 2.4.15 test From cda243b73a1f6433c7b405a16e1e298cd02f900b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Fri, 12 Oct 2018 20:37:01 +0000 Subject: [PATCH 063/487] Bump commons-io from 2.4 to 2.6 Bumps commons-io from 2.4 to 2.6. Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d1ad0855b..119748e9c 100644 --- a/pom.xml +++ b/pom.xml @@ -340,7 +340,7 @@ commons-io commons-io - 2.4 + 2.6 test From 2fd69d9044e4a924de2d75fa420d7da7aee03a89 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Fri, 12 Oct 2018 20:37:02 +0000 Subject: [PATCH 064/487] Bump joda-time from 2.7 to 2.10 Bumps [joda-time](https://github.com/JodaOrg/joda-time) from 2.7 to 2.10. - [Release notes](https://github.com/JodaOrg/joda-time/releases) - [Changelog](https://github.com/JodaOrg/joda-time/blob/master/RELEASE-NOTES.txt) - [Commits](https://github.com/JodaOrg/joda-time/compare/v2.7...v2.10) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d1ad0855b..f433dd96c 100644 --- a/pom.xml +++ b/pom.xml @@ -334,7 +334,7 @@ joda-time joda-time - 2.7 + 2.10 From 0ac985b2ade8d61520c53a3f733511c567b98e86 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Fri, 12 Oct 2018 20:37:04 +0000 Subject: [PATCH 065/487] Bump commons-lang3 from 3.5 to 3.8.1 Bumps commons-lang3 from 3.5 to 3.8.1. Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d1ad0855b..19d720bd1 100644 --- a/pom.xml +++ b/pom.xml @@ -268,7 +268,7 @@ org.apache.commons commons-lang3 - 3.5 + 3.8.1 org.apache.httpcomponents From e6a2202460d21d5ca28d016cd146f72ba05114f3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Fri, 12 Oct 2018 20:37:08 +0000 Subject: [PATCH 066/487] Bump testng from 6.8.21 to 6.14.3 Bumps [testng](https://github.com/cbeust/testng) from 6.8.21 to 6.14.3. - [Release notes](https://github.com/cbeust/testng/releases) - [Changelog](https://github.com/cbeust/testng/blob/master/CHANGES.txt) - [Commits](https://github.com/cbeust/testng/compare/testng-6.8.21...6.14.3) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d1ad0855b..3b09f8167 100644 --- a/pom.xml +++ b/pom.xml @@ -346,7 +346,7 @@ org.testng testng - 6.8.21 + 6.14.3 test From d12b872f1484052fa5fb439e67a09306687624d6 Mon Sep 17 00:00:00 2001 From: Lukas Slovak Date: Fri, 14 Sep 2018 12:52:24 +0200 Subject: [PATCH 067/487] In zendesk4 connector, we need to know if scheduler start a reload of some project --- .../connector/Zendesk4ProcessExecution.java | 15 ++++++++++++++- .../connector/Zendesk4ProcessExecutionTest.java | 17 ++++++++++++----- .../connector/process-execution-reload.json | 5 +++++ 3 files changed, 31 insertions(+), 6 deletions(-) create mode 100644 src/test/resources/connector/process-execution-reload.json diff --git a/src/main/java/com/gooddata/connector/Zendesk4ProcessExecution.java b/src/main/java/com/gooddata/connector/Zendesk4ProcessExecution.java index 8a9f36286..f46fd57fa 100644 --- a/src/main/java/com/gooddata/connector/Zendesk4ProcessExecution.java +++ b/src/main/java/com/gooddata/connector/Zendesk4ProcessExecution.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2018, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ @@ -28,6 +28,8 @@ public class Zendesk4ProcessExecution implements ProcessExecution { private Boolean incremental; + private Boolean reload; + private Map startTimes; private DownloadParams downloadParams; @@ -45,6 +47,17 @@ public void setIncremental(final Boolean incremental) { this.incremental = incremental; } + public Boolean getReload() { + return reload; + } + + /** + * set by scheduler, when the process is actually a reload of a project + */ + public void setReload(final Boolean reload) { + this.reload = reload; + } + @JsonAnyGetter @JsonSerialize(contentUsing = ISODateTimeSerializer.class) public Map getStartTimes() { diff --git a/src/test/java/com/gooddata/connector/Zendesk4ProcessExecutionTest.java b/src/test/java/com/gooddata/connector/Zendesk4ProcessExecutionTest.java index 1561207ea..eb7939afa 100644 --- a/src/test/java/com/gooddata/connector/Zendesk4ProcessExecutionTest.java +++ b/src/test/java/com/gooddata/connector/Zendesk4ProcessExecutionTest.java @@ -18,19 +18,19 @@ public class Zendesk4ProcessExecutionTest { @Test - public void testShouldSerialize() throws Exception { + public void testShouldSerialize() { assertThat(new Zendesk4ProcessExecution(), jsonEquals(resource("connector/process-execution-empty.json"))); } @Test - public void testShouldSerializeIncremental() throws Exception { + public void testShouldSerializeIncremental() { final Zendesk4ProcessExecution execution = new Zendesk4ProcessExecution(); execution.setIncremental(true); assertThat(execution, jsonEquals(resource("connector/process-execution-incremental.json"))); } @Test - public void testShouldSerializeStartTimes() throws Exception { + public void testShouldSerializeStartTimes() { final Zendesk4ProcessExecution execution = new Zendesk4ProcessExecution(); execution.setIncremental(true); execution.setStartTime("tickets", new DateTime(0L)); @@ -38,14 +38,21 @@ public void testShouldSerializeStartTimes() throws Exception { } @Test - public void testShouldSerializeDownloadParams() throws Exception { + public void testShouldSerializeDownloadParams() { final Zendesk4ProcessExecution execution = new Zendesk4ProcessExecution(); execution.setDownloadParams(new DownloadParams(true, 5, 3600)); assertThat(execution, jsonEquals(resource("connector/process-execution-zendesk4-download.json"))); } @Test - public void testGetDownloadParams() throws Exception { + public void testShouldSerializeReload() { + final Zendesk4ProcessExecution execution = new Zendesk4ProcessExecution(); + execution.setReload(true); + assertThat(execution, jsonEquals(resource("connector/process-execution-reload.json"))); + } + + @Test + public void testGetDownloadParams() { final Zendesk4ProcessExecution execution = new Zendesk4ProcessExecution(); final DownloadParams downloadParams = execution.getDownloadParams(); assertThat(downloadParams, notNullValue()); diff --git a/src/test/resources/connector/process-execution-reload.json b/src/test/resources/connector/process-execution-reload.json new file mode 100644 index 000000000..356349bd6 --- /dev/null +++ b/src/test/resources/connector/process-execution-reload.json @@ -0,0 +1,5 @@ +{ + "process": { + "reload": true + } +} \ No newline at end of file From 88885c4b9884c958d4cc1b194b349894e44f680e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 15 Oct 2018 12:21:42 +0000 Subject: [PATCH 068/487] Bump coveralls-maven-plugin from 4.1.0 to 4.3.0 Bumps [coveralls-maven-plugin](https://github.com/trautonen/coveralls-maven-plugin) from 4.1.0 to 4.3.0. - [Release notes](https://github.com/trautonen/coveralls-maven-plugin/releases) - [Changelog](https://github.com/trautonen/coveralls-maven-plugin/blob/master/CHANGELOG.md) - [Commits](https://github.com/trautonen/coveralls-maven-plugin/compare/v4.1.0...v4.3.0) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 05e0c9b35..8a786707e 100644 --- a/pom.xml +++ b/pom.xml @@ -210,7 +210,7 @@ org.eluder.coveralls coveralls-maven-plugin - 4.1.0 + 4.3.0 org.jacoco From e3ee2fe758e0055c39389c79dd96863ee4fb6d3f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 15 Oct 2018 12:21:50 +0000 Subject: [PATCH 069/487] Bump jacoco-maven-plugin from 0.7.2.201409121644 to 0.8.2 Bumps [jacoco-maven-plugin](https://github.com/jacoco/jacoco) from 0.7.2.201409121644 to 0.8.2. - [Release notes](https://github.com/jacoco/jacoco/releases) - [Commits](https://github.com/jacoco/jacoco/commits/v0.8.2) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 05e0c9b35..8a3f352f0 100644 --- a/pom.xml +++ b/pom.xml @@ -215,7 +215,7 @@ org.jacoco jacoco-maven-plugin - 0.7.2.201409121644 + 0.8.2 jacoco-prepare-agent From e5b44b444bd5e5a39eb6512cd5a5d1d9301a0770 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 15 Oct 2018 13:19:38 +0000 Subject: [PATCH 070/487] Bump gmavenplus-plugin from 1.6 to 1.6.2 Bumps [gmavenplus-plugin](https://github.com/groovy/GMavenPlus) from 1.6 to 1.6.2. - [Release notes](https://github.com/groovy/GMavenPlus/releases) - [Commits](https://github.com/groovy/GMavenPlus/compare/1.6...1.6.2) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cd7c72c5e..7636e048a 100644 --- a/pom.xml +++ b/pom.xml @@ -132,7 +132,7 @@ org.codehaus.gmavenplus gmavenplus-plugin - 1.6 + 1.6.2 From 4281c6c5c82aa64eebf2ee583c467b560a000a18 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 15 Oct 2018 13:19:57 +0000 Subject: [PATCH 071/487] Bump maven-failsafe-plugin from 2.22.0 to 2.22.1 Bumps [maven-failsafe-plugin](https://github.com/apache/maven-surefire) from 2.22.0 to 2.22.1. - [Release notes](https://github.com/apache/maven-surefire/releases) - [Commits](https://github.com/apache/maven-surefire/compare/surefire-2.22.0...surefire-2.22.1) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index cd7c72c5e..63d6365cf 100644 --- a/pom.xml +++ b/pom.xml @@ -47,7 +47,7 @@ 1.3.0 1.31.1 2.22.1 - 2.22.0 + 2.22.1 From 38dceb1534acbd8680bcb5189a434ec6c29866ce Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 15 Oct 2018 12:21:38 +0000 Subject: [PATCH 072/487] Bump spock-core from 1.1-groovy-2.4 to 1.2-groovy-2.4 Bumps spock-core from 1.1-groovy-2.4 to 1.2-groovy-2.4. Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 05e0c9b35..860bfaebe 100644 --- a/pom.xml +++ b/pom.xml @@ -418,7 +418,7 @@ org.spockframework spock-core - 1.1-groovy-2.4 + 1.2-groovy-2.4 test From 458131d34ad9aa3bc678bb68cd3aa9fac023b4b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Tos=CC=8Covsky=CC=81?= Date: Sun, 28 Oct 2018 22:07:39 +0100 Subject: [PATCH 073/487] added missing MD obj flags (AbstractObj.Meta.flags) property --- .../java/com/gooddata/md/AbstractObj.java | 16 +++- src/main/java/com/gooddata/md/Meta.java | 87 +++++++++++++++++-- .../java/com/gooddata/md/ScheduledMail.java | 4 +- .../java/com/gooddata/project/Project.java | 5 +- src/test/java/com/gooddata/md/MetaTest.java | 20 ++++- src/test/java/com/gooddata/md/ObjTest.java | 5 +- src/test/resources/md/meta-withFlags.json | 18 ++++ 7 files changed, 141 insertions(+), 14 deletions(-) create mode 100644 src/test/resources/md/meta-withFlags.json diff --git a/src/main/java/com/gooddata/md/AbstractObj.java b/src/main/java/com/gooddata/md/AbstractObj.java index 0f8dab755..153b939be 100644 --- a/src/main/java/com/gooddata/md/AbstractObj.java +++ b/src/main/java/com/gooddata/md/AbstractObj.java @@ -31,6 +31,7 @@ protected AbstractObj(@JsonProperty("meta") Meta meta) { /** * Returns internally generated ID of the object (that's part of the object URI). + * * @return internal ID of the object */ @JsonIgnore @@ -110,6 +111,7 @@ public void setDeprecated(Boolean deprecated) { /** * Returns user-specified identifier of the object. + * * @return user-specified object identifier */ @JsonIgnore @@ -157,17 +159,27 @@ public void setSharedWithSomeone(Boolean sharedWithSomeone) { meta.setSharedWithSomeone(sharedWithSomeone); } + @JsonIgnore + public Set getFlags() { + return meta.getFlags(); + } + + public void setFlags(final Set flags) { + meta.setFlags(flags); + } + /** * Get list of URIs of the given {@link Obj}s + * * @param objs metadata objects - * @param Obj type + * @param Obj type * @return list of URIs */ @SafeVarargs protected static String[] uris(T... objs) { noNullElements(objs, "objs"); final String[] uris = new String[objs.length]; - for (int i=0; i flags; @JsonCreator protected Meta(@JsonProperty("author") String author, @@ -57,7 +65,8 @@ protected Meta(@JsonProperty("author") String author, @JsonProperty("category") String category, @JsonProperty("tags") @JsonDeserialize(using = TagsDeserializer.class) Set tags, @JsonProperty("uri") String uri, - @JsonProperty("identifier") String identifier) { + @JsonProperty("identifier") String identifier, + @JsonProperty("flags") Set flags) { super(); this.author = author; this.uri = uri; @@ -69,11 +78,61 @@ protected Meta(@JsonProperty("author") String author, this.category = category; this.identifier = identifier; this.contributor = contributor; + this.flags = flags; } + /** + * @param author + * @param contributor + * @param created + * @param updated + * @param summary + * @param title + * @param category + * @param tags + * @param uri + * @param identifier + * @param deprecated + * @param production + * @param locked + * @param unlisted + * @param sharedWithSomeone + * @deprecated use {@link #Meta(String, String, DateTime, DateTime, String, String, String, Set, + * String, String, Boolean, Boolean, Boolean, Boolean, Boolean, Set)} instead + */ + @Deprecated public Meta(String author, String contributor, DateTime created, DateTime updated, String summary, - String title, String category, Set tags, String uri, String identifier, - Boolean deprecated, Boolean production, Boolean locked, Boolean unlisted, Boolean sharedWithSomeone) { + String title, String category, Set tags, String uri, String identifier, + Boolean deprecated, Boolean production, Boolean locked, Boolean unlisted, + Boolean sharedWithSomeone) { + this(author, contributor, created, updated, summary, title, category, tags, uri, identifier, + deprecated, production, locked, unlisted, sharedWithSomeone, null); + } + + /** + * Constructor with "extra" flags argument + * + * @param author + * @param contributor + * @param created + * @param updated + * @param summary + * @param title + * @param category + * @param tags + * @param uri + * @param identifier + * @param deprecated + * @param production + * @param locked + * @param unlisted + * @param sharedWithSomeone + * @param flags + */ + public Meta(String author, String contributor, DateTime created, DateTime updated, String summary, + String title, String category, Set tags, String uri, String identifier, + Boolean deprecated, Boolean production, Boolean locked, Boolean unlisted, + Boolean sharedWithSomeone, Set flags) { this.author = author; this.contributor = contributor; this.created = created; @@ -89,6 +148,7 @@ public Meta(String author, String contributor, DateTime created, DateTime update this.locked = locked; this.unlisted = unlisted; this.sharedWithSomeone = sharedWithSomeone; + this.flags = flags; } public Meta(String title) { @@ -102,6 +162,7 @@ public Meta(String title, String summary) { /** * Returns internally generated ID of the object (that's part of the object URI). + * * @return internal ID of the object */ @JsonIgnore @@ -166,6 +227,7 @@ public String getUri() { /** * Default is false/not-deprecated. + * * @return true when the linked object is deprecated, null if not set */ @JsonProperty("deprecated") @@ -182,6 +244,7 @@ public void setDeprecated(Boolean deprecated) { /** * Returns user-specified identifier of the object. + * * @return user-specified object identifier */ public String getIdentifier() { @@ -194,6 +257,7 @@ public void setIdentifier(String identifier) { /** * Is the object production or not? Defaults to true. + * * @return true when the linked object is production, null if not set */ @JsonProperty("isProduction") @@ -210,6 +274,7 @@ public void setProduction(final Boolean production) { /** * Flag that MD object is locked; default is false/unlocked. + * * @return true when the linked object is locked, null if not set */ @JsonProperty("locked") @@ -226,6 +291,7 @@ public void setLocked(Boolean locked) { /** * Default is false/listed. + * * @return true when the linked object is unlisted, null if not set */ @JsonProperty("unlisted") @@ -242,6 +308,7 @@ public void setUnlisted(Boolean unlisted) { /** * Is the linked object shared with someone via ACLs? + * * @return true when the linked object is shared, null if not set */ @JsonProperty("sharedWithSomeone") @@ -256,6 +323,14 @@ public void setSharedWithSomeone(final Boolean sharedWithSomeone) { this.sharedWithSomeone = sharedWithSomeone; } + public Set getFlags() { + return flags; + } + + public void setFlags(final Set flags) { + this.flags = flags; + } + @Override public String toString() { return GoodDataToStringBuilder.defaultToString(this); diff --git a/src/main/java/com/gooddata/md/ScheduledMail.java b/src/main/java/com/gooddata/md/ScheduledMail.java index 0e6eb3b41..f5c712c63 100644 --- a/src/main/java/com/gooddata/md/ScheduledMail.java +++ b/src/main/java/com/gooddata/md/ScheduledMail.java @@ -41,7 +41,7 @@ private ScheduledMail(String title, String summary, Set tags, boolean de LocalDate startDate, String timeZone, Collection toAddresses, Collection bccAddresses, String subject, String body, List attachments) { super(new Meta(null, null, null, null, summary, title, null, tags, null, null, deprecated, null, false, false, - null)); + null, null)); notNull(toAddresses, "toAddresses"); notNull(subject, "subject"); notNull(body, "body"); @@ -58,7 +58,7 @@ private ScheduledMail(String title, String summary, Set tags, boolean de */ public ScheduledMail(String title, String summary) { super(new Meta(null, null, null, null, summary, title, null, Collections.emptySet(), null, null, false, - null, false, false, null)); + null, false, false, null, null)); this.content = new Content(); } diff --git a/src/main/java/com/gooddata/project/Project.java b/src/main/java/com/gooddata/project/Project.java index c1ce46376..38afb9c52 100644 --- a/src/main/java/com/gooddata/project/Project.java +++ b/src/main/java/com/gooddata/project/Project.java @@ -663,9 +663,10 @@ private ProjectMeta(@JsonProperty("author") String author, @JsonProperty("isProduction") @JsonDeserialize(using = BooleanDeserializer.class) Boolean production, @JsonProperty("locked") @JsonDeserialize(using = BooleanDeserializer.class) Boolean locked, @JsonProperty("unlisted") @JsonDeserialize(using = BooleanDeserializer.class) Boolean unlisted, - @JsonProperty("sharedWithSomeone") @JsonDeserialize(using = BooleanDeserializer.class) Boolean sharedWithSomeone) { + @JsonProperty("sharedWithSomeone") @JsonDeserialize(using = BooleanDeserializer.class) Boolean sharedWithSomeone, + @JsonProperty("flags") Set flags) { super(author, contributor, created, updated, summary, title, category, tags, uri, identifier, - deprecated, production, locked, unlisted, sharedWithSomeone); + deprecated, production, locked, unlisted, sharedWithSomeone, flags); } diff --git a/src/test/java/com/gooddata/md/MetaTest.java b/src/test/java/com/gooddata/md/MetaTest.java index 0525262fa..47bdeed88 100644 --- a/src/test/java/com/gooddata/md/MetaTest.java +++ b/src/test/java/com/gooddata/md/MetaTest.java @@ -19,6 +19,7 @@ import static net.javacrumbs.jsonunit.core.util.ResourceUtils.resource; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; +import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.MatcherAssert.assertThat; import static org.hamcrest.text.MatchesPattern.matchesPattern; @@ -40,6 +41,7 @@ public class MetaTest { public static final boolean UNLISTED = true; public static final boolean PRODUCTION = true; public static final boolean SHARED_WITH_SOMEONE = false; + public static final Set FLAGS = new LinkedHashSet<>(asList("preloaded", "strictAccessControl")); @Test public void testDeserialization() throws Exception { @@ -61,6 +63,7 @@ public void testDeserialization() throws Exception { assertThat(meta.isUnlisted(), is(UNLISTED)); assertThat(meta.isProduction(), is(PRODUCTION)); assertThat(meta.isSharedWithSomeone(), is(SHARED_WITH_SOMEONE)); + assertThat(meta.getFlags(), nullValue()); } @Test @@ -71,10 +74,25 @@ public void testSerialization() throws Exception { assertThat(meta, jsonEquals(resource("md/meta.json"))); } + @Test + public void testDeserializationWithFlags() throws Exception { + final Meta meta = readObjectFromResource("/md/meta-withFlags.json", Meta.class); + assertThat(meta, is(notNullValue())); + assertThat(meta.getFlags(), is(FLAGS)); + } + + @Test + public void testSerializationWithFlags() throws Exception { + final Meta meta = new Meta(AUTHOR, CONTRIBUTOR, CREATED, UPDATED, SUMMARY, TITLE, CATEGORY, TAGS, URI, IDENTIFIER, + DEPRECATED, PRODUCTION, LOCKED, UNLISTED, SHARED_WITH_SOMEONE, FLAGS); + + assertThat(meta, jsonEquals(resource("md/meta-withFlags.json"))); + } + @Test public void testToStringFormat() { final Meta meta = new Meta(AUTHOR, CONTRIBUTOR, CREATED, UPDATED, SUMMARY, TITLE, CATEGORY, TAGS, URI, IDENTIFIER, - DEPRECATED, PRODUCTION, LOCKED, UNLISTED, SHARED_WITH_SOMEONE); + DEPRECATED, PRODUCTION, LOCKED, UNLISTED, SHARED_WITH_SOMEONE, FLAGS); assertThat(meta.toString(), matchesPattern(Meta.class.getSimpleName() + "\\[.*\\]")); } diff --git a/src/test/java/com/gooddata/md/ObjTest.java b/src/test/java/com/gooddata/md/ObjTest.java index 45b0cfe7d..53f7a73bf 100644 --- a/src/test/java/com/gooddata/md/ObjTest.java +++ b/src/test/java/com/gooddata/md/ObjTest.java @@ -19,6 +19,7 @@ import static net.javacrumbs.jsonunit.core.util.ResourceUtils.resource; import static org.hamcrest.CoreMatchers.is; import static org.hamcrest.CoreMatchers.notNullValue; +import static org.hamcrest.CoreMatchers.nullValue; import static org.hamcrest.MatcherAssert.assertThat; public class ObjTest { @@ -57,15 +58,17 @@ public void testDeserialization() throws Exception { assertThat(obj.getIdentifier(), is(IDENTIFIER)); assertThat(obj.isLocked(), is(LOCKED)); assertThat(obj.isUnlisted(), is(UNLISTED)); + assertThat(obj.getFlags(), nullValue()); } @Test public void testSerialization() throws Exception { final ConcreteObj obj = new ConcreteObj( new Meta(AUTHOR, CONTRIBUTOR, CREATED, UPDATED, SUMMARY, TITLE, CATEGORY, TAGS, URI, IDENTIFIER, - DEPRECATED, null, LOCKED, UNLISTED, null) + DEPRECATED, null, LOCKED, UNLISTED, null, null) ); + assertThat(obj, jsonEquals(resource("md/objCommon.json"))); } diff --git a/src/test/resources/md/meta-withFlags.json b/src/test/resources/md/meta-withFlags.json new file mode 100644 index 000000000..372c115c6 --- /dev/null +++ b/src/test/resources/md/meta-withFlags.json @@ -0,0 +1,18 @@ +{ + "author": "/gdc/account/profile/USER_ID", + "uri": "/gdc/md/PROJECT_ID/obj/OBJ_ID", + "tags": "TAG1 TAG2", + "created": "2014-04-11 13:45:56", + "identifier": "attr.person.id.name", + "deprecated": "0", + "summary": "Obj summary", + "title": "Obj title", + "category": "attributeDisplayForm", + "updated": "2014-04-11 13:45:57", + "contributor": "/gdc/account/profile/CONTRIBUTOR_USER_ID", + "locked": 0, + "unlisted": 1, + "isProduction": 1, + "sharedWithSomeone": 0, + "flags" : [ "preloaded", "strictAccessControl"] +} From e52b4e4e1261ed86ad1792dfe6a18a6338de9f39 Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Mon, 29 Oct 2018 11:06:05 +0100 Subject: [PATCH 074/487] bump version --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 949cc95bb..1d3bf102b 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ The *GoodData Java SDK* is available in Maven Central Repository, to use it from com.gooddata gooddata-java - 2.29.0 + 2.30.0 ``` See [releases page](https://github.com/gooddata/gooddata-java/releases) for information about versions and notable changes, From 24ec645d50f018cc1443f4eb36779d0370c31d9d Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Mon, 29 Oct 2018 11:09:46 +0100 Subject: [PATCH 075/487] [maven-release-plugin] prepare release gooddata-java-2.30.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 97aa756f4..081705c22 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.29.1-SNAPSHOT + 2.30.0 ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - HEAD + gooddata-java-2.30.0 From 8c275a6e7bd6d7c28ef27bcf8b00840681f4d395 Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Mon, 29 Oct 2018 11:09:47 +0100 Subject: [PATCH 076/487] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 081705c22..e74376a73 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.30.0 + 2.30.1-SNAPSHOT ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - gooddata-java-2.30.0 + HEAD From cc1cf12b96d55afa6edb82e22946dbac65218809 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 29 Oct 2018 13:20:20 +0000 Subject: [PATCH 077/487] Bump cglib-nodep from 3.2.8 to 3.2.9 Bumps [cglib-nodep](https://github.com/cglib/cglib) from 3.2.8 to 3.2.9. - [Release notes](https://github.com/cglib/cglib/releases) - [Commits](https://github.com/cglib/cglib/commits) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e74376a73..2dc8c5bcb 100644 --- a/pom.xml +++ b/pom.xml @@ -430,7 +430,7 @@ cglib cglib-nodep - 3.2.8 + 3.2.9 test From ac5f7632e3d3ccc12f62850d968eed34cabe2f18 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 29 Oct 2018 13:21:02 +0000 Subject: [PATCH 078/487] Bump joda-time from 2.10 to 2.10.1 Bumps [joda-time](https://github.com/JodaOrg/joda-time) from 2.10 to 2.10.1. - [Release notes](https://github.com/JodaOrg/joda-time/releases) - [Changelog](https://github.com/JodaOrg/joda-time/blob/master/RELEASE-NOTES.txt) - [Commits](https://github.com/JodaOrg/joda-time/compare/v2.10...v2.10.1) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e74376a73..f3ebe12a7 100644 --- a/pom.xml +++ b/pom.xml @@ -334,7 +334,7 @@ joda-time joda-time - 2.10 + 2.10.1 From a64e6790a4e7d04a281cf11ada1c4ddf22830ce0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 29 Oct 2018 13:21:15 +0000 Subject: [PATCH 079/487] Bump json-unit.version from 1.31.1 to 2.0.1 Bumps `json-unit.version` from 1.31.1 to 2.0.1. Updates `json-unit` from 1.31.1 to 2.0.1 - [Release notes](https://github.com/lukas-krecan/JsonUnit/releases) - [Commits](https://github.com/lukas-krecan/JsonUnit/compare/json-unit-parent-1.31.1...json-unit-parent-2.0.1) Updates `json-unit-core` from 1.31.1 to 2.0.1 - [Release notes](https://github.com/lukas-krecan/JsonUnit/releases) - [Commits](https://github.com/lukas-krecan/JsonUnit/compare/json-unit-parent-1.31.1...json-unit-parent-2.0.1) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e74376a73..6ac397b6f 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ 2.8.11.2 4.3.18.RELEASE 1.3.0 - 1.31.1 + 2.0.1 2.22.1 2.22.1 From 780706ec42136a1431dac2f4b1c2b5916c5e2f44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 30 Oct 2018 13:21:37 +0000 Subject: [PATCH 080/487] Bump equalsverifier from 3.0 to 3.0.1 Bumps [equalsverifier](https://github.com/jqno/equalsverifier) from 3.0 to 3.0.1. - [Release notes](https://github.com/jqno/equalsverifier/releases) - [Commits](https://github.com/jqno/equalsverifier/compare/equalsverifier-3.0...equalsverifier-3.0.1) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e74376a73..8f14788c6 100644 --- a/pom.xml +++ b/pom.xml @@ -412,7 +412,7 @@ nl.jqno.equalsverifier equalsverifier - 3.0 + 3.0.1 test From e4f9ba4ae8c749007adde2870cb74d341ad62233 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Wed, 31 Oct 2018 13:18:52 +0000 Subject: [PATCH 081/487] Bump json-unit.version from 2.0.1 to 2.0.2 Bumps `json-unit.version` from 2.0.1 to 2.0.2. Updates `json-unit` from 2.0.1 to 2.0.2 - [Release notes](https://github.com/lukas-krecan/JsonUnit/releases) - [Commits](https://github.com/lukas-krecan/JsonUnit/compare/json-unit-parent-2.0.1...json-unit-parent-2.0.2) Updates `json-unit-core` from 2.0.1 to 2.0.2 - [Release notes](https://github.com/lukas-krecan/JsonUnit/releases) - [Commits](https://github.com/lukas-krecan/JsonUnit/compare/json-unit-parent-2.0.1...json-unit-parent-2.0.2) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 02c7fd3b5..07a425991 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ 2.8.11.2 4.3.18.RELEASE 1.3.0 - 2.0.1 + 2.0.2 2.22.1 2.22.1 From 116d7f2392cbbf6ad12edef5f526ef94c9ab1836 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 1 Nov 2018 13:17:22 +0000 Subject: [PATCH 082/487] Bump equalsverifier from 3.0.1 to 3.0.2 Bumps [equalsverifier](https://github.com/jqno/equalsverifier) from 3.0.1 to 3.0.2. - [Release notes](https://github.com/jqno/equalsverifier/releases) - [Commits](https://github.com/jqno/equalsverifier/compare/equalsverifier-3.0.1...equalsverifier-3.0.2) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 02c7fd3b5..4c4de609e 100644 --- a/pom.xml +++ b/pom.xml @@ -412,7 +412,7 @@ nl.jqno.equalsverifier equalsverifier - 3.0.1 + 3.0.2 test From fdece7a7bef8dd95160fbed112154a8b37ac6827 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 6 Nov 2018 13:20:24 +0000 Subject: [PATCH 083/487] Bump json-unit.version from 2.0.2 to 2.0.3 Bumps `json-unit.version` from 2.0.2 to 2.0.3. Updates `json-unit` from 2.0.2 to 2.0.3 - [Release notes](https://github.com/lukas-krecan/JsonUnit/releases) - [Commits](https://github.com/lukas-krecan/JsonUnit/compare/json-unit-parent-2.0.2...json-unit-parent-2.0.3) Updates `json-unit-core` from 2.0.2 to 2.0.3 - [Release notes](https://github.com/lukas-krecan/JsonUnit/releases) - [Commits](https://github.com/lukas-krecan/JsonUnit/compare/json-unit-parent-2.0.2...json-unit-parent-2.0.3) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 4fb82218c..16b1c7c57 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ 2.8.11.2 4.3.18.RELEASE 1.3.0 - 2.0.2 + 2.0.3 2.22.1 2.22.1 From da5a8fb8fef9e6cc88cf9031de86395cb43e9c3d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 19 Nov 2018 13:25:39 +0000 Subject: [PATCH 084/487] Bump equalsverifier from 3.0.2 to 3.0.3 Bumps [equalsverifier](https://github.com/jqno/equalsverifier) from 3.0.2 to 3.0.3. - [Release notes](https://github.com/jqno/equalsverifier/releases) - [Changelog](https://github.com/jqno/equalsverifier/blob/master/CHANGELOG.md) - [Commits](https://github.com/jqno/equalsverifier/compare/equalsverifier-3.0.2...equalsverifier-3.0.3) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 16b1c7c57..f7ea40ae5 100644 --- a/pom.xml +++ b/pom.xml @@ -412,7 +412,7 @@ nl.jqno.equalsverifier equalsverifier - 3.0.2 + 3.0.3 test From c1d268461bb1589d946d70bc6a52ef227d60451e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Wed, 21 Nov 2018 13:20:24 +0000 Subject: [PATCH 085/487] Bump json-unit.version from 2.0.3 to 2.1.1 Bumps `json-unit.version` from 2.0.3 to 2.1.1. Updates `json-unit` from 2.0.3 to 2.1.1 - [Release notes](https://github.com/lukas-krecan/JsonUnit/releases) - [Commits](https://github.com/lukas-krecan/JsonUnit/compare/json-unit-parent-2.0.3...json-unit-parent-2.1.1) Updates `json-unit-core` from 2.0.3 to 2.1.1 - [Release notes](https://github.com/lukas-krecan/JsonUnit/releases) - [Commits](https://github.com/lukas-krecan/JsonUnit/compare/json-unit-parent-2.0.3...json-unit-parent-2.1.1) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f7ea40ae5..c3b26de7a 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ 2.8.11.2 4.3.18.RELEASE 1.3.0 - 2.0.3 + 2.1.1 2.22.1 2.22.1 From 4c894a2c1843afde015be60fdbaaa0aa48cc8f5c Mon Sep 17 00:00:00 2001 From: Dominik Labuda Date: Mon, 26 Nov 2018 13:39:44 +0100 Subject: [PATCH 086/487] Simplified VisualizationConverter methods for Execution conversion We wanted to convert objects of VisualizationObject and VisualizationClass that we obtained beforehand, but we were forced to write some boilerplate function that returned the VisualizationClass instead of providing the VisualizationClass directly. The modified methods simply allow to provide the VisualizationClass directly, while still keeping the backward compatibility with previous approach. In addition, new check was implemented that checks whether the VisualizationClass URI matches with the URI that VisualizationObject contains. If you try to create convert incompatible objects, exception will be thrown. --- .../visualization/VisualizationConverter.java | 57 ++++++++++++++----- .../md/visualization/VisualizationObject.java | 16 ++++++ .../VisualizationConverterTest.groovy | 25 +++++++- 3 files changed, 82 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/gooddata/md/visualization/VisualizationConverter.java b/src/main/java/com/gooddata/md/visualization/VisualizationConverter.java index ed0756b8e..48b2973c0 100644 --- a/src/main/java/com/gooddata/md/visualization/VisualizationConverter.java +++ b/src/main/java/com/gooddata/md/visualization/VisualizationConverter.java @@ -5,6 +5,14 @@ */ package com.gooddata.md.visualization; +import static com.gooddata.executeafm.resultspec.Dimension.MEASURE_GROUP; +import static com.gooddata.md.visualization.CollectionType.SEGMENT; +import static com.gooddata.md.visualization.CollectionType.STACK; +import static com.gooddata.md.visualization.CollectionType.TREND; +import static com.gooddata.md.visualization.CollectionType.VIEW; +import static java.util.stream.Collectors.toList; +import static org.apache.commons.lang3.Validate.notNull; + import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; @@ -21,20 +29,12 @@ import com.gooddata.executeafm.resultspec.Dimension; import com.gooddata.executeafm.resultspec.ResultSpec; import com.gooddata.executeafm.resultspec.SortItem; - +import com.gooddata.util.Validate; import java.util.ArrayList; import java.util.List; import java.util.function.Function; import java.util.stream.Collectors; -import static com.gooddata.executeafm.resultspec.Dimension.MEASURE_GROUP; -import static com.gooddata.md.visualization.CollectionType.SEGMENT; -import static com.gooddata.md.visualization.CollectionType.STACK; -import static com.gooddata.md.visualization.CollectionType.TREND; -import static com.gooddata.md.visualization.CollectionType.VIEW; -import static java.util.stream.Collectors.toList; -import static org.apache.commons.lang3.Validate.notNull; - /** * Helper class for converting {@link VisualizationObject} into {@link Execution} */ @@ -47,12 +47,26 @@ public abstract class VisualizationConverter { * @param visualizationObject which will be converted to {@link Execution} * @param visualizationClassGetter {@link Function} for fetching VisualizationClass, which is necessary for correct generation of {@link ResultSpec} * @return {@link Execution} object + * @see #convertToExecution(VisualizationObject, VisualizationClass) + */ + public static Execution convertToExecution(final VisualizationObject visualizationObject, + final Function visualizationClassGetter) { + return convertToExecution(visualizationObject, + notNull(visualizationClassGetter).apply(notNull(visualizationObject).getVisualizationClassUri())); + } + + /** + * Generate Execution from Visualization object. * + * @param visualizationObject which will be converted to {@link Execution} + * @param visualizationClass visualizationClass, which is necessary for correct generation of {@link ResultSpec} + * @return {@link Execution} object * @see #convertToAfm(VisualizationObject) - * @see #convertToResultSpec(VisualizationObject, Function) + * @see #convertToResultSpec(VisualizationObject, VisualizationClass) */ - public static Execution convertToExecution(final VisualizationObject visualizationObject, final Function visualizationClassGetter) { - ResultSpec resultSpec = convertToResultSpec(visualizationObject, visualizationClassGetter); + public static Execution convertToExecution(final VisualizationObject visualizationObject, + final VisualizationClass visualizationClass) { + ResultSpec resultSpec = convertToResultSpec(visualizationObject, visualizationClass); Afm afm = convertToAfm(visualizationObject); return new Execution(afm, resultSpec); } @@ -80,9 +94,24 @@ public static Afm convertToAfm(final VisualizationObject visualizationObject) { * @return {@link Execution} object */ public static ResultSpec convertToResultSpec(final VisualizationObject visualizationObject, - final Function visualizationClassGetter) { - VisualizationClass visualizationClass = notNull(visualizationClassGetter).apply(notNull(visualizationObject).getVisualizationClassUri()); + final Function visualizationClassGetter) { + return convertToResultSpec(visualizationObject, + notNull(visualizationClassGetter).apply(notNull(visualizationObject).getVisualizationClassUri())); + } + /** + * Generate ResultSpec from Visualization object. Currently {@link ResultSpec}'s {@link Dimension}s can be generated + * for table and four types of chart: bar, column, line and pie. + * + * @param visualizationObject which will be converted to {@link Execution} + * @param visualizationClass VisualizationClass, which is necessary for correct generation of {@link ResultSpec} + * @return {@link Execution} object + */ + public static ResultSpec convertToResultSpec(final VisualizationObject visualizationObject, + final VisualizationClass visualizationClass) { + Validate.isTrue(visualizationObject.getVisualizationClassUri().equals(visualizationClass.getUri()), + "visualizationClass URI does not match the URI within visualizationObject, " + + "you're trying to create ResultSpec for incompatible objects"); List sorts = getSorting(visualizationObject); List dimensions = getDimensions(visualizationObject, visualizationClass.getVisualizationType()); return new ResultSpec(dimensions, sorts); diff --git a/src/main/java/com/gooddata/md/visualization/VisualizationObject.java b/src/main/java/com/gooddata/md/visualization/VisualizationObject.java index 6d5de4f70..f07517a63 100644 --- a/src/main/java/com/gooddata/md/visualization/VisualizationObject.java +++ b/src/main/java/com/gooddata/md/visualization/VisualizationObject.java @@ -287,6 +287,14 @@ public Execution convertToExecution(Function visuali return VisualizationConverter.convertToExecution(this, visualizationClassgetter); } + /** + * @see VisualizationConverter#convertToExecution(VisualizationObject, VisualizationClass) + */ + @JsonIgnore + public Execution convertToExecution(VisualizationClass visualizationClass) { + return VisualizationConverter.convertToExecution(this, visualizationClass); + } + /** * @see VisualizationConverter#convertToAfm(VisualizationObject) */ @@ -303,6 +311,14 @@ public ResultSpec convertToResultSpec(Function visua return VisualizationConverter.convertToResultSpec(this, visualizationClassgetter); } + /** + * @see VisualizationConverter#convertToResultSpec(VisualizationObject, VisualizationClass) + */ + @JsonIgnore + public ResultSpec convertToResultSpec(VisualizationClass visualizationClass) { + return VisualizationConverter.convertToResultSpec(this, visualizationClass); + } + @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) private static class Content implements Serializable { diff --git a/src/test/groovy/com/gooddata/md/visualization/VisualizationConverterTest.groovy b/src/test/groovy/com/gooddata/md/visualization/VisualizationConverterTest.groovy index 66dbd5df6..270623bc2 100644 --- a/src/test/groovy/com/gooddata/md/visualization/VisualizationConverterTest.groovy +++ b/src/test/groovy/com/gooddata/md/visualization/VisualizationConverterTest.groovy @@ -85,8 +85,13 @@ class VisualizationConverterTest extends Specification { @Unroll def "should generate result spec for table with default sorting from #name"() { given: - Function getter = { vizObject -> Stub(VisualizationClass) { getVisualizationType() >> VisualizationType.TABLE } } VisualizationObject vo = readObjectFromResource("/$resource", VisualizationObject) + Function getter = { vizObject -> + Stub(VisualizationClass) { + getVisualizationType() >> VisualizationType.TABLE + getUri() >> vo.getVisualizationClassUri() + } + } ResultSpec converted = convertToResultSpec(vo, getter) expect: @@ -107,8 +112,13 @@ class VisualizationConverterTest extends Specification { @Unroll def "should generate result spec for #type"() { given: - Function getter = { vizObject -> Stub(VisualizationClass) { getVisualizationType() >> VisualizationType.of(type) } } VisualizationObject vo = readObjectFromResource("/$resource", VisualizationObject) + Function getter = { vizObject -> + Stub(VisualizationClass) { + getVisualizationType() >> VisualizationType.of(type) + getUri() >> vo.getVisualizationClassUri() + } + } ResultSpec converted = convertToResultSpec(vo, getter) expect: @@ -160,4 +170,15 @@ class VisualizationConverterTest extends Specification { where: properties << ['abcd', '{"sortItems":[{"someinvalidstring"}]}'] } + + def "should fail when incorrect visualization class is provided"() { + when: + convertToResultSpec( + Stub(VisualizationObject) { getVisualizationClassUri() >> 'visClassUri'}, + Stub(VisualizationClass) { getUri() >> 'nonMatchingVisClassUri'} + ) + + then: + thrown(IllegalArgumentException) + } } From 4c99c64e233e40c55b8b5a0b28d48c6a7a0d33d3 Mon Sep 17 00:00:00 2001 From: Dominik Labuda Date: Tue, 27 Nov 2018 10:33:33 +0100 Subject: [PATCH 087/487] Added notNull validations to public VisualizationConverter methods --- .../visualization/VisualizationConverter.java | 20 +++++-- .../VisualizationConverterTest.groovy | 53 +++++++++++++++++++ 2 files changed, 68 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/gooddata/md/visualization/VisualizationConverter.java b/src/main/java/com/gooddata/md/visualization/VisualizationConverter.java index 48b2973c0..d8df11f9e 100644 --- a/src/main/java/com/gooddata/md/visualization/VisualizationConverter.java +++ b/src/main/java/com/gooddata/md/visualization/VisualizationConverter.java @@ -10,8 +10,10 @@ import static com.gooddata.md.visualization.CollectionType.STACK; import static com.gooddata.md.visualization.CollectionType.TREND; import static com.gooddata.md.visualization.CollectionType.VIEW; +import static com.gooddata.util.Validate.notNull; +import static com.gooddata.util.Validate.isTrue; import static java.util.stream.Collectors.toList; -import static org.apache.commons.lang3.Validate.notNull; + import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; @@ -29,7 +31,6 @@ import com.gooddata.executeafm.resultspec.Dimension; import com.gooddata.executeafm.resultspec.ResultSpec; import com.gooddata.executeafm.resultspec.SortItem; -import com.gooddata.util.Validate; import java.util.ArrayList; import java.util.List; import java.util.function.Function; @@ -51,8 +52,10 @@ public abstract class VisualizationConverter { */ public static Execution convertToExecution(final VisualizationObject visualizationObject, final Function visualizationClassGetter) { + notNull(visualizationObject, "visualizationObject"); + notNull(visualizationClassGetter, "visualizationClassGetter"); return convertToExecution(visualizationObject, - notNull(visualizationClassGetter).apply(notNull(visualizationObject).getVisualizationClassUri())); + visualizationClassGetter.apply(visualizationObject.getVisualizationClassUri())); } /** @@ -66,6 +69,8 @@ public static Execution convertToExecution(final VisualizationObject visualizati */ public static Execution convertToExecution(final VisualizationObject visualizationObject, final VisualizationClass visualizationClass) { + notNull(visualizationObject, "visualizationObject"); + notNull(visualizationClass, "visualizationClass"); ResultSpec resultSpec = convertToResultSpec(visualizationObject, visualizationClass); Afm afm = convertToAfm(visualizationObject); return new Execution(afm, resultSpec); @@ -78,6 +83,7 @@ public static Execution convertToExecution(final VisualizationObject visualizati * @return {@link Afm} object */ public static Afm convertToAfm(final VisualizationObject visualizationObject) { + notNull(visualizationObject, "visualizationObject"); final List attributes = convertAttributes(visualizationObject.getAttributes()); final List filters = convertFilters(visualizationObject.getFilters()); final List measures = convertMeasures(visualizationObject.getMeasures()); @@ -95,8 +101,10 @@ public static Afm convertToAfm(final VisualizationObject visualizationObject) { */ public static ResultSpec convertToResultSpec(final VisualizationObject visualizationObject, final Function visualizationClassGetter) { + notNull(visualizationObject, "visualizationObject"); + notNull(visualizationClassGetter, "visualizationClassGetter"); return convertToResultSpec(visualizationObject, - notNull(visualizationClassGetter).apply(notNull(visualizationObject).getVisualizationClassUri())); + visualizationClassGetter.apply(visualizationObject.getVisualizationClassUri())); } /** @@ -109,7 +117,9 @@ public static ResultSpec convertToResultSpec(final VisualizationObject visualiza */ public static ResultSpec convertToResultSpec(final VisualizationObject visualizationObject, final VisualizationClass visualizationClass) { - Validate.isTrue(visualizationObject.getVisualizationClassUri().equals(visualizationClass.getUri()), + notNull(visualizationObject, "visualizationObject"); + notNull(visualizationClass, "visualizationClass"); + isTrue(visualizationObject.getVisualizationClassUri().equals(visualizationClass.getUri()), "visualizationClass URI does not match the URI within visualizationObject, " + "you're trying to create ResultSpec for incompatible objects"); List sorts = getSorting(visualizationObject); diff --git a/src/test/groovy/com/gooddata/md/visualization/VisualizationConverterTest.groovy b/src/test/groovy/com/gooddata/md/visualization/VisualizationConverterTest.groovy index 270623bc2..006d64d58 100644 --- a/src/test/groovy/com/gooddata/md/visualization/VisualizationConverterTest.groovy +++ b/src/test/groovy/com/gooddata/md/visualization/VisualizationConverterTest.groovy @@ -29,6 +29,7 @@ import java.util.function.Function import static VisualizationConverter.convertToAfm import static VisualizationConverter.convertToResultSpec import static VisualizationConverter.parseSorting +import static com.gooddata.md.visualization.VisualizationConverter.convertToExecution import static com.gooddata.util.ResourceUtils.readObjectFromResource import static net.javacrumbs.jsonunit.JsonMatchers.jsonEquals import static spock.util.matcher.HamcrestSupport.that @@ -181,4 +182,56 @@ class VisualizationConverterTest extends Specification { then: thrown(IllegalArgumentException) } + + @Unroll + def "should fail if any argument is null in convertToResultSpec(VisualizationObject, VisualizationClass)"() { + when: + convertToResultSpec(vo, vc) + + then: + thrown(IllegalArgumentException) + + where: + vo << [null, Stub(VisualizationObject), null] + vc << [null, null, Stub(VisualizationClass)] + } + + @Unroll + def "should fail if any argument is null in convertToResultSpec(VisualizationObject, Function)"() { + when: + convertToResultSpec(vo, vcg) + + then: + thrown(IllegalArgumentException) + + where: + vo << [null, Stub(VisualizationObject), null] + vcg << [null, null, Stub(Function)] + } + + @Unroll + def "should fail if any argument is null in convertToExecution(VisualizationObject, VisualizationClass)"() { + when: + convertToExecution(vo, vc) + + then: + thrown(IllegalArgumentException) + + where: + vo << [null, Stub(VisualizationObject), null] + vc << [null, null, Stub(VisualizationClass)] + } + + @Unroll + def "should fail if any argument is null in convertToExecution(VisualizationObject, Function)"() { + when: + convertToExecution(vo, vcg) + + then: + thrown(IllegalArgumentException) + + where: + vo << [null, Stub(VisualizationObject), null] + vcg << [null, null, Stub(Function)] + } } From 6c37586937a6d90d12e2bc0ffe3cc0081a37d95b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 10 Dec 2018 13:15:19 +0000 Subject: [PATCH 088/487] Bump json-unit.version from 2.1.1 to 2.2.0 Bumps `json-unit.version` from 2.1.1 to 2.2.0. Updates `json-unit` from 2.1.1 to 2.2.0 - [Release notes](https://github.com/lukas-krecan/JsonUnit/releases) - [Commits](https://github.com/lukas-krecan/JsonUnit/compare/json-unit-parent-2.1.1...json-unit-parent-2.2.0) Updates `json-unit-core` from 2.1.1 to 2.2.0 - [Release notes](https://github.com/lukas-krecan/JsonUnit/releases) - [Commits](https://github.com/lukas-krecan/JsonUnit/compare/json-unit-parent-2.1.1...json-unit-parent-2.2.0) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c3b26de7a..db842a379 100644 --- a/pom.xml +++ b/pom.xml @@ -45,7 +45,7 @@ 2.8.11.2 4.3.18.RELEASE 1.3.0 - 2.1.1 + 2.2.0 2.22.1 2.22.1 From 7e4a1535509fe8795d58466724b7132d2631d82e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Wed, 12 Dec 2018 19:05:24 +0000 Subject: [PATCH 089/487] Bump cglib-nodep from 3.2.9 to 3.2.10 Bumps [cglib-nodep](https://github.com/cglib/cglib) from 3.2.9 to 3.2.10. - [Release notes](https://github.com/cglib/cglib/releases) - [Commits](https://github.com/cglib/cglib/commits) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index db842a379..365e702aa 100644 --- a/pom.xml +++ b/pom.xml @@ -430,7 +430,7 @@ cglib cglib-nodep - 3.2.9 + 3.2.10 test From c913a4b5edcee2a07ea8c1bea47bc75893a866b7 Mon Sep 17 00:00:00 2001 From: Libor Rysavy Date: Thu, 13 Dec 2018 11:30:23 +0100 Subject: [PATCH 090/487] Remove deprecated part from Travis config https://docs.travis-ci.com/user/reference/trusty/ says: Container-based infrastructure is currently being deprecated. Please remove any `sudo:` false keys in your `.travis.yml` file to use the default fully-virtualized Linux infrastructure instead. --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index ac904f8d3..a6d25f65f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,6 @@ branches: only: - master - /\d\.0\.0-RC/ -sudo: false cache: directories: - '$HOME/.m2/repository' From 0337f6e51ff011db3ee5b47f583e8808a1d85ce5 Mon Sep 17 00:00:00 2001 From: Libor Rysavy Date: Thu, 13 Dec 2018 11:46:45 +0100 Subject: [PATCH 091/487] Shorten mvn console output in Travis Add `-B` (non-interactive/batch mode) to hide download progress indication. --- .travis.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index a6d25f65f..994f14fb7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,15 @@ language: java +# Skip the Travis Installation Phase (installation of dependencies: `mvn install -DskipTests=true`) install: true -script: mvn verify javadoc:javadoc coveralls:report -Pcoverage +# Customized build command (default is only `mvn test`) +script: mvn verify javadoc:javadoc coveralls:report -Pcoverage -B -V jdk: - oraclejdk8 branches: only: - master - /\d\.0\.0-RC/ +# Cache Maven repo between Travis builds cache: directories: - '$HOME/.m2/repository' From 94015beb81279910e91dcb65d9733141e21a75de Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 13 Dec 2018 13:23:42 +0000 Subject: [PATCH 092/487] Bump groovy-all from 2.4.15 to 2.4.16 Bumps [groovy-all](https://github.com/apache/groovy) from 2.4.15 to 2.4.16. - [Release notes](https://github.com/apache/groovy/releases) - [Commits](https://github.com/apache/groovy/commits) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 365e702aa..c6bb78281 100644 --- a/pom.xml +++ b/pom.xml @@ -424,7 +424,7 @@ org.codehaus.groovy groovy-all - 2.4.15 + 2.4.16 test From 73fccf69913a2ab9f08d311aa484bc71eb585741 Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Fri, 14 Dec 2018 14:16:35 +0100 Subject: [PATCH 093/487] bump version --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1d3bf102b..8090c846f 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ The *GoodData Java SDK* is available in Maven Central Repository, to use it from com.gooddata gooddata-java - 2.30.0 + 2.31.0 ``` See [releases page](https://github.com/gooddata/gooddata-java/releases) for information about versions and notable changes, From db1beebe9a6f558b0f138bbdeed417a72ff72098 Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Fri, 14 Dec 2018 14:19:35 +0100 Subject: [PATCH 094/487] [maven-release-plugin] prepare release gooddata-java-2.31.0 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index c6bb78281..b14c0be59 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.30.1-SNAPSHOT + 2.31.0 ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - HEAD + gooddata-java-2.31.0 From c2da5e738418bfa057002681fe8b4bfc40e05d7d Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Fri, 14 Dec 2018 14:19:36 +0100 Subject: [PATCH 095/487] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index b14c0be59..c321ec0f8 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.31.0 + 2.31.1-SNAPSHOT ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - gooddata-java-2.31.0 + HEAD From 44a967eca84c776eba0e28ac24aaa1f579d073bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Mikul=C3=A1=C5=A1ek?= Date: Mon, 17 Dec 2018 08:13:33 +0100 Subject: [PATCH 096/487] Remove old style versioning support --- src/main/java/com/gooddata/GoodData.java | 17 +++-------------- src/test/java/com/gooddata/GoodDataIT.java | 13 +------------ 2 files changed, 4 insertions(+), 26 deletions(-) diff --git a/src/main/java/com/gooddata/GoodData.java b/src/main/java/com/gooddata/GoodData.java index 5f3bb48cc..7bf36eefc 100644 --- a/src/main/java/com/gooddata/GoodData.java +++ b/src/main/java/com/gooddata/GoodData.java @@ -40,9 +40,8 @@ import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; import org.springframework.web.client.RestTemplate; -import java.util.Arrays; - import static com.gooddata.util.Validate.notNull; +import static java.util.Collections.singletonList; import static java.util.Collections.singletonMap; import static org.apache.http.util.VersionInfo.loadVersionInfo; @@ -72,8 +71,6 @@ public class GoodData { protected static final String HOSTNAME = GoodDataEndpoint.HOSTNAME; private static final String UNKNOWN_VERSION = "UNKNOWN"; - private static final int RESTAPI_VERSION = 1; - private final RestTemplate restTemplate; private final HttpClient httpClient; private final AccountService accountService; @@ -246,8 +243,8 @@ static RestTemplate createRestTemplate(GoodDataEndpoint endpoint, HttpClient htt endpoint.toUri() ); final RestTemplate restTemplate = new RestTemplate(factory); - restTemplate.setInterceptors(Arrays.asList( - new HeaderSettingRequestInterceptor(singletonMap("Accept", getAcceptHeaderValue())))); + restTemplate.setInterceptors(singletonList( + new HeaderSettingRequestInterceptor(singletonMap("Accept", MediaType.APPLICATION_JSON_VALUE)))); restTemplate.setErrorHandler(new ResponseErrorHandler(restTemplate.getMessageConverters())); @@ -274,14 +271,6 @@ private HttpClientBuilder createHttpClientBuilder(final GoodDataSettings setting .setDefaultRequestConfig(requestConfig.build()); } - /* - * Set accept header (application/json by default) and append rest api versioning information which is mandatory - * for some resources. - */ - private static String getAcceptHeaderValue(){ - return MediaType.APPLICATION_JSON_VALUE + ";version=" + RESTAPI_VERSION; - } - private String getUserAgent() { final Package pkg = Package.getPackage("com.gooddata"); final String clientVersion = pkg != null && pkg.getImplementationVersion() != null diff --git a/src/test/java/com/gooddata/GoodDataIT.java b/src/test/java/com/gooddata/GoodDataIT.java index 8b4b9e3ed..ccf1dc385 100644 --- a/src/test/java/com/gooddata/GoodDataIT.java +++ b/src/test/java/com/gooddata/GoodDataIT.java @@ -25,18 +25,7 @@ protected GoodDataSettings createGoodDataSettings() { } @Test - public void rootLinksShouldUseProperVersionHeader() throws Exception { - onRequest() - .havingMethodEqualTo("GET") - .havingHeaderEqualTo("Accept", "application/json;version=1") - .respond() - .withStatus(200); - - gd.getGdcService().getRootLinks(); - } - - @Test - public void shouldSentCustomUserAgentHeader() throws Exception { + public void shouldSentCustomUserAgentHeader() { onRequest() .havingMethodEqualTo("GET") .respond() From 3f932672ef9c88e19930f681a8420deec7c45102 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Mikul=C3=A1=C5=A1ek?= Date: Mon, 17 Dec 2018 10:20:03 +0100 Subject: [PATCH 097/487] Replace deprecated jadler calls with current alternatives --- src/test/groovy/com/gooddata/GoodDataITBase.groovy | 2 +- src/test/java/com/gooddata/AbstractGoodDataIT.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/groovy/com/gooddata/GoodDataITBase.groovy b/src/test/groovy/com/gooddata/GoodDataITBase.groovy index 4eaa18f8a..cb420db66 100644 --- a/src/test/groovy/com/gooddata/GoodDataITBase.groovy +++ b/src/test/groovy/com/gooddata/GoodDataITBase.groovy @@ -18,7 +18,7 @@ abstract class GoodDataITBase extends Specification { protected GoodData gd void setup() { - initJadler().that().respondsWithDefaultContentType('application/json') + initJadler().withDefaultResponseContentType('application/json') gd = new GoodData( new GoodDataEndpoint('localhost', port(), 'http'), new LoginPasswordAuthentication('sdk@gooddata.com', 'sdk'), diff --git a/src/test/java/com/gooddata/AbstractGoodDataIT.java b/src/test/java/com/gooddata/AbstractGoodDataIT.java index e408a3ef1..1d9ca84d0 100644 --- a/src/test/java/com/gooddata/AbstractGoodDataIT.java +++ b/src/test/java/com/gooddata/AbstractGoodDataIT.java @@ -19,7 +19,7 @@ public abstract class AbstractGoodDataIT { @BeforeMethod public void commonSetUp() { - initJadler().that().respondsWithDefaultContentType("application/json"); + initJadler().withDefaultResponseContentType("application/json"); gd = new GoodData( new GoodDataEndpoint("localhost", port(), "http"), new LoginPasswordAuthentication("sdk@gooddata.com", "sdk"), From cd3580056b689b765b1022a349d7c81f84e76044 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Mikul=C3=A1=C5=A1ek?= Date: Mon, 17 Dec 2018 10:32:15 +0100 Subject: [PATCH 098/487] Introduce support for X-GDC-Version header --- README.md | 3 + pom.xml | 2 +- release.sh | 26 ++++---- src/main/java/com/gooddata/GoodData.java | 23 ++++++- src/main/resources/GoodDataApiVersion | 1 + .../groovy/com/gooddata/GoodDataIT.groovy | 66 +++++++++++++++++++ src/test/java/com/gooddata/GoodDataIT.java | 40 ----------- 7 files changed, 106 insertions(+), 55 deletions(-) create mode 100644 src/main/resources/GoodDataApiVersion create mode 100644 src/test/groovy/com/gooddata/GoodDataIT.groovy delete mode 100644 src/test/java/com/gooddata/GoodDataIT.java diff --git a/README.md b/README.md index 8090c846f..0aad29350 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,9 @@ or [Wiki](https://github.com/gooddata/gooddata-java/wiki) for [Code Examples](https://github.com/gooddata/gooddata-java/wiki/Code-Examples) and [Extensibility How-To](https://github.com/gooddata/gooddata-java/wiki/Extending). +### API version +Since *GoodData Java SDK* version *2.32.0* API versioning is supported. The API version, GoodData Java is compatible with, is marked in artifact version using `+api` suffix (i.e. `2.32.0+api1` is compatible with API version `1`). + ### Dependencies The *GoodData Java SDK* uses: diff --git a/pom.xml b/pom.xml index c321ec0f8..eb273806c 100644 --- a/pom.xml +++ b/pom.xml @@ -258,7 +258,7 @@ com.gooddata gooddata-rest-common - 1.2.2 + 1.3.0 com.gooddata diff --git a/release.sh b/release.sh index 58ef61f1a..9e025bebd 100755 --- a/release.sh +++ b/release.sh @@ -10,10 +10,10 @@ while getopts ":hv:g:" opt do case ${opt} in v) - version=${OPTARG} + VERSION=${OPTARG} ;; g) - gpg_pass=${OPTARG} + GPG_PASS=${OPTARG} ;; h) usage @@ -41,18 +41,18 @@ then exit 1 fi -if [ -z "${version}" ] +if [ -z "${VERSION}" ] then echo "No version given!" usage exit 1 fi -if [ -z "${gpg_pass}" ] +if [ -z "${GPG_PASS}" ] then echo "Enter gpg password: " - read -s gpg_pass - if [ -z "${gpg_pass}" ] + read -s GPG_PASS + if [ -z "${GPG_PASS}" ] then echo "No gpg password given!" usage @@ -60,16 +60,20 @@ then fi fi -sed -i.bak "s/\(\)[0-9]*\.[0-9]*\.[0-9]*\(<\/version>\)/\1${version}\2/" README.md && rm -f README.md.bak +API_VERSION=$(cat src/main/resources/GoodDataApiVersion) +FULL_VERSION=$VERSION+api$API_VERSION +DEV_VERSION=$(echo $VERSION | awk -F. '{$NF = $NF + 1;} 1' | sed 's/ /./g')-SNAPSHOT + +sed -i.bak "s/\(\)[0-9]*\.[0-9]*\.[0-9]*[^<]*\(<\/version>\)/\1${FULL_VERSION}\2/" README.md && rm -f README.md.bak git commit -a -m "bump version" -mvn --batch-mode release:prepare release:perform -DreleaseVersion=${version} -Darguments="-Dgpg.passphrase=${gpg_pass}" -mvnRetVal=$? -if [ $mvnRetVal -ne 0 ]; then +mvn --batch-mode release:prepare release:perform -DreleaseVersion=${FULL_VERSION} -DdevelopmentVersion=${DEV_VERSION} -Darguments="-Dgpg.passphrase=${GPG_PASS}" +MVN_RET_VAL=$? +if [ $MVN_RET_VAL -ne 0 ]; then echo "Mvn build failed - please fix it and try to release again" echo "Removing last commit '$(git log -1 --pretty="%h %s")'" git reset --hard HEAD~1 - exit $mvnRetVal + exit $MVN_RET_VAL fi git push origin --tags HEAD diff --git a/src/main/java/com/gooddata/GoodData.java b/src/main/java/com/gooddata/GoodData.java index 7bf36eefc..03fff7139 100644 --- a/src/main/java/com/gooddata/GoodData.java +++ b/src/main/java/com/gooddata/GoodData.java @@ -38,11 +38,16 @@ import org.springframework.context.annotation.Bean; import org.springframework.http.MediaType; import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.util.StreamUtils; import org.springframework.web.client.RestTemplate; +import java.io.IOException; +import java.nio.charset.Charset; +import java.util.HashMap; +import java.util.Map; + import static com.gooddata.util.Validate.notNull; import static java.util.Collections.singletonList; -import static java.util.Collections.singletonMap; import static org.apache.http.util.VersionInfo.loadVersionInfo; /** @@ -242,9 +247,13 @@ static RestTemplate createRestTemplate(GoodDataEndpoint endpoint, HttpClient htt new HttpComponentsClientHttpRequestFactory(httpClient), endpoint.toUri() ); + + final Map presetHeaders = new HashMap<>(2); + presetHeaders.put("Accept", MediaType.APPLICATION_JSON_VALUE); + presetHeaders.put(Header.GDC_VERSION, readApiVersion()); + final RestTemplate restTemplate = new RestTemplate(factory); - restTemplate.setInterceptors(singletonList( - new HeaderSettingRequestInterceptor(singletonMap("Accept", MediaType.APPLICATION_JSON_VALUE)))); + restTemplate.setInterceptors(singletonList(new HeaderSettingRequestInterceptor(presetHeaders))); restTemplate.setErrorHandler(new ResponseErrorHandler(restTemplate.getMessageConverters())); @@ -284,6 +293,14 @@ private String getUserAgent() { "Apache-HttpClient", apacheVersion); } + private static String readApiVersion() { + try { + return StreamUtils.copyToString(GoodData.class.getResourceAsStream("/GoodDataApiVersion"), Charset.defaultCharset()); + } catch (IOException e) { + throw new IllegalStateException("Cannot read GoodDataApiVersion from classpath", e); + } + } + /** * Get the configured {@link RestTemplate} used by the library. * This is the extension point for inheriting classes providing additional services. diff --git a/src/main/resources/GoodDataApiVersion b/src/main/resources/GoodDataApiVersion new file mode 100644 index 000000000..56a6051ca --- /dev/null +++ b/src/main/resources/GoodDataApiVersion @@ -0,0 +1 @@ +1 \ No newline at end of file diff --git a/src/test/groovy/com/gooddata/GoodDataIT.groovy b/src/test/groovy/com/gooddata/GoodDataIT.groovy new file mode 100644 index 000000000..1f9272669 --- /dev/null +++ b/src/test/groovy/com/gooddata/GoodDataIT.groovy @@ -0,0 +1,66 @@ +/* + * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. + */ +package com.gooddata + +import com.gooddata.gdc.GdcService +import com.gooddata.gdc.Header +import org.apache.http.HttpHeaders + +import static net.jadler.Jadler.onRequest +import static net.jadler.Jadler.verifyThatRequest +import static org.hamcrest.CoreMatchers.equalTo +import static org.hamcrest.CoreMatchers.hasItem +import static org.hamcrest.CoreMatchers.startsWith + +class GoodDataIT extends GoodDataITBase { + + private static final String USER_AGENT = 'customAgent/X.Y' + private static final String API_VERSION = '1' + + @Override + protected GoodDataSettings createGoodDataSettings() { + final GoodDataSettings settings = super.createGoodDataSettings() + settings.setUserAgent(USER_AGENT) + return settings + } + + @Override + protected GdcService getService() { + return gd.gdcService + } + + def "should send custom userAgent header"() { + given: + onRequest() + .havingMethodEqualTo("GET") + .respond() + .withStatus(200) + + when: + service.getRootLinks() + + then: + verifyThatRequest() + .havingHeader(HttpHeaders.USER_AGENT, hasItem(startsWith("$USER_AGENT GoodData-Java-SDK"))) + .receivedOnce() + } + + def "should send API version header"() { + given: + onRequest() + .havingMethodEqualTo("GET") + .respond() + .withStatus(200) + + when: + service.getRootLinks() + + then: + verifyThatRequest() + .havingHeader(Header.GDC_VERSION, hasItem(equalTo(API_VERSION))) + .receivedOnce() + } +} diff --git a/src/test/java/com/gooddata/GoodDataIT.java b/src/test/java/com/gooddata/GoodDataIT.java deleted file mode 100644 index ccf1dc385..000000000 --- a/src/test/java/com/gooddata/GoodDataIT.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. - * This source code is licensed under the BSD-style license found in the - * LICENSE.txt file in the root directory of this source tree. - */ -package com.gooddata; - -import org.apache.http.HttpHeaders; -import org.testng.annotations.Test; - -import static net.jadler.Jadler.onRequest; -import static net.jadler.Jadler.verifyThatRequest; -import static org.hamcrest.CoreMatchers.hasItem; -import static org.hamcrest.CoreMatchers.startsWith; - -public class GoodDataIT extends AbstractGoodDataIT { - - private static final String USER_AGENT = "customAgent/X.Y"; - - @Override - protected GoodDataSettings createGoodDataSettings() { - final GoodDataSettings settings = super.createGoodDataSettings(); - settings.setUserAgent(USER_AGENT); - return settings; - } - - @Test - public void shouldSentCustomUserAgentHeader() { - onRequest() - .havingMethodEqualTo("GET") - .respond() - .withStatus(200); - - gd.getGdcService().getRootLinks(); - - verifyThatRequest() - .havingHeader(HttpHeaders.USER_AGENT, hasItem(startsWith(USER_AGENT + " GoodData-Java-SDK"))) - .receivedOnce(); - } -} From 6a955c82f4e37e8014e07caf86794377c6640adf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Mikul=C3=A1=C5=A1ek?= Date: Wed, 19 Dec 2018 07:36:10 +0100 Subject: [PATCH 099/487] Raise pom to 3.0.0-RC.1 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 77a5638cd..0ac1e6c44 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.29.1-SNAPSHOT + 3.0.0-RC.1-SNAPSHOT ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java From 3fea70f2a15e1f6716765d10ae8d2c5ca1164a26 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Tue, 1 Jan 2019 13:19:24 +0000 Subject: [PATCH 100/487] Bump equalsverifier from 3.0.3 to 3.1.4 Bumps [equalsverifier](https://github.com/jqno/equalsverifier) from 3.0.3 to 3.1.4. - [Release notes](https://github.com/jqno/equalsverifier/releases) - [Changelog](https://github.com/jqno/equalsverifier/blob/master/CHANGELOG.md) - [Commits](https://github.com/jqno/equalsverifier/compare/equalsverifier-3.0.3...equalsverifier-3.1.4) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c321ec0f8..53f60a1e7 100644 --- a/pom.xml +++ b/pom.xml @@ -412,7 +412,7 @@ nl.jqno.equalsverifier equalsverifier - 3.0.3 + 3.1.4 test From ffd44a6283e509dadda54df133b77fdd641c71d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Mikul=C3=A1=C5=A1ek?= Date: Mon, 17 Dec 2018 13:23:38 +0100 Subject: [PATCH 101/487] Introduce support for X-GDC-DEPRECATED header --- README.md | 14 +++++++ pom.xml | 12 ++++++ .../DeprecationWarningRequestInterceptor.java | 40 +++++++++++++++++++ src/main/java/com/gooddata/GoodData.java | 5 ++- 4 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/gooddata/DeprecationWarningRequestInterceptor.java diff --git a/README.md b/README.md index 0aad29350..28295f87c 100644 --- a/README.md +++ b/README.md @@ -34,8 +34,22 @@ The *GoodData Java SDK* uses: * the *Apache HTTP Client* version 4.5 or later (for white-labeled domains at least version 4.3.2 is required) * the *Spring Framework* version 4.3.* * the *Jackson JSON Processor* version 2.8.* +* the *Slf4j API* version 1.7.* * the *Java Development Kit (JDK)* version 8 or later +### Logging + +The *GoodData Java SDK* logs using `slf4j-api`. Please adjust your logging configuration for +`com.gooddata.sdk.*` loggers or alternatively turn the logging off using following dependency: + +```xml + + org.slf4j + slf4j-nop + 1.7.25 + +``` + ## Development Build the library with `mvn package`, see the diff --git a/pom.xml b/pom.xml index eb273806c..63beada30 100644 --- a/pom.xml +++ b/pom.xml @@ -43,6 +43,7 @@ 4.4.10 2.8.11 2.8.11.2 + 1.7.25 4.3.18.RELEASE 1.3.0 2.2.0 @@ -336,6 +337,11 @@ joda-time 2.10.1 + + org.slf4j + slf4j-api + ${slf4j.version} + commons-io @@ -385,6 +391,12 @@ ${json-unit.version} test + + org.slf4j + slf4j-log4j12 + ${slf4j.version} + test + log4j log4j diff --git a/src/main/java/com/gooddata/DeprecationWarningRequestInterceptor.java b/src/main/java/com/gooddata/DeprecationWarningRequestInterceptor.java new file mode 100644 index 000000000..fae7bb99b --- /dev/null +++ b/src/main/java/com/gooddata/DeprecationWarningRequestInterceptor.java @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. + */ +package com.gooddata; + +import com.gooddata.gdc.Header; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpRequest; +import org.springframework.http.client.ClientHttpRequestExecution; +import org.springframework.http.client.ClientHttpRequestInterceptor; +import org.springframework.http.client.ClientHttpResponse; + +import java.io.IOException; +import java.util.List; + +/** + * Intercepts the request-response to check for X-GDC-DEPRECATED header and log it's content. + */ +class DeprecationWarningRequestInterceptor implements ClientHttpRequestInterceptor { + + private static final Logger logger = LoggerFactory.getLogger("com.gooddata.sdk.DeprecationWarning"); + + @Override + public ClientHttpResponse intercept(HttpRequest request, byte[] body, + ClientHttpRequestExecution execution) throws IOException { + final ClientHttpResponse response = execution.execute(request, body); + if (logger.isWarnEnabled()) { + final List deprecated = response.getHeaders().get(Header.GDC_DEPRECATED); + if (deprecated != null && !deprecated.isEmpty()) { + final List versionHeaders = request.getHeaders().get(Header.GDC_VERSION); + final String version = versionHeaders != null && !versionHeaders.isEmpty() ? versionHeaders.get(0) : "UNKNOWN"; + logger.warn("Resource path={} version={} deprecated {}", request.getURI().getPath(), version, deprecated.get(0)); + } + } + return response; + } +} diff --git a/src/main/java/com/gooddata/GoodData.java b/src/main/java/com/gooddata/GoodData.java index 03fff7139..82eaba374 100644 --- a/src/main/java/com/gooddata/GoodData.java +++ b/src/main/java/com/gooddata/GoodData.java @@ -47,6 +47,7 @@ import java.util.Map; import static com.gooddata.util.Validate.notNull; +import static java.util.Arrays.asList; import static java.util.Collections.singletonList; import static org.apache.http.util.VersionInfo.loadVersionInfo; @@ -253,7 +254,9 @@ static RestTemplate createRestTemplate(GoodDataEndpoint endpoint, HttpClient htt presetHeaders.put(Header.GDC_VERSION, readApiVersion()); final RestTemplate restTemplate = new RestTemplate(factory); - restTemplate.setInterceptors(singletonList(new HeaderSettingRequestInterceptor(presetHeaders))); + restTemplate.setInterceptors(asList( + new HeaderSettingRequestInterceptor(presetHeaders), + new DeprecationWarningRequestInterceptor())); restTemplate.setErrorHandler(new ResponseErrorHandler(restTemplate.getMessageConverters())); From 6c204f13d380302fd32dd093b63859cfb5f613c5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Fri, 21 Dec 2018 13:17:10 +0000 Subject: [PATCH 102/487] Bump hamcrest from 1.3 to 2.1 Bumps [hamcrest-library](https://github.com/hamcrest/JavaHamcrest) from 1.3 to 2.1. - [Release notes](https://github.com/hamcrest/JavaHamcrest/releases) - [Changelog](https://github.com/hamcrest/JavaHamcrest/blob/master/CHANGES.md) - [Commits](https://github.com/hamcrest/JavaHamcrest/compare/hamcrest-java-1.3...v2.1) Signed-off-by: dependabot[bot] --- pom.xml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/pom.xml b/pom.xml index c321ec0f8..a43e6dd6f 100644 --- a/pom.xml +++ b/pom.xml @@ -354,23 +354,17 @@ mockito-core 1.9.5 test + + + org.hamcrest + hamcrest-core + + org.hamcrest - hamcrest-core - 1.3 - test - - - org.hamcrest - hamcrest-library - 1.3 - test - - - org.hamcrest - java-hamcrest - 2.0.0.0 + hamcrest + 2.1 test @@ -396,6 +390,12 @@ jadler-core ${jadler.version} test + + + org.hamcrest + hamcrest-library + + net.jadler From 13eeaa2fcac65fe2c596b1199ee98256ad71b49a Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Tue, 8 Jan 2019 10:19:36 +0100 Subject: [PATCH 103/487] ensure all AFM MeasureDefinition descendants serializable --- .../gooddata/executeafm/afm/ArithmeticMeasureDefinition.java | 2 ++ .../com/gooddata/executeafm/afm/DerivedMeasureDefinition.java | 3 +-- .../java/com/gooddata/executeafm/afm/MeasureDefinition.java | 3 ++- .../gooddata/executeafm/afm/OverPeriodMeasureDefinition.java | 3 +-- .../java/com/gooddata/executeafm/afm/PopMeasureDefinition.java | 3 +-- .../executeafm/afm/PreviousPeriodMeasureDefinition.java | 3 +-- .../com/gooddata/executeafm/afm/SimpleMeasureDefinition.java | 3 +-- 7 files changed, 9 insertions(+), 11 deletions(-) diff --git a/src/main/java/com/gooddata/executeafm/afm/ArithmeticMeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/ArithmeticMeasureDefinition.java index 9974a82b5..d16ca573f 100644 --- a/src/main/java/com/gooddata/executeafm/afm/ArithmeticMeasureDefinition.java +++ b/src/main/java/com/gooddata/executeafm/afm/ArithmeticMeasureDefinition.java @@ -24,6 +24,8 @@ @JsonRootName(NAME) public class ArithmeticMeasureDefinition implements MeasureDefinition { + private static final long serialVersionUID = -2597112924341600780L; + static final String NAME = "arithmeticMeasure"; private final List measureIdentifiers; diff --git a/src/main/java/com/gooddata/executeafm/afm/DerivedMeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/DerivedMeasureDefinition.java index bccd533bc..5ca66998a 100644 --- a/src/main/java/com/gooddata/executeafm/afm/DerivedMeasureDefinition.java +++ b/src/main/java/com/gooddata/executeafm/afm/DerivedMeasureDefinition.java @@ -9,7 +9,6 @@ import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; -import java.io.Serializable; import java.util.Objects; import static com.gooddata.util.Validate.notNull; @@ -23,7 +22,7 @@ @JsonSubTypes.Type(value = OverPeriodMeasureDefinition.class, name = OverPeriodMeasureDefinition.NAME), @JsonSubTypes.Type(value = PreviousPeriodMeasureDefinition.class, name = PreviousPeriodMeasureDefinition.NAME) }) -public abstract class DerivedMeasureDefinition implements MeasureDefinition, Serializable { +public abstract class DerivedMeasureDefinition implements MeasureDefinition { private static final long serialVersionUID = -1203802872091017113L; diff --git a/src/main/java/com/gooddata/executeafm/afm/MeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/MeasureDefinition.java index b53f14315..fe6fec1c3 100644 --- a/src/main/java/com/gooddata/executeafm/afm/MeasureDefinition.java +++ b/src/main/java/com/gooddata/executeafm/afm/MeasureDefinition.java @@ -14,6 +14,7 @@ import com.gooddata.md.visualization.VOPopMeasureDefinition; import com.gooddata.md.visualization.VOSimpleMeasureDefinition; +import java.io.Serializable; import java.util.Collection; @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @@ -26,7 +27,7 @@ @JsonSubTypes.Type(value = PreviousPeriodMeasureDefinition.class, name = PreviousPeriodMeasureDefinition.NAME), @JsonSubTypes.Type(value = ArithmeticMeasureDefinition.class, name = ArithmeticMeasureDefinition.NAME) }) -public interface MeasureDefinition { +public interface MeasureDefinition extends Serializable { /** * Returns the definition in the form of uri of {@link com.gooddata.md.Metric}. diff --git a/src/main/java/com/gooddata/executeafm/afm/OverPeriodMeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/OverPeriodMeasureDefinition.java index 470b3a5a5..b93b4ea27 100644 --- a/src/main/java/com/gooddata/executeafm/afm/OverPeriodMeasureDefinition.java +++ b/src/main/java/com/gooddata/executeafm/afm/OverPeriodMeasureDefinition.java @@ -12,7 +12,6 @@ import com.gooddata.executeafm.UriObjQualifier; import com.gooddata.util.GoodDataToStringBuilder; -import java.io.Serializable; import java.util.Collection; import java.util.List; import java.util.Objects; @@ -26,7 +25,7 @@ * Definition of the period over period measure that is used for the Same period last year and Same period 2 years back comparisons. */ @JsonRootName(NAME) -public class OverPeriodMeasureDefinition extends DerivedMeasureDefinition implements Serializable { +public class OverPeriodMeasureDefinition extends DerivedMeasureDefinition { private static final long serialVersionUID = -8904516814279504098L; diff --git a/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java index 79f316ae4..a93708a02 100644 --- a/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java +++ b/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java @@ -13,7 +13,6 @@ import com.gooddata.executeafm.UriObjQualifier; import com.gooddata.util.GoodDataToStringBuilder; -import java.io.Serializable; import java.util.Collection; import java.util.Collections; import java.util.Objects; @@ -30,7 +29,7 @@ @Deprecated @JsonRootName(NAME) @JsonInclude(JsonInclude.Include.NON_NULL) -public class PopMeasureDefinition extends DerivedMeasureDefinition implements Serializable { +public class PopMeasureDefinition extends DerivedMeasureDefinition { private static final long serialVersionUID = 1430640153994197345L; diff --git a/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinition.java index 80c5389e5..ff214e405 100644 --- a/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinition.java +++ b/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinition.java @@ -12,7 +12,6 @@ import com.gooddata.executeafm.UriObjQualifier; import com.gooddata.util.GoodDataToStringBuilder; -import java.io.Serializable; import java.util.Collection; import java.util.List; import java.util.Objects; @@ -26,7 +25,7 @@ * Definition of the period over period measure that is used for the Previous period comparison. */ @JsonRootName(NAME) -public class PreviousPeriodMeasureDefinition extends DerivedMeasureDefinition implements Serializable { +public class PreviousPeriodMeasureDefinition extends DerivedMeasureDefinition { private static final long serialVersionUID = -4741355657671354062L; diff --git a/src/main/java/com/gooddata/executeafm/afm/SimpleMeasureDefinition.java b/src/main/java/com/gooddata/executeafm/afm/SimpleMeasureDefinition.java index 08f68a3cd..edccaabd5 100644 --- a/src/main/java/com/gooddata/executeafm/afm/SimpleMeasureDefinition.java +++ b/src/main/java/com/gooddata/executeafm/afm/SimpleMeasureDefinition.java @@ -13,7 +13,6 @@ import com.gooddata.executeafm.UriObjQualifier; import com.gooddata.util.GoodDataToStringBuilder; -import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -30,7 +29,7 @@ */ @JsonInclude(JsonInclude.Include.NON_NULL) @JsonRootName(NAME) -public class SimpleMeasureDefinition implements MeasureDefinition, Serializable { +public class SimpleMeasureDefinition implements MeasureDefinition { private static final long serialVersionUID = -385490772711914776L; static final String NAME = "measure"; From c321fb0d88c4bb6e11351eac6b737f5c6b6da368 Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Tue, 8 Jan 2019 11:28:50 +0100 Subject: [PATCH 104/487] bump version --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 28295f87c..ecf4196d2 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ The *GoodData Java SDK* is available in Maven Central Repository, to use it from com.gooddata gooddata-java - 2.31.0 + 2.32.0+api1 ``` See [releases page](https://github.com/gooddata/gooddata-java/releases) for information about versions and notable changes, @@ -46,7 +46,7 @@ The *GoodData Java SDK* logs using `slf4j-api`. Please adjust your logging confi org.slf4j slf4j-nop - 1.7.25 + 2.32.0+api1 ``` From e92153ae0328830c18503d683b5f4cb63a0d471e Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Tue, 8 Jan 2019 11:31:11 +0100 Subject: [PATCH 105/487] [maven-release-plugin] prepare release gooddata-java-2.32.0+api1 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index d03d235d0..469ddbcdd 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.31.1-SNAPSHOT + 2.32.0+api1 ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - HEAD + gooddata-java-2.32.0+api1 From 936cffa21a0963088e0b3fe0dfdb3b1306ce3eb0 Mon Sep 17 00:00:00 2001 From: Peter Plochan Date: Tue, 8 Jan 2019 11:31:11 +0100 Subject: [PATCH 106/487] [maven-release-plugin] prepare for next development iteration --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 469ddbcdd..6d2770c1a 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 gooddata-java - 2.32.0+api1 + 2.32.1-SNAPSHOT ${project.artifactId} GoodData Java SDK https://github.com/gooddata/gooddata-java @@ -24,7 +24,7 @@ git@github.com:gooddata/gooddata-java.git scm:git:git@github.com:gooddata/gooddata-java.git scm:git:${basedir} - gooddata-java-2.32.0+api1 + HEAD From d5b92f3677083ffc2da35b116fb0c26c877d164f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 14 Jan 2019 13:19:40 +0000 Subject: [PATCH 107/487] Bump json-unit.version from 2.2.0 to 2.3.0 Bumps `json-unit.version` from 2.2.0 to 2.3.0. Updates `json-unit` from 2.2.0 to 2.3.0 - [Release notes](https://github.com/lukas-krecan/JsonUnit/releases) - [Commits](https://github.com/lukas-krecan/JsonUnit/compare/json-unit-parent-2.2.0...json-unit-parent-2.3.0) Updates `json-unit-core` from 2.2.0 to 2.3.0 - [Release notes](https://github.com/lukas-krecan/JsonUnit/releases) - [Commits](https://github.com/lukas-krecan/JsonUnit/compare/json-unit-parent-2.2.0...json-unit-parent-2.3.0) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6d2770c1a..c5f46d767 100644 --- a/pom.xml +++ b/pom.xml @@ -46,7 +46,7 @@ 1.7.25 4.3.18.RELEASE 1.3.0 - 2.2.0 + 2.3.0 2.22.1 2.22.1 From 53ff00fe3c5cd2158cf0865e07f00c8c8f407890 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Fri, 18 Jan 2019 13:23:59 +0000 Subject: [PATCH 108/487] Bump httpcore from 4.4.10 to 4.4.11 Bumps httpcore from 4.4.10 to 4.4.11. Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c5f46d767..f1968a95e 100644 --- a/pom.xml +++ b/pom.xml @@ -40,7 +40,7 @@ 4.5.6 - 4.4.10 + 4.4.11 2.8.11 2.8.11.2 1.7.25 From 99bf4d9ea6906cd73771948f92077686e0727a68 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Thu, 24 Jan 2019 13:24:14 +0000 Subject: [PATCH 109/487] Bump jacoco-maven-plugin from 0.8.2 to 0.8.3 Bumps [jacoco-maven-plugin](https://github.com/jacoco/jacoco) from 0.8.2 to 0.8.3. - [Release notes](https://github.com/jacoco/jacoco/releases) - [Commits](https://github.com/jacoco/jacoco/compare/v0.8.2...v0.8.3) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index f1968a95e..6dd4a21ba 100644 --- a/pom.xml +++ b/pom.xml @@ -216,7 +216,7 @@ org.jacoco jacoco-maven-plugin - 0.8.2 + 0.8.3 jacoco-prepare-agent From a50d9f7aa7821298370b0e45adb22cf2faa8d792 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 28 Jan 2019 13:15:41 +0000 Subject: [PATCH 110/487] Bump httpclient from 4.5.6 to 4.5.7 Bumps httpclient from 4.5.6 to 4.5.7. Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6dd4a21ba..c527e7658 100644 --- a/pom.xml +++ b/pom.xml @@ -39,7 +39,7 @@ - 4.5.6 + 4.5.7 4.4.11 2.8.11 2.8.11.2 From 693f3226a93c2c9cecfa102da0c180193e5149df Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Fri, 18 Jan 2019 14:27:10 +0000 Subject: [PATCH 111/487] Bump jackson.version from 2.8.11 to 2.9.8 Bumps `jackson.version` from 2.8.11 to 2.9.8. Updates `jackson-core` from 2.8.11 to 2.9.8 - [Release notes](https://github.com/FasterXML/jackson-core/releases) - [Commits](https://github.com/FasterXML/jackson-core/compare/jackson-core-2.8.11...jackson-core-2.9.8) Updates `jackson-annotations` from 2.8.11 to 2.9.8 - [Release notes](https://github.com/FasterXML/jackson/releases) - [Commits](https://github.com/FasterXML/jackson/commits) Signed-off-by: dependabot[bot] --- README.md | 2 +- pom.xml | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index ecf4196d2..b8886b034 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ The *GoodData Java SDK* uses: * the [GoodData HTTP client](https://github.com/gooddata/gooddata-http-client) version 0.9.3 or later * the *Apache HTTP Client* version 4.5 or later (for white-labeled domains at least version 4.3.2 is required) * the *Spring Framework* version 4.3.* -* the *Jackson JSON Processor* version 2.8.* +* the *Jackson JSON Processor* version 2.* * the *Slf4j API* version 1.7.* * the *Java Development Kit (JDK)* version 8 or later diff --git a/pom.xml b/pom.xml index f1968a95e..e7b4baecc 100644 --- a/pom.xml +++ b/pom.xml @@ -41,8 +41,7 @@ 4.5.6 4.4.11 - 2.8.11 - 2.8.11.2 + 2.9.8 1.7.25 4.3.18.RELEASE 1.3.0 @@ -320,7 +319,7 @@ com.fasterxml.jackson.core jackson-databind - ${jackson.databind.version} + ${jackson.version} com.fasterxml.jackson.core From c1392f585f73d2c385bf8b27f64c9a97ad7cf16f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" Date: Mon, 4 Feb 2019 13:14:53 +0000 Subject: [PATCH 112/487] Bump gooddata-http-client from 0.9.4 to 1.0.0 Bumps [gooddata-http-client](https://github.com/gooddata/gooddata-http-client) from 0.9.4 to 1.0.0. - [Release notes](https://github.com/gooddata/gooddata-http-client/releases) - [Commits](https://github.com/gooddata/gooddata-http-client/compare/gooddata-http-client-0.9.4...gooddata-http-client-1.0.0) Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 2bbca1d15..56b30783a 100644 --- a/pom.xml +++ b/pom.xml @@ -263,7 +263,7 @@ com.gooddata gooddata-http-client - 0.9.4 + 1.0.0 org.apache.commons From 28bd1cd6b9615e95af3e90a6eeca4aec693eac41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Mikul=C3=A1=C5=A1ek?= Date: Wed, 19 Dec 2018 14:55:05 +0100 Subject: [PATCH 113/487] Split SDK into model and service modules --- findBugsFilter.xml | 2 +- gooddata-java-model/pom.xml | 125 +++++ .../gooddata/sdk/model}/account/Account.java | 13 +- .../sdk/model}/auditevent/AuditEvent.java | 4 +- .../sdk/model}/auditevent/AuditEvents.java | 4 +- .../auditevent/AuditEventsDeserializer.java | 4 +- .../auditevent/AuditEventsSerializer.java | 4 +- .../sdk/model}/connector/ConnectorType.java | 4 +- .../sdk/model}/connector/CoupaInstance.java | 6 +- .../sdk/model}/connector/CoupaInstances.java | 10 +- .../connector/CoupaProcessExecution.java | 4 +- .../sdk/model}/connector/CoupaSettings.java | 4 +- .../sdk/model}/connector/Integration.java | 4 +- .../connector/IntegrationProcessStatus.java | 4 +- .../connector/PardotProcessExecution.java | 4 +- .../sdk/model}/connector/PardotSettings.java | 4 +- .../model}/connector/ProcessExecution.java | 4 +- .../sdk/model}/connector/ProcessStatus.java | 4 +- .../sdk/model}/connector/Settings.java | 4 +- .../gooddata/sdk/model}/connector/Status.java | 10 +- .../connector/Zendesk4ProcessExecution.java | 6 +- .../model}/connector/Zendesk4Settings.java | 6 +- .../sdk/model}/dataload/OutputStage.java | 9 +- .../model}/dataload/processes/AsyncTask.java | 8 +- .../dataload/processes/DataloadProcess.java | 4 +- .../dataload/processes/DataloadProcesses.java | 10 +- .../dataload/processes/ProcessExecution.java | 6 +- .../processes/ProcessExecutionDetail.java | 4 +- .../processes/ProcessExecutionTask.java | 10 +- .../dataload/processes/ProcessType.java | 4 +- .../model}/dataload/processes/Schedule.java | 4 +- .../dataload/processes/ScheduleExecution.java | 6 +- .../dataload/processes/ScheduleState.java | 4 +- .../model}/dataload/processes/Schedules.java | 6 +- .../processes/SchedulesDeserializer.java | 4 +- .../gooddata/sdk/model}/dataset/Dataset.java | 10 +- .../sdk/model}/dataset/DatasetLinks.java | 8 +- .../sdk/model}/dataset/DatasetManifest.java | 4 +- .../sdk/model}/dataset/DatasetManifests.java | 6 +- .../dataset/DatasetNotFoundException.java | 4 +- .../gooddata/sdk/model}/dataset/Datasets.java | 8 +- .../gooddata/sdk/model}/dataset/EtlMode.java | 6 +- .../sdk/model}/dataset/EtlModeType.java | 6 +- .../sdk/model}/dataset/LookupMode.java | 6 +- .../gooddata/sdk/model}/dataset/MaqlDml.java | 8 +- .../com/gooddata/sdk/model}/dataset/Pull.java | 6 +- .../gooddata/sdk/model}/dataset/PullTask.java | 6 +- .../sdk/model}/dataset/TaskState.java | 6 +- .../gooddata/sdk/model}/dataset/Upload.java | 4 +- .../sdk/model}/dataset/UploadMode.java | 4 +- .../sdk/model}/dataset/UploadStatistics.java | 4 +- .../gooddata/sdk/model}/dataset/Uploads.java | 8 +- .../sdk/model}/dataset/UploadsInfo.java | 22 +- .../sdk/model}/executeafm/Execution.java | 8 +- .../executeafm/IdentifierObjQualifier.java | 9 +- .../sdk/model}/executeafm/ObjQualifier.java | 9 +- .../sdk/model}/executeafm/ResultPage.java | 14 +- .../model}/executeafm/UriObjQualifier.java | 9 +- .../executeafm/VisualizationExecution.java | 10 +- .../executeafm/afm/AbsoluteDateFilter.java | 10 +- .../sdk/model}/executeafm/afm/Afm.java | 4 +- .../model}/executeafm/afm/Aggregation.java | 4 +- .../afm/ArithmeticMeasureDefinition.java | 12 +- .../executeafm/afm/AttributeFilter.java | 6 +- .../model}/executeafm/afm/AttributeItem.java | 13 +- .../executeafm/afm/CompatibilityFilter.java | 4 +- .../sdk/model}/executeafm/afm/DateFilter.java | 6 +- .../afm/DerivedMeasureDefinition.java | 4 +- .../executeafm/afm/ExpressionFilter.java | 4 +- .../sdk/model}/executeafm/afm/FilterItem.java | 11 +- .../executeafm/afm/LocallyIdentifiable.java | 4 +- .../executeafm/afm/MeasureDefinition.java | 19 +- .../model}/executeafm/afm/MeasureItem.java | 4 +- .../executeafm/afm/NativeTotalItem.java | 4 +- .../afm/NegativeAttributeFilter.java | 10 +- .../afm/ObjIdentifierUtilities.java | 12 +- .../executeafm/afm/ObjQualifierConverter.java | 10 +- .../afm/OverPeriodDateAttribute.java | 6 +- .../afm/OverPeriodMeasureDefinition.java | 10 +- .../executeafm/afm/PopMeasureDefinition.java | 13 +- .../afm/PositiveAttributeFilter.java | 8 +- .../afm/PreviousPeriodDateDataSet.java | 6 +- .../afm/PreviousPeriodMeasureDefinition.java | 10 +- .../executeafm/afm/RelativeDateFilter.java | 8 +- .../afm/SimpleMeasureDefinition.java | 13 +- .../executeafm/response/AttributeHeader.java | 11 +- .../response/AttributeInHeader.java | 4 +- .../response/ExecutionResponse.java | 10 +- .../model}/executeafm/response/Header.java | 7 +- .../response/MeasureGroupHeader.java | 4 +- .../response/MeasureHeaderItem.java | 11 +- .../executeafm/response/ResultDimension.java | 7 +- .../executeafm/response/TotalHeaderItem.java | 6 +- .../result/AttributeHeaderItem.java | 9 +- .../sdk/model}/executeafm/result/Data.java | 4 +- .../model}/executeafm/result/DataList.java | 6 +- .../model}/executeafm/result/DataValue.java | 11 +- .../executeafm/result/ExecutionResult.java | 7 +- .../sdk/model}/executeafm/result/Paging.java | 4 +- .../executeafm/result/ResultHeaderItem.java | 4 +- .../result/ResultMeasureHeaderItem.java | 6 +- .../result/ResultTotalHeaderItem.java | 8 +- .../sdk/model}/executeafm/result/Warning.java | 4 +- .../resultspec/AttributeLocatorItem.java | 4 +- .../resultspec/AttributeSortAggregation.java | 4 +- .../resultspec/AttributeSortItem.java | 4 +- .../executeafm/resultspec/Dimension.java | 6 +- .../executeafm/resultspec/Direction.java | 4 +- .../executeafm/resultspec/LocatorItem.java | 4 +- .../resultspec/MeasureLocatorItem.java | 4 +- .../resultspec/MeasureSortItem.java | 4 +- .../executeafm/resultspec/ResultSpec.java | 6 +- .../executeafm/resultspec/SortItem.java | 4 +- .../executeafm/resultspec/TotalItem.java | 8 +- .../resultspec/TotalLocatorItem.java | 4 +- .../sdk/model}/export/ClientExport.java | 12 +- .../sdk/model}/export/ExecuteReport.java | 6 +- .../export/ExecuteReportDefinition.java | 6 +- .../sdk/model}/export/ExportFormat.java | 4 +- .../sdk/model}/export/ReportRequest.java | 4 +- .../sdk/model}/featureflag/FeatureFlag.java | 4 +- .../sdk/model}/featureflag/FeatureFlags.java | 4 +- .../featureflag/ProjectFeatureFlag.java | 4 +- .../featureflag/ProjectFeatureFlags.java | 6 +- .../gooddata/sdk/model}/gdc/AboutLinks.java | 4 +- .../gooddata/sdk/model}/gdc/AbstractMaql.java | 4 +- .../gooddata/sdk/model}/gdc/AsyncTask.java | 4 +- .../java/com/gooddata/sdk/model}/gdc/Gdc.java | 5 +- .../gooddata/sdk/model}/gdc/LinkEntries.java | 4 +- .../gooddata/sdk/model}/gdc/RootLinks.java | 4 +- .../gooddata/sdk/model}/gdc/TaskStatus.java | 5 +- .../gooddata/sdk/model}/gdc/UriResponse.java | 4 +- .../gooddata/sdk/model}/lcm/LcmEntities.java | 4 +- .../gooddata/sdk/model}/lcm/LcmEntity.java | 15 +- .../gooddata/sdk/model}/md/AbstractObj.java | 4 +- .../gooddata/sdk/model}/md/Attachment.java | 4 +- .../com/gooddata/sdk/model}/md/Attribute.java | 4 +- .../sdk/model}/md/AttributeDisplayForm.java | 4 +- .../sdk/model}/md/AttributeElement.java | 4 +- .../sdk/model}/md/AttributeElements.java | 6 +- .../gooddata/sdk/model}/md/AttributeSort.java | 4 +- .../com/gooddata/sdk/model}/md/BulkGet.java | 6 +- .../gooddata/sdk/model}/md/BulkGetUris.java | 8 +- .../com/gooddata/sdk/model}/md/Column.java | 4 +- .../sdk/model}/md/DashboardAttachment.java | 4 +- .../sdk/model}/md/DataLoadingColumn.java | 6 +- .../com/gooddata/sdk/model}/md/Dataset.java | 4 +- .../com/gooddata/sdk/model}/md/Dimension.java | 4 +- .../gooddata/sdk/model}/md/DisplayForm.java | 4 +- .../com/gooddata/sdk/model}/md/Entry.java | 6 +- .../gooddata/sdk/model}/md/Expression.java | 4 +- .../java/com/gooddata/sdk/model}/md/Fact.java | 4 +- .../sdk/model}/md/IdentifierAndUri.java | 4 +- .../sdk/model}/md/IdentifierToUri.java | 8 +- .../sdk/model}/md/IdentifiersAndUris.java | 6 +- .../com/gooddata/sdk/model}/md/InUseMany.java | 6 +- .../java/com/gooddata/sdk/model}/md/Key.java | 4 +- .../com/gooddata/sdk/model}/md/MaqlAst.java | 4 +- .../java/com/gooddata/sdk/model}/md/Meta.java | 10 +- .../com/gooddata/sdk/model}/md/Metric.java | 4 +- .../sdk/model}/md/NestedAttribute.java | 4 +- .../java/com/gooddata/sdk/model}/md/Obj.java | 12 +- .../sdk/model}/md/ProjectDashboard.java | 4 +- .../com/gooddata/sdk/model}/md/Query.java | 4 +- .../com/gooddata/sdk/model}/md/Queryable.java | 4 +- .../sdk/model}/md/ReportAttachment.java | 6 +- .../gooddata/sdk/model}/md/Restriction.java | 6 +- .../gooddata/sdk/model}/md/ScheduledMail.java | 10 +- .../sdk/model}/md/ScheduledMailWhen.java | 6 +- .../com/gooddata/sdk/model}/md/Table.java | 4 +- .../gooddata/sdk/model}/md/TableDataLoad.java | 4 +- .../com/gooddata/sdk/model}/md/Updatable.java | 4 +- .../com/gooddata/sdk/model}/md/Usage.java | 6 +- .../com/gooddata/sdk/model}/md/UseMany.java | 8 +- .../sdk/model}/md/UseManyEntries.java | 6 +- .../md/maintenance/PartialMdArtifact.java | 8 +- .../md/maintenance/PartialMdExport.java | 4 +- .../md/maintenance/PartialMdExportToken.java | 6 +- .../sdk/model}/md/report/AttributeInGrid.java | 8 +- .../gooddata/sdk/model}/md/report/Filter.java | 4 +- .../gooddata/sdk/model}/md/report/Grid.java | 4 +- .../sdk/model}/md/report/GridElement.java | 4 +- .../md/report/GridElementDeserializer.java | 6 +- .../md/report/GridElementSerializer.java | 4 +- .../report/GridReportDefinitionContent.java | 6 +- .../sdk/model}/md/report/MetricElement.java | 6 +- .../sdk/model}/md/report/MetricGroup.java | 4 +- .../OneNumberReportDefinitionContent.java | 6 +- .../gooddata/sdk/model}/md/report/Report.java | 16 +- .../model}/md/report/ReportDefinition.java | 12 +- .../md/report/ReportDefinitionContent.java | 4 +- .../gooddata/sdk/model}/md/report/Total.java | 4 +- .../sdk/model}/md/visualization/Bucket.java | 6 +- .../model}/md/visualization/BucketItem.java | 4 +- .../md/visualization/CollectionType.java | 4 +- .../sdk/model}/md/visualization/Measure.java | 8 +- .../visualization/VOPopMeasureDefinition.java | 13 +- .../VOSimpleMeasureDefinition.java | 24 +- .../visualization/VisualizationAttribute.java | 8 +- .../md/visualization/VisualizationClass.java | 12 +- .../visualization/VisualizationConverter.java | 50 +- .../md/visualization/VisualizationObject.java | 34 +- .../md/visualization/VisualizationType.java | 4 +- .../sdk/model}/notification/Channel.java | 8 +- .../model}/notification/Configuration.java | 4 +- .../notification/EmailConfiguration.java | 4 +- .../model}/notification/MessageTemplate.java | 4 +- .../sdk/model}/notification/ProjectEvent.java | 4 +- .../sdk/model}/notification/Subscription.java | 6 +- .../sdk/model}/notification/TimerEvent.java | 4 +- .../sdk/model}/notification/Trigger.java | 4 +- .../model}/notification/TriggerCondition.java | 4 +- .../model}/project/CreatedInvitations.java | 4 +- .../sdk/model}/project/Environment.java | 4 +- .../sdk/model}/project/Invitation.java | 6 +- .../sdk/model}/project/Invitations.java | 12 +- .../gooddata/sdk/model}/project/Project.java | 6 +- .../sdk/model}/project/ProjectDriver.java | 4 +- .../model}/project/ProjectEnvironment.java | 6 +- .../sdk/model}/project/ProjectTemplate.java | 4 +- .../sdk/model}/project/ProjectTemplates.java | 6 +- .../project/ProjectUsersUpdateResult.java | 6 +- .../project/ProjectValidationResult.java | 4 +- ...ProjectValidationResultGdcTimeElParam.java | 5 +- .../project/ProjectValidationResultItem.java | 4 +- .../ProjectValidationResultObjectParam.java | 4 +- .../project/ProjectValidationResultParam.java | 4 +- .../ProjectValidationResultSliElParam.java | 4 +- .../ProjectValidationResultStringParam.java | 4 +- .../project/ProjectValidationResults.java | 4 +- .../model}/project/ProjectValidationType.java | 4 +- .../model}/project/ProjectValidations.java | 8 +- .../gooddata/sdk/model}/project/Projects.java | 4 +- .../com/gooddata/sdk/model}/project/Role.java | 8 +- .../gooddata/sdk/model}/project/Roles.java | 8 +- .../com/gooddata/sdk/model}/project/User.java | 8 +- .../gooddata/sdk/model}/project/Users.java | 8 +- .../sdk/model}/project/UsersDeserializer.java | 4 +- .../sdk/model}/project/UsersSerializer.java | 4 +- .../sdk/model/project}/model/DiffRequest.java | 4 +- .../sdk/model/project}/model/MaqlDdl.java | 8 +- .../model/project}/model/MaqlDdlLinks.java | 7 +- .../sdk/model/project}/model/ModelDiff.java | 6 +- .../sdk/model}/projecttemplate/Template.java | 4 +- .../sdk/model}/projecttemplate/Templates.java | 10 +- .../sdk/model}/report/ReportExportFormat.java | 8 +- .../sdk/model}/util/TagsDeserializer.java | 4 +- .../sdk/model}/util/TagsSerializer.java | 4 +- .../sdk/model}/warehouse/Warehouse.java | 6 +- .../sdk/model}/warehouse/WarehouseSchema.java | 4 +- .../model}/warehouse/WarehouseSchemas.java | 4 +- .../WarehouseSchemasDeserializer.java | 4 +- .../sdk/model}/warehouse/WarehouseTask.java | 12 +- .../sdk/model}/warehouse/WarehouseUser.java | 6 +- .../model}/warehouse/WarehouseUserRole.java | 4 +- .../sdk/model}/warehouse/WarehouseUsers.java | 4 +- .../warehouse/WarehouseUsersDeserializer.java | 4 +- .../warehouse/WarehouseUsersSerializer.java | 8 +- .../sdk/model}/warehouse/Warehouses.java | 4 +- .../warehouse/WarehousesDeserializer.java | 4 +- .../warehouse/WarehousesSerializer.java | 8 +- .../src}/main/resources/GoodDataApiVersion | 0 .../model}/executeafm/ExecutionTest.groovy | 22 +- .../IdentifierObjQualifierTest.groovy | 4 +- .../model}/executeafm/ObjQualifierTest.groovy | 4 +- .../model}/executeafm/ResultPageTest.groovy | 4 +- .../executeafm/UriObjQualifierTest.groovy | 4 +- .../VisualizationExecutionTest.groovy | 16 +- .../afm/AbsoluteDateFilterTest.groovy | 8 +- .../sdk/model}/executeafm/afm/AfmTest.groovy | 8 +- .../ArithmeticMeasureDefinitionTest.groovy | 6 +- .../executeafm/afm/AttributeItemTest.groovy | 8 +- .../afm/CompatibilityFilterTest.groovy | 4 +- .../afm/ExpressionFilterTest.groovy | 4 +- .../executeafm/afm/FilterItemTest.groovy | 4 +- .../afm/MeasureDefinitionTest.groovy | 4 +- .../executeafm/afm/MeasureItemTest.groovy | 6 +- .../executeafm/afm/NativeTotalItemTest.groovy | 4 +- .../afm/NegativeAttributeFilterTest.groovy | 10 +- .../afm/ObjIdentifierUtilitiesTest.groovy | 12 +- .../afm/OverPeriodDateAttributeTest.groovy | 6 +- .../OverPeriodMeasureDefinitionTest.groovy | 8 +- .../afm/PopMeasureDefinitionTest.groovy | 9 +- .../afm/PositiveAttributeFilterTest.groovy | 10 +- .../afm/PreviousPeriodDateDataSetTest.groovy | 6 +- ...PreviousPeriodMeasureDefinitionTest.groovy | 8 +- .../afm/RelativeDateFilterTest.groovy | 8 +- .../afm/SimpleMeasureDefinitionTest.groovy | 8 +- .../response/AttributeHeaderTest.groovy | 4 +- .../response/AttributeInHeaderTest.groovy | 4 +- .../response/ExecutionResponseTest.groovy | 4 +- .../executeafm/response/HeaderTest.groovy | 4 +- .../response/MeasureGroupHeaderTest.groovy | 4 +- .../response/MeasureHeaderItemTest.groovy | 4 +- .../response/ResultDimensionTest.groovy | 4 +- .../response/TotalHeaderItemTest.groovy | 6 +- .../result/AttributeHeaderItemTest.groovy | 4 +- .../executeafm/result/DataListTest.groovy | 4 +- .../model}/executeafm/result/DataTest.groovy | 4 +- .../executeafm/result/DataValueTest.groovy | 4 +- .../result/ExecutionResultTest.groovy | 4 +- .../executeafm/result/PagingTest.groovy | 4 +- .../result/ResultHeaderItemTest.groovy | 4 +- .../result/ResultMeasureHeaderItemTest.groovy | 4 +- .../result/ResultTotalHeaderItemTest.groovy | 6 +- .../executeafm/result/WarningTest.groovy | 4 +- .../AttributeLocatorItemTest.groovy | 4 +- .../resultspec/AttributeSortItemTest.groovy | 4 +- .../resultspec/DimensionTest.groovy | 6 +- .../resultspec/MeasureLocatorItemTest.groovy | 4 +- .../resultspec/MeasureSortItemTest.groovy | 4 +- .../resultspec/ResultSpecTest.groovy | 4 +- .../resultspec/TotalItemTest.groovy | 6 +- .../resultspec/TotalLocatorItemTest.groovy | 4 +- .../sdk/model}/lcm/LcmEntitiesTest.groovy | 4 +- .../sdk/model}/lcm/LcmEntityTest.groovy | 4 +- .../sdk/model}/md/report/TotalTest.groovy | 16 +- .../model}/md/visualization/BucketTest.groovy | 6 +- .../md/visualization/MeasureTest.groovy | 6 +- .../VisualizationAttributeTest.groovy | 6 +- .../VisualizationClassTest.groovy | 7 +- .../VisualizationConverterTest.groovy | 34 +- .../VisualizationObjectTest.groovy | 14 +- .../sdk/model}/account/AccountTest.java | 4 +- .../sdk/model}/auditevent/AuditEventTest.java | 4 +- .../model}/auditevent/AuditEventsTest.java | 8 +- .../model}/connector/CoupaInstanceTest.java | 4 +- .../model}/connector/CoupaInstancesTest.java | 4 +- .../connector/CoupaProcessExecutionTest.java | 4 +- .../model}/connector/CoupaSettingsTest.java | 4 +- .../IntegrationProcessStatusTest.java | 12 +- .../sdk/model}/connector/IntegrationTest.java | 4 +- .../connector/PardotProcessExecutionTest.java | 4 +- .../model}/connector/PardotSettingsTest.java | 4 +- .../connector/ProcessExecutionTest.java | 6 +- .../model}/connector/ProcessStatusTest.java | 6 +- .../sdk/model}/connector/StatusTest.java | 12 +- .../Zendesk4ProcessExecutionTest.java | 6 +- .../connector/Zendesk4SettingsTest.java | 8 +- .../sdk/model}/dataload/OutputStageTest.java | 4 +- .../processes/DataloadProcessTest.java | 4 +- .../processes/DataloadProcessesTest.java | 4 +- .../processes/ProcessExecutionDetailTest.java | 4 +- .../processes/ProcessExecutionTaskTest.java | 4 +- .../processes/ProcessExecutionTest.java | 4 +- .../processes/ScheduleExecutionTest.java | 4 +- .../dataload/processes/ScheduleTest.java | 4 +- .../dataload/processes/SchedulesTest.java | 4 +- .../sdk/model}/dataset/DatasetLinksTest.java | 6 +- .../model}/dataset/DatasetManifestTest.java | 4 +- .../sdk/model}/dataset/DatasetTest.java | 4 +- .../sdk/model}/dataset/DatasetsTest.java | 6 +- .../sdk/model}/dataset/MaqlDmlTest.java | 5 +- .../sdk/model}/dataset/PullTaskTest.java | 4 +- .../gooddata/sdk/model}/dataset/PullTest.java | 4 +- .../sdk/model}/dataset/TaskStateTest.java | 4 +- .../model}/dataset/UploadStatisticsTest.java | 7 +- .../sdk/model}/dataset/UploadTest.java | 4 +- .../sdk/model}/dataset/UploadsInfoTest.java | 4 +- .../sdk/model}/dataset/UploadsTest.java | 4 +- .../sdk/model}/export/ClientExportTest.java | 7 +- .../export/ExecuteReportDefinitionTest.java | 4 +- .../sdk/model}/export/ExecuteReportTest.java | 4 +- .../sdk/model}/export/ExportFormatTest.java | 8 +- .../model}/featureflag/FeatureFlagTest.java | 4 +- .../model}/featureflag/FeatureFlagsTest.java | 4 +- .../featureflag/ProjectFeatureFlagTest.java | 4 +- .../featureflag/ProjectFeatureFlagsTest.java | 4 +- .../sdk/model}/gdc/AboutLinksTest.java | 4 +- .../sdk/model}/gdc/AsyncTaskTest.java | 4 +- .../com/gooddata/sdk/model}/gdc/GdcTest.java | 4 +- .../sdk/model}/gdc/LinkEntriesTest.java | 4 +- .../sdk/model}/gdc/RootLinksTest.java | 4 +- .../sdk/model}/gdc/TaskStatusTest.java | 5 +- .../sdk/model}/gdc/UriResponseTest.java | 4 +- .../sdk/model}/md/AttachmentTest.java | 4 +- .../model}/md/AttributeDisplayFormTest.java | 4 +- .../sdk/model}/md/AttributeElementTest.java | 4 +- .../sdk/model}/md/AttributeElementsTest.java | 4 +- .../sdk/model}/md/AttributeSortTest.java | 4 +- .../gooddata/sdk/model}/md/AttributeTest.java | 4 +- .../sdk/model}/md/BulkGetUrisTest.java | 4 +- .../gooddata/sdk/model}/md/ColumnTest.java | 4 +- .../model}/md/DashboardAttachmentTest.java | 4 +- .../sdk/model}/md/DataLoadingColumnTest.java | 4 +- .../gooddata/sdk/model}/md/DatasetTest.java | 4 +- .../gooddata/sdk/model}/md/DimensionTest.java | 4 +- .../sdk/model}/md/DisplayFormTest.java | 4 +- .../com/gooddata/sdk/model}/md/EntryTest.java | 4 +- .../sdk/model}/md/ExpressionTest.java | 4 +- .../com/gooddata/sdk/model}/md/FactTest.java | 4 +- .../sdk/model}/md/IdentifierToUriTest.java | 4 +- .../gooddata/sdk/model}/md/InUseManyTest.java | 4 +- .../com/gooddata/sdk/model}/md/KeyTest.java | 4 +- .../com/gooddata/sdk/model}/md/MetaTest.java | 4 +- .../gooddata/sdk/model}/md/MetricTest.java | 4 +- .../sdk/model}/md/NestedAttributeTest.java | 4 +- .../com/gooddata/sdk/model}/md/ObjTest.java | 4 +- .../sdk/model}/md/ProjectDashboardTest.java | 6 +- .../com/gooddata/sdk/model}/md/QueryTest.java | 4 +- .../sdk/model}/md/ReportAttachmentTest.java | 8 +- .../sdk/model}/md/RestrictionTest.java | 4 +- .../sdk/model}/md/ScheduledMailTest.java | 6 +- .../sdk/model}/md/ScheduledMailWhenTest.java | 4 +- .../sdk/model}/md/TableDataLoadTest.java | 4 +- .../com/gooddata/sdk/model}/md/TableTest.java | 4 +- .../md/maintenance/PartialMdArtifactTest.java | 6 +- .../md/maintenance/PartialMdExportTest.java | 4 +- .../maintenance/PartialMdExportTokenTest.java | 4 +- .../model}/md/report/AttributeInGridTest.java | 8 +- .../report/GridElementDeserializerTest.java | 4 +- .../md/report/GridElementSerializerTest.java | 6 +- .../GridReportDefinitionContentTest.java | 4 +- .../sdk/model}/md/report/GridTest.java | 6 +- .../model}/md/report/MetricElementTest.java | 6 +- .../OneNumberReportDefinitionContentTest.java | 4 +- .../report/ReportDefinitionContentTest.java | 4 +- .../md/report/ReportDefinitionTest.java | 4 +- .../sdk/model}/md/report/ReportTest.java | 4 +- .../sdk/model}/notification/ChannelTest.java | 4 +- .../model}/notification/ConditionTest.java | 4 +- .../notification/EmailConfigurationTest.java | 4 +- .../notification/MessageTemplateTest.java | 4 +- .../model}/notification/ProjectEventTest.java | 4 +- .../model}/notification/SubscriptionTest.java | 6 +- .../model}/notification/TimerEventTest.java | 4 +- .../project/CreatedInvitationsTest.java | 4 +- .../sdk/model}/project/InvitationsTest.java | 4 +- .../model}/project/ProjectTemplateTest.java | 4 +- .../model}/project/ProjectTemplatesTest.java | 4 +- .../sdk/model}/project/ProjectTest.java | 4 +- .../project/ProjectUsersUpdateResultTest.java | 4 +- ...ectValidationResultGdcTimeElParamTest.java | 4 +- .../ProjectValidationResultItemTest.java | 4 +- ...rojectValidationResultObjectParamTest.java | 4 +- .../ProjectValidationResultParamTest.java | 5 +- ...ProjectValidationResultSliElParamTest.java | 4 +- ...rojectValidationResultStringParamTest.java | 4 +- .../project/ProjectValidationResultTest.java | 4 +- .../project/ProjectValidationResultsTest.java | 4 +- .../project/ProjectValidationTypeTest.java | 4 +- .../project/ProjectValidationsTest.java | 6 +- .../gooddata/sdk/model}/project/RoleTest.java | 4 +- .../sdk/model}/project/RolesTest.java | 4 +- .../gooddata/sdk/model}/project/UserTest.java | 4 +- .../sdk/model}/project/UsersTest.java | 6 +- .../model/project}/model/DiffRequestTest.java | 4 +- .../project}/model/MaqlDdlLinksTest.java | 4 +- .../sdk/model/project}/model/MaqlDdlTest.java | 4 +- .../model/project}/model/ModelDiffTest.java | 6 +- .../model}/projecttemplate/TemplateTest.java | 4 +- .../model}/report/ReportExportFormatTest.java | 6 +- .../sdk/model}/util/TagsDeserializerTest.java | 4 +- .../sdk/model}/util/TagsSerializerTest.java | 4 +- .../sdk/model}/util/TagsTestClass.java | 4 +- .../model}/warehouse/WarehouseSchemaTest.java | 4 +- .../warehouse/WarehouseSchemasTest.java | 4 +- .../model}/warehouse/WarehouseTaskTest.java | 4 +- .../sdk/model}/warehouse/WarehouseTest.java | 6 +- .../model}/warehouse/WarehouseUserTest.java | 6 +- .../model}/warehouse/WarehouseUsersTest.java | 4 +- .../sdk/model}/warehouse/WarehousesTest.java | 4 +- .../test/resources/account/account-input.json | 0 .../src}/test/resources/account/account.json | 0 .../resources/account/create-account.json | 0 .../resources/auditevents/auditEvent.json | 0 .../auditevents/auditEventWithParam.json | 0 .../auditEventWithParamAndLink.json | 0 .../resources/auditevents/auditEvents.json | 0 .../auditevents/emptyAuditEvents.json | 0 .../auditevents/userAuditEvents.json | 0 .../resources/connector/coupa_instance.json | 0 .../resources/connector/coupa_instances.json | 0 .../resources/connector/integration-in.json | 0 .../test/resources/connector/integration.json | 0 .../process-execution-coupa-downloadDate.json | 0 .../connector/process-execution-empty.json | 0 .../process-execution-incremental.json | 0 .../process-execution-pardot-changesFrom.json | 0 .../connector/process-execution-reload.json | 0 .../process-execution-zendesk4-download.json | 0 .../process-execution-zendesk4-startDate.json | 0 .../connector/process-status-embedded.json | 0 .../connector/process-status-error.json | 0 .../resources/connector/settings-coupa.json | 0 .../resources/connector/settings-pardot.json | 0 .../settings-zendesk4-before-template26.json | 0 .../connector/settings-zendesk4.json | 0 .../test/resources/dataload/outputStage.json | 0 .../dataload/outputStageAllFields.json | 0 .../dataload/outputStageNoProcess.json | 0 .../processes/emptyScheduleExecution.json | 0 .../dataload/processes/execution.json | 0 .../dataload/processes/executionDetail.json | 0 .../dataload/processes/executionTask.json | 0 .../processes/process-input-withPath.json | 0 .../dataload/processes/process-input.json | 0 .../resources/dataload/processes/process.json | 0 .../dataload/processes/processes.json | 0 .../processes/schedule-input-all-fields.json | 0 .../dataload/processes/schedule-input.json | 0 .../processes/schedule-triggered-input.json | 0 .../processes/schedule-triggered.json | 0 .../dataload/processes/schedule.json | 0 .../dataload/processes/scheduleExecution.json | 0 .../dataload/processes/schedules.json | 0 .../dataload/processes/schedules_page1.json | 0 .../src}/test/resources/dataset/dataset.json | 0 .../test/resources/dataset/datasetLinks.json | 0 .../dataset/datasetManifest-input.json | 0 .../resources/dataset/datasetManifest.json | 0 .../src}/test/resources/dataset/maqlDml.json | 0 .../src}/test/resources/dataset/pull.json | 0 .../src}/test/resources/dataset/pullTask.json | 0 .../test/resources/dataset/taskStateOK.json | 0 .../resources/dataset/uploads/data-sets.json | 0 .../dataset/uploads/data-uploads-info.json | 0 .../resources/dataset/uploads/upload.json | 0 .../resources/dataset/uploads/uploads.json | 0 .../executeafm/afm/absoluteDateFilter.json | 0 .../test/resources/executeafm/afm/afm.json | 0 .../afm/arithmeticMeasureDefinition.json | 0 .../executeafm/afm/attributeItem.json | 0 .../executeafm/afm/attributeItemFull.json | 0 .../executeafm/afm/expressionFilter.json | 0 .../resources/executeafm/afm/measureItem.json | 0 .../executeafm/afm/measureItemFull.json | 0 .../executeafm/afm/nativeTotalItem.json | 0 .../afm/negativeAttributeFilter.json | 0 .../afm/overPeriodDateAttribute.json | 0 .../afm/overPeriodMeasureDefinition.json | 0 ...iodMeasureDefinitionWithTwoAttributes.json | 0 .../executeafm/afm/popMeasureDefinition.json | 0 .../afm/positiveAttributeFilter.json | 0 .../afm/previousPeriodDateDataSet.json | 0 .../afm/previousPeriodMeasureDefinition.json | 0 ...eriodMeasureDefinitionWithTwoDataSets.json | 0 .../executeafm/afm/relativeDateFilter.json | 0 .../afm/simpleMeasureDefinition.json | 0 .../afm/simpleMeasureDefinitionFull.json | 0 .../src}/test/resources/executeafm/empty.json | 0 .../test/resources/executeafm/execution.json | 0 .../resources/executeafm/executionFull.json | 0 .../executeafm/identifierObjQualifier.json | 0 .../executeafm/response/attributeHeader.json | 0 .../response/attributeHeaderFull.json | 0 .../response/attributeInHeader.json | 0 .../response/executionResponse.json | 0 .../response/measureGroupHeader.json | 0 .../response/measureHeaderItem.json | 0 .../response/measureHeaderItemFull.json | 0 .../executeafm/response/resultDimension.json | 0 .../executeafm/response/totalHeaderItem.json | 0 .../result/attributeHeaderItem.json | 0 .../executeafm/result/executionResult.json | 0 .../result/executionResultFull.json | 0 .../resources/executeafm/result/paging.json | 0 .../result/resultMeasureHeaderItem.json | 0 .../result/resultTotalHeaderItem.json | 0 .../resources/executeafm/result/warning.json | 0 .../resultspec/attributeLocatorItem.json | 0 .../resultspec/attributeSortItem.json | 0 .../attributeSortItemWithAggregation.json | 0 .../executeafm/resultspec/dimension.json | 0 .../executeafm/resultspec/dimensionFull.json | 0 .../resultspec/measureLocatorItem.json | 0 .../resultspec/measureSortItem.json | 0 .../executeafm/resultspec/resultSpec.json | 0 .../executeafm/resultspec/totalItem.json | 0 .../resultspec/totalLocatorItem.json | 0 .../resources/executeafm/uriObjQualifier.json | 0 .../executeafm/visualizationExecution.json | 0 .../visualizationExecutionFull.json | 0 .../export/client-export-simple.json | 0 .../test/resources/export/client-export.json | 0 .../resources/featureflag/featureFlags.json | 0 .../featureflag/projectFeatureFlags.json | 0 .../src}/test/resources/gdc/asyncTask.json | 0 .../src}/test/resources/gdc/gdc.json | 0 .../src}/test/resources/gdc/linkEntries.json | 0 .../src}/test/resources/gdc/task-status.json | 0 .../src}/test/resources/gdc/uriResponse.json | 0 .../src}/test/resources/lcm/lcmEntities.json | 0 .../test/resources/lcm/lcmEntitiesEmpty.json | 0 .../src}/test/resources/lcm/lcmEntity.json | 0 .../test/resources/lcm/lcmEntityFull.json | 0 .../test/resources/md/attribute-input.json | 0 .../resources/md/attribute-inputOrig.json | 0 .../test/resources/md/attribute-sortDf.json | 0 .../src}/test/resources/md/attribute.json | 0 .../md/attributeDisplayForm-input.json | 0 .../md/attributeDisplayForm-inputOrig.json | 0 .../resources/md/attributeDisplayForm.json | 0 .../test/resources/md/attributeElement.json | 0 .../test/resources/md/attributeElements.json | 0 .../src}/test/resources/md/attributeSort.json | 0 .../src}/test/resources/md/column.json | 0 .../test/resources/md/dataLoadingColumn.json | 0 .../src}/test/resources/md/dataset-input.json | 0 .../src}/test/resources/md/dataset.json | 0 .../test/resources/md/dimension-input.json | 0 .../src}/test/resources/md/dimension.json | 0 .../test/resources/md/dimensionAttribute.json | 0 .../test/resources/md/displayForm-input.json | 0 .../src}/test/resources/md/displayForm.json | 0 .../src}/test/resources/md/entry.json | 0 .../src}/test/resources/md/fact-input.json | 0 .../src}/test/resources/md/fact.json | 0 .../md/maintenance/partialMDArtifact.json | 0 .../partialMDExport-defaultVals.json | 0 .../md/maintenance/partialMDExport.json | 0 .../md/maintenance/partialMDImport.json | 0 .../test/resources/md/meta-withFlags.json | 0 .../src}/test/resources/md/meta.json | 0 .../src}/test/resources/md/metric-folder.json | 0 .../src}/test/resources/md/metric-links.json | 0 .../src}/test/resources/md/metric-new.json | 0 .../src}/test/resources/md/metric-out.json | 0 .../src}/test/resources/md/objCommon.json | 0 .../test/resources/md/projectDashboard.json | 0 .../resources/md/projectDashboardCreate.json | 0 .../src}/test/resources/md/query.json | 0 .../resources/md/report/attributeInGrid.json | 0 .../test/resources/md/report/grid-input.json | 0 .../src}/test/resources/md/report/grid.json | 0 .../resources/md/report/gridElements.json | 0 .../gridReportDefinitionContent-input.json | 0 .../report/gridReportDefinitionContent.json | 0 .../resources/md/report/metricElement.json | 0 .../oneNumberReportDefinition-input.json | 0 .../md/report/oneNumberReportDefinition.json | 0 ...neNumberReportDefinitionContent-input.json | 0 .../oneNumberReportDefinitionContent.json | 0 .../resources/md/report/report-input.json | 0 .../src}/test/resources/md/report/report.json | 0 .../src}/test/resources/md/scheduledMail.json | 0 .../src}/test/resources/md/table.json | 0 .../src}/test/resources/md/tableDataLoad.json | 0 .../md/visualization/attributeBucket.json | 0 .../visualization/barVisualizationClass.json | 0 .../complexVisualizationObject.json | 0 .../md/visualization/customChart.json | 0 .../emptyBucketsVisualization.json | 0 .../externalVisualizationClass.json | 0 .../resources/md/visualization/lineChart.json | 0 .../md/visualization/measureBucket.json | 0 .../md/visualization/mixedBucket.json | 0 ...multipleAttributeBucketsVisualization.json | 0 .../multipleAttributesBucket.json | 0 .../multipleMeasureBucketsVisualization.json | 0 .../visualization/multipleMeasuresBucket.json | 0 .../md/visualization/noItemsBucket.json | 0 .../md/visualization/segmentedLineChart.json | 0 .../md/visualization/simpleMeasure.json | 0 .../simpleVisualizationObject.json | 0 .../md/visualization/stackedColumnChart.json | 0 .../tableVisualizationClass.json | 0 .../visualization/visualizationAttribute.json | 0 .../visualizationAttributeFull.json | 0 .../model/maql-ddl-task-status-fail.json | 0 .../test/resources/model/maqlDdlLinks.json | 0 .../src}/test/resources/model/modelDiff.json | 0 .../test/resources/notification/channel.json | 0 .../notification/channelToCreate.json | 0 .../resources/notification/condition.json | 0 .../notification/emailConfiguration.json | 0 .../resources/notification/projectEvent.json | 0 .../resources/notification/subscription.json | 0 .../notification/subscriptionToCreate.json | 0 .../test/resources/notification/template.json | 0 .../resources/notification/timerEvent.json | 0 .../resources/project/addUsersToProject.json | 0 .../created-invitations-uris-only.json | 0 .../project/created-invitations.json | 0 .../test/resources/project/invitations.json | 0 .../test/resources/project/project-role.json | 0 .../test/resources/project/project-role2.json | 0 .../test/resources/project/project-role3.json | 0 .../test/resources/project/project-roles.json | 0 .../resources/project/project-template.json | 0 .../resources/project/project-templates.json | 0 .../test/resources/project/project-user.json | 0 .../test/resources/project/project-users.json | 0 .../resources/project/project-validate.json | 0 .../project/project-validationAvail.json | 0 .../project/project-validationResultItem.json | 0 .../project/project-validationResultLog.json | 0 .../project-validationResultParam.json | 0 .../project/project-validationResults.json | 0 .../resources/project/project-vertica.json | 0 .../src}/test/resources/project/project.json | 0 .../project/projectUsersUpdateResult.json | 0 .../resources/projecttemplate/template.json | 0 .../resources/report/executeDefinition.json | 0 .../test/resources/report/executeReport.json | 0 .../src}/test/resources/warehouse/schema.json | 0 .../test/resources/warehouse/schemas.json | 0 .../warehouse/user-createWithLogin.json | 0 .../warehouse/user-createWithProfile.json | 0 .../src}/test/resources/warehouse/user.json | 0 .../test/resources/warehouse/users-empty.json | 0 .../src}/test/resources/warehouse/users.json | 0 .../resources/warehouse/warehouse-create.json | 0 .../warehouse/warehouse-null-token.json | 0 .../warehouse/warehouse-withLicense.json | 0 .../test/resources/warehouse/warehouse.json | 0 .../warehouse/warehouseTask-finished.json | 0 .../warehouse/warehouseTask-poll.json | 0 .../resources/warehouse/warehouses-empty.json | 0 .../test/resources/warehouse/warehouses.json | 0 gooddata-java/pom.xml | 167 ++++++ .../sdk/service}/AbstractPollHandler.java | 6 +- .../sdk/service}/AbstractPollHandlerBase.java | 6 +- .../sdk/service}/AbstractService.java | 6 +- .../gooddata/sdk/service}/Authentication.java | 4 +- .../DeprecationWarningRequestInterceptor.java | 2 +- .../gooddata/sdk/service}/FutureResult.java | 6 +- .../com/gooddata/sdk/service}/GoodData.java | 51 +- .../sdk/service}/GoodDataEndpoint.java | 4 +- .../sdk/service}/GoodDataSettings.java | 4 +- .../HeaderSettingRequestInterceptor.java | 4 +- .../gooddata/sdk/service}/PollHandler.java | 7 +- .../com/gooddata/sdk/service}/PollResult.java | 4 +- .../sdk/service}/SimplePollHandler.java | 6 +- .../account/AccountNotFoundException.java | 4 +- .../sdk/service}/account/AccountService.java | 11 +- .../auditevent/AuditEventPageRequest.java | 4 +- .../auditevent/AuditEventService.java | 16 +- .../AuditEventsForbiddenException.java | 6 +- .../LoginPasswordAuthentication.java | 8 +- .../authentication/SstAuthentication.java | 8 +- .../connector/ConnectorException.java | 4 +- .../service}/connector/ConnectorService.java | 23 +- .../IntegrationNotFoundException.java | 7 +- .../service}/dataload/OutputStageService.java | 16 +- .../processes/ProcessExecutionException.java | 5 +- .../processes/ProcessNotFoundException.java | 4 +- .../dataload/processes/ProcessService.java | 31 +- .../processes/ScheduleExecutionException.java | 4 +- .../processes/ScheduleNotFoundException.java | 4 +- .../service}/dataset/DatasetException.java | 4 +- .../sdk/service}/dataset/DatasetService.java | 56 +- .../executeafm/ExecuteAfmService.java | 23 +- .../executeafm/ExecutionResultException.java | 7 +- .../sdk/service}/export/ExportException.java | 6 +- .../sdk/service}/export/ExportService.java | 40 +- .../export/NoDataExportException.java | 6 +- .../featureflag/FeatureFlagService.java | 26 +- .../sdk/service}/gdc/DataStoreException.java | 4 +- .../sdk/service}/gdc/DataStoreService.java | 10 +- .../gooddata/sdk/service}/gdc/GdcSardine.java | 4 +- .../gooddata/sdk/service}/gdc/GdcService.java | 10 +- .../sdk/service}/lcm/LcmEntityFilter.java | 5 +- .../gooddata/sdk/service}/lcm/LcmService.java | 12 +- .../sdk/service}/md/MetadataService.java | 35 +- .../service}/md/NonUniqueObjException.java | 5 +- .../sdk/service}/md/ObjCreateException.java | 5 +- .../sdk/service}/md/ObjNotFoundException.java | 5 +- .../sdk/service}/md/ObjUpdateException.java | 5 +- .../md/maintenance/ExportImportException.java | 4 +- .../md/maintenance/ExportImportService.java | 23 +- .../notification/NotificationService.java | 15 +- .../project/ProjectNotFoundException.java | 4 +- .../sdk/service}/project/ProjectService.java | 25 +- .../project/ProjectUsersUpdateException.java | 4 +- .../project/RoleNotFoundException.java | 4 +- .../UserInProjectNotFoundException.java | 4 +- .../project}/model/ModelException.java | 4 +- .../service/project}/model/ModelService.java | 35 +- .../ProjectTemplateService.java | 12 +- .../report/NoDataReportException.java | 8 +- .../sdk/service}/report/ReportException.java | 7 +- .../sdk/service}/report/ReportService.java | 26 +- .../service}/util/ResponseErrorHandler.java | 4 +- .../gooddata/sdk/service}/util/ZipHelper.java | 4 +- .../warehouse/WarehouseNotFoundException.java | 4 +- .../WarehouseSchemaNotFoundException.java | 4 +- .../service}/warehouse/WarehouseService.java | 15 +- .../WarehouseUserNotFoundException.java | 4 +- .../src}/main/javadoc/overview.html | 0 .../gooddata/sdk/service}/GoodDataIT.groovy | 4 +- .../sdk/service}/GoodDataITBase.groovy | 6 +- .../executeafm/ExecuteAfmServiceIT.groovy | 31 +- .../ExecutionResultExceptionTest.groovy | 5 +- .../service}/lcm/LcmEntityFilterTest.groovy | 4 +- .../sdk/service}/lcm/LcmServiceIT.groovy | 9 +- .../sdk/service}/AbstractGoodDataAT.java | 22 +- .../sdk/service}/AbstractGoodDataIT.java | 6 +- .../sdk/service}/AbstractServiceTest.java | 6 +- .../sdk/service}/GoodDataEndpointTest.java | 6 +- .../sdk/service}/GoodDataSettingsTest.java | 4 +- .../gooddata/sdk/service}/PollHandlerIT.java | 5 +- .../service}/account/AccountServiceAT.java | 7 +- .../service}/account/AccountServiceIT.java | 7 +- .../auditevent/AuditEventPageRequestTest.java | 6 +- .../auditevent/AuditEventServiceAT.java | 13 +- .../auditevent/AuditEventServiceIT.java | 18 +- .../auditevent/AuditEventServiceTest.java | 12 +- .../LoginPasswordAuthenticationTest.java | 6 +- .../authentication/SstAuthenticationTest.java | 6 +- .../connector/ConnectorServiceIT.java | 26 +- .../dataload/OutputStageServiceAT.java | 13 +- .../dataload/OutputStageServiceIT.java | 9 +- .../dataload/OutputStageServiceTest.java | 12 +- .../dataload/processes/ProcessIdMatcher.java | 5 +- .../dataload/processes/ProcessServiceAT.java | 30 +- .../dataload/processes/ProcessServiceIT.java | 11 +- .../processes/ProcessServiceTest.java | 55 +- .../dataload/processes/ScheduleIdMatcher.java | 5 +- .../service}/dataset/DatasetServiceAT.java | 9 +- .../service}/dataset/DatasetServiceIT.java | 13 +- .../service}/dataset/DatasetServiceTest.java | 115 ++-- .../executeafm/ExecuteAfmServiceAT.java | 50 +- .../sdk/service}/export/ExportServiceAT.java | 7 +- .../sdk/service}/export/ExportServiceIT.java | 20 +- .../service}/export/ExportServiceTest.java | 25 +- .../featureflag/FeatureFlagServiceAT.java | 19 +- .../featureflag/FeatureFlagServiceIT.java | 20 +- .../featureflag/FeatureFlagServiceTest.java | 20 +- .../sdk/service}/gdc/DataStoreServiceIT.java | 6 +- .../sdk/service}/gdc/DatastoreServiceAT.java | 24 +- .../sdk/service}/gdc/GdcServiceIT.java | 8 +- .../service}/md/ExportImportServiceAT.java | 22 +- .../sdk/service}/md/MetadataServiceAT.java | 29 +- .../sdk/service}/md/MetadataServiceIT.java | 37 +- .../sdk/service}/md/MetadataServiceTest.java | 115 ++-- .../md/maintenance/ExportImportServiceIT.java | 10 +- .../maintenance/ExportImportServiceTest.java | 13 +- .../notification/NotificationServiceAT.java | 9 +- .../notification/NotificationServiceIT.java | 11 +- .../notification/NotificationServiceTest.java | 15 +- .../service}/project/ProjectIdMatcher.java | 5 +- .../service}/project/ProjectServiceAT.java | 18 +- .../service}/project/ProjectServiceIT.java | 16 +- .../service}/project/ProjectServiceTest.java | 13 +- .../project}/model/ModelServiceAT.java | 7 +- .../project}/model/ModelServiceIT.java | 33 +- .../ProjectTemplateServiceIT.java | 10 +- .../service}/report/ReportServiceTest.java | 17 +- .../spring/GoodDataBeansAsServicesIT.java | 17 +- .../util/ResponseErrorHandlerTest.java | 5 +- .../sdk/service}/util/ZipHelperTest.java | 4 +- .../warehouse/WarehouseIdMatcher.java | 5 +- .../warehouse/WarehouseServiceAT.java | 19 +- .../warehouse/WarehouseServiceIT.java | 9 +- .../test/resources/account/account-input.json | 7 + .../src/test/resources/account/account.json | 22 + .../account/create-account-response.json | 0 .../resources/account/create-account.json | 10 + .../resources/account/update-account.json | 0 .../resources/auditevents/auditEvent.json | 11 + .../auditevents/auditEventWithParam.json | 14 + .../auditEventWithParamAndLink.json | 17 + .../resources/auditevents/auditEvents.json | 34 ++ .../auditevents/auditEventsPage2.json | 0 .../auditevents/emptyAuditEvents.json | 11 + .../auditevents/userAuditEvents.json | 23 + .../src}/test/resources/city.csv | 0 .../resources/connector/coupa_instance.json | 7 + .../connector/coupa_instances-empty.json | 0 .../resources/connector/coupa_instances.json | 15 + .../resources/connector/integration-in.json | 6 + .../integration-scheduled-process.json | 0 .../test/resources/connector/integration.json | 37 ++ .../process-execution-coupa-downloadDate.json | 5 + .../connector/process-execution-empty.json | 3 + .../process-execution-incremental.json | 5 + .../process-execution-pardot-changesFrom.json | 5 + .../process-execution-zendesk4-download.json | 9 + .../process-execution-zendesk4-startDate.json | 6 + .../connector/process-status-embedded.json | 12 + .../connector/process-status-error.json | 14 + .../connector/process-status-finished.json | 0 .../connector/process-status-scheduled.json | 0 .../resources/connector/settings-coupa.json | 5 + .../resources/connector/settings-pardot.json | 5 + .../settings-zendesk4-before-template26.json | 8 + .../connector/settings-zendesk4.json | 10 + .../src}/test/resources/corruptedPerson.csv | 0 .../test/resources/dataload/outputStage.json | 8 + .../dataload/outputStageAllFields.json | 12 + .../dataload/outputStageNoProcess.json | 11 + .../dataload/processes/appstoreProcess.json | 0 .../dataload/processes/asyncTask.json | 0 .../processes/emptyScheduleExecution.json | 4 + .../dataload/processes/execution.json | 13 + .../processes/executionDetail-success.json | 0 .../dataload/processes/executionDetail.json | 20 + .../dataload/processes/executionTask.json | 8 + .../processes/process-input-withPath.json | 7 + .../dataload/processes/process-input.json | 6 + .../resources/dataload/processes/process.json | 13 + .../processes/processWithoutData.json | 0 .../dataload/processes/processes.json | 17 + .../dataload/processes/schedule-disabled.json | 0 .../processes/schedule-input-all-fields.json | 13 + .../dataload/processes/schedule-input.json | 11 + .../processes/schedule-triggered-input.json | 11 + .../processes/schedule-triggered.json | 18 + .../dataload/processes/schedule.json | 44 ++ .../dataload/processes/scheduleExecution.json | 11 + .../dataload/processes/schedules.json | 53 ++ .../dataload/processes/schedules_page1.json | 54 ++ .../dataload/processes/schedules_page2.json | 0 .../dataload/processes/testgraph/invalid.grf | 0 .../dataload/processes/testgraph/sdktest.grf | 0 .../processes/testgraph/workspace.prm | 0 .../src/test/resources/dataset/dataset.json | 7 + .../test/resources/dataset/datasetLinks.json | 16 + .../dataset/datasetManifest-input.json | 19 + .../resources/dataset/datasetManifest.json | 33 ++ .../src/test/resources/dataset/maqlDml.json | 1 + .../src/test/resources/dataset/pull.json | 3 + .../src/test/resources/dataset/pullTask.json | 7 + .../dataset/pullTaskStatusError.json | 0 .../resources/dataset/pullTaskStatusOk.json | 0 .../dataset/pullTaskStatusRunning.json | 0 .../test/resources/dataset/taskStateOK.json | 6 + .../resources/dataset/uploads/data-sets.json | 54 ++ .../dataset/uploads/data-uploads-info.json | 9 + .../resources/dataset/uploads/upload.json | 14 + .../resources/dataset/uploads/uploads.json | 34 ++ .../executeafm/afm/absoluteDateFilter.json | 9 + .../test/resources/executeafm/afm/afm.json | 38 ++ .../afm/arithmeticMeasureDefinition.json | 6 + .../executeafm/afm/attributeItem.json | 6 + .../executeafm/afm/attributeItemFull.json | 7 + .../executeafm/afm/expressionFilter.json | 5 + .../resources/executeafm/afm/measureItem.json | 10 + .../executeafm/afm/measureItemFull.json | 12 + .../executeafm/afm/nativeTotalItem.json | 7 + .../afm/negativeAttributeFilter.json | 8 + .../afm/overPeriodDateAttribute.json | 6 + .../afm/overPeriodMeasureDefinition.json | 13 + ...iodMeasureDefinitionWithTwoAttributes.json | 19 + .../executeafm/afm/popMeasureDefinition.json | 8 + .../afm/positiveAttributeFilter.json | 8 + .../afm/previousPeriodDateDataSet.json | 6 + .../afm/previousPeriodMeasureDefinition.json | 13 + ...eriodMeasureDefinitionWithTwoDataSets.json | 19 + .../executeafm/afm/relativeDateFilter.json | 10 + .../afm/simpleMeasureDefinition.json | 7 + .../afm/simpleMeasureDefinitionFull.json | 31 ++ .../src/test/resources/executeafm/empty.json | 1 + .../test/resources/executeafm/execution.json | 42 ++ .../resources/executeafm/executionFull.json | 84 +++ .../executeafm/identifierObjQualifier.json | 3 + .../executeafm/response/attributeHeader.json | 13 + .../response/attributeHeaderFull.json | 20 + .../response/attributeInHeader.json | 5 + .../response/executionResponse.json | 63 +++ .../response/measureGroupHeader.json | 13 + .../response/measureHeaderItem.json | 7 + .../response/measureHeaderItemFull.json | 9 + .../executeafm/response/resultDimension.json | 30 ++ .../executeafm/response/totalHeaderItem.json | 5 + .../result/attributeHeaderItem.json | 6 + .../executeafm/result/executionResult.json | 29 ++ .../result/executionResultFull.json | 89 ++++ .../resources/executeafm/result/paging.json | 11 + .../result/resultMeasureHeaderItem.json | 6 + .../result/resultTotalHeaderItem.json | 6 + .../resources/executeafm/result/warning.json | 5 + .../resultspec/attributeLocatorItem.json | 6 + .../resultspec/attributeSortItem.json | 6 + .../attributeSortItemWithAggregation.json | 7 + .../executeafm/resultspec/dimension.json | 6 + .../executeafm/resultspec/dimensionFull.json | 13 + .../resultspec/measureLocatorItem.json | 5 + .../resultspec/measureSortItem.json | 18 + .../executeafm/resultspec/resultSpec.json | 36 ++ .../executeafm/resultspec/totalItem.json | 5 + .../resultspec/totalLocatorItem.json | 6 + .../resources/executeafm/uriObjQualifier.json | 3 + .../executeafm/visualizationExecution.json | 5 + .../visualizationExecutionFull.json | 36 ++ .../src}/test/resources/export/asynctask.json | 0 .../export/client-export-simple.json | 6 + .../test/resources/export/client-export.json | 6 + .../resources/featureflag/featureFlags.json | 6 + .../featureflag/projectFeatureFlag.json | 0 .../featureflag/projectFeatureFlags.json | 29 ++ .../src/test/resources/gdc/asyncTask.json | 7 + .../test/resources/gdc/errorStructure.json | 0 gooddata-java/src/test/resources/gdc/gdc.json | 86 +++ .../src}/test/resources/gdc/gdcError.json | 0 .../src}/test/resources/gdc/invalidError.json | 0 .../src/test/resources/gdc/linkEntries.json | 8 + .../src/test/resources/gdc/task-status.json | 6 + .../src/test/resources/gdc/uriResponse.json | 3 + .../src/test/resources/lcm/lcmEntities.json | 15 + .../test/resources/lcm/lcmEntitiesEmpty.json | 7 + .../src/test/resources/lcm/lcmEntity.json | 7 + .../src/test/resources/lcm/lcmEntityFull.json | 13 + .../src}/test/resources/log4j.properties | 0 .../test/resources/md/attribute-input.json | 22 + .../resources/md/attribute-inputOrig.json | 67 +++ .../test/resources/md/attribute-sortDf.json | 71 +++ .../src/test/resources/md/attribute.json | 67 +++ .../md/attributeDisplayForm-input.json | 17 + .../md/attributeDisplayForm-inputOrig.json | 27 + .../resources/md/attributeDisplayForm.json | 27 + .../test/resources/md/attributeElement.json | 4 + .../resources/md/attributeElements-empty.json | 16 + .../test/resources/md/attributeElements.json | 25 + .../src/test/resources/md/attributeSort.json | 5 + .../src}/test/resources/md/bulk-get.json | 0 .../src/test/resources/md/column.json | 23 + .../test/resources/md/dataLoadingColumn.json | 34 ++ .../src/test/resources/md/dataset-input.json | 14 + .../src/test/resources/md/dataset.json | 36 ++ .../test/resources/md/dimension-input.json | 10 + .../src/test/resources/md/dimension.json | 139 +++++ .../test/resources/md/dimensionAttribute.json | 59 +++ .../test/resources/md/displayForm-input.json | 13 + .../src/test/resources/md/displayForm.json | 23 + .../src/test/resources/md/entry.json | 15 + .../src/test/resources/md/fact-input.json | 18 + gooddata-java/src/test/resources/md/fact.json | 29 ++ .../test/resources/md/identifierToUri.json | 0 .../test/resources/md/identifiersAndUris.json | 0 .../partial-export-task-status-fail.json | 0 .../partial-import-task-status-fail.json | 0 .../md/maintenance/partialMDArtifact.json | 8 + .../partialMDExport-defaultVals.json | 8 + .../md/maintenance/partialMDExport.json | 10 + .../md/maintenance/partialMDImport.json | 8 + gooddata-java/src/test/resources/md/meta.json | 17 + .../test/resources/md/metric-created.json | 0 .../src/test/resources/md/metric-folder.json | 95 ++++ .../src}/test/resources/md/metric-input.json | 0 .../src/test/resources/md/metric-links.json | 61 +++ .../src/test/resources/md/metric-new.json | 11 + .../src/test/resources/md/metric-out.json | 58 +++ .../src}/test/resources/md/metric.json | 0 .../src/test/resources/md/objCommon.json | 17 + .../test/resources/md/projectDashboard.json | 110 ++++ .../resources/md/projectDashboardCreate.json | 16 + .../src/test/resources/md/query.json | 35 ++ .../resources/md/report/attributeInGrid.json | 7 + .../test/resources/md/report/grid-input.json | 29 ++ .../src/test/resources/md/report/grid.json | 38 ++ .../resources/md/report/gridElements.json | 10 + .../md/report/gridReportDefinition.json | 0 .../gridReportDefinitionContent-input.json | 14 + .../report/gridReportDefinitionContent.json | 31 ++ .../resources/md/report/metricElement.json | 6 + .../oneNumberReportDefinition-input.json | 26 + .../md/report/oneNumberReportDefinition.json | 44 ++ ...neNumberReportDefinitionContent-input.json | 19 + .../oneNumberReportDefinitionContent.json | 53 ++ .../resources/md/report/report-input.json | 13 + .../src/test/resources/md/report/report.json | 25 + .../src/test/resources/md/scheduledMail.json | 58 +++ .../src/test/resources/md/table.json | 26 + .../src/test/resources/md/tableDataLoad.json | 22 + .../md/visualization/attributeBucket.json | 14 + .../visualization/barVisualizationClass.json | 14 + .../complexVisualizationObject.json | 132 +++++ .../md/visualization/customChart.json | 48 ++ .../emptyBucketsVisualization.json | 16 + .../externalVisualizationClass.json | 14 + .../resources/md/visualization/lineChart.json | 52 ++ .../md/visualization/measureBucket.json | 22 + .../md/visualization/mixedBucket.json | 30 ++ ...multipleAttributeBucketsVisualization.json | 52 ++ .../multipleAttributesBucket.json | 22 + .../multipleMeasureBucketsVisualization.json | 73 +++ .../visualization/multipleMeasuresBucket.json | 52 ++ .../md/visualization/noItemsBucket.json | 4 + .../md/visualization/segmentedLineChart.json | 66 +++ .../md/visualization/simpleMeasure.json | 12 + .../simpleVisualizationObject.json | 13 + .../md/visualization/stackedColumnChart.json | 66 +++ .../tableVisualizationClass.json | 14 + .../visualization/visualizationAttribute.json | 8 + .../visualizationAttributeFull.json | 9 + .../model/maql-ddl-task-status-fail.json | 17 + .../test/resources/model/maqlDdlLinks.json | 8 + .../src/test/resources/model/modelDiff.json | 31 ++ .../test/resources/notification/channel.json | 17 + .../notification/channelToCreate.json | 12 + .../resources/notification/condition.json | 5 + .../notification/emailConfiguration.json | 5 + .../test/resources/notification/meta.json | 0 .../resources/notification/metaToCreate.json | 0 .../resources/notification/projectEvent.json | 8 + .../resources/notification/subscription.json | 37 ++ .../notification/subscriptionToCreate.json | 32 ++ .../test/resources/notification/template.json | 5 + .../resources/notification/timerEvent.json | 5 + .../src}/test/resources/person.csv | 0 .../src}/test/resources/person.json | 0 .../resources/project/addUserRequest.json | 0 .../resources/project/addUsersToProject.json | 17 + .../created-invitations-uris-only.json | 8 + .../project/created-invitations.json | 16 + .../project/disableUserInProject.json | 0 .../test/resources/project/invitations.json | 11 + .../resources/project/project-deleted.json | 0 .../resources/project/project-loading.json | 0 .../test/resources/project/project-role.json | 89 ++++ .../test/resources/project/project-role2.json | 89 ++++ .../test/resources/project/project-role3.json | 89 ++++ .../test/resources/project/project-roles.json | 11 + .../resources/project/project-template.json | 5 + .../resources/project/project-templates.json | 9 + .../test/resources/project/project-user.json | 30 ++ .../project/project-users-empty.json | 0 .../test/resources/project/project-users.json | 34 ++ .../resources/project/project-validate.json | 11 + .../project/project-validationAvail.json | 11 + .../project/project-validationResultItem.json | 164 ++++++ .../project/project-validationResultLog.json | 52 ++ .../project-validationResultParam.json | 23 + .../project/project-validationResults.json | 492 ++++++++++++++++++ .../resources/project/project-vertica.json | 39 ++ .../src/test/resources/project/project.json | 40 ++ .../project/projectUsersUpdateResult.json | 8 + .../project/projectUsersUpdateResultFail.json | 0 .../resources/projecttemplate/template.json | 26 + .../resources/projecttemplate/templates.json | 0 .../resources/report/executeDefinition.json | 5 + .../test/resources/report/executeReport.json | 5 + .../resources/spring/gd-annotationConfig.xml | 2 +- .../warehouse/removeUserTask-finished.json | 0 .../src/test/resources/warehouse/schema.json | 11 + .../src/test/resources/warehouse/schemas.json | 20 + .../warehouse/user-createWithLogin.json | 6 + .../warehouse/user-createWithProfile.json | 6 + .../warehouse/user-withoutLogin.json | 0 .../src/test/resources/warehouse/user.json | 11 + .../test/resources/warehouse/users-empty.json | 7 + .../warehouse/users-with-next-page-link.json | 0 .../src/test/resources/warehouse/users.json | 31 ++ .../resources/warehouse/warehouse-create.json | 8 + .../warehouse/warehouse-null-token.json | 19 + .../warehouse/warehouse-withLicense.json | 21 + .../test/resources/warehouse/warehouse.json | 20 + .../warehouse/warehouseTask-finished.json | 9 + .../warehouse/warehouseTask-poll.json | 7 + .../resources/warehouse/warehouses-empty.json | 7 + .../test/resources/warehouse/warehouses.json | 46 ++ pom.xml | 413 ++++++++------- release.sh | 2 +- 1145 files changed, 8807 insertions(+), 2435 deletions(-) create mode 100644 gooddata-java-model/pom.xml rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/account/Account.java (94%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/auditevent/AuditEvent.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/auditevent/AuditEvents.java (91%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/auditevent/AuditEventsDeserializer.java (86%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/auditevent/AuditEventsSerializer.java (76%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/connector/ConnectorType.java (86%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/connector/CoupaInstance.java (94%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/connector/CoupaInstances.java (69%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/connector/CoupaProcessExecution.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/connector/CoupaSettings.java (89%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/connector/Integration.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/connector/IntegrationProcessStatus.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/connector/PardotProcessExecution.java (91%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/connector/PardotSettings.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/connector/ProcessExecution.java (88%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/connector/ProcessStatus.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/connector/Settings.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/connector/Status.java (88%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/connector/Zendesk4ProcessExecution.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/connector/Zendesk4Settings.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataload/OutputStage.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataload/processes/AsyncTask.java (86%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataload/processes/DataloadProcess.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataload/processes/DataloadProcesses.java (85%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataload/processes/ProcessExecution.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataload/processes/ProcessExecutionDetail.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataload/processes/ProcessExecutionTask.java (85%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataload/processes/ProcessType.java (75%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataload/processes/Schedule.java (98%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataload/processes/ScheduleExecution.java (95%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataload/processes/ScheduleState.java (67%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataload/processes/Schedules.java (86%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataload/processes/SchedulesDeserializer.java (84%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/Dataset.java (72%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/DatasetLinks.java (75%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/DatasetManifest.java (98%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/DatasetManifests.java (88%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/DatasetNotFoundException.java (86%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/Datasets.java (76%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/EtlMode.java (91%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/EtlModeType.java (72%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/LookupMode.java (73%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/MaqlDml.java (64%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/Pull.java (88%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/PullTask.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/TaskState.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/Upload.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/UploadMode.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/UploadStatistics.java (94%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/Uploads.java (86%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/dataset/UploadsInfo.java (88%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/Execution.java (86%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/IdentifierObjQualifier.java (76%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/ObjQualifier.java (68%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/ResultPage.java (79%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/UriObjQualifier.java (75%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/VisualizationExecution.java (91%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/AbsoluteDateFilter.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/Afm.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/Aggregation.java (80%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/ArithmeticMeasureDefinition.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/AttributeFilter.java (89%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/AttributeItem.java (84%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/CompatibilityFilter.java (84%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/DateFilter.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/DerivedMeasureDefinition.java (95%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/ExpressionFilter.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/FilterItem.java (77%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/LocallyIdentifiable.java (78%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/MeasureDefinition.java (88%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/MeasureItem.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/NativeTotalItem.java (95%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/NegativeAttributeFilter.java (91%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/ObjIdentifierUtilities.java (89%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/ObjQualifierConverter.java (63%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/OverPeriodDateAttribute.java (94%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/OverPeriodMeasureDefinition.java (94%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/PopMeasureDefinition.java (91%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/PositiveAttributeFilter.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/PreviousPeriodDateDataSet.java (94%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/PreviousPeriodMeasureDefinition.java (94%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/RelativeDateFilter.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/afm/SimpleMeasureDefinition.java (95%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/response/AttributeHeader.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/response/AttributeInHeader.java (95%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/response/ExecutionResponse.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/response/Header.java (79%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/response/MeasureGroupHeader.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/response/MeasureHeaderItem.java (89%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/response/ResultDimension.java (83%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/response/TotalHeaderItem.java (88%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/result/AttributeHeaderItem.java (77%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/result/Data.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/result/DataList.java (91%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/result/DataValue.java (77%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/result/ExecutionResult.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/result/Paging.java (95%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/result/ResultHeaderItem.java (91%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/result/ResultMeasureHeaderItem.java (83%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/result/ResultTotalHeaderItem.java (88%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/result/Warning.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/resultspec/AttributeLocatorItem.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/resultspec/AttributeSortAggregation.java (82%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/resultspec/AttributeSortItem.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/resultspec/Dimension.java (94%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/resultspec/Direction.java (74%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/resultspec/LocatorItem.java (87%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/resultspec/MeasureLocatorItem.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/resultspec/MeasureSortItem.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/resultspec/ResultSpec.java (91%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/resultspec/SortItem.java (84%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/resultspec/TotalItem.java (89%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/executeafm/resultspec/TotalLocatorItem.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/export/ClientExport.java (83%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/export/ExecuteReport.java (86%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/export/ExecuteReportDefinition.java (88%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/export/ExportFormat.java (84%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/export/ReportRequest.java (87%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/featureflag/FeatureFlag.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/featureflag/FeatureFlags.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/featureflag/ProjectFeatureFlag.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/featureflag/ProjectFeatureFlags.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/gdc/AboutLinks.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/gdc/AbstractMaql.java (91%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/gdc/AsyncTask.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/gdc/Gdc.java (83%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/gdc/LinkEntries.java (94%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/gdc/RootLinks.java (99%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/gdc/TaskStatus.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/gdc/UriResponse.java (91%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/lcm/LcmEntities.java (95%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/lcm/LcmEntity.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/AbstractObj.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Attachment.java (94%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Attribute.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/AttributeDisplayForm.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/AttributeElement.java (94%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/AttributeElements.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/AttributeSort.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/BulkGet.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/BulkGetUris.java (88%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Column.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/DashboardAttachment.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/DataLoadingColumn.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Dataset.java (98%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Dimension.java (95%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/DisplayForm.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Entry.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Expression.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Fact.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/IdentifierAndUri.java (89%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/IdentifierToUri.java (86%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/IdentifiersAndUris.java (91%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/InUseMany.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Key.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/MaqlAst.java (95%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Meta.java (98%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Metric.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/NestedAttribute.java (98%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Obj.java (82%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/ProjectDashboard.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Query.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Queryable.java (76%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/ReportAttachment.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Restriction.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/ScheduledMail.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/ScheduledMailWhen.java (95%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Table.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/TableDataLoad.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Updatable.java (76%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/Usage.java (83%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/UseMany.java (82%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/UseManyEntries.java (89%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/maintenance/PartialMdArtifact.java (85%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/maintenance/PartialMdExport.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/maintenance/PartialMdExportToken.java (95%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/report/AttributeInGrid.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/report/Filter.java (91%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/report/Grid.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/report/GridElement.java (74%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/report/GridElementDeserializer.java (87%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/report/GridElementSerializer.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/report/GridReportDefinitionContent.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/report/MetricElement.java (95%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/report/MetricGroup.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/report/OneNumberReportDefinitionContent.java (95%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/report/Report.java (87%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/report/ReportDefinition.java (89%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/report/ReportDefinitionContent.java (94%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/report/Total.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/visualization/Bucket.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/visualization/BucketItem.java (86%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/visualization/CollectionType.java (77%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/visualization/Measure.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/visualization/VOPopMeasureDefinition.java (71%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/visualization/VOSimpleMeasureDefinition.java (69%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/visualization/VisualizationAttribute.java (89%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/visualization/VisualizationClass.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/visualization/VisualizationConverter.java (91%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/visualization/VisualizationObject.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/md/visualization/VisualizationType.java (88%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/notification/Channel.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/notification/Configuration.java (83%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/notification/EmailConfiguration.java (91%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/notification/MessageTemplate.java (91%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/notification/ProjectEvent.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/notification/Subscription.java (95%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/notification/TimerEvent.java (91%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/notification/Trigger.java (82%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/notification/TriggerCondition.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/CreatedInvitations.java (95%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/Environment.java (87%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/Invitation.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/Invitations.java (73%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/Project.java (99%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/ProjectDriver.java (82%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/ProjectEnvironment.java (80%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/ProjectTemplate.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/ProjectTemplates.java (88%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/ProjectUsersUpdateResult.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/ProjectValidationResult.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/ProjectValidationResultGdcTimeElParam.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/ProjectValidationResultItem.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/ProjectValidationResultObjectParam.java (94%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/ProjectValidationResultParam.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/ProjectValidationResultSliElParam.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/ProjectValidationResultStringParam.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/ProjectValidationResults.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/ProjectValidationType.java (94%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/ProjectValidations.java (83%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/Projects.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/Role.java (95%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/Roles.java (88%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/User.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/Users.java (87%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/UsersDeserializer.java (85%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/project/UsersSerializer.java (90%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model/project}/model/DiffRequest.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model/project}/model/MaqlDdl.java (63%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model/project}/model/MaqlDdlLinks.java (88%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model/project}/model/ModelDiff.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/projecttemplate/Template.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/projecttemplate/Templates.java (74%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/report/ReportExportFormat.java (81%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/util/TagsDeserializer.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/util/TagsSerializer.java (88%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/warehouse/Warehouse.java (97%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/warehouse/WarehouseSchema.java (95%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/warehouse/WarehouseSchemas.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/warehouse/WarehouseSchemasDeserializer.java (87%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/warehouse/WarehouseTask.java (85%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/warehouse/WarehouseUser.java (96%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/warehouse/WarehouseUserRole.java (82%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/warehouse/WarehouseUsers.java (93%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/warehouse/WarehouseUsersDeserializer.java (87%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/warehouse/WarehouseUsersSerializer.java (67%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/warehouse/Warehouses.java (92%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/warehouse/WarehousesDeserializer.java (86%) rename {src/main/java/com/gooddata => gooddata-java-model/src/main/java/com/gooddata/sdk/model}/warehouse/WarehousesSerializer.java (67%) rename {src => gooddata-java-model/src}/main/resources/GoodDataApiVersion (100%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/ExecutionTest.groovy (74%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/IdentifierObjQualifierTest.groovy (93%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/ObjQualifierTest.groovy (90%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/ResultPageTest.groovy (89%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/UriObjQualifierTest.groovy (93%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/VisualizationExecutionTest.groovy (80%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/AbsoluteDateFilterTest.groovy (90%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/AfmTest.groovy (92%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/ArithmeticMeasureDefinitionTest.groovy (93%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/AttributeItemTest.groovy (90%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/CompatibilityFilterTest.groovy (88%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/ExpressionFilterTest.groovy (91%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/FilterItemTest.groovy (87%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/MeasureDefinitionTest.groovy (91%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/MeasureItemTest.groovy (94%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/NativeTotalItemTest.groovy (90%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/NegativeAttributeFilterTest.groovy (87%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/ObjIdentifierUtilitiesTest.groovy (89%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/OverPeriodDateAttributeTest.groovy (92%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/OverPeriodMeasureDefinitionTest.groovy (96%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/PopMeasureDefinitionTest.groovy (94%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/PositiveAttributeFilterTest.groovy (87%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/PreviousPeriodDateDataSetTest.groovy (92%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/PreviousPeriodMeasureDefinitionTest.groovy (96%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/RelativeDateFilterTest.groovy (89%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/afm/SimpleMeasureDefinitionTest.groovy (96%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/response/AttributeHeaderTest.groovy (95%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/response/AttributeInHeaderTest.groovy (92%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/response/ExecutionResponseTest.groovy (96%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/response/HeaderTest.groovy (85%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/response/MeasureGroupHeaderTest.groovy (90%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/response/MeasureHeaderItemTest.groovy (94%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/response/ResultDimensionTest.groovy (92%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/response/TotalHeaderItemTest.groovy (85%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/result/AttributeHeaderItemTest.groovy (90%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/result/DataListTest.groovy (94%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/result/DataTest.groovy (80%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/result/DataValueTest.groovy (89%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/result/ExecutionResultTest.groovy (97%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/result/PagingTest.groovy (91%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/result/ResultHeaderItemTest.groovy (89%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/result/ResultMeasureHeaderItemTest.groovy (90%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/result/ResultTotalHeaderItemTest.groovy (89%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/result/WarningTest.groovy (91%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/resultspec/AttributeLocatorItemTest.groovy (90%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/resultspec/AttributeSortItemTest.groovy (92%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/resultspec/DimensionTest.groovy (92%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/resultspec/MeasureLocatorItemTest.groovy (89%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/resultspec/MeasureSortItemTest.groovy (90%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/resultspec/ResultSpecTest.groovy (95%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/resultspec/TotalItemTest.groovy (88%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/executeafm/resultspec/TotalLocatorItemTest.groovy (89%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/lcm/LcmEntitiesTest.groovy (93%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/lcm/LcmEntityTest.groovy (96%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/md/report/TotalTest.groovy (67%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/md/visualization/BucketTest.groovy (93%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/md/visualization/MeasureTest.groovy (93%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/md/visualization/VisualizationAttributeTest.groovy (88%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/md/visualization/VisualizationClassTest.groovy (94%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/md/visualization/VisualizationConverterTest.groovy (88%) rename {src/test/groovy/com/gooddata => gooddata-java-model/src/test/groovy/com/gooddata/sdk/model}/md/visualization/VisualizationObjectTest.groovy (95%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/account/AccountTest.java (95%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/auditevent/AuditEventTest.java (97%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/auditevent/AuditEventsTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/connector/CoupaInstanceTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/connector/CoupaInstancesTest.java (90%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/connector/CoupaProcessExecutionTest.java (92%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/connector/CoupaSettingsTest.java (91%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/connector/IntegrationProcessStatusTest.java (92%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/connector/IntegrationTest.java (95%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/connector/PardotProcessExecutionTest.java (92%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/connector/PardotSettingsTest.java (90%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/connector/ProcessExecutionTest.java (78%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/connector/ProcessStatusTest.java (88%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/connector/StatusTest.java (84%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/connector/Zendesk4ProcessExecutionTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/connector/Zendesk4SettingsTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataload/OutputStageTest.java (97%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataload/processes/DataloadProcessTest.java (95%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataload/processes/DataloadProcessesTest.java (91%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataload/processes/ProcessExecutionDetailTest.java (95%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataload/processes/ProcessExecutionTaskTest.java (90%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataload/processes/ProcessExecutionTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataload/processes/ScheduleExecutionTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataload/processes/ScheduleTest.java (98%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataload/processes/SchedulesTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataset/DatasetLinksTest.java (91%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataset/DatasetManifestTest.java (97%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataset/DatasetTest.java (89%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataset/DatasetsTest.java (91%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataset/MaqlDmlTest.java (83%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataset/PullTaskTest.java (86%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataset/PullTest.java (89%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataset/TaskStateTest.java (90%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataset/UploadStatisticsTest.java (88%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataset/UploadTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataset/UploadsInfoTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/dataset/UploadsTest.java (91%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/export/ClientExportTest.java (74%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/export/ExecuteReportDefinitionTest.java (90%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/export/ExecuteReportTest.java (90%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/export/ExportFormatTest.java (72%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/featureflag/FeatureFlagTest.java (80%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/featureflag/FeatureFlagsTest.java (96%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/featureflag/ProjectFeatureFlagTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/featureflag/ProjectFeatureFlagsTest.java (97%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/gdc/AboutLinksTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/gdc/AsyncTaskTest.java (90%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/gdc/GdcTest.java (95%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/gdc/LinkEntriesTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/gdc/RootLinksTest.java (96%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/gdc/TaskStatusTest.java (92%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/gdc/UriResponseTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/AttachmentTest.java (82%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/AttributeDisplayFormTest.java (97%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/AttributeElementTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/AttributeElementsTest.java (92%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/AttributeSortTest.java (96%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/AttributeTest.java (97%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/BulkGetUrisTest.java (83%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/ColumnTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/DashboardAttachmentTest.java (82%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/DataLoadingColumnTest.java (95%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/DatasetTest.java (96%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/DimensionTest.java (95%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/DisplayFormTest.java (96%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/EntryTest.java (97%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/ExpressionTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/FactTest.java (95%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/IdentifierToUriTest.java (83%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/InUseManyTest.java (81%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/KeyTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/MetaTest.java (98%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/MetricTest.java (97%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/NestedAttributeTest.java (97%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/ObjTest.java (97%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/ProjectDashboardTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/QueryTest.java (92%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/ReportAttachmentTest.java (69%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/RestrictionTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/ScheduledMailTest.java (96%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/ScheduledMailWhenTest.java (84%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/TableDataLoadTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/TableTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/maintenance/PartialMdArtifactTest.java (91%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/maintenance/PartialMdExportTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/maintenance/PartialMdExportTokenTest.java (91%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/report/AttributeInGridTest.java (95%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/report/GridElementDeserializerTest.java (91%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/report/GridElementSerializerTest.java (84%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/report/GridReportDefinitionContentTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/report/GridTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/report/MetricElementTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/report/OneNumberReportDefinitionContentTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/report/ReportDefinitionContentTest.java (95%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/report/ReportDefinitionTest.java (95%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/md/report/ReportTest.java (95%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/notification/ChannelTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/notification/ConditionTest.java (90%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/notification/EmailConfigurationTest.java (90%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/notification/MessageTemplateTest.java (90%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/notification/ProjectEventTest.java (91%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/notification/SubscriptionTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/notification/TimerEventTest.java (90%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/CreatedInvitationsTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/InvitationsTest.java (86%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/ProjectTemplateTest.java (92%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/ProjectTemplatesTest.java (89%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/ProjectTest.java (98%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/ProjectUsersUpdateResultTest.java (88%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/ProjectValidationResultGdcTimeElParamTest.java (82%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/ProjectValidationResultItemTest.java (88%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/ProjectValidationResultObjectParamTest.java (82%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/ProjectValidationResultParamTest.java (90%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/ProjectValidationResultSliElParamTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/ProjectValidationResultStringParamTest.java (82%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/ProjectValidationResultTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/ProjectValidationResultsTest.java (89%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/ProjectValidationTypeTest.java (92%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/ProjectValidationsTest.java (88%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/RoleTest.java (95%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/RolesTest.java (92%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/UserTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/project/UsersTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model/project}/model/DiffRequestTest.java (85%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model/project}/model/MaqlDdlLinksTest.java (89%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model/project}/model/MaqlDdlTest.java (84%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model/project}/model/ModelDiffTest.java (95%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/projecttemplate/TemplateTest.java (95%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/report/ReportExportFormatTest.java (77%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/util/TagsDeserializerTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/util/TagsSerializerTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/util/TagsTestClass.java (88%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/warehouse/WarehouseSchemaTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/warehouse/WarehouseSchemasTest.java (89%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/warehouse/WarehouseTaskTest.java (92%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/warehouse/WarehouseTest.java (97%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/warehouse/WarehouseUserTest.java (96%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/warehouse/WarehouseUsersTest.java (94%) rename {src/test/java/com/gooddata => gooddata-java-model/src/test/java/com/gooddata/sdk/model}/warehouse/WarehousesTest.java (94%) rename {src => gooddata-java-model/src}/test/resources/account/account-input.json (100%) rename {src => gooddata-java-model/src}/test/resources/account/account.json (100%) rename {src => gooddata-java-model/src}/test/resources/account/create-account.json (100%) rename {src => gooddata-java-model/src}/test/resources/auditevents/auditEvent.json (100%) rename {src => gooddata-java-model/src}/test/resources/auditevents/auditEventWithParam.json (100%) rename {src => gooddata-java-model/src}/test/resources/auditevents/auditEventWithParamAndLink.json (100%) rename {src => gooddata-java-model/src}/test/resources/auditevents/auditEvents.json (100%) rename {src => gooddata-java-model/src}/test/resources/auditevents/emptyAuditEvents.json (100%) rename {src => gooddata-java-model/src}/test/resources/auditevents/userAuditEvents.json (100%) rename {src => gooddata-java-model/src}/test/resources/connector/coupa_instance.json (100%) rename {src => gooddata-java-model/src}/test/resources/connector/coupa_instances.json (100%) rename {src => gooddata-java-model/src}/test/resources/connector/integration-in.json (100%) rename {src => gooddata-java-model/src}/test/resources/connector/integration.json (100%) rename {src => gooddata-java-model/src}/test/resources/connector/process-execution-coupa-downloadDate.json (100%) rename {src => gooddata-java-model/src}/test/resources/connector/process-execution-empty.json (100%) rename {src => gooddata-java-model/src}/test/resources/connector/process-execution-incremental.json (100%) rename {src => gooddata-java-model/src}/test/resources/connector/process-execution-pardot-changesFrom.json (100%) rename {src => gooddata-java-model/src}/test/resources/connector/process-execution-reload.json (100%) rename {src => gooddata-java-model/src}/test/resources/connector/process-execution-zendesk4-download.json (100%) rename {src => gooddata-java-model/src}/test/resources/connector/process-execution-zendesk4-startDate.json (100%) rename {src => gooddata-java-model/src}/test/resources/connector/process-status-embedded.json (100%) rename {src => gooddata-java-model/src}/test/resources/connector/process-status-error.json (100%) rename {src => gooddata-java-model/src}/test/resources/connector/settings-coupa.json (100%) rename {src => gooddata-java-model/src}/test/resources/connector/settings-pardot.json (100%) rename {src => gooddata-java-model/src}/test/resources/connector/settings-zendesk4-before-template26.json (100%) rename {src => gooddata-java-model/src}/test/resources/connector/settings-zendesk4.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/outputStage.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/outputStageAllFields.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/outputStageNoProcess.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/processes/emptyScheduleExecution.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/processes/execution.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/processes/executionDetail.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/processes/executionTask.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/processes/process-input-withPath.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/processes/process-input.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/processes/process.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/processes/processes.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/processes/schedule-input-all-fields.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/processes/schedule-input.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/processes/schedule-triggered-input.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/processes/schedule-triggered.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/processes/schedule.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/processes/scheduleExecution.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/processes/schedules.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataload/processes/schedules_page1.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataset/dataset.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataset/datasetLinks.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataset/datasetManifest-input.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataset/datasetManifest.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataset/maqlDml.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataset/pull.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataset/pullTask.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataset/taskStateOK.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataset/uploads/data-sets.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataset/uploads/data-uploads-info.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataset/uploads/upload.json (100%) rename {src => gooddata-java-model/src}/test/resources/dataset/uploads/uploads.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/absoluteDateFilter.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/afm.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/arithmeticMeasureDefinition.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/attributeItem.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/attributeItemFull.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/expressionFilter.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/measureItem.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/measureItemFull.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/nativeTotalItem.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/negativeAttributeFilter.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/overPeriodDateAttribute.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/overPeriodMeasureDefinition.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/overPeriodMeasureDefinitionWithTwoAttributes.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/popMeasureDefinition.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/positiveAttributeFilter.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/previousPeriodDateDataSet.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/previousPeriodMeasureDefinition.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/previousPeriodMeasureDefinitionWithTwoDataSets.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/relativeDateFilter.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/simpleMeasureDefinition.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/afm/simpleMeasureDefinitionFull.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/empty.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/execution.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/executionFull.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/identifierObjQualifier.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/response/attributeHeader.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/response/attributeHeaderFull.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/response/attributeInHeader.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/response/executionResponse.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/response/measureGroupHeader.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/response/measureHeaderItem.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/response/measureHeaderItemFull.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/response/resultDimension.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/response/totalHeaderItem.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/result/attributeHeaderItem.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/result/executionResult.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/result/executionResultFull.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/result/paging.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/result/resultMeasureHeaderItem.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/result/resultTotalHeaderItem.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/result/warning.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/resultspec/attributeLocatorItem.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/resultspec/attributeSortItem.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/resultspec/attributeSortItemWithAggregation.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/resultspec/dimension.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/resultspec/dimensionFull.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/resultspec/measureLocatorItem.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/resultspec/measureSortItem.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/resultspec/resultSpec.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/resultspec/totalItem.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/resultspec/totalLocatorItem.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/uriObjQualifier.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/visualizationExecution.json (100%) rename {src => gooddata-java-model/src}/test/resources/executeafm/visualizationExecutionFull.json (100%) rename {src => gooddata-java-model/src}/test/resources/export/client-export-simple.json (100%) rename {src => gooddata-java-model/src}/test/resources/export/client-export.json (100%) rename {src => gooddata-java-model/src}/test/resources/featureflag/featureFlags.json (100%) rename {src => gooddata-java-model/src}/test/resources/featureflag/projectFeatureFlags.json (100%) rename {src => gooddata-java-model/src}/test/resources/gdc/asyncTask.json (100%) rename {src => gooddata-java-model/src}/test/resources/gdc/gdc.json (100%) rename {src => gooddata-java-model/src}/test/resources/gdc/linkEntries.json (100%) rename {src => gooddata-java-model/src}/test/resources/gdc/task-status.json (100%) rename {src => gooddata-java-model/src}/test/resources/gdc/uriResponse.json (100%) rename {src => gooddata-java-model/src}/test/resources/lcm/lcmEntities.json (100%) rename {src => gooddata-java-model/src}/test/resources/lcm/lcmEntitiesEmpty.json (100%) rename {src => gooddata-java-model/src}/test/resources/lcm/lcmEntity.json (100%) rename {src => gooddata-java-model/src}/test/resources/lcm/lcmEntityFull.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/attribute-input.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/attribute-inputOrig.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/attribute-sortDf.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/attribute.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/attributeDisplayForm-input.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/attributeDisplayForm-inputOrig.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/attributeDisplayForm.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/attributeElement.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/attributeElements.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/attributeSort.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/column.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/dataLoadingColumn.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/dataset-input.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/dataset.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/dimension-input.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/dimension.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/dimensionAttribute.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/displayForm-input.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/displayForm.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/entry.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/fact-input.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/fact.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/maintenance/partialMDArtifact.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/maintenance/partialMDExport-defaultVals.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/maintenance/partialMDExport.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/maintenance/partialMDImport.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/meta-withFlags.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/meta.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/metric-folder.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/metric-links.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/metric-new.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/metric-out.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/objCommon.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/projectDashboard.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/projectDashboardCreate.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/query.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/report/attributeInGrid.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/report/grid-input.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/report/grid.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/report/gridElements.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/report/gridReportDefinitionContent-input.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/report/gridReportDefinitionContent.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/report/metricElement.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/report/oneNumberReportDefinition-input.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/report/oneNumberReportDefinition.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/report/oneNumberReportDefinitionContent-input.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/report/oneNumberReportDefinitionContent.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/report/report-input.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/report/report.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/scheduledMail.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/table.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/tableDataLoad.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/attributeBucket.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/barVisualizationClass.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/complexVisualizationObject.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/customChart.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/emptyBucketsVisualization.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/externalVisualizationClass.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/lineChart.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/measureBucket.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/mixedBucket.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/multipleAttributeBucketsVisualization.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/multipleAttributesBucket.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/multipleMeasureBucketsVisualization.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/multipleMeasuresBucket.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/noItemsBucket.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/segmentedLineChart.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/simpleMeasure.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/simpleVisualizationObject.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/stackedColumnChart.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/tableVisualizationClass.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/visualizationAttribute.json (100%) rename {src => gooddata-java-model/src}/test/resources/md/visualization/visualizationAttributeFull.json (100%) rename {src => gooddata-java-model/src}/test/resources/model/maql-ddl-task-status-fail.json (100%) rename {src => gooddata-java-model/src}/test/resources/model/maqlDdlLinks.json (100%) rename {src => gooddata-java-model/src}/test/resources/model/modelDiff.json (100%) rename {src => gooddata-java-model/src}/test/resources/notification/channel.json (100%) rename {src => gooddata-java-model/src}/test/resources/notification/channelToCreate.json (100%) rename {src => gooddata-java-model/src}/test/resources/notification/condition.json (100%) rename {src => gooddata-java-model/src}/test/resources/notification/emailConfiguration.json (100%) rename {src => gooddata-java-model/src}/test/resources/notification/projectEvent.json (100%) rename {src => gooddata-java-model/src}/test/resources/notification/subscription.json (100%) rename {src => gooddata-java-model/src}/test/resources/notification/subscriptionToCreate.json (100%) rename {src => gooddata-java-model/src}/test/resources/notification/template.json (100%) rename {src => gooddata-java-model/src}/test/resources/notification/timerEvent.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/addUsersToProject.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/created-invitations-uris-only.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/created-invitations.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/invitations.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/project-role.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/project-role2.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/project-role3.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/project-roles.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/project-template.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/project-templates.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/project-user.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/project-users.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/project-validate.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/project-validationAvail.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/project-validationResultItem.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/project-validationResultLog.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/project-validationResultParam.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/project-validationResults.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/project-vertica.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/project.json (100%) rename {src => gooddata-java-model/src}/test/resources/project/projectUsersUpdateResult.json (100%) rename {src => gooddata-java-model/src}/test/resources/projecttemplate/template.json (100%) rename {src => gooddata-java-model/src}/test/resources/report/executeDefinition.json (100%) rename {src => gooddata-java-model/src}/test/resources/report/executeReport.json (100%) rename {src => gooddata-java-model/src}/test/resources/warehouse/schema.json (100%) rename {src => gooddata-java-model/src}/test/resources/warehouse/schemas.json (100%) rename {src => gooddata-java-model/src}/test/resources/warehouse/user-createWithLogin.json (100%) rename {src => gooddata-java-model/src}/test/resources/warehouse/user-createWithProfile.json (100%) rename {src => gooddata-java-model/src}/test/resources/warehouse/user.json (100%) rename {src => gooddata-java-model/src}/test/resources/warehouse/users-empty.json (100%) rename {src => gooddata-java-model/src}/test/resources/warehouse/users.json (100%) rename {src => gooddata-java-model/src}/test/resources/warehouse/warehouse-create.json (100%) rename {src => gooddata-java-model/src}/test/resources/warehouse/warehouse-null-token.json (100%) rename {src => gooddata-java-model/src}/test/resources/warehouse/warehouse-withLicense.json (100%) rename {src => gooddata-java-model/src}/test/resources/warehouse/warehouse.json (100%) rename {src => gooddata-java-model/src}/test/resources/warehouse/warehouseTask-finished.json (100%) rename {src => gooddata-java-model/src}/test/resources/warehouse/warehouseTask-poll.json (100%) rename {src => gooddata-java-model/src}/test/resources/warehouse/warehouses-empty.json (100%) rename {src => gooddata-java-model/src}/test/resources/warehouse/warehouses.json (100%) create mode 100644 gooddata-java/pom.xml rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/AbstractPollHandler.java (92%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/AbstractPollHandlerBase.java (93%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/AbstractService.java (97%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/Authentication.java (88%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/DeprecationWarningRequestInterceptor.java (98%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/FutureResult.java (89%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/GoodData.java (92%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/GoodDataEndpoint.java (96%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/GoodDataSettings.java (98%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/HeaderSettingRequestInterceptor.java (95%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/PollHandler.java (92%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/PollResult.java (93%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/SimplePollHandler.java (88%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/account/AccountNotFoundException.java (85%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/account/AccountService.java (95%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/auditevent/AuditEventPageRequest.java (97%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/auditevent/AuditEventService.java (90%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/auditevent/AuditEventsForbiddenException.java (51%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/authentication/LoginPasswordAuthentication.java (88%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/authentication/SstAuthentication.java (87%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/connector/ConnectorException.java (82%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/connector/ConnectorService.java (95%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/connector/IntegrationNotFoundException.java (81%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/dataload/OutputStageService.java (86%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/dataload/processes/ProcessExecutionException.java (88%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/dataload/processes/ProcessNotFoundException.java (82%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/dataload/processes/ProcessService.java (96%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/dataload/processes/ScheduleExecutionException.java (81%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/dataload/processes/ScheduleNotFoundException.java (82%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/dataset/DatasetException.java (91%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/dataset/DatasetService.java (90%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/executeafm/ExecuteAfmService.java (88%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/executeafm/ExecutionResultException.java (80%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/export/ExportException.java (73%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/export/ExportService.java (91%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/export/NoDataExportException.java (74%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/featureflag/FeatureFlagService.java (88%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/gdc/DataStoreException.java (79%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/gdc/DataStoreService.java (97%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/gdc/GdcSardine.java (91%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/gdc/GdcService.java (84%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/lcm/LcmEntityFilter.java (94%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/lcm/LcmService.java (93%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/md/MetadataService.java (94%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/md/NonUniqueObjException.java (85%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/md/ObjCreateException.java (89%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/md/ObjNotFoundException.java (92%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/md/ObjUpdateException.java (89%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/md/maintenance/ExportImportException.java (82%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/md/maintenance/ExportImportService.java (86%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/notification/NotificationService.java (89%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/project/ProjectNotFoundException.java (85%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/project/ProjectService.java (96%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/project/ProjectUsersUpdateException.java (83%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/project/RoleNotFoundException.java (83%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/project/UserInProjectNotFoundException.java (83%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service/project}/model/ModelException.java (80%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service/project}/model/ModelService.java (86%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/projecttemplate/ProjectTemplateService.java (88%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/report/NoDataReportException.java (69%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/report/ReportException.java (70%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/report/ReportService.java (76%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/util/ResponseErrorHandler.java (95%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/util/ZipHelper.java (97%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/warehouse/WarehouseNotFoundException.java (85%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/warehouse/WarehouseSchemaNotFoundException.java (86%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/warehouse/WarehouseService.java (97%) rename {src/main/java/com/gooddata => gooddata-java/src/main/java/com/gooddata/sdk/service}/warehouse/WarehouseUserNotFoundException.java (85%) rename {src => gooddata-java/src}/main/javadoc/overview.html (100%) rename {src/test/groovy/com/gooddata => gooddata-java/src/test/groovy/com/gooddata/sdk/service}/GoodDataIT.groovy (95%) rename {src/test/groovy/com/gooddata => gooddata-java/src/test/groovy/com/gooddata/sdk/service}/GoodDataITBase.groovy (85%) rename {src/test/groovy/com/gooddata => gooddata-java/src/test/groovy/com/gooddata/sdk/service}/executeafm/ExecuteAfmServiceIT.groovy (84%) rename {src/test/groovy/com/gooddata => gooddata-java/src/test/groovy/com/gooddata/sdk/service}/executeafm/ExecutionResultExceptionTest.groovy (80%) rename {src/test/groovy/com/gooddata => gooddata-java/src/test/groovy/com/gooddata/sdk/service}/lcm/LcmEntityFilterTest.groovy (86%) rename {src/test/groovy/com/gooddata => gooddata-java/src/test/groovy/com/gooddata/sdk/service}/lcm/LcmServiceIT.groovy (88%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/AbstractGoodDataAT.java (79%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/AbstractGoodDataIT.java (85%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/AbstractServiceTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/GoodDataEndpointTest.java (85%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/GoodDataSettingsTest.java (96%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/PollHandlerIT.java (92%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/account/AccountServiceAT.java (92%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/account/AccountServiceIT.java (97%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/auditevent/AuditEventPageRequestTest.java (96%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/auditevent/AuditEventServiceAT.java (50%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/auditevent/AuditEventServiceIT.java (84%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/auditevent/AuditEventServiceTest.java (85%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/authentication/LoginPasswordAuthenticationTest.java (90%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/authentication/SstAuthenticationTest.java (89%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/connector/ConnectorServiceIT.java (93%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/dataload/OutputStageServiceAT.java (89%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/dataload/OutputStageServiceIT.java (93%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/dataload/OutputStageServiceTest.java (72%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/dataload/processes/ProcessIdMatcher.java (82%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/dataload/processes/ProcessServiceAT.java (85%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/dataload/processes/ProcessServiceIT.java (98%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/dataload/processes/ProcessServiceTest.java (84%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/dataload/processes/ScheduleIdMatcher.java (82%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/dataset/DatasetServiceAT.java (93%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/dataset/DatasetServiceIT.java (97%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/dataset/DatasetServiceTest.java (71%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/executeafm/ExecuteAfmServiceAT.java (78%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/export/ExportServiceAT.java (87%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/export/ExportServiceIT.java (93%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/export/ExportServiceTest.java (86%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/featureflag/FeatureFlagServiceAT.java (89%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/featureflag/FeatureFlagServiceIT.java (91%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/featureflag/FeatureFlagServiceTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/gdc/DataStoreServiceIT.java (92%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/gdc/DatastoreServiceAT.java (77%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/gdc/GdcServiceIT.java (86%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/md/ExportImportServiceAT.java (79%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/md/MetadataServiceAT.java (91%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/md/MetadataServiceIT.java (92%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/md/MetadataServiceTest.java (81%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/md/maintenance/ExportImportServiceIT.java (95%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/md/maintenance/ExportImportServiceTest.java (80%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/notification/NotificationServiceAT.java (90%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/notification/NotificationServiceIT.java (93%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/notification/NotificationServiceTest.java (90%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/project/ProjectIdMatcher.java (84%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/project/ProjectServiceAT.java (90%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/project/ProjectServiceIT.java (97%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/project/ProjectServiceTest.java (93%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service/project}/model/ModelServiceAT.java (78%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service/project}/model/ModelServiceIT.java (81%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/projecttemplate/ProjectTemplateServiceIT.java (88%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/report/ReportServiceTest.java (79%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/spring/GoodDataBeansAsServicesIT.java (51%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/util/ResponseErrorHandlerTest.java (97%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/util/ZipHelperTest.java (97%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/warehouse/WarehouseIdMatcher.java (84%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/warehouse/WarehouseServiceAT.java (91%) rename {src/test/java/com/gooddata => gooddata-java/src/test/java/com/gooddata/sdk/service}/warehouse/WarehouseServiceIT.java (98%) create mode 100644 gooddata-java/src/test/resources/account/account-input.json create mode 100644 gooddata-java/src/test/resources/account/account.json rename {src => gooddata-java/src}/test/resources/account/create-account-response.json (100%) create mode 100644 gooddata-java/src/test/resources/account/create-account.json rename {src => gooddata-java/src}/test/resources/account/update-account.json (100%) create mode 100644 gooddata-java/src/test/resources/auditevents/auditEvent.json create mode 100644 gooddata-java/src/test/resources/auditevents/auditEventWithParam.json create mode 100644 gooddata-java/src/test/resources/auditevents/auditEventWithParamAndLink.json create mode 100644 gooddata-java/src/test/resources/auditevents/auditEvents.json rename {src => gooddata-java/src}/test/resources/auditevents/auditEventsPage2.json (100%) create mode 100644 gooddata-java/src/test/resources/auditevents/emptyAuditEvents.json create mode 100644 gooddata-java/src/test/resources/auditevents/userAuditEvents.json rename {src => gooddata-java/src}/test/resources/city.csv (100%) create mode 100644 gooddata-java/src/test/resources/connector/coupa_instance.json rename {src => gooddata-java/src}/test/resources/connector/coupa_instances-empty.json (100%) create mode 100644 gooddata-java/src/test/resources/connector/coupa_instances.json create mode 100644 gooddata-java/src/test/resources/connector/integration-in.json rename {src => gooddata-java/src}/test/resources/connector/integration-scheduled-process.json (100%) create mode 100644 gooddata-java/src/test/resources/connector/integration.json create mode 100644 gooddata-java/src/test/resources/connector/process-execution-coupa-downloadDate.json create mode 100644 gooddata-java/src/test/resources/connector/process-execution-empty.json create mode 100644 gooddata-java/src/test/resources/connector/process-execution-incremental.json create mode 100644 gooddata-java/src/test/resources/connector/process-execution-pardot-changesFrom.json create mode 100644 gooddata-java/src/test/resources/connector/process-execution-zendesk4-download.json create mode 100644 gooddata-java/src/test/resources/connector/process-execution-zendesk4-startDate.json create mode 100644 gooddata-java/src/test/resources/connector/process-status-embedded.json create mode 100644 gooddata-java/src/test/resources/connector/process-status-error.json rename {src => gooddata-java/src}/test/resources/connector/process-status-finished.json (100%) rename {src => gooddata-java/src}/test/resources/connector/process-status-scheduled.json (100%) create mode 100644 gooddata-java/src/test/resources/connector/settings-coupa.json create mode 100644 gooddata-java/src/test/resources/connector/settings-pardot.json create mode 100644 gooddata-java/src/test/resources/connector/settings-zendesk4-before-template26.json create mode 100644 gooddata-java/src/test/resources/connector/settings-zendesk4.json rename {src => gooddata-java/src}/test/resources/corruptedPerson.csv (100%) create mode 100644 gooddata-java/src/test/resources/dataload/outputStage.json create mode 100644 gooddata-java/src/test/resources/dataload/outputStageAllFields.json create mode 100644 gooddata-java/src/test/resources/dataload/outputStageNoProcess.json rename {src => gooddata-java/src}/test/resources/dataload/processes/appstoreProcess.json (100%) rename {src => gooddata-java/src}/test/resources/dataload/processes/asyncTask.json (100%) create mode 100644 gooddata-java/src/test/resources/dataload/processes/emptyScheduleExecution.json create mode 100644 gooddata-java/src/test/resources/dataload/processes/execution.json rename {src => gooddata-java/src}/test/resources/dataload/processes/executionDetail-success.json (100%) create mode 100644 gooddata-java/src/test/resources/dataload/processes/executionDetail.json create mode 100644 gooddata-java/src/test/resources/dataload/processes/executionTask.json create mode 100644 gooddata-java/src/test/resources/dataload/processes/process-input-withPath.json create mode 100644 gooddata-java/src/test/resources/dataload/processes/process-input.json create mode 100644 gooddata-java/src/test/resources/dataload/processes/process.json rename {src => gooddata-java/src}/test/resources/dataload/processes/processWithoutData.json (100%) create mode 100644 gooddata-java/src/test/resources/dataload/processes/processes.json rename {src => gooddata-java/src}/test/resources/dataload/processes/schedule-disabled.json (100%) create mode 100644 gooddata-java/src/test/resources/dataload/processes/schedule-input-all-fields.json create mode 100644 gooddata-java/src/test/resources/dataload/processes/schedule-input.json create mode 100644 gooddata-java/src/test/resources/dataload/processes/schedule-triggered-input.json create mode 100644 gooddata-java/src/test/resources/dataload/processes/schedule-triggered.json create mode 100644 gooddata-java/src/test/resources/dataload/processes/schedule.json create mode 100644 gooddata-java/src/test/resources/dataload/processes/scheduleExecution.json create mode 100644 gooddata-java/src/test/resources/dataload/processes/schedules.json create mode 100644 gooddata-java/src/test/resources/dataload/processes/schedules_page1.json rename {src => gooddata-java/src}/test/resources/dataload/processes/schedules_page2.json (100%) rename {src => gooddata-java/src}/test/resources/dataload/processes/testgraph/invalid.grf (100%) rename {src => gooddata-java/src}/test/resources/dataload/processes/testgraph/sdktest.grf (100%) rename {src => gooddata-java/src}/test/resources/dataload/processes/testgraph/workspace.prm (100%) create mode 100644 gooddata-java/src/test/resources/dataset/dataset.json create mode 100644 gooddata-java/src/test/resources/dataset/datasetLinks.json create mode 100644 gooddata-java/src/test/resources/dataset/datasetManifest-input.json create mode 100644 gooddata-java/src/test/resources/dataset/datasetManifest.json create mode 100644 gooddata-java/src/test/resources/dataset/maqlDml.json create mode 100644 gooddata-java/src/test/resources/dataset/pull.json create mode 100644 gooddata-java/src/test/resources/dataset/pullTask.json rename {src => gooddata-java/src}/test/resources/dataset/pullTaskStatusError.json (100%) rename {src => gooddata-java/src}/test/resources/dataset/pullTaskStatusOk.json (100%) rename {src => gooddata-java/src}/test/resources/dataset/pullTaskStatusRunning.json (100%) create mode 100644 gooddata-java/src/test/resources/dataset/taskStateOK.json create mode 100644 gooddata-java/src/test/resources/dataset/uploads/data-sets.json create mode 100644 gooddata-java/src/test/resources/dataset/uploads/data-uploads-info.json create mode 100644 gooddata-java/src/test/resources/dataset/uploads/upload.json create mode 100644 gooddata-java/src/test/resources/dataset/uploads/uploads.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/absoluteDateFilter.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/afm.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/arithmeticMeasureDefinition.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/attributeItem.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/attributeItemFull.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/expressionFilter.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/measureItem.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/measureItemFull.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/nativeTotalItem.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/negativeAttributeFilter.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/overPeriodDateAttribute.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/overPeriodMeasureDefinition.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/overPeriodMeasureDefinitionWithTwoAttributes.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/popMeasureDefinition.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/positiveAttributeFilter.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/previousPeriodDateDataSet.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/previousPeriodMeasureDefinition.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/previousPeriodMeasureDefinitionWithTwoDataSets.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/relativeDateFilter.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/simpleMeasureDefinition.json create mode 100644 gooddata-java/src/test/resources/executeafm/afm/simpleMeasureDefinitionFull.json create mode 100644 gooddata-java/src/test/resources/executeafm/empty.json create mode 100644 gooddata-java/src/test/resources/executeafm/execution.json create mode 100644 gooddata-java/src/test/resources/executeafm/executionFull.json create mode 100644 gooddata-java/src/test/resources/executeafm/identifierObjQualifier.json create mode 100644 gooddata-java/src/test/resources/executeafm/response/attributeHeader.json create mode 100644 gooddata-java/src/test/resources/executeafm/response/attributeHeaderFull.json create mode 100644 gooddata-java/src/test/resources/executeafm/response/attributeInHeader.json create mode 100644 gooddata-java/src/test/resources/executeafm/response/executionResponse.json create mode 100644 gooddata-java/src/test/resources/executeafm/response/measureGroupHeader.json create mode 100644 gooddata-java/src/test/resources/executeafm/response/measureHeaderItem.json create mode 100644 gooddata-java/src/test/resources/executeafm/response/measureHeaderItemFull.json create mode 100644 gooddata-java/src/test/resources/executeafm/response/resultDimension.json create mode 100644 gooddata-java/src/test/resources/executeafm/response/totalHeaderItem.json create mode 100644 gooddata-java/src/test/resources/executeafm/result/attributeHeaderItem.json create mode 100644 gooddata-java/src/test/resources/executeafm/result/executionResult.json create mode 100644 gooddata-java/src/test/resources/executeafm/result/executionResultFull.json create mode 100644 gooddata-java/src/test/resources/executeafm/result/paging.json create mode 100644 gooddata-java/src/test/resources/executeafm/result/resultMeasureHeaderItem.json create mode 100644 gooddata-java/src/test/resources/executeafm/result/resultTotalHeaderItem.json create mode 100644 gooddata-java/src/test/resources/executeafm/result/warning.json create mode 100644 gooddata-java/src/test/resources/executeafm/resultspec/attributeLocatorItem.json create mode 100644 gooddata-java/src/test/resources/executeafm/resultspec/attributeSortItem.json create mode 100644 gooddata-java/src/test/resources/executeafm/resultspec/attributeSortItemWithAggregation.json create mode 100644 gooddata-java/src/test/resources/executeafm/resultspec/dimension.json create mode 100644 gooddata-java/src/test/resources/executeafm/resultspec/dimensionFull.json create mode 100644 gooddata-java/src/test/resources/executeafm/resultspec/measureLocatorItem.json create mode 100644 gooddata-java/src/test/resources/executeafm/resultspec/measureSortItem.json create mode 100644 gooddata-java/src/test/resources/executeafm/resultspec/resultSpec.json create mode 100644 gooddata-java/src/test/resources/executeafm/resultspec/totalItem.json create mode 100644 gooddata-java/src/test/resources/executeafm/resultspec/totalLocatorItem.json create mode 100644 gooddata-java/src/test/resources/executeafm/uriObjQualifier.json create mode 100644 gooddata-java/src/test/resources/executeafm/visualizationExecution.json create mode 100644 gooddata-java/src/test/resources/executeafm/visualizationExecutionFull.json rename {src => gooddata-java/src}/test/resources/export/asynctask.json (100%) create mode 100644 gooddata-java/src/test/resources/export/client-export-simple.json create mode 100644 gooddata-java/src/test/resources/export/client-export.json create mode 100644 gooddata-java/src/test/resources/featureflag/featureFlags.json rename {src => gooddata-java/src}/test/resources/featureflag/projectFeatureFlag.json (100%) create mode 100644 gooddata-java/src/test/resources/featureflag/projectFeatureFlags.json create mode 100644 gooddata-java/src/test/resources/gdc/asyncTask.json rename {src => gooddata-java/src}/test/resources/gdc/errorStructure.json (100%) create mode 100644 gooddata-java/src/test/resources/gdc/gdc.json rename {src => gooddata-java/src}/test/resources/gdc/gdcError.json (100%) rename {src => gooddata-java/src}/test/resources/gdc/invalidError.json (100%) create mode 100644 gooddata-java/src/test/resources/gdc/linkEntries.json create mode 100644 gooddata-java/src/test/resources/gdc/task-status.json create mode 100644 gooddata-java/src/test/resources/gdc/uriResponse.json create mode 100644 gooddata-java/src/test/resources/lcm/lcmEntities.json create mode 100644 gooddata-java/src/test/resources/lcm/lcmEntitiesEmpty.json create mode 100644 gooddata-java/src/test/resources/lcm/lcmEntity.json create mode 100644 gooddata-java/src/test/resources/lcm/lcmEntityFull.json rename {src => gooddata-java/src}/test/resources/log4j.properties (100%) create mode 100644 gooddata-java/src/test/resources/md/attribute-input.json create mode 100644 gooddata-java/src/test/resources/md/attribute-inputOrig.json create mode 100644 gooddata-java/src/test/resources/md/attribute-sortDf.json create mode 100644 gooddata-java/src/test/resources/md/attribute.json create mode 100644 gooddata-java/src/test/resources/md/attributeDisplayForm-input.json create mode 100644 gooddata-java/src/test/resources/md/attributeDisplayForm-inputOrig.json create mode 100644 gooddata-java/src/test/resources/md/attributeDisplayForm.json create mode 100644 gooddata-java/src/test/resources/md/attributeElement.json create mode 100644 gooddata-java/src/test/resources/md/attributeElements-empty.json create mode 100644 gooddata-java/src/test/resources/md/attributeElements.json create mode 100644 gooddata-java/src/test/resources/md/attributeSort.json rename {src => gooddata-java/src}/test/resources/md/bulk-get.json (100%) create mode 100644 gooddata-java/src/test/resources/md/column.json create mode 100644 gooddata-java/src/test/resources/md/dataLoadingColumn.json create mode 100644 gooddata-java/src/test/resources/md/dataset-input.json create mode 100644 gooddata-java/src/test/resources/md/dataset.json create mode 100644 gooddata-java/src/test/resources/md/dimension-input.json create mode 100644 gooddata-java/src/test/resources/md/dimension.json create mode 100644 gooddata-java/src/test/resources/md/dimensionAttribute.json create mode 100644 gooddata-java/src/test/resources/md/displayForm-input.json create mode 100644 gooddata-java/src/test/resources/md/displayForm.json create mode 100644 gooddata-java/src/test/resources/md/entry.json create mode 100644 gooddata-java/src/test/resources/md/fact-input.json create mode 100644 gooddata-java/src/test/resources/md/fact.json rename {src => gooddata-java/src}/test/resources/md/identifierToUri.json (100%) rename {src => gooddata-java/src}/test/resources/md/identifiersAndUris.json (100%) rename {src => gooddata-java/src}/test/resources/md/maintenance/partial-export-task-status-fail.json (100%) rename {src => gooddata-java/src}/test/resources/md/maintenance/partial-import-task-status-fail.json (100%) create mode 100644 gooddata-java/src/test/resources/md/maintenance/partialMDArtifact.json create mode 100644 gooddata-java/src/test/resources/md/maintenance/partialMDExport-defaultVals.json create mode 100644 gooddata-java/src/test/resources/md/maintenance/partialMDExport.json create mode 100644 gooddata-java/src/test/resources/md/maintenance/partialMDImport.json create mode 100644 gooddata-java/src/test/resources/md/meta.json rename {src => gooddata-java/src}/test/resources/md/metric-created.json (100%) create mode 100644 gooddata-java/src/test/resources/md/metric-folder.json rename {src => gooddata-java/src}/test/resources/md/metric-input.json (100%) create mode 100644 gooddata-java/src/test/resources/md/metric-links.json create mode 100644 gooddata-java/src/test/resources/md/metric-new.json create mode 100644 gooddata-java/src/test/resources/md/metric-out.json rename {src => gooddata-java/src}/test/resources/md/metric.json (100%) create mode 100644 gooddata-java/src/test/resources/md/objCommon.json create mode 100644 gooddata-java/src/test/resources/md/projectDashboard.json create mode 100644 gooddata-java/src/test/resources/md/projectDashboardCreate.json create mode 100644 gooddata-java/src/test/resources/md/query.json create mode 100644 gooddata-java/src/test/resources/md/report/attributeInGrid.json create mode 100644 gooddata-java/src/test/resources/md/report/grid-input.json create mode 100644 gooddata-java/src/test/resources/md/report/grid.json create mode 100644 gooddata-java/src/test/resources/md/report/gridElements.json rename {src => gooddata-java/src}/test/resources/md/report/gridReportDefinition.json (100%) create mode 100644 gooddata-java/src/test/resources/md/report/gridReportDefinitionContent-input.json create mode 100644 gooddata-java/src/test/resources/md/report/gridReportDefinitionContent.json create mode 100644 gooddata-java/src/test/resources/md/report/metricElement.json create mode 100644 gooddata-java/src/test/resources/md/report/oneNumberReportDefinition-input.json create mode 100644 gooddata-java/src/test/resources/md/report/oneNumberReportDefinition.json create mode 100644 gooddata-java/src/test/resources/md/report/oneNumberReportDefinitionContent-input.json create mode 100644 gooddata-java/src/test/resources/md/report/oneNumberReportDefinitionContent.json create mode 100644 gooddata-java/src/test/resources/md/report/report-input.json create mode 100644 gooddata-java/src/test/resources/md/report/report.json create mode 100644 gooddata-java/src/test/resources/md/scheduledMail.json create mode 100644 gooddata-java/src/test/resources/md/table.json create mode 100644 gooddata-java/src/test/resources/md/tableDataLoad.json create mode 100644 gooddata-java/src/test/resources/md/visualization/attributeBucket.json create mode 100644 gooddata-java/src/test/resources/md/visualization/barVisualizationClass.json create mode 100644 gooddata-java/src/test/resources/md/visualization/complexVisualizationObject.json create mode 100644 gooddata-java/src/test/resources/md/visualization/customChart.json create mode 100644 gooddata-java/src/test/resources/md/visualization/emptyBucketsVisualization.json create mode 100644 gooddata-java/src/test/resources/md/visualization/externalVisualizationClass.json create mode 100644 gooddata-java/src/test/resources/md/visualization/lineChart.json create mode 100644 gooddata-java/src/test/resources/md/visualization/measureBucket.json create mode 100644 gooddata-java/src/test/resources/md/visualization/mixedBucket.json create mode 100644 gooddata-java/src/test/resources/md/visualization/multipleAttributeBucketsVisualization.json create mode 100644 gooddata-java/src/test/resources/md/visualization/multipleAttributesBucket.json create mode 100644 gooddata-java/src/test/resources/md/visualization/multipleMeasureBucketsVisualization.json create mode 100644 gooddata-java/src/test/resources/md/visualization/multipleMeasuresBucket.json create mode 100644 gooddata-java/src/test/resources/md/visualization/noItemsBucket.json create mode 100644 gooddata-java/src/test/resources/md/visualization/segmentedLineChart.json create mode 100644 gooddata-java/src/test/resources/md/visualization/simpleMeasure.json create mode 100644 gooddata-java/src/test/resources/md/visualization/simpleVisualizationObject.json create mode 100644 gooddata-java/src/test/resources/md/visualization/stackedColumnChart.json create mode 100644 gooddata-java/src/test/resources/md/visualization/tableVisualizationClass.json create mode 100644 gooddata-java/src/test/resources/md/visualization/visualizationAttribute.json create mode 100644 gooddata-java/src/test/resources/md/visualization/visualizationAttributeFull.json create mode 100644 gooddata-java/src/test/resources/model/maql-ddl-task-status-fail.json create mode 100644 gooddata-java/src/test/resources/model/maqlDdlLinks.json create mode 100644 gooddata-java/src/test/resources/model/modelDiff.json create mode 100644 gooddata-java/src/test/resources/notification/channel.json create mode 100644 gooddata-java/src/test/resources/notification/channelToCreate.json create mode 100644 gooddata-java/src/test/resources/notification/condition.json create mode 100644 gooddata-java/src/test/resources/notification/emailConfiguration.json rename {src => gooddata-java/src}/test/resources/notification/meta.json (100%) rename {src => gooddata-java/src}/test/resources/notification/metaToCreate.json (100%) create mode 100644 gooddata-java/src/test/resources/notification/projectEvent.json create mode 100644 gooddata-java/src/test/resources/notification/subscription.json create mode 100644 gooddata-java/src/test/resources/notification/subscriptionToCreate.json create mode 100644 gooddata-java/src/test/resources/notification/template.json create mode 100644 gooddata-java/src/test/resources/notification/timerEvent.json rename {src => gooddata-java/src}/test/resources/person.csv (100%) rename {src => gooddata-java/src}/test/resources/person.json (100%) rename {src => gooddata-java/src}/test/resources/project/addUserRequest.json (100%) create mode 100644 gooddata-java/src/test/resources/project/addUsersToProject.json create mode 100644 gooddata-java/src/test/resources/project/created-invitations-uris-only.json create mode 100644 gooddata-java/src/test/resources/project/created-invitations.json rename {src => gooddata-java/src}/test/resources/project/disableUserInProject.json (100%) create mode 100644 gooddata-java/src/test/resources/project/invitations.json rename {src => gooddata-java/src}/test/resources/project/project-deleted.json (100%) rename {src => gooddata-java/src}/test/resources/project/project-loading.json (100%) create mode 100644 gooddata-java/src/test/resources/project/project-role.json create mode 100644 gooddata-java/src/test/resources/project/project-role2.json create mode 100644 gooddata-java/src/test/resources/project/project-role3.json create mode 100644 gooddata-java/src/test/resources/project/project-roles.json create mode 100644 gooddata-java/src/test/resources/project/project-template.json create mode 100644 gooddata-java/src/test/resources/project/project-templates.json create mode 100644 gooddata-java/src/test/resources/project/project-user.json rename {src => gooddata-java/src}/test/resources/project/project-users-empty.json (100%) create mode 100644 gooddata-java/src/test/resources/project/project-users.json create mode 100644 gooddata-java/src/test/resources/project/project-validate.json create mode 100644 gooddata-java/src/test/resources/project/project-validationAvail.json create mode 100644 gooddata-java/src/test/resources/project/project-validationResultItem.json create mode 100644 gooddata-java/src/test/resources/project/project-validationResultLog.json create mode 100644 gooddata-java/src/test/resources/project/project-validationResultParam.json create mode 100644 gooddata-java/src/test/resources/project/project-validationResults.json create mode 100644 gooddata-java/src/test/resources/project/project-vertica.json create mode 100644 gooddata-java/src/test/resources/project/project.json create mode 100644 gooddata-java/src/test/resources/project/projectUsersUpdateResult.json rename {src => gooddata-java/src}/test/resources/project/projectUsersUpdateResultFail.json (100%) create mode 100644 gooddata-java/src/test/resources/projecttemplate/template.json rename {src => gooddata-java/src}/test/resources/projecttemplate/templates.json (100%) create mode 100644 gooddata-java/src/test/resources/report/executeDefinition.json create mode 100644 gooddata-java/src/test/resources/report/executeReport.json rename {src => gooddata-java/src}/test/resources/spring/gd-annotationConfig.xml (91%) rename {src => gooddata-java/src}/test/resources/warehouse/removeUserTask-finished.json (100%) create mode 100644 gooddata-java/src/test/resources/warehouse/schema.json create mode 100644 gooddata-java/src/test/resources/warehouse/schemas.json create mode 100644 gooddata-java/src/test/resources/warehouse/user-createWithLogin.json create mode 100644 gooddata-java/src/test/resources/warehouse/user-createWithProfile.json rename {src => gooddata-java/src}/test/resources/warehouse/user-withoutLogin.json (100%) create mode 100644 gooddata-java/src/test/resources/warehouse/user.json create mode 100644 gooddata-java/src/test/resources/warehouse/users-empty.json rename {src => gooddata-java/src}/test/resources/warehouse/users-with-next-page-link.json (100%) create mode 100644 gooddata-java/src/test/resources/warehouse/users.json create mode 100644 gooddata-java/src/test/resources/warehouse/warehouse-create.json create mode 100644 gooddata-java/src/test/resources/warehouse/warehouse-null-token.json create mode 100644 gooddata-java/src/test/resources/warehouse/warehouse-withLicense.json create mode 100644 gooddata-java/src/test/resources/warehouse/warehouse.json create mode 100644 gooddata-java/src/test/resources/warehouse/warehouseTask-finished.json create mode 100644 gooddata-java/src/test/resources/warehouse/warehouseTask-poll.json create mode 100644 gooddata-java/src/test/resources/warehouse/warehouses-empty.json create mode 100644 gooddata-java/src/test/resources/warehouse/warehouses.json diff --git a/findBugsFilter.xml b/findBugsFilter.xml index 6a8d28dac..8c3883671 100644 --- a/findBugsFilter.xml +++ b/findBugsFilter.xml @@ -1,7 +1,7 @@ - + \ No newline at end of file diff --git a/gooddata-java-model/pom.xml b/gooddata-java-model/pom.xml new file mode 100644 index 000000000..f8337fc31 --- /dev/null +++ b/gooddata-java-model/pom.xml @@ -0,0 +1,125 @@ + + + 4.0.0 + + gooddata-java-model + + + gooddata-java-parent + com.gooddata + 3.0.0-RC.1-SNAPSHOT + + + + + com.gooddata + gooddata-rest-common + + + org.springframework + spring-core + + + org.springframework + spring-web + + + aopalliance + aopalliance + + + org.springframework + spring-aop + + + + + com.fasterxml.jackson.core + jackson-core + + + com.fasterxml.jackson.core + jackson-annotations + + + com.fasterxml.jackson.core + jackson-databind + + + org.apache.commons + commons-lang3 + + + joda-time + joda-time + + + + org.testng + testng + test + + + org.mockito + mockito-core + test + + + org.hamcrest + hamcrest + test + + + net.javacrumbs.json-unit + json-unit + test + + + net.javacrumbs.json-unit + json-unit-core + test + + + com.shazam + shazamcrest + test + + + nl.jqno.equalsverifier + equalsverifier + test + + + commons-io + commons-io + test + + + org.spockframework + spock-core + test + + + org.codehaus.groovy + groovy-all + test + + + cglib + cglib-nodep + test + + + + + + + org.codehaus.gmavenplus + gmavenplus-plugin + + + + + \ No newline at end of file diff --git a/src/main/java/com/gooddata/account/Account.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/account/Account.java similarity index 94% rename from src/main/java/com/gooddata/account/Account.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/account/Account.java index 0035a58e8..908873e6e 100644 --- a/src/main/java/com/gooddata/account/Account.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/account/Account.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.account; +package com.gooddata.sdk.model.account; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -193,7 +193,12 @@ public String getProjects() { } } - static String getId(String uri) { + /** + * Extract Account's ID from Account's URI + * @param uri Account's URI + * @return Account's ID extracted from URI + */ + public static String getId(String uri) { return TEMPLATE.match(uri).get("id"); } @@ -205,6 +210,6 @@ public String toString() { /** * Class representing update view of account */ - static class UpdateView { + public static class UpdateView { } } diff --git a/src/main/java/com/gooddata/auditevent/AuditEvent.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/auditevent/AuditEvent.java similarity index 97% rename from src/main/java/com/gooddata/auditevent/AuditEvent.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/auditevent/AuditEvent.java index 670183a9c..71a680e4e 100644 --- a/src/main/java/com/gooddata/auditevent/AuditEvent.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/auditevent/AuditEvent.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.auditevent; +package com.gooddata.sdk.model.auditevent; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/auditevent/AuditEvents.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/auditevent/AuditEvents.java similarity index 91% rename from src/main/java/com/gooddata/auditevent/AuditEvents.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/auditevent/AuditEvents.java index 892adb7b7..456d348e7 100644 --- a/src/main/java/com/gooddata/auditevent/AuditEvents.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/auditevent/AuditEvents.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.auditevent; +package com.gooddata.sdk.model.auditevent; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonTypeInfo; diff --git a/src/main/java/com/gooddata/auditevent/AuditEventsDeserializer.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/auditevent/AuditEventsDeserializer.java similarity index 86% rename from src/main/java/com/gooddata/auditevent/AuditEventsDeserializer.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/auditevent/AuditEventsDeserializer.java index a3a94acf6..037b9b31e 100644 --- a/src/main/java/com/gooddata/auditevent/AuditEventsDeserializer.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/auditevent/AuditEventsDeserializer.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.auditevent; +package com.gooddata.sdk.model.auditevent; import com.gooddata.collections.PageableListDeserializer; import com.gooddata.collections.Paging; diff --git a/src/main/java/com/gooddata/auditevent/AuditEventsSerializer.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/auditevent/AuditEventsSerializer.java similarity index 76% rename from src/main/java/com/gooddata/auditevent/AuditEventsSerializer.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/auditevent/AuditEventsSerializer.java index d866220b5..8441a24bd 100644 --- a/src/main/java/com/gooddata/auditevent/AuditEventsSerializer.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/auditevent/AuditEventsSerializer.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.auditevent; +package com.gooddata.sdk.model.auditevent; import com.gooddata.collections.PageableListSerializer; diff --git a/src/main/java/com/gooddata/connector/ConnectorType.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/ConnectorType.java similarity index 86% rename from src/main/java/com/gooddata/connector/ConnectorType.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/ConnectorType.java index c618f6fba..0748f1076 100644 --- a/src/main/java/com/gooddata/connector/ConnectorType.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/ConnectorType.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.connector; +package com.gooddata.sdk.model.connector; /** * Enum containing implemented connector types. diff --git a/src/main/java/com/gooddata/connector/CoupaInstance.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/CoupaInstance.java similarity index 94% rename from src/main/java/com/gooddata/connector/CoupaInstance.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/CoupaInstance.java index 175fe4764..ee7c9dbf0 100644 --- a/src/main/java/com/gooddata/connector/CoupaInstance.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/CoupaInstance.java @@ -1,17 +1,15 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.connector; +package com.gooddata.sdk.model.connector; import static com.gooddata.util.Validate.notEmpty; import com.fasterxml.jackson.annotation.*; import com.gooddata.util.GoodDataToStringBuilder; -import java.util.Objects; - /** * Coupa connector instance. */ diff --git a/src/main/java/com/gooddata/connector/CoupaInstances.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/CoupaInstances.java similarity index 69% rename from src/main/java/com/gooddata/connector/CoupaInstances.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/CoupaInstances.java index 5c49288c0..0c6558c0d 100644 --- a/src/main/java/com/gooddata/connector/CoupaInstances.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/CoupaInstances.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.connector; +package com.gooddata.sdk.model.connector; import com.fasterxml.jackson.annotation.*; @@ -16,9 +16,9 @@ @JsonTypeName("coupaInstances") @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonIgnoreProperties(ignoreUnknown = true) -class CoupaInstances { +public class CoupaInstances { - static final String URL = "/gdc/projects/{project}/connectors/coupa/integration/config/settings/instances"; + public static final String URL = "/gdc/projects/{project}/connectors/coupa/integration/config/settings/instances"; private final Collection items; @@ -27,7 +27,7 @@ private CoupaInstances(@JsonProperty("items") List items) { this.items = items; } - Collection getItems() { + public Collection getItems() { return items; } } diff --git a/src/main/java/com/gooddata/connector/CoupaProcessExecution.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/CoupaProcessExecution.java similarity index 92% rename from src/main/java/com/gooddata/connector/CoupaProcessExecution.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/CoupaProcessExecution.java index 5e0d7b2bf..9d60bb565 100644 --- a/src/main/java/com/gooddata/connector/CoupaProcessExecution.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/CoupaProcessExecution.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.connector; +package com.gooddata.sdk.model.connector; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.gooddata.util.GDDateSerializer; diff --git a/src/main/java/com/gooddata/connector/CoupaSettings.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/CoupaSettings.java similarity index 89% rename from src/main/java/com/gooddata/connector/CoupaSettings.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/CoupaSettings.java index 10099513c..ec1dcf0e8 100644 --- a/src/main/java/com/gooddata/connector/CoupaSettings.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/CoupaSettings.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.connector; +package com.gooddata.sdk.model.connector; import com.fasterxml.jackson.annotation.*; import com.gooddata.util.GoodDataToStringBuilder; diff --git a/src/main/java/com/gooddata/connector/Integration.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/Integration.java similarity index 96% rename from src/main/java/com/gooddata/connector/Integration.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/Integration.java index 42199b169..98eec4ac3 100644 --- a/src/main/java/com/gooddata/connector/Integration.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/Integration.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.connector; +package com.gooddata.sdk.model.connector; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/src/main/java/com/gooddata/connector/IntegrationProcessStatus.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/IntegrationProcessStatus.java similarity index 97% rename from src/main/java/com/gooddata/connector/IntegrationProcessStatus.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/IntegrationProcessStatus.java index 2230c88e8..b22a5e463 100644 --- a/src/main/java/com/gooddata/connector/IntegrationProcessStatus.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/IntegrationProcessStatus.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.connector; +package com.gooddata.sdk.model.connector; import static com.gooddata.util.Validate.notNullState; diff --git a/src/main/java/com/gooddata/connector/PardotProcessExecution.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/PardotProcessExecution.java similarity index 91% rename from src/main/java/com/gooddata/connector/PardotProcessExecution.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/PardotProcessExecution.java index 8744b52de..886fd88e6 100644 --- a/src/main/java/com/gooddata/connector/PardotProcessExecution.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/PardotProcessExecution.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.connector; +package com.gooddata.sdk.model.connector; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.gooddata.util.GDDateSerializer; diff --git a/src/main/java/com/gooddata/connector/PardotSettings.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/PardotSettings.java similarity index 90% rename from src/main/java/com/gooddata/connector/PardotSettings.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/PardotSettings.java index 5b6060b78..65bb32522 100644 --- a/src/main/java/com/gooddata/connector/PardotSettings.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/PardotSettings.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.connector; +package com.gooddata.sdk.model.connector; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/connector/ProcessExecution.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/ProcessExecution.java similarity index 88% rename from src/main/java/com/gooddata/connector/ProcessExecution.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/ProcessExecution.java index c989cd6cd..3bc7c78f6 100644 --- a/src/main/java/com/gooddata/connector/ProcessExecution.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/ProcessExecution.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.connector; +package com.gooddata.sdk.model.connector; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/connector/ProcessStatus.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/ProcessStatus.java similarity index 93% rename from src/main/java/com/gooddata/connector/ProcessStatus.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/ProcessStatus.java index b5063031e..d5d75d8dc 100644 --- a/src/main/java/com/gooddata/connector/ProcessStatus.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/ProcessStatus.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.connector; +package com.gooddata.sdk.model.connector; import com.gooddata.util.ISODateTimeDeserializer; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/src/main/java/com/gooddata/connector/Settings.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/Settings.java similarity index 90% rename from src/main/java/com/gooddata/connector/Settings.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/Settings.java index a44717a9f..ac5cb1734 100644 --- a/src/main/java/com/gooddata/connector/Settings.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/Settings.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.connector; +package com.gooddata.sdk.model.connector; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/connector/Status.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/Status.java similarity index 88% rename from src/main/java/com/gooddata/connector/Status.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/Status.java index 03b0fa7dd..0dba0aa70 100644 --- a/src/main/java/com/gooddata/connector/Status.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/Status.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.connector; +package com.gooddata.sdk.model.connector; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -11,9 +11,9 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.gooddata.util.GoodDataToStringBuilder; -import static com.gooddata.connector.Status.Code.ERROR; -import static com.gooddata.connector.Status.Code.SYNCHRONIZED; -import static com.gooddata.connector.Status.Code.USER_ERROR; +import static com.gooddata.sdk.model.connector.Status.Code.ERROR; +import static com.gooddata.sdk.model.connector.Status.Code.SYNCHRONIZED; +import static com.gooddata.sdk.model.connector.Status.Code.USER_ERROR; /** * Connector process status. Deserialization only. diff --git a/src/main/java/com/gooddata/connector/Zendesk4ProcessExecution.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/Zendesk4ProcessExecution.java similarity index 96% rename from src/main/java/com/gooddata/connector/Zendesk4ProcessExecution.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/Zendesk4ProcessExecution.java index f46fd57fa..d02bd3e1f 100644 --- a/src/main/java/com/gooddata/connector/Zendesk4ProcessExecution.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/Zendesk4ProcessExecution.java @@ -1,11 +1,11 @@ /* - * Copyright (C) 2004-2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.connector; +package com.gooddata.sdk.model.connector; -import static com.gooddata.connector.ConnectorType.ZENDESK4; +import static com.gooddata.sdk.model.connector.ConnectorType.ZENDESK4; import static com.gooddata.util.Validate.notEmpty; import static com.gooddata.util.Validate.notNull; diff --git a/src/main/java/com/gooddata/connector/Zendesk4Settings.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/Zendesk4Settings.java similarity index 93% rename from src/main/java/com/gooddata/connector/Zendesk4Settings.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/Zendesk4Settings.java index 16d80a904..7739d5c10 100644 --- a/src/main/java/com/gooddata/connector/Zendesk4Settings.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/connector/Zendesk4Settings.java @@ -1,16 +1,16 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.connector; +package com.gooddata.sdk.model.connector; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.gooddata.util.GoodDataToStringBuilder; import static com.gooddata.util.Validate.notEmpty; -import static com.gooddata.connector.ConnectorType.ZENDESK4; +import static com.gooddata.sdk.model.connector.ConnectorType.ZENDESK4; /** * Zendesk 4 (Insights) connector settings. diff --git a/src/main/java/com/gooddata/dataload/OutputStage.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/OutputStage.java similarity index 92% rename from src/main/java/com/gooddata/dataload/OutputStage.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/OutputStage.java index 36fcac257..ee0b57075 100644 --- a/src/main/java/com/gooddata/dataload/OutputStage.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/OutputStage.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataload; +package com.gooddata.sdk.model.dataload; import static com.gooddata.util.Validate.notNullState; @@ -14,6 +14,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; +import com.gooddata.sdk.model.warehouse.WarehouseSchema; import com.gooddata.util.GoodDataToStringBuilder; import org.springframework.web.util.UriTemplate; @@ -57,7 +58,7 @@ public Map getLinks() { } /** - * get datawarehouse schema uri {@link com.gooddata.warehouse.WarehouseSchema} + * get datawarehouse schema uri {@link WarehouseSchema} * * @return warehouse schema, can be null. */ @@ -72,7 +73,7 @@ public void setSchemaUri(final String schemaUri) { } /** - * check if there is associated schema {@link com.gooddata.warehouse.WarehouseSchema} with this output stage + * check if there is associated schema {@link WarehouseSchema} with this output stage * * @return true if there is associated schema, else false */ diff --git a/src/main/java/com/gooddata/dataload/processes/AsyncTask.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/AsyncTask.java similarity index 86% rename from src/main/java/com/gooddata/dataload/processes/AsyncTask.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/AsyncTask.java index 57579efed..53ea2477c 100644 --- a/src/main/java/com/gooddata/dataload/processes/AsyncTask.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/AsyncTask.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataload.processes; +package com.gooddata.sdk.model.dataload.processes; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -15,14 +15,14 @@ /** * Asynchronous task containing link for polling. - * This task differs from {@link com.gooddata.gdc.AsyncTask} in links field. + * This task differs from {@link com.gooddata.sdk.model.gdc.AsyncTask} in links field. * Deserialization only. */ @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonTypeName("asyncTask") @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) -class AsyncTask { +public class AsyncTask { @JsonProperty private final Links links; diff --git a/src/main/java/com/gooddata/dataload/processes/DataloadProcess.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/DataloadProcess.java similarity index 97% rename from src/main/java/com/gooddata/dataload/processes/DataloadProcess.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/DataloadProcess.java index 99c1a9fd5..20a9342ff 100644 --- a/src/main/java/com/gooddata/dataload/processes/DataloadProcess.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/DataloadProcess.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataload.processes; +package com.gooddata.sdk.model.dataload.processes; import static com.gooddata.util.Validate.notEmpty; import static com.gooddata.util.Validate.notNull; diff --git a/src/main/java/com/gooddata/dataload/processes/DataloadProcesses.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/DataloadProcesses.java similarity index 85% rename from src/main/java/com/gooddata/dataload/processes/DataloadProcesses.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/DataloadProcesses.java index 1bd628943..8750ba917 100644 --- a/src/main/java/com/gooddata/dataload/processes/DataloadProcesses.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/DataloadProcesses.java @@ -1,11 +1,11 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataload.processes; +package com.gooddata.sdk.model.dataload.processes; -import com.gooddata.account.Account; +import com.gooddata.sdk.model.account.Account; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; @@ -23,7 +23,7 @@ @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonTypeName("processes") @JsonIgnoreProperties(ignoreUnknown = true) -class DataloadProcesses { +public class DataloadProcesses { public static final String URI = "/gdc/projects/{projectId}/dataload/processes"; public static final UriTemplate TEMPLATE = new UriTemplate(URI); @@ -37,7 +37,7 @@ class DataloadProcesses { this.items = items; } - Collection getItems() { + public Collection getItems() { return items; } diff --git a/src/main/java/com/gooddata/dataload/processes/ProcessExecution.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ProcessExecution.java similarity index 93% rename from src/main/java/com/gooddata/dataload/processes/ProcessExecution.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ProcessExecution.java index 54143a192..234210b4d 100644 --- a/src/main/java/com/gooddata/dataload/processes/ProcessExecution.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ProcessExecution.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataload.processes; +package com.gooddata.sdk.model.dataload.processes; import static com.gooddata.util.Validate.notEmpty; import static com.gooddata.util.Validate.notNull; @@ -62,7 +62,7 @@ public Map getHiddenParams() { } @JsonIgnore - String getExecutionsUri() { + public String getExecutionsUri() { return executionsUri; } diff --git a/src/main/java/com/gooddata/dataload/processes/ProcessExecutionDetail.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ProcessExecutionDetail.java similarity index 97% rename from src/main/java/com/gooddata/dataload/processes/ProcessExecutionDetail.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ProcessExecutionDetail.java index b21ae75eb..ec5c42a00 100644 --- a/src/main/java/com/gooddata/dataload/processes/ProcessExecutionDetail.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ProcessExecutionDetail.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataload.processes; +package com.gooddata.sdk.model.dataload.processes; import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; diff --git a/src/main/java/com/gooddata/dataload/processes/ProcessExecutionTask.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ProcessExecutionTask.java similarity index 85% rename from src/main/java/com/gooddata/dataload/processes/ProcessExecutionTask.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ProcessExecutionTask.java index 57cc1e1f7..65e152c49 100644 --- a/src/main/java/com/gooddata/dataload/processes/ProcessExecutionTask.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ProcessExecutionTask.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataload.processes; +package com.gooddata.sdk.model.dataload.processes; import static com.gooddata.util.Validate.notNullState; @@ -21,7 +21,7 @@ @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonTypeName("executionTask") @JsonIgnoreProperties(ignoreUnknown = true) -class ProcessExecutionTask { +public class ProcessExecutionTask { private static final String POLL_LINK = "poll"; private static final String DETAIL_LINK = "detail"; @@ -38,7 +38,7 @@ String getPollLink() { return getPollUri(); } - String getPollUri() { + public String getPollUri() { return notNullState(links, "links").get(POLL_LINK); } @@ -47,7 +47,7 @@ String getDetailLink() { return getDetailUri(); } - String getDetailUri() { + public String getDetailUri() { return notNullState(links, "links").get(DETAIL_LINK); } } diff --git a/src/main/java/com/gooddata/dataload/processes/ProcessType.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ProcessType.java similarity index 75% rename from src/main/java/com/gooddata/dataload/processes/ProcessType.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ProcessType.java index c78707544..1605741af 100644 --- a/src/main/java/com/gooddata/dataload/processes/ProcessType.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ProcessType.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataload.processes; +package com.gooddata.sdk.model.dataload.processes; /** * Represents type of dataload process. Please note that this enumeration must not be complete. diff --git a/src/main/java/com/gooddata/dataload/processes/Schedule.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/Schedule.java similarity index 98% rename from src/main/java/com/gooddata/dataload/processes/Schedule.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/Schedule.java index fda4b1f87..b555db3cd 100644 --- a/src/main/java/com/gooddata/dataload/processes/Schedule.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/Schedule.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataload.processes; +package com.gooddata.sdk.model.dataload.processes; import com.fasterxml.jackson.annotation.JsonInclude; import com.gooddata.util.GoodDataToStringBuilder; diff --git a/src/main/java/com/gooddata/dataload/processes/ScheduleExecution.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ScheduleExecution.java similarity index 95% rename from src/main/java/com/gooddata/dataload/processes/ScheduleExecution.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ScheduleExecution.java index 2270d5ba9..6cb81e2de 100644 --- a/src/main/java/com/gooddata/dataload/processes/ScheduleExecution.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ScheduleExecution.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataload.processes; +package com.gooddata.sdk.model.dataload.processes; import static com.gooddata.util.Validate.notNullState; @@ -44,7 +44,7 @@ public class ScheduleExecution { private Map links; - ScheduleExecution() {} + public ScheduleExecution() {} @JsonCreator private ScheduleExecution(@JsonProperty("createdTime") @JsonDeserialize(using = ISODateTimeDeserializer.class) DateTime created, diff --git a/src/main/java/com/gooddata/dataload/processes/ScheduleState.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ScheduleState.java similarity index 67% rename from src/main/java/com/gooddata/dataload/processes/ScheduleState.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ScheduleState.java index 69b1aa687..973216d7e 100644 --- a/src/main/java/com/gooddata/dataload/processes/ScheduleState.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/ScheduleState.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataload.processes; +package com.gooddata.sdk.model.dataload.processes; /** * Dataload schedule state. diff --git a/src/main/java/com/gooddata/dataload/processes/Schedules.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/Schedules.java similarity index 86% rename from src/main/java/com/gooddata/dataload/processes/Schedules.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/Schedules.java index 2afdfa217..d5fa4f21e 100644 --- a/src/main/java/com/gooddata/dataload/processes/Schedules.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/Schedules.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataload.processes; +package com.gooddata.sdk.model.dataload.processes; import com.gooddata.collections.PageableList; import com.gooddata.collections.Paging; @@ -22,7 +22,7 @@ @JsonTypeName("schedules") @JsonIgnoreProperties(ignoreUnknown = true) @JsonDeserialize(using = SchedulesDeserializer.class) -class Schedules extends PageableList { +public class Schedules extends PageableList { public static final String URI = "/gdc/projects/{projectId}/schedules"; public static final UriTemplate TEMPLATE = new UriTemplate(URI); diff --git a/src/main/java/com/gooddata/dataload/processes/SchedulesDeserializer.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/SchedulesDeserializer.java similarity index 84% rename from src/main/java/com/gooddata/dataload/processes/SchedulesDeserializer.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/SchedulesDeserializer.java index 352445e47..440ac143c 100644 --- a/src/main/java/com/gooddata/dataload/processes/SchedulesDeserializer.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataload/processes/SchedulesDeserializer.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataload.processes; +package com.gooddata.sdk.model.dataload.processes; import com.gooddata.collections.PageableListDeserializer; import com.gooddata.collections.Paging; diff --git a/src/main/java/com/gooddata/dataset/Dataset.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/Dataset.java similarity index 72% rename from src/main/java/com/gooddata/dataset/Dataset.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/Dataset.java index dbe983ec2..4d1704a53 100644 --- a/src/main/java/com/gooddata/dataset/Dataset.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/Dataset.java @@ -1,23 +1,23 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; -import com.gooddata.gdc.AboutLinks.Link; +import com.gooddata.sdk.model.gdc.AboutLinks; /** * Dataset link * - * @deprecated use {@link Link} instead + * @deprecated use {@link AboutLinks.Link} instead */ @Deprecated @JsonIgnoreProperties(ignoreUnknown = true) -public class Dataset extends Link { +public class Dataset extends AboutLinks.Link { @JsonCreator public Dataset(@JsonProperty("identifier") String identifier, @JsonProperty("link") String uri, diff --git a/src/main/java/com/gooddata/dataset/DatasetLinks.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/DatasetLinks.java similarity index 75% rename from src/main/java/com/gooddata/dataset/DatasetLinks.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/DatasetLinks.java index 40c6f1fb4..cf74439ed 100644 --- a/src/main/java/com/gooddata/dataset/DatasetLinks.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/DatasetLinks.java @@ -1,12 +1,12 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; import com.fasterxml.jackson.annotation.*; -import com.gooddata.gdc.AboutLinks; +import com.gooddata.sdk.model.gdc.AboutLinks; import java.util.List; @@ -14,7 +14,7 @@ * Dataset links. * Deserialization only. */ -class DatasetLinks extends AboutLinks { +public class DatasetLinks extends AboutLinks { public static final String URI = "/gdc/md/{project}/ldm/singleloadinterface"; diff --git a/src/main/java/com/gooddata/dataset/DatasetManifest.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/DatasetManifest.java similarity index 98% rename from src/main/java/com/gooddata/dataset/DatasetManifest.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/DatasetManifest.java index 47c0f99c9..954ccde8c 100644 --- a/src/main/java/com/gooddata/dataset/DatasetManifest.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/DatasetManifest.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; import com.fasterxml.jackson.annotation.JsonInclude; import com.gooddata.util.BooleanDeserializer; diff --git a/src/main/java/com/gooddata/dataset/DatasetManifests.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/DatasetManifests.java similarity index 88% rename from src/main/java/com/gooddata/dataset/DatasetManifests.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/DatasetManifests.java index c6e8b0106..c6a2dbd77 100644 --- a/src/main/java/com/gooddata/dataset/DatasetManifests.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/DatasetManifests.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; @@ -16,7 +16,7 @@ /** * Encapsulates list of {@link DatasetManifest}. */ -class DatasetManifests { +public class DatasetManifests { private final Collection manifests; diff --git a/src/main/java/com/gooddata/dataset/DatasetNotFoundException.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/DatasetNotFoundException.java similarity index 86% rename from src/main/java/com/gooddata/dataset/DatasetNotFoundException.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/DatasetNotFoundException.java index 4c5009774..4f3ed875f 100644 --- a/src/main/java/com/gooddata/dataset/DatasetNotFoundException.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/DatasetNotFoundException.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; import static java.lang.String.format; diff --git a/src/main/java/com/gooddata/dataset/Datasets.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/Datasets.java similarity index 76% rename from src/main/java/com/gooddata/dataset/Datasets.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/Datasets.java index d1744aedb..ea5bd4c26 100644 --- a/src/main/java/com/gooddata/dataset/Datasets.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/Datasets.java @@ -1,12 +1,12 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; import com.fasterxml.jackson.annotation.*; -import com.gooddata.gdc.AboutLinks; +import com.gooddata.sdk.model.gdc.AboutLinks; import java.util.List; @@ -15,7 +15,7 @@ * @deprecated use {@link DatasetLinks} instead. */ @Deprecated -class Datasets extends AboutLinks { +public class Datasets extends AboutLinks { public static final String URI = "/gdc/md/{project}/ldm/singleloadinterface"; diff --git a/src/main/java/com/gooddata/dataset/EtlMode.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/EtlMode.java similarity index 91% rename from src/main/java/com/gooddata/dataset/EtlMode.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/EtlMode.java index decf8fb3f..ca3b439e0 100644 --- a/src/main/java/com/gooddata/dataset/EtlMode.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/EtlMode.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -17,7 +17,7 @@ @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) -class EtlMode { +public class EtlMode { public static final String URL = "/gdc/md/{project}/etl/mode"; diff --git a/src/main/java/com/gooddata/dataset/EtlModeType.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/EtlModeType.java similarity index 72% rename from src/main/java/com/gooddata/dataset/EtlModeType.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/EtlModeType.java index ca19ba799..6adbbe42e 100644 --- a/src/main/java/com/gooddata/dataset/EtlModeType.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/EtlModeType.java @@ -1,16 +1,16 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; import com.fasterxml.jackson.annotation.JsonValue; /** * Enum containing ETL mode types. */ -enum EtlModeType { +public enum EtlModeType { SLI, DLI, VOID; diff --git a/src/main/java/com/gooddata/dataset/LookupMode.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/LookupMode.java similarity index 73% rename from src/main/java/com/gooddata/dataset/LookupMode.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/LookupMode.java index 674b33773..ca77b4532 100644 --- a/src/main/java/com/gooddata/dataset/LookupMode.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/LookupMode.java @@ -1,16 +1,16 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; import com.fasterxml.jackson.annotation.JsonValue; /** * Enum containing ETL lookup modes. */ -enum LookupMode { +public enum LookupMode { RECREATE; diff --git a/src/main/java/com/gooddata/dataset/MaqlDml.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/MaqlDml.java similarity index 64% rename from src/main/java/com/gooddata/dataset/MaqlDml.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/MaqlDml.java index fbf64d047..8693ca76c 100644 --- a/src/main/java/com/gooddata/dataset/MaqlDml.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/MaqlDml.java @@ -1,17 +1,17 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; -import com.gooddata.gdc.AbstractMaql; +import com.gooddata.sdk.model.gdc.AbstractMaql; /** * MAQL DML statement. * Serialization only. */ -class MaqlDml extends AbstractMaql { +public class MaqlDml extends AbstractMaql { public static final String URI = "/gdc/md/{project}/dml/manage"; diff --git a/src/main/java/com/gooddata/dataset/Pull.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/Pull.java similarity index 88% rename from src/main/java/com/gooddata/dataset/Pull.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/Pull.java index 6b580573d..9b952610b 100644 --- a/src/main/java/com/gooddata/dataset/Pull.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/Pull.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; @@ -15,7 +15,7 @@ * Serialization only. */ @JsonInclude(JsonInclude.Include.NON_NULL) -class Pull { +public class Pull { public static final String URI = "/gdc/md/{projectId}/etl/pull2"; public static final UriTemplate TEMPLATE = new UriTemplate(URI); diff --git a/src/main/java/com/gooddata/dataset/PullTask.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/PullTask.java similarity index 92% rename from src/main/java/com/gooddata/dataset/PullTask.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/PullTask.java index 7da660d8f..6cac44b29 100644 --- a/src/main/java/com/gooddata/dataset/PullTask.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/PullTask.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; import static com.gooddata.util.Validate.notEmpty; import static com.gooddata.util.Validate.notNull; @@ -22,7 +22,7 @@ @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonTypeName("pull2Task") @JsonIgnoreProperties(ignoreUnknown = true) -class PullTask { +public class PullTask { public static final String URI = "/gdc/md/{projectId}/tasks/task/{taskId}"; public static final UriTemplate TEMPLATE = new UriTemplate(URI); diff --git a/src/main/java/com/gooddata/dataset/TaskState.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/TaskState.java similarity index 92% rename from src/main/java/com/gooddata/dataset/TaskState.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/TaskState.java index 9a7ab835f..0b2a34930 100644 --- a/src/main/java/com/gooddata/dataset/TaskState.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/TaskState.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -21,7 +21,7 @@ @JsonTypeName("taskState") @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) -class TaskState { +public class TaskState { private static final String OK = "OK"; private static final String ERROR = "ERROR"; diff --git a/src/main/java/com/gooddata/dataset/Upload.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/Upload.java similarity index 97% rename from src/main/java/com/gooddata/dataset/Upload.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/Upload.java index ac3d3c999..69c60f981 100644 --- a/src/main/java/com/gooddata/dataset/Upload.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/Upload.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/dataset/UploadMode.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/UploadMode.java similarity index 93% rename from src/main/java/com/gooddata/dataset/UploadMode.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/UploadMode.java index 38bf84500..fd573ac2b 100644 --- a/src/main/java/com/gooddata/dataset/UploadMode.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/UploadMode.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; import java.util.HashMap; import java.util.Map; diff --git a/src/main/java/com/gooddata/dataset/UploadStatistics.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/UploadStatistics.java similarity index 94% rename from src/main/java/com/gooddata/dataset/UploadStatistics.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/UploadStatistics.java index 4b8ac9489..a27caeafa 100644 --- a/src/main/java/com/gooddata/dataset/UploadStatistics.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/UploadStatistics.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/dataset/Uploads.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/Uploads.java similarity index 86% rename from src/main/java/com/gooddata/dataset/Uploads.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/Uploads.java index b11c569e6..ecc4d49b1 100644 --- a/src/main/java/com/gooddata/dataset/Uploads.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/Uploads.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; @@ -20,7 +20,7 @@ @JsonTypeName("dataUploads") @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonIgnoreProperties(ignoreUnknown = true) -class Uploads { +public class Uploads { private final Collection uploads; @@ -31,7 +31,7 @@ class Uploads { /** * @return all items of uploads collection */ - Collection items() { + public Collection items() { return uploads; } diff --git a/src/main/java/com/gooddata/dataset/UploadsInfo.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/UploadsInfo.java similarity index 88% rename from src/main/java/com/gooddata/dataset/UploadsInfo.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/UploadsInfo.java index f4109dac0..ff7d8482d 100644 --- a/src/main/java/com/gooddata/dataset/UploadsInfo.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/dataset/UploadsInfo.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.dataset; +package com.gooddata.sdk.model.dataset; import static com.gooddata.util.Validate.notEmpty; @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; -import com.gooddata.md.Meta; +import com.gooddata.sdk.model.md.Meta; import com.gooddata.util.GoodDataToStringBuilder; import org.springframework.web.util.UriTemplate; @@ -27,10 +27,10 @@ @JsonTypeName("dataSetsInfo") @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonIgnoreProperties(ignoreUnknown = true) -class UploadsInfo { +public class UploadsInfo { - static final String URI = "/gdc/md/{projectId}/data/sets"; - static final UriTemplate URI_TEMPLATE = new UriTemplate(URI); + public static final String URI = "/gdc/md/{projectId}/data/sets"; + public static final UriTemplate URI_TEMPLATE = new UriTemplate(URI); private final Map datasets = new HashMap<>(); @@ -49,7 +49,7 @@ class UploadsInfo { * @param datasetId dataset identifier * @return {@link DataSet} object */ - DataSet getDataSet(String datasetId) { + public DataSet getDataSet(String datasetId) { notEmpty(datasetId, "datasetId"); final DataSet dataSet = datasets.get(datasetId); @@ -76,7 +76,7 @@ public String toString() { * Deserialization only. */ @JsonIgnoreProperties(ignoreUnknown = true) - static class DataSet { + public static class DataSet { private final Meta meta; private final String datasetUploadsUri; @@ -94,21 +94,21 @@ private DataSet( /** * @return dataset identifier */ - String getDatasetId() { + public String getDatasetId() { return meta.getIdentifier(); } /** * @return URI for all uploads of this dataset */ - String getUploadsUri() { + public String getUploadsUri() { return datasetUploadsUri; } /** * @return {@link Upload} uri of the last upload */ - String getLastUploadUri() { + public String getLastUploadUri() { return lastUpload.uri; } diff --git a/src/main/java/com/gooddata/executeafm/Execution.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/Execution.java similarity index 86% rename from src/main/java/com/gooddata/executeafm/Execution.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/Execution.java index e9cf09748..a44885282 100644 --- a/src/main/java/com/gooddata/executeafm/Execution.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/Execution.java @@ -1,17 +1,17 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm; +package com.gooddata.sdk.model.executeafm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; -import com.gooddata.executeafm.afm.Afm; -import com.gooddata.executeafm.resultspec.ResultSpec; +import com.gooddata.sdk.model.executeafm.afm.Afm; +import com.gooddata.sdk.model.executeafm.resultspec.ResultSpec; import com.gooddata.util.GoodDataToStringBuilder; /** diff --git a/src/main/java/com/gooddata/executeafm/IdentifierObjQualifier.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/IdentifierObjQualifier.java similarity index 76% rename from src/main/java/com/gooddata/executeafm/IdentifierObjQualifier.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/IdentifierObjQualifier.java index 16958731a..adf7797b3 100644 --- a/src/main/java/com/gooddata/executeafm/IdentifierObjQualifier.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/IdentifierObjQualifier.java @@ -1,17 +1,20 @@ /* - * Copyright (C) 2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm; +package com.gooddata.sdk.model.executeafm; import com.fasterxml.jackson.annotation.JsonRootName; import com.fasterxml.jackson.annotation.JsonValue; +import com.gooddata.sdk.model.md.Obj; import com.gooddata.util.GoodDataToStringBuilder; import java.io.Serializable; import java.util.Objects; /** - * Qualifies metadata {@link com.gooddata.md.Obj} using an identifier + * Qualifies metadata {@link Obj} using an identifier */ @JsonRootName("identifier") public final class IdentifierObjQualifier implements ObjQualifier, Serializable { diff --git a/src/main/java/com/gooddata/executeafm/ObjQualifier.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/ObjQualifier.java similarity index 68% rename from src/main/java/com/gooddata/executeafm/ObjQualifier.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/ObjQualifier.java index 61bdd4625..f5ce6b446 100644 --- a/src/main/java/com/gooddata/executeafm/ObjQualifier.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/ObjQualifier.java @@ -1,13 +1,16 @@ /* - * Copyright (C) 2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm; +package com.gooddata.sdk.model.executeafm; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; +import com.gooddata.sdk.model.md.Obj; /** - * Qualifies metadata {@link com.gooddata.md.Obj} + * Qualifies metadata {@link Obj} */ @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonSubTypes({ diff --git a/src/main/java/com/gooddata/executeafm/ResultPage.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/ResultPage.java similarity index 79% rename from src/main/java/com/gooddata/executeafm/ResultPage.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/ResultPage.java index e0812f84b..6ae469a61 100644 --- a/src/main/java/com/gooddata/executeafm/ResultPage.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/ResultPage.java @@ -1,12 +1,12 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm; +package com.gooddata.sdk.model.executeafm; -import com.gooddata.executeafm.response.ExecutionResponse; -import com.gooddata.executeafm.result.ExecutionResult; +import com.gooddata.sdk.model.executeafm.response.ExecutionResponse; +import com.gooddata.sdk.model.executeafm.result.ExecutionResult; import org.springframework.web.util.UriUtils; import java.io.UnsupportedEncodingException; @@ -17,7 +17,7 @@ /** * Represents page of {@link ExecutionResult} to be requested, using - * {@link com.gooddata.executeafm.ExecuteAfmService#getResult(ExecutionResponse, ResultPage)} + * {@link com.gooddata.sdk.executeafm.ExecuteAfmService#getResult(ExecutionResponse, ResultPage)} */ public class ResultPage { @@ -40,14 +40,14 @@ public ResultPage(final List offsets, final List limits) { /** * @return page offsets joined and URL-encoded to be used as query parameter */ - String getOffsetsQueryParam() { + public String getOffsetsQueryParam() { return toQueryParam(offsets); } /** * @return page limits joined and URL-encoded to be used as query parameter */ - String getLimitsQueryParam() { + public String getLimitsQueryParam() { return toQueryParam(limits); } diff --git a/src/main/java/com/gooddata/executeafm/UriObjQualifier.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/UriObjQualifier.java similarity index 75% rename from src/main/java/com/gooddata/executeafm/UriObjQualifier.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/UriObjQualifier.java index f8810edca..580afdbc4 100644 --- a/src/main/java/com/gooddata/executeafm/UriObjQualifier.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/UriObjQualifier.java @@ -1,17 +1,20 @@ /* - * Copyright (C) 2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm; +package com.gooddata.sdk.model.executeafm; import com.fasterxml.jackson.annotation.JsonRootName; import com.fasterxml.jackson.annotation.JsonValue; +import com.gooddata.sdk.model.md.Obj; import com.gooddata.util.GoodDataToStringBuilder; import java.io.Serializable; import java.util.Objects; /** - * Qualifies metadata {@link com.gooddata.md.Obj} using an URI + * Qualifies metadata {@link Obj} using an URI */ @JsonRootName("uri") public final class UriObjQualifier implements ObjQualifier, Serializable { diff --git a/src/main/java/com/gooddata/executeafm/VisualizationExecution.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/VisualizationExecution.java similarity index 91% rename from src/main/java/com/gooddata/executeafm/VisualizationExecution.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/VisualizationExecution.java index 5be7ddf1e..6b1fa5393 100644 --- a/src/main/java/com/gooddata/executeafm/VisualizationExecution.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/VisualizationExecution.java @@ -1,21 +1,19 @@ /* - * Copyright (C) 2004-2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm; +package com.gooddata.sdk.model.executeafm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; -import com.gooddata.executeafm.afm.CompatibilityFilter; -import com.gooddata.executeafm.resultspec.ResultSpec; +import com.gooddata.sdk.model.executeafm.afm.CompatibilityFilter; +import com.gooddata.sdk.model.executeafm.resultspec.ResultSpec; -import java.util.ArrayList; -import java.util.Collections; import java.util.List; /** diff --git a/src/main/java/com/gooddata/executeafm/afm/AbsoluteDateFilter.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/AbsoluteDateFilter.java similarity index 92% rename from src/main/java/com/gooddata/executeafm/afm/AbsoluteDateFilter.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/AbsoluteDateFilter.java index e4e7f3493..8be17f23f 100644 --- a/src/main/java/com/gooddata/executeafm/afm/AbsoluteDateFilter.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/AbsoluteDateFilter.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -11,8 +11,8 @@ import com.fasterxml.jackson.annotation.JsonRootName; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; -import com.gooddata.executeafm.ObjQualifier; -import com.gooddata.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.UriObjQualifier; import com.gooddata.util.GDDateDeserializer; import com.gooddata.util.GDDateSerializer; import com.gooddata.util.GoodDataToStringBuilder; @@ -28,7 +28,7 @@ public class AbsoluteDateFilter extends DateFilter { private static final long serialVersionUID = -1857726227400504182L; static final String NAME = "absoluteDateFilter"; - + private final LocalDate from; private final LocalDate to; diff --git a/src/main/java/com/gooddata/executeafm/afm/Afm.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/Afm.java similarity index 97% rename from src/main/java/com/gooddata/executeafm/afm/Afm.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/Afm.java index 308d55aef..ba2774a54 100644 --- a/src/main/java/com/gooddata/executeafm/afm/Afm.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/Afm.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/src/main/java/com/gooddata/executeafm/afm/Aggregation.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/Aggregation.java similarity index 80% rename from src/main/java/com/gooddata/executeafm/afm/Aggregation.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/Aggregation.java index 6b58d5973..10d32e84e 100644 --- a/src/main/java/com/gooddata/executeafm/afm/Aggregation.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/Aggregation.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonValue; diff --git a/src/main/java/com/gooddata/executeafm/afm/ArithmeticMeasureDefinition.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/ArithmeticMeasureDefinition.java similarity index 90% rename from src/main/java/com/gooddata/executeafm/afm/ArithmeticMeasureDefinition.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/ArithmeticMeasureDefinition.java index d16ca573f..95b981a52 100644 --- a/src/main/java/com/gooddata/executeafm/afm/ArithmeticMeasureDefinition.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/ArithmeticMeasureDefinition.java @@ -1,27 +1,25 @@ /* - * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; -import com.gooddata.executeafm.ObjQualifier; -import com.gooddata.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.UriObjQualifier; import com.gooddata.util.GoodDataToStringBuilder; import java.util.Collection; import java.util.Collections; import java.util.List; -import static com.gooddata.executeafm.afm.PreviousPeriodMeasureDefinition.NAME; - /** * Arithmetic measure definition representing aggregation of existing measures, for example sum of measures, difference,... */ -@JsonRootName(NAME) +@JsonRootName(PreviousPeriodMeasureDefinition.NAME) public class ArithmeticMeasureDefinition implements MeasureDefinition { private static final long serialVersionUID = -2597112924341600780L; diff --git a/src/main/java/com/gooddata/executeafm/afm/AttributeFilter.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/AttributeFilter.java similarity index 89% rename from src/main/java/com/gooddata/executeafm/afm/AttributeFilter.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/AttributeFilter.java index 2f8185ebe..63daff619 100644 --- a/src/main/java/com/gooddata/executeafm/afm/AttributeFilter.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/AttributeFilter.java @@ -1,11 +1,11 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; -import com.gooddata.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; import java.io.Serializable; import java.util.Objects; diff --git a/src/main/java/com/gooddata/executeafm/afm/AttributeItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/AttributeItem.java similarity index 84% rename from src/main/java/com/gooddata/executeafm/afm/AttributeItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/AttributeItem.java index ba1e13ced..515de5c71 100644 --- a/src/main/java/com/gooddata/executeafm/afm/AttributeItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/AttributeItem.java @@ -1,14 +1,15 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; -import com.gooddata.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; +import com.gooddata.sdk.model.md.AttributeDisplayForm; import com.gooddata.util.GoodDataToStringBuilder; import java.io.Serializable; @@ -28,7 +29,7 @@ public class AttributeItem implements LocallyIdentifiable, Serializable { /** * Creates new instance - * @param displayForm qualifier of {@link com.gooddata.md.AttributeDisplayForm} representing the attribute + * @param displayForm qualifier of {@link AttributeDisplayForm} representing the attribute * @param localIdentifier local identifier, unique within {@link Afm} * @param alias attribute alias */ @@ -43,7 +44,7 @@ public AttributeItem(@JsonProperty("displayForm") final ObjQualifier displayForm /** * Creates new instance - * @param displayForm qualifier of {@link com.gooddata.md.AttributeDisplayForm} representing the attribute + * @param displayForm qualifier of {@link AttributeDisplayForm} representing the attribute * @param localIdentifier local identifier, unique within {@link Afm} */ public AttributeItem(final ObjQualifier displayForm, final String localIdentifier) { @@ -57,7 +58,7 @@ public String getLocalIdentifier() { } /** - * @return qualifier of {@link com.gooddata.md.AttributeDisplayForm} representing the attribute + * @return qualifier of {@link AttributeDisplayForm} representing the attribute */ public ObjQualifier getDisplayForm() { return displayForm; diff --git a/src/main/java/com/gooddata/executeafm/afm/CompatibilityFilter.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/CompatibilityFilter.java similarity index 84% rename from src/main/java/com/gooddata/executeafm/afm/CompatibilityFilter.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/CompatibilityFilter.java index 2ecdc745f..294662290 100644 --- a/src/main/java/com/gooddata/executeafm/afm/CompatibilityFilter.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/CompatibilityFilter.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; diff --git a/src/main/java/com/gooddata/executeafm/afm/DateFilter.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/DateFilter.java similarity index 90% rename from src/main/java/com/gooddata/executeafm/afm/DateFilter.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/DateFilter.java index 3d33dd23c..cb19e30a2 100644 --- a/src/main/java/com/gooddata/executeafm/afm/DateFilter.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/DateFilter.java @@ -1,13 +1,13 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; -import com.gooddata.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; import java.io.Serializable; import java.util.Objects; diff --git a/src/main/java/com/gooddata/executeafm/afm/DerivedMeasureDefinition.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/DerivedMeasureDefinition.java similarity index 95% rename from src/main/java/com/gooddata/executeafm/afm/DerivedMeasureDefinition.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/DerivedMeasureDefinition.java index 5ca66998a..ca9c93158 100644 --- a/src/main/java/com/gooddata/executeafm/afm/DerivedMeasureDefinition.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/DerivedMeasureDefinition.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonSubTypes; diff --git a/src/main/java/com/gooddata/executeafm/afm/ExpressionFilter.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/ExpressionFilter.java similarity index 92% rename from src/main/java/com/gooddata/executeafm/afm/ExpressionFilter.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/ExpressionFilter.java index 615fa3b04..b81a38ac1 100644 --- a/src/main/java/com/gooddata/executeafm/afm/ExpressionFilter.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/ExpressionFilter.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/executeafm/afm/FilterItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/FilterItem.java similarity index 77% rename from src/main/java/com/gooddata/executeafm/afm/FilterItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/FilterItem.java index fd84243ca..1121a9554 100644 --- a/src/main/java/com/gooddata/executeafm/afm/FilterItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/FilterItem.java @@ -1,14 +1,15 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonSubTypes; -import com.gooddata.executeafm.ObjQualifier; -import com.gooddata.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.md.Obj; /** * Covers all the filters which can be used within AFM @@ -23,7 +24,7 @@ public interface FilterItem extends CompatibilityFilter { /** - * Get qualifier of {@link com.gooddata.md.Obj} to which the filter relates. + * Get qualifier of {@link Obj} to which the filter relates. * @return filtered object qualifier */ @JsonIgnore diff --git a/src/main/java/com/gooddata/executeafm/afm/LocallyIdentifiable.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/LocallyIdentifiable.java similarity index 78% rename from src/main/java/com/gooddata/executeafm/afm/LocallyIdentifiable.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/LocallyIdentifiable.java index 35fc366e5..9a754ea1b 100644 --- a/src/main/java/com/gooddata/executeafm/afm/LocallyIdentifiable.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/LocallyIdentifiable.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; /** * Marker interface for all locally identifiable objects having local identifier in AFM diff --git a/src/main/java/com/gooddata/executeafm/afm/MeasureDefinition.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/MeasureDefinition.java similarity index 88% rename from src/main/java/com/gooddata/executeafm/afm/MeasureDefinition.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/MeasureDefinition.java index fe6fec1c3..187b7d7a3 100644 --- a/src/main/java/com/gooddata/executeafm/afm/MeasureDefinition.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/MeasureDefinition.java @@ -1,18 +1,19 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.gooddata.executeafm.IdentifierObjQualifier; -import com.gooddata.executeafm.ObjQualifier; -import com.gooddata.executeafm.UriObjQualifier; -import com.gooddata.md.visualization.VOPopMeasureDefinition; -import com.gooddata.md.visualization.VOSimpleMeasureDefinition; +import com.gooddata.sdk.model.executeafm.IdentifierObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.md.visualization.VOPopMeasureDefinition; +import com.gooddata.sdk.model.md.visualization.VOSimpleMeasureDefinition; +import com.gooddata.sdk.model.md.Metric; import java.io.Serializable; import java.util.Collection; @@ -30,7 +31,7 @@ public interface MeasureDefinition extends Serializable { /** - * Returns the definition in the form of uri of {@link com.gooddata.md.Metric}. + * Returns the definition in the form of uri of {@link Metric}. * Default implementation throws {@link UnsupportedOperationException} * * @return uri of the measure @@ -41,7 +42,7 @@ default String getUri() { } /** - * Returns the qualifier, qualifying the {@link com.gooddata.md.Metric}. + * Returns the qualifier, qualifying the {@link Metric}. * * @return qualifier of measure * diff --git a/src/main/java/com/gooddata/executeafm/afm/MeasureItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/MeasureItem.java similarity index 96% rename from src/main/java/com/gooddata/executeafm/afm/MeasureItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/MeasureItem.java index f536dfa8f..8abbced43 100644 --- a/src/main/java/com/gooddata/executeafm/afm/MeasureItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/MeasureItem.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/src/main/java/com/gooddata/executeafm/afm/NativeTotalItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/NativeTotalItem.java similarity index 95% rename from src/main/java/com/gooddata/executeafm/afm/NativeTotalItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/NativeTotalItem.java index fd1883133..49d86e5b2 100644 --- a/src/main/java/com/gooddata/executeafm/afm/NativeTotalItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/NativeTotalItem.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/executeafm/afm/NegativeAttributeFilter.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/NegativeAttributeFilter.java similarity index 91% rename from src/main/java/com/gooddata/executeafm/afm/NegativeAttributeFilter.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/NegativeAttributeFilter.java index bcf5e0c80..65ac6cf88 100644 --- a/src/main/java/com/gooddata/executeafm/afm/NegativeAttributeFilter.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/NegativeAttributeFilter.java @@ -1,16 +1,16 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; -import com.gooddata.executeafm.ObjQualifier; -import com.gooddata.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.UriObjQualifier; import com.gooddata.util.GoodDataToStringBuilder; import java.util.List; @@ -26,7 +26,7 @@ public class NegativeAttributeFilter extends AttributeFilter { private static final long serialVersionUID = -6202625318104289333L; static final String NAME = "negativeAttributeFilter"; - + private final List notIn; /** diff --git a/src/main/java/com/gooddata/executeafm/afm/ObjIdentifierUtilities.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/ObjIdentifierUtilities.java similarity index 89% rename from src/main/java/com/gooddata/executeafm/afm/ObjIdentifierUtilities.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/ObjIdentifierUtilities.java index 7cb682998..a593b61dd 100644 --- a/src/main/java/com/gooddata/executeafm/afm/ObjIdentifierUtilities.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/ObjIdentifierUtilities.java @@ -1,11 +1,13 @@ /* - * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; -import com.gooddata.executeafm.IdentifierObjQualifier; -import com.gooddata.executeafm.ObjQualifier; -import com.gooddata.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.executeafm.IdentifierObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.UriObjQualifier; import java.util.function.Function; diff --git a/src/main/java/com/gooddata/executeafm/afm/ObjQualifierConverter.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/ObjQualifierConverter.java similarity index 63% rename from src/main/java/com/gooddata/executeafm/afm/ObjQualifierConverter.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/ObjQualifierConverter.java index 9227d78ab..884f27545 100644 --- a/src/main/java/com/gooddata/executeafm/afm/ObjQualifierConverter.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/ObjQualifierConverter.java @@ -1,10 +1,12 @@ /* - * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; -import com.gooddata.executeafm.IdentifierObjQualifier; -import com.gooddata.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.executeafm.IdentifierObjQualifier; +import com.gooddata.sdk.model.executeafm.UriObjQualifier; import java.util.Optional; diff --git a/src/main/java/com/gooddata/executeafm/afm/OverPeriodDateAttribute.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/OverPeriodDateAttribute.java similarity index 94% rename from src/main/java/com/gooddata/executeafm/afm/OverPeriodDateAttribute.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/OverPeriodDateAttribute.java index 6d2465754..4fd1e3ec5 100644 --- a/src/main/java/com/gooddata/executeafm/afm/OverPeriodDateAttribute.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/OverPeriodDateAttribute.java @@ -1,13 +1,13 @@ /* - * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import com.gooddata.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; import com.gooddata.util.GoodDataToStringBuilder; import java.io.Serializable; diff --git a/src/main/java/com/gooddata/executeafm/afm/OverPeriodMeasureDefinition.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/OverPeriodMeasureDefinition.java similarity index 94% rename from src/main/java/com/gooddata/executeafm/afm/OverPeriodMeasureDefinition.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/OverPeriodMeasureDefinition.java index b93b4ea27..a3eee0a6a 100644 --- a/src/main/java/com/gooddata/executeafm/afm/OverPeriodMeasureDefinition.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/OverPeriodMeasureDefinition.java @@ -1,15 +1,15 @@ /* - * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; -import com.gooddata.executeafm.ObjQualifier; -import com.gooddata.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.UriObjQualifier; import com.gooddata.util.GoodDataToStringBuilder; import java.util.Collection; @@ -17,7 +17,7 @@ import java.util.Objects; import java.util.stream.Collectors; -import static com.gooddata.executeafm.afm.OverPeriodMeasureDefinition.NAME; +import static com.gooddata.sdk.model.executeafm.afm.OverPeriodMeasureDefinition.NAME; import static com.gooddata.util.Validate.notEmpty; import static com.gooddata.util.Validate.notNull; diff --git a/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/PopMeasureDefinition.java similarity index 91% rename from src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/PopMeasureDefinition.java index a93708a02..e722b632b 100644 --- a/src/main/java/com/gooddata/executeafm/afm/PopMeasureDefinition.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/PopMeasureDefinition.java @@ -1,16 +1,17 @@ /* - * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; -import com.gooddata.executeafm.ObjQualifier; -import com.gooddata.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.md.Metric; import com.gooddata.util.GoodDataToStringBuilder; import java.util.Collection; @@ -18,7 +19,7 @@ import java.util.Objects; import java.util.Optional; -import static com.gooddata.executeafm.afm.PopMeasureDefinition.NAME; +import static com.gooddata.sdk.model.executeafm.afm.PopMeasureDefinition.NAME; /** * Definition of so called "period over period" measure. @@ -78,7 +79,7 @@ public ObjQualifier getPopAttribute() { } /** - * Returns the qualifier used by the {@link com.gooddata.md.Metric}. + * Returns the qualifier used by the {@link Metric}. * * @return qualifier used by the metric, which is its {@link #popAttribute}. The null is returned in case when {@link #popAttribute} was not set. * diff --git a/src/main/java/com/gooddata/executeafm/afm/PositiveAttributeFilter.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/PositiveAttributeFilter.java similarity index 90% rename from src/main/java/com/gooddata/executeafm/afm/PositiveAttributeFilter.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/PositiveAttributeFilter.java index e1023208d..b97e9d115 100644 --- a/src/main/java/com/gooddata/executeafm/afm/PositiveAttributeFilter.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/PositiveAttributeFilter.java @@ -1,15 +1,15 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; -import com.gooddata.executeafm.ObjQualifier; -import com.gooddata.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.UriObjQualifier; import com.gooddata.util.GoodDataToStringBuilder; import java.util.List; diff --git a/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodDateDataSet.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/PreviousPeriodDateDataSet.java similarity index 94% rename from src/main/java/com/gooddata/executeafm/afm/PreviousPeriodDateDataSet.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/PreviousPeriodDateDataSet.java index 34c5808f1..04bec1032 100644 --- a/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodDateDataSet.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/PreviousPeriodDateDataSet.java @@ -1,13 +1,13 @@ /* - * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import com.gooddata.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; import com.gooddata.util.GoodDataToStringBuilder; import java.io.Serializable; diff --git a/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinition.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/PreviousPeriodMeasureDefinition.java similarity index 94% rename from src/main/java/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinition.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/PreviousPeriodMeasureDefinition.java index ff214e405..f88fb5bc4 100644 --- a/src/main/java/com/gooddata/executeafm/afm/PreviousPeriodMeasureDefinition.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/PreviousPeriodMeasureDefinition.java @@ -1,15 +1,15 @@ /* - * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; -import com.gooddata.executeafm.ObjQualifier; -import com.gooddata.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.UriObjQualifier; import com.gooddata.util.GoodDataToStringBuilder; import java.util.Collection; @@ -17,7 +17,7 @@ import java.util.Objects; import java.util.stream.Collectors; -import static com.gooddata.executeafm.afm.PreviousPeriodMeasureDefinition.NAME; +import static com.gooddata.sdk.model.executeafm.afm.PreviousPeriodMeasureDefinition.NAME; import static com.gooddata.util.Validate.notEmpty; import static com.gooddata.util.Validate.notNull; diff --git a/src/main/java/com/gooddata/executeafm/afm/RelativeDateFilter.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/RelativeDateFilter.java similarity index 92% rename from src/main/java/com/gooddata/executeafm/afm/RelativeDateFilter.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/RelativeDateFilter.java index ec7496558..3af842401 100644 --- a/src/main/java/com/gooddata/executeafm/afm/RelativeDateFilter.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/RelativeDateFilter.java @@ -1,16 +1,16 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; -import com.gooddata.executeafm.ObjQualifier; -import com.gooddata.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.UriObjQualifier; import com.gooddata.util.GoodDataToStringBuilder; import java.util.Objects; diff --git a/src/main/java/com/gooddata/executeafm/afm/SimpleMeasureDefinition.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/SimpleMeasureDefinition.java similarity index 95% rename from src/main/java/com/gooddata/executeafm/afm/SimpleMeasureDefinition.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/SimpleMeasureDefinition.java index edccaabd5..16d1032d3 100644 --- a/src/main/java/com/gooddata/executeafm/afm/SimpleMeasureDefinition.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/afm/SimpleMeasureDefinition.java @@ -1,16 +1,17 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.afm; +package com.gooddata.sdk.model.executeafm.afm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; -import com.gooddata.executeafm.ObjQualifier; -import com.gooddata.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.md.Metric; import com.gooddata.util.GoodDataToStringBuilder; import java.util.ArrayList; @@ -20,7 +21,7 @@ import java.util.Objects; import java.util.Optional; -import static com.gooddata.executeafm.afm.SimpleMeasureDefinition.NAME; +import static com.gooddata.sdk.model.executeafm.afm.SimpleMeasureDefinition.NAME; import static com.gooddata.util.Validate.notNull; import static java.util.Arrays.asList; @@ -120,7 +121,7 @@ public String getUri() { } /** - * Returns the qualifier used by the {@link com.gooddata.md.Metric}. + * Returns the qualifier used by the {@link Metric}. * * @return qualifier used by the metric, which is its {@link #item}. The null is returned in case when {@link #item} was not set. * diff --git a/src/main/java/com/gooddata/executeafm/response/AttributeHeader.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/AttributeHeader.java similarity index 93% rename from src/main/java/com/gooddata/executeafm/response/AttributeHeader.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/AttributeHeader.java index 6e665134f..7a84a6d74 100644 --- a/src/main/java/com/gooddata/executeafm/response/AttributeHeader.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/AttributeHeader.java @@ -1,15 +1,16 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.response; +package com.gooddata.sdk.model.executeafm.response; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; -import com.gooddata.executeafm.afm.Afm; -import com.gooddata.executeafm.afm.LocallyIdentifiable; +import com.gooddata.sdk.model.executeafm.afm.Afm; +import com.gooddata.sdk.model.executeafm.afm.LocallyIdentifiable; +import com.gooddata.sdk.model.executeafm.afm.AttributeItem; import com.gooddata.util.GoodDataToStringBuilder; import java.util.List; @@ -120,7 +121,7 @@ public String getName() { } /** - * Local identifier referencing header's {@link com.gooddata.executeafm.afm.AttributeItem} + * Local identifier referencing header's {@link AttributeItem} * within {@link Afm} * @return attribute's local identifier */ diff --git a/src/main/java/com/gooddata/executeafm/response/AttributeInHeader.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/AttributeInHeader.java similarity index 95% rename from src/main/java/com/gooddata/executeafm/response/AttributeInHeader.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/AttributeInHeader.java index 49f800807..e1d454bb1 100644 --- a/src/main/java/com/gooddata/executeafm/response/AttributeInHeader.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/AttributeInHeader.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.response; +package com.gooddata.sdk.model.executeafm.response; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/src/main/java/com/gooddata/executeafm/response/ExecutionResponse.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/ExecutionResponse.java similarity index 90% rename from src/main/java/com/gooddata/executeafm/response/ExecutionResponse.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/ExecutionResponse.java index 3e2f8d7ac..047011a25 100644 --- a/src/main/java/com/gooddata/executeafm/response/ExecutionResponse.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/ExecutionResponse.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.response; +package com.gooddata.sdk.model.executeafm.response; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -11,6 +11,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; +import com.gooddata.sdk.model.executeafm.Execution; +import com.gooddata.sdk.model.executeafm.result.ExecutionResult; import com.gooddata.util.GoodDataToStringBuilder; import java.util.LinkedHashMap; @@ -23,8 +25,8 @@ import static org.apache.commons.lang3.ArrayUtils.toObject; /** - * Represents response on {@link com.gooddata.executeafm.Execution} request. - * Provides the dimensions with headers and the (polling) uri to {@link com.gooddata.executeafm.result.ExecutionResult} + * Represents response on {@link Execution} request. + * Provides the dimensions with headers and the (polling) uri to {@link ExecutionResult} * (so called dataResult). */ @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) diff --git a/src/main/java/com/gooddata/executeafm/response/Header.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/Header.java similarity index 79% rename from src/main/java/com/gooddata/executeafm/response/Header.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/Header.java index 6a518e6f1..cb6f82ea9 100644 --- a/src/main/java/com/gooddata/executeafm/response/Header.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/Header.java @@ -1,16 +1,13 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.response; +package com.gooddata.sdk.model.executeafm.response; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.gooddata.util.GoodDataToStringBuilder; - -import java.util.List; /** * {@link ResultDimension}'s header. diff --git a/src/main/java/com/gooddata/executeafm/response/MeasureGroupHeader.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/MeasureGroupHeader.java similarity index 90% rename from src/main/java/com/gooddata/executeafm/response/MeasureGroupHeader.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/MeasureGroupHeader.java index 7231c2372..ad72cb520 100644 --- a/src/main/java/com/gooddata/executeafm/response/MeasureGroupHeader.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/MeasureGroupHeader.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.response; +package com.gooddata.sdk.model.executeafm.response; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/executeafm/response/MeasureHeaderItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/MeasureHeaderItem.java similarity index 89% rename from src/main/java/com/gooddata/executeafm/response/MeasureHeaderItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/MeasureHeaderItem.java index 6fa020687..7582aa6d0 100644 --- a/src/main/java/com/gooddata/executeafm/response/MeasureHeaderItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/MeasureHeaderItem.java @@ -1,17 +1,18 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.response; +package com.gooddata.sdk.model.executeafm.response; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; -import com.gooddata.executeafm.afm.Afm; -import com.gooddata.executeafm.afm.LocallyIdentifiable; +import com.gooddata.sdk.model.executeafm.afm.Afm; +import com.gooddata.sdk.model.executeafm.afm.LocallyIdentifiable; +import com.gooddata.sdk.model.executeafm.afm.MeasureItem; import com.gooddata.util.GoodDataToStringBuilder; import static com.gooddata.util.Validate.notEmpty; @@ -65,7 +66,7 @@ public String getFormat() { } /** - * Local identifier, referencing the {@link com.gooddata.executeafm.afm.MeasureItem} + * Local identifier, referencing the {@link MeasureItem} * in {@link Afm} * @return local identifier */ diff --git a/src/main/java/com/gooddata/executeafm/response/ResultDimension.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/ResultDimension.java similarity index 83% rename from src/main/java/com/gooddata/executeafm/response/ResultDimension.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/ResultDimension.java index 0e803e8cb..5f7e4a3d4 100644 --- a/src/main/java/com/gooddata/executeafm/response/ResultDimension.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/ResultDimension.java @@ -1,13 +1,14 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.response; +package com.gooddata.sdk.model.executeafm.response; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; +import com.gooddata.sdk.model.executeafm.result.ExecutionResult; import com.gooddata.util.GoodDataToStringBuilder; import java.util.List; @@ -15,7 +16,7 @@ import static java.util.Arrays.asList; /** - * Describes single dimension of the {@link com.gooddata.executeafm.result.ExecutionResult}. + * Describes single dimension of the {@link ExecutionResult}. */ @JsonInclude(JsonInclude.Include.NON_NULL) public class ResultDimension { diff --git a/src/main/java/com/gooddata/executeafm/response/TotalHeaderItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/TotalHeaderItem.java similarity index 88% rename from src/main/java/com/gooddata/executeafm/response/TotalHeaderItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/TotalHeaderItem.java index 271f1fc99..c86bd1e49 100644 --- a/src/main/java/com/gooddata/executeafm/response/TotalHeaderItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/response/TotalHeaderItem.java @@ -1,15 +1,15 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.response; +package com.gooddata.sdk.model.executeafm.response; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; -import com.gooddata.md.report.Total; +import com.gooddata.sdk.model.md.report.Total; import com.gooddata.util.GoodDataToStringBuilder; import static com.gooddata.util.Validate.notNull; diff --git a/src/main/java/com/gooddata/executeafm/result/AttributeHeaderItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/AttributeHeaderItem.java similarity index 77% rename from src/main/java/com/gooddata/executeafm/result/AttributeHeaderItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/AttributeHeaderItem.java index 012ef3eee..b82cd8918 100644 --- a/src/main/java/com/gooddata/executeafm/result/AttributeHeaderItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/AttributeHeaderItem.java @@ -1,19 +1,16 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.result; +package com.gooddata.sdk.model.executeafm.result; import com.fasterxml.jackson.annotation.JsonCreator; -import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; -import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.fasterxml.jackson.annotation.JsonTypeName; import com.gooddata.util.GoodDataToStringBuilder; -import static com.gooddata.executeafm.result.AttributeHeaderItem.NAME; +import static com.gooddata.sdk.model.executeafm.result.AttributeHeaderItem.NAME; /** * Header item for attribute diff --git a/src/main/java/com/gooddata/executeafm/result/Data.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/Data.java similarity index 96% rename from src/main/java/com/gooddata/executeafm/result/Data.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/Data.java index edc8e821b..8adee2ab0 100644 --- a/src/main/java/com/gooddata/executeafm/result/Data.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/Data.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.result; +package com.gooddata.sdk.model.executeafm.result; import com.fasterxml.jackson.annotation.JsonValue; import com.fasterxml.jackson.core.JsonParser; diff --git a/src/main/java/com/gooddata/executeafm/result/DataList.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/DataList.java similarity index 91% rename from src/main/java/com/gooddata/executeafm/result/DataList.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/DataList.java index 762261ceb..f281ed546 100644 --- a/src/main/java/com/gooddata/executeafm/result/DataList.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/DataList.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.result; +package com.gooddata.sdk.model.executeafm.result; import com.gooddata.util.GoodDataToStringBuilder; @@ -44,7 +44,7 @@ public DataList(final List values) { } private static Data simpleValue(final String value) { - return value == null ? Data.NULL : new DataValue(value); + return value == null ? NULL : new DataValue(value); } @Override diff --git a/src/main/java/com/gooddata/executeafm/result/DataValue.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/DataValue.java similarity index 77% rename from src/main/java/com/gooddata/executeafm/result/DataValue.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/DataValue.java index 9093c8d43..fb8087fe2 100644 --- a/src/main/java/com/gooddata/executeafm/result/DataValue.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/DataValue.java @@ -1,20 +1,13 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.result; +package com.gooddata.sdk.model.executeafm.result; import com.fasterxml.jackson.annotation.JsonValue; -import com.fasterxml.jackson.core.JsonParser; -import com.fasterxml.jackson.databind.DeserializationContext; -import com.fasterxml.jackson.databind.JsonDeserializer; -import com.fasterxml.jackson.databind.JsonMappingException; -import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.gooddata.util.GoodDataToStringBuilder; -import java.io.IOException; - import static com.gooddata.util.Validate.notNull; /** diff --git a/src/main/java/com/gooddata/executeafm/result/ExecutionResult.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/ExecutionResult.java similarity index 96% rename from src/main/java/com/gooddata/executeafm/result/ExecutionResult.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/ExecutionResult.java index 243884d34..4b6bff7af 100644 --- a/src/main/java/com/gooddata/executeafm/result/ExecutionResult.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/ExecutionResult.java @@ -1,15 +1,16 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.result; +package com.gooddata.sdk.model.executeafm.result; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; +import com.gooddata.sdk.model.executeafm.Execution; import com.gooddata.util.GoodDataToStringBuilder; import java.util.ArrayList; @@ -18,7 +19,7 @@ import static com.gooddata.util.Validate.notNull; /** - * Data result of the {@link com.gooddata.executeafm.Execution}. + * Data result of the {@link Execution}. */ @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonTypeName("executionResult") diff --git a/src/main/java/com/gooddata/executeafm/result/Paging.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/Paging.java similarity index 95% rename from src/main/java/com/gooddata/executeafm/result/Paging.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/Paging.java index b73a2053b..ab6dbea52 100644 --- a/src/main/java/com/gooddata/executeafm/result/Paging.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/Paging.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.result; +package com.gooddata.sdk.model.executeafm.result; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/executeafm/result/ResultHeaderItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/ResultHeaderItem.java similarity index 91% rename from src/main/java/com/gooddata/executeafm/result/ResultHeaderItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/ResultHeaderItem.java index bd0e727fb..de7d98cc3 100644 --- a/src/main/java/com/gooddata/executeafm/result/ResultHeaderItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/ResultHeaderItem.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.result; +package com.gooddata.sdk.model.executeafm.result; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; diff --git a/src/main/java/com/gooddata/executeafm/result/ResultMeasureHeaderItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/ResultMeasureHeaderItem.java similarity index 83% rename from src/main/java/com/gooddata/executeafm/result/ResultMeasureHeaderItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/ResultMeasureHeaderItem.java index 4fd098f89..cbf241196 100644 --- a/src/main/java/com/gooddata/executeafm/result/ResultMeasureHeaderItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/ResultMeasureHeaderItem.java @@ -1,15 +1,15 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.result; +package com.gooddata.sdk.model.executeafm.result; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; -import static com.gooddata.executeafm.result.ResultMeasureHeaderItem.NAME; +import static com.gooddata.sdk.model.executeafm.result.ResultMeasureHeaderItem.NAME; /** * Header item for measure diff --git a/src/main/java/com/gooddata/executeafm/result/ResultTotalHeaderItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/ResultTotalHeaderItem.java similarity index 88% rename from src/main/java/com/gooddata/executeafm/result/ResultTotalHeaderItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/ResultTotalHeaderItem.java index 40eaa7ba4..82501c1c3 100644 --- a/src/main/java/com/gooddata/executeafm/result/ResultTotalHeaderItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/ResultTotalHeaderItem.java @@ -1,16 +1,16 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.result; +package com.gooddata.sdk.model.executeafm.result; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; -import com.gooddata.md.report.Total; +import com.gooddata.sdk.model.md.report.Total; -import static com.gooddata.executeafm.result.ResultTotalHeaderItem.NAME; +import static com.gooddata.sdk.model.executeafm.result.ResultTotalHeaderItem.NAME; import static com.gooddata.util.Validate.notEmpty; import static com.gooddata.util.Validate.notNull; diff --git a/src/main/java/com/gooddata/executeafm/result/Warning.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/Warning.java similarity index 96% rename from src/main/java/com/gooddata/executeafm/result/Warning.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/Warning.java index 845bc4eb4..1af221c0d 100644 --- a/src/main/java/com/gooddata/executeafm/result/Warning.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/result/Warning.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.result; +package com.gooddata.sdk.model.executeafm.result; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/executeafm/resultspec/AttributeLocatorItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/AttributeLocatorItem.java similarity index 92% rename from src/main/java/com/gooddata/executeafm/resultspec/AttributeLocatorItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/AttributeLocatorItem.java index 773204dd7..fd53efbdc 100644 --- a/src/main/java/com/gooddata/executeafm/resultspec/AttributeLocatorItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/AttributeLocatorItem.java @@ -1,10 +1,10 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.resultspec; +package com.gooddata.sdk.model.executeafm.resultspec; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/executeafm/resultspec/AttributeSortAggregation.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/AttributeSortAggregation.java similarity index 82% rename from src/main/java/com/gooddata/executeafm/resultspec/AttributeSortAggregation.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/AttributeSortAggregation.java index e239c43ec..58f7a252a 100644 --- a/src/main/java/com/gooddata/executeafm/resultspec/AttributeSortAggregation.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/AttributeSortAggregation.java @@ -1,10 +1,10 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.resultspec; +package com.gooddata.sdk.model.executeafm.resultspec; import com.fasterxml.jackson.annotation.JsonValue; diff --git a/src/main/java/com/gooddata/executeafm/resultspec/AttributeSortItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/AttributeSortItem.java similarity index 96% rename from src/main/java/com/gooddata/executeafm/resultspec/AttributeSortItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/AttributeSortItem.java index efd78ce32..2e91d52cd 100644 --- a/src/main/java/com/gooddata/executeafm/resultspec/AttributeSortItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/AttributeSortItem.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.resultspec; +package com.gooddata.sdk.model.executeafm.resultspec; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/src/main/java/com/gooddata/executeafm/resultspec/Dimension.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/Dimension.java similarity index 94% rename from src/main/java/com/gooddata/executeafm/resultspec/Dimension.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/Dimension.java index 5cba7e09d..f9fef6538 100644 --- a/src/main/java/com/gooddata/executeafm/resultspec/Dimension.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/Dimension.java @@ -1,14 +1,14 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.resultspec; +package com.gooddata.sdk.model.executeafm.resultspec; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; -import com.gooddata.executeafm.afm.Afm; +import com.gooddata.sdk.model.executeafm.afm.Afm; import com.gooddata.util.GoodDataToStringBuilder; import java.util.Collections; diff --git a/src/main/java/com/gooddata/executeafm/resultspec/Direction.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/Direction.java similarity index 74% rename from src/main/java/com/gooddata/executeafm/resultspec/Direction.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/Direction.java index 6667e0364..f95b6e463 100644 --- a/src/main/java/com/gooddata/executeafm/resultspec/Direction.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/Direction.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.resultspec; +package com.gooddata.sdk.model.executeafm.resultspec; import com.fasterxml.jackson.annotation.JsonValue; diff --git a/src/main/java/com/gooddata/executeafm/resultspec/LocatorItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/LocatorItem.java similarity index 87% rename from src/main/java/com/gooddata/executeafm/resultspec/LocatorItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/LocatorItem.java index 3e20e279a..0a10b0eec 100644 --- a/src/main/java/com/gooddata/executeafm/resultspec/LocatorItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/LocatorItem.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.resultspec; +package com.gooddata.sdk.model.executeafm.resultspec; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; diff --git a/src/main/java/com/gooddata/executeafm/resultspec/MeasureLocatorItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/MeasureLocatorItem.java similarity index 90% rename from src/main/java/com/gooddata/executeafm/resultspec/MeasureLocatorItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/MeasureLocatorItem.java index d912c287c..c767499c9 100644 --- a/src/main/java/com/gooddata/executeafm/resultspec/MeasureLocatorItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/MeasureLocatorItem.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.resultspec; +package com.gooddata.sdk.model.executeafm.resultspec; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/executeafm/resultspec/MeasureSortItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/MeasureSortItem.java similarity index 93% rename from src/main/java/com/gooddata/executeafm/resultspec/MeasureSortItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/MeasureSortItem.java index 07c3fea35..3fd10675a 100644 --- a/src/main/java/com/gooddata/executeafm/resultspec/MeasureSortItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/MeasureSortItem.java @@ -1,10 +1,10 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.resultspec; +package com.gooddata.sdk.model.executeafm.resultspec; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/executeafm/resultspec/ResultSpec.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/ResultSpec.java similarity index 91% rename from src/main/java/com/gooddata/executeafm/resultspec/ResultSpec.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/ResultSpec.java index bd8e73436..dca3946f2 100644 --- a/src/main/java/com/gooddata/executeafm/resultspec/ResultSpec.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/ResultSpec.java @@ -1,14 +1,14 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.resultspec; +package com.gooddata.sdk.model.executeafm.resultspec; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; -import com.gooddata.executeafm.afm.Afm; +import com.gooddata.sdk.model.executeafm.afm.Afm; import com.gooddata.util.GoodDataToStringBuilder; import java.util.ArrayList; diff --git a/src/main/java/com/gooddata/executeafm/resultspec/SortItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/SortItem.java similarity index 84% rename from src/main/java/com/gooddata/executeafm/resultspec/SortItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/SortItem.java index 3111af99f..bac702583 100644 --- a/src/main/java/com/gooddata/executeafm/resultspec/SortItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/SortItem.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.resultspec; +package com.gooddata.sdk.model.executeafm.resultspec; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; diff --git a/src/main/java/com/gooddata/executeafm/resultspec/TotalItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/TotalItem.java similarity index 89% rename from src/main/java/com/gooddata/executeafm/resultspec/TotalItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/TotalItem.java index 2efcde570..158dc6b7c 100644 --- a/src/main/java/com/gooddata/executeafm/resultspec/TotalItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/TotalItem.java @@ -1,11 +1,13 @@ /* - * Copyright (C) 2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. + * This source code is licensed under the BSD-style license found in the + * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.resultspec; +package com.gooddata.sdk.model.executeafm.resultspec; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import com.gooddata.md.report.Total; +import com.gooddata.sdk.model.md.report.Total; import com.gooddata.util.GoodDataToStringBuilder; import java.util.Objects; diff --git a/src/main/java/com/gooddata/executeafm/resultspec/TotalLocatorItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/TotalLocatorItem.java similarity index 90% rename from src/main/java/com/gooddata/executeafm/resultspec/TotalLocatorItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/TotalLocatorItem.java index cda7ea269..005338567 100644 --- a/src/main/java/com/gooddata/executeafm/resultspec/TotalLocatorItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/executeafm/resultspec/TotalLocatorItem.java @@ -1,10 +1,10 @@ /* - * Copyright (C) 2004-2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.executeafm.resultspec; +package com.gooddata.sdk.model.executeafm.resultspec; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/export/ClientExport.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/export/ClientExport.java similarity index 83% rename from src/main/java/com/gooddata/export/ClientExport.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/export/ClientExport.java index 975716d7b..e87ffc673 100644 --- a/src/main/java/com/gooddata/export/ClientExport.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/export/ClientExport.java @@ -1,14 +1,13 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.export; +package com.gooddata.sdk.model.export; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; -import com.gooddata.GoodDataEndpoint; import com.gooddata.util.GoodDataToStringBuilder; import org.springframework.web.util.UriTemplate; @@ -18,7 +17,7 @@ @JsonTypeName("clientExport") @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonInclude(JsonInclude.Include.NON_NULL) -class ClientExport { +public class ClientExport { private static final String DASHBOARD_EXPORT_URI = "/dashboard.html#project={projectUri}&dashboard={dashboardUri}&tab={tabId}&export=1"; private static final UriTemplate DASHBOARD_EXPORT_TEMPLATE = new UriTemplate(DASHBOARD_EXPORT_URI); @@ -31,8 +30,9 @@ class ClientExport { this.name = notEmpty(name, "name"); } - ClientExport(final GoodDataEndpoint endpoint, final String projectUri, final String dashboardUri, final String tabId) { - this(notNull(endpoint, "endpoint").toUri() + + public ClientExport(final String goodDataEndpointUri, final String projectUri, final String dashboardUri, + final String tabId) { + this(notEmpty(goodDataEndpointUri, "goodDataEndpointUri") + DASHBOARD_EXPORT_TEMPLATE .expand( notNull(projectUri, "projectUri"), diff --git a/src/main/java/com/gooddata/export/ExecuteReport.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/export/ExecuteReport.java similarity index 86% rename from src/main/java/com/gooddata/export/ExecuteReport.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/export/ExecuteReport.java index f756a2acc..dde861161 100644 --- a/src/main/java/com/gooddata/export/ExecuteReport.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/export/ExecuteReport.java @@ -1,13 +1,13 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.export; +package com.gooddata.sdk.model.export; import com.fasterxml.jackson.annotation.JsonProperty; -import com.gooddata.md.report.Report; +import com.gooddata.sdk.model.md.report.Report; import com.gooddata.util.GoodDataToStringBuilder; import static com.gooddata.util.Validate.notNull; diff --git a/src/main/java/com/gooddata/export/ExecuteReportDefinition.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/export/ExecuteReportDefinition.java similarity index 88% rename from src/main/java/com/gooddata/export/ExecuteReportDefinition.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/export/ExecuteReportDefinition.java index fe3ea0c8e..275d4fb88 100644 --- a/src/main/java/com/gooddata/export/ExecuteReportDefinition.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/export/ExecuteReportDefinition.java @@ -1,13 +1,13 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.export; +package com.gooddata.sdk.model.export; import com.fasterxml.jackson.annotation.JsonProperty; -import com.gooddata.md.report.ReportDefinition; +import com.gooddata.sdk.model.md.report.ReportDefinition; import com.gooddata.util.GoodDataToStringBuilder; import static com.gooddata.util.Validate.notNull; diff --git a/src/main/java/com/gooddata/export/ExportFormat.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/export/ExportFormat.java similarity index 84% rename from src/main/java/com/gooddata/export/ExportFormat.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/export/ExportFormat.java index 6a01c1d0f..815dd02bf 100644 --- a/src/main/java/com/gooddata/export/ExportFormat.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/export/ExportFormat.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.export; +package com.gooddata.sdk.model.export; import java.util.stream.Stream; diff --git a/src/main/java/com/gooddata/export/ReportRequest.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/export/ReportRequest.java similarity index 87% rename from src/main/java/com/gooddata/export/ReportRequest.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/export/ReportRequest.java index 290495c06..7f067c3b2 100644 --- a/src/main/java/com/gooddata/export/ReportRequest.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/export/ReportRequest.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.export; +package com.gooddata.sdk.model.export; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/src/main/java/com/gooddata/featureflag/FeatureFlag.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/featureflag/FeatureFlag.java similarity index 93% rename from src/main/java/com/gooddata/featureflag/FeatureFlag.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/featureflag/FeatureFlag.java index 570f61baa..70da4530c 100644 --- a/src/main/java/com/gooddata/featureflag/FeatureFlag.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/featureflag/FeatureFlag.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.featureflag; +package com.gooddata.sdk.model.featureflag; import static com.gooddata.util.Validate.notNull; diff --git a/src/main/java/com/gooddata/featureflag/FeatureFlags.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/featureflag/FeatureFlags.java similarity index 97% rename from src/main/java/com/gooddata/featureflag/FeatureFlags.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/featureflag/FeatureFlags.java index a32ad001b..36b84e72c 100644 --- a/src/main/java/com/gooddata/featureflag/FeatureFlags.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/featureflag/FeatureFlags.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.featureflag; +package com.gooddata.sdk.model.featureflag; import com.fasterxml.jackson.annotation.JsonAnyGetter; import com.fasterxml.jackson.annotation.JsonAnySetter; diff --git a/src/main/java/com/gooddata/featureflag/ProjectFeatureFlag.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/featureflag/ProjectFeatureFlag.java similarity index 97% rename from src/main/java/com/gooddata/featureflag/ProjectFeatureFlag.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/featureflag/ProjectFeatureFlag.java index 05a5349c7..1caa12b07 100644 --- a/src/main/java/com/gooddata/featureflag/ProjectFeatureFlag.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/featureflag/ProjectFeatureFlag.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.featureflag; +package com.gooddata.sdk.model.featureflag; import com.fasterxml.jackson.annotation.*; import com.gooddata.util.GoodDataToStringBuilder; diff --git a/src/main/java/com/gooddata/featureflag/ProjectFeatureFlags.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/featureflag/ProjectFeatureFlags.java similarity index 92% rename from src/main/java/com/gooddata/featureflag/ProjectFeatureFlags.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/featureflag/ProjectFeatureFlags.java index 5b895a497..637acd430 100644 --- a/src/main/java/com/gooddata/featureflag/ProjectFeatureFlags.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/featureflag/ProjectFeatureFlags.java @@ -1,12 +1,12 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.featureflag; +package com.gooddata.sdk.model.featureflag; import com.fasterxml.jackson.annotation.*; -import com.gooddata.project.Project; +import com.gooddata.sdk.model.project.Project; import com.gooddata.util.GoodDataToStringBuilder; import org.springframework.web.util.UriTemplate; diff --git a/src/main/java/com/gooddata/gdc/AboutLinks.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/AboutLinks.java similarity index 96% rename from src/main/java/com/gooddata/gdc/AboutLinks.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/AboutLinks.java index ad9fbbbb8..fec50ff18 100644 --- a/src/main/java/com/gooddata/gdc/AboutLinks.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/AboutLinks.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.gdc; +package com.gooddata.sdk.model.gdc; import com.fasterxml.jackson.annotation.*; import com.gooddata.util.GoodDataToStringBuilder; diff --git a/src/main/java/com/gooddata/gdc/AbstractMaql.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/AbstractMaql.java similarity index 91% rename from src/main/java/com/gooddata/gdc/AbstractMaql.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/AbstractMaql.java index a6ff218df..36ec32e71 100644 --- a/src/main/java/com/gooddata/gdc/AbstractMaql.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/AbstractMaql.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.gdc; +package com.gooddata.sdk.model.gdc; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/src/main/java/com/gooddata/gdc/AsyncTask.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/AsyncTask.java similarity index 93% rename from src/main/java/com/gooddata/gdc/AsyncTask.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/AsyncTask.java index bea429891..60388ee5d 100644 --- a/src/main/java/com/gooddata/gdc/AsyncTask.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/AsyncTask.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.gdc; +package com.gooddata.sdk.model.gdc; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/src/main/java/com/gooddata/gdc/Gdc.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/Gdc.java similarity index 83% rename from src/main/java/com/gooddata/gdc/Gdc.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/Gdc.java index d4aa4db54..16aeb7f0a 100644 --- a/src/main/java/com/gooddata/gdc/Gdc.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/Gdc.java @@ -1,13 +1,12 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.gdc; +package com.gooddata.sdk.model.gdc; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import com.gooddata.gdc.AboutLinks.Link; import java.util.List; diff --git a/src/main/java/com/gooddata/gdc/LinkEntries.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/LinkEntries.java similarity index 94% rename from src/main/java/com/gooddata/gdc/LinkEntries.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/LinkEntries.java index 3c36f3cb2..9b96fb37f 100644 --- a/src/main/java/com/gooddata/gdc/LinkEntries.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/LinkEntries.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.gdc; +package com.gooddata.sdk.model.gdc; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/gdc/RootLinks.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/RootLinks.java similarity index 99% rename from src/main/java/com/gooddata/gdc/RootLinks.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/RootLinks.java index 2347ac585..caeb5851f 100644 --- a/src/main/java/com/gooddata/gdc/RootLinks.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/RootLinks.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.gdc; +package com.gooddata.sdk.model.gdc; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/src/main/java/com/gooddata/gdc/TaskStatus.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/TaskStatus.java similarity index 93% rename from src/main/java/com/gooddata/gdc/TaskStatus.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/TaskStatus.java index 652a58bc3..2d9be6dde 100644 --- a/src/main/java/com/gooddata/gdc/TaskStatus.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/TaskStatus.java @@ -1,15 +1,16 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.gdc; +package com.gooddata.sdk.model.gdc; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; +import com.gooddata.gdc.GdcError; import com.gooddata.util.GoodDataToStringBuilder; import java.util.Collection; diff --git a/src/main/java/com/gooddata/gdc/UriResponse.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/UriResponse.java similarity index 91% rename from src/main/java/com/gooddata/gdc/UriResponse.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/UriResponse.java index f7b36611a..3cfa0fb3b 100644 --- a/src/main/java/com/gooddata/gdc/UriResponse.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/gdc/UriResponse.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.gdc; +package com.gooddata.sdk.model.gdc; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/lcm/LcmEntities.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/lcm/LcmEntities.java similarity index 95% rename from src/main/java/com/gooddata/lcm/LcmEntities.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/lcm/LcmEntities.java index 8e1e7bff3..b00ac17c5 100644 --- a/src/main/java/com/gooddata/lcm/LcmEntities.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/lcm/LcmEntities.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.lcm; +package com.gooddata.sdk.model.lcm; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/src/main/java/com/gooddata/lcm/LcmEntity.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/lcm/LcmEntity.java similarity index 90% rename from src/main/java/com/gooddata/lcm/LcmEntity.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/lcm/LcmEntity.java index 5d753a9d7..8c421a802 100644 --- a/src/main/java/com/gooddata/lcm/LcmEntity.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/lcm/LcmEntity.java @@ -1,30 +1,31 @@ /* - * Copyright (C) 2007-2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.lcm; +package com.gooddata.sdk.model.lcm; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; +import com.gooddata.sdk.model.project.Project; import com.gooddata.util.GoodDataToStringBuilder; import java.util.Map; import java.util.Objects; -import static com.gooddata.lcm.LcmEntity.LinkCategory.CLIENT; -import static com.gooddata.lcm.LcmEntity.LinkCategory.DATA_PRODUCT; -import static com.gooddata.lcm.LcmEntity.LinkCategory.PROJECT; -import static com.gooddata.lcm.LcmEntity.LinkCategory.SEGMENT; +import static com.gooddata.sdk.model.lcm.LcmEntity.LinkCategory.CLIENT; +import static com.gooddata.sdk.model.lcm.LcmEntity.LinkCategory.DATA_PRODUCT; +import static com.gooddata.sdk.model.lcm.LcmEntity.LinkCategory.PROJECT; +import static com.gooddata.sdk.model.lcm.LcmEntity.LinkCategory.SEGMENT; import static com.gooddata.util.Validate.notEmpty; import static com.gooddata.util.Validate.notNull; import static com.gooddata.util.Validate.notNullState; /** - * Single Life Cycle Management entity representing the relation between {@link com.gooddata.project.Project}, + * Single Life Cycle Management entity representing the relation between {@link Project}, * Client, Segment and DataProduct. */ @JsonIgnoreProperties(ignoreUnknown = true) diff --git a/src/main/java/com/gooddata/md/AbstractObj.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/AbstractObj.java similarity index 97% rename from src/main/java/com/gooddata/md/AbstractObj.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/AbstractObj.java index 153b939be..2d01b1b79 100644 --- a/src/main/java/com/gooddata/md/AbstractObj.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/AbstractObj.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/md/Attachment.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Attachment.java similarity index 94% rename from src/main/java/com/gooddata/md/Attachment.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Attachment.java index 60f9b0994..79ed1a969 100644 --- a/src/main/java/com/gooddata/md/Attachment.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Attachment.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/md/Attribute.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Attribute.java similarity index 92% rename from src/main/java/com/gooddata/md/Attribute.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Attribute.java index 9cfc72f09..dd62e4ab0 100644 --- a/src/main/java/com/gooddata/md/Attribute.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Attribute.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import static java.util.Arrays.asList; diff --git a/src/main/java/com/gooddata/md/AttributeDisplayForm.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/AttributeDisplayForm.java similarity index 96% rename from src/main/java/com/gooddata/md/AttributeDisplayForm.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/AttributeDisplayForm.java index a199c5c7e..afbad060f 100644 --- a/src/main/java/com/gooddata/md/AttributeDisplayForm.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/AttributeDisplayForm.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.*; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; diff --git a/src/main/java/com/gooddata/md/AttributeElement.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/AttributeElement.java similarity index 94% rename from src/main/java/com/gooddata/md/AttributeElement.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/AttributeElement.java index 038a0799a..b0d840824 100644 --- a/src/main/java/com/gooddata/md/AttributeElement.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/AttributeElement.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/md/AttributeElements.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/AttributeElements.java similarity index 93% rename from src/main/java/com/gooddata/md/AttributeElements.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/AttributeElements.java index a4b0848f3..e27ca1689 100644 --- a/src/main/java/com/gooddata/md/AttributeElements.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/AttributeElements.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -25,7 +25,7 @@ @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) -class AttributeElements { +public class AttributeElements { static final String URI = Obj.OBJ_URI + "/elements"; static final UriTemplate TEMPLATE = new UriTemplate(URI); diff --git a/src/main/java/com/gooddata/md/AttributeSort.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/AttributeSort.java similarity index 96% rename from src/main/java/com/gooddata/md/AttributeSort.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/AttributeSort.java index 380485684..4aeab2986 100644 --- a/src/main/java/com/gooddata/md/AttributeSort.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/AttributeSort.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import static com.gooddata.util.Validate.notEmpty; import static com.gooddata.util.Validate.notNull; diff --git a/src/main/java/com/gooddata/md/BulkGet.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/BulkGet.java similarity index 90% rename from src/main/java/com/gooddata/md/BulkGet.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/BulkGet.java index 9d0b4574c..815ea1675 100644 --- a/src/main/java/com/gooddata/md/BulkGet.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/BulkGet.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -22,7 +22,7 @@ @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) -class BulkGet { +public class BulkGet { public static final String URI = "/gdc/md/{projectId}/objects/get"; diff --git a/src/main/java/com/gooddata/md/BulkGetUris.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/BulkGetUris.java similarity index 88% rename from src/main/java/com/gooddata/md/BulkGetUris.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/BulkGetUris.java index ccede5202..cb19c7410 100644 --- a/src/main/java/com/gooddata/md/BulkGetUris.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/BulkGetUris.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; @@ -20,11 +20,11 @@ */ @JsonTypeName("get") @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) -class BulkGetUris { +public class BulkGetUris { private final Collection items; - BulkGetUris(Collection items) { + public BulkGetUris(Collection items) { notNull(items, "items"); this.items = items; } diff --git a/src/main/java/com/gooddata/md/Column.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Column.java similarity index 97% rename from src/main/java/com/gooddata/md/Column.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Column.java index 604b9499e..979a4ca52 100644 --- a/src/main/java/com/gooddata/md/Column.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Column.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/md/DashboardAttachment.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/DashboardAttachment.java similarity index 96% rename from src/main/java/com/gooddata/md/DashboardAttachment.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/DashboardAttachment.java index 24e7a36a4..691c9946c 100644 --- a/src/main/java/com/gooddata/md/DashboardAttachment.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/DashboardAttachment.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/md/DataLoadingColumn.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/DataLoadingColumn.java similarity index 97% rename from src/main/java/com/gooddata/md/DataLoadingColumn.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/DataLoadingColumn.java index c98d092ea..611b6234f 100644 --- a/src/main/java/com/gooddata/md/DataLoadingColumn.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/DataLoadingColumn.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; -import com.gooddata.gdc.UriResponse; +import com.gooddata.sdk.model.gdc.UriResponse; import com.gooddata.util.BooleanDeserializer; import com.gooddata.util.GoodDataToStringBuilder; diff --git a/src/main/java/com/gooddata/md/Dataset.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Dataset.java similarity index 98% rename from src/main/java/com/gooddata/md/Dataset.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Dataset.java index 29a7bc14a..14e1baf86 100644 --- a/src/main/java/com/gooddata/md/Dataset.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Dataset.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import static com.gooddata.util.Validate.notNullState; diff --git a/src/main/java/com/gooddata/md/Dimension.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Dimension.java similarity index 95% rename from src/main/java/com/gooddata/md/Dimension.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Dimension.java index 43d161031..09540e891 100644 --- a/src/main/java/com/gooddata/md/Dimension.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Dimension.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/src/main/java/com/gooddata/md/DisplayForm.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/DisplayForm.java similarity index 97% rename from src/main/java/com/gooddata/md/DisplayForm.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/DisplayForm.java index a4676467c..5cb0dc2c0 100644 --- a/src/main/java/com/gooddata/md/DisplayForm.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/DisplayForm.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/src/main/java/com/gooddata/md/Entry.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Entry.java similarity index 96% rename from src/main/java/com/gooddata/md/Entry.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Entry.java index 7a3c6bb51..003e3b3e5 100644 --- a/src/main/java/com/gooddata/md/Entry.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Entry.java @@ -1,11 +1,13 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.*; +import com.gooddata.sdk.model.util.TagsDeserializer; +import com.gooddata.sdk.model.util.TagsSerializer; import com.gooddata.util.*; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; diff --git a/src/main/java/com/gooddata/md/Expression.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Expression.java similarity index 92% rename from src/main/java/com/gooddata/md/Expression.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Expression.java index 9f2e13ae7..2e2337ed5 100644 --- a/src/main/java/com/gooddata/md/Expression.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Expression.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/md/Fact.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Fact.java similarity index 96% rename from src/main/java/com/gooddata/md/Fact.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Fact.java index 737509f56..a64c843fb 100644 --- a/src/main/java/com/gooddata/md/Fact.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Fact.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/src/main/java/com/gooddata/md/IdentifierAndUri.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/IdentifierAndUri.java similarity index 89% rename from src/main/java/com/gooddata/md/IdentifierAndUri.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/IdentifierAndUri.java index 824b49e7d..2a905f9e6 100644 --- a/src/main/java/com/gooddata/md/IdentifierAndUri.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/IdentifierAndUri.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/md/IdentifierToUri.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/IdentifierToUri.java similarity index 86% rename from src/main/java/com/gooddata/md/IdentifierToUri.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/IdentifierToUri.java index ad3151c2b..39c86600e 100644 --- a/src/main/java/com/gooddata/md/IdentifierToUri.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/IdentifierToUri.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonProperty; import com.gooddata.util.GoodDataToStringBuilder; @@ -16,11 +16,11 @@ * Structure with list of symbolic names (identifiers) to be expanded to list of URIs. * Serialization only. */ -class IdentifierToUri { +public class IdentifierToUri { private final Collection identifiers; - IdentifierToUri(final Collection identifiers) { + public IdentifierToUri(final Collection identifiers) { notNull(identifiers, "identifiers"); this.identifiers = identifiers; } diff --git a/src/main/java/com/gooddata/md/IdentifiersAndUris.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/IdentifiersAndUris.java similarity index 91% rename from src/main/java/com/gooddata/md/IdentifiersAndUris.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/IdentifiersAndUris.java index d941d9fb5..8f2ff9dda 100644 --- a/src/main/java/com/gooddata/md/IdentifiersAndUris.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/IdentifiersAndUris.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; @@ -16,7 +16,7 @@ * Encapsulates list of identifiers and their URIs. * Deserialization only. */ -class IdentifiersAndUris { +public class IdentifiersAndUris { public static final String URI = "/gdc/md/{projectId}/identifiers"; diff --git a/src/main/java/com/gooddata/md/InUseMany.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/InUseMany.java similarity index 96% rename from src/main/java/com/gooddata/md/InUseMany.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/InUseMany.java index 6d4bac964..8138f80ec 100644 --- a/src/main/java/com/gooddata/md/InUseMany.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/InUseMany.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonInclude; import com.gooddata.util.BooleanDeserializer; @@ -33,7 +33,7 @@ @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) -class InUseMany { +public class InUseMany { public static final String USEDBY_URI = "/gdc/md/{projectId}/usedby2"; diff --git a/src/main/java/com/gooddata/md/Key.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Key.java similarity index 92% rename from src/main/java/com/gooddata/md/Key.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Key.java index 36c897703..4cb480e0a 100644 --- a/src/main/java/com/gooddata/md/Key.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Key.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/md/MaqlAst.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/MaqlAst.java similarity index 95% rename from src/main/java/com/gooddata/md/MaqlAst.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/MaqlAst.java index fd950630f..f0168adad 100644 --- a/src/main/java/com/gooddata/md/MaqlAst.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/MaqlAst.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/src/main/java/com/gooddata/md/Meta.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Meta.java similarity index 98% rename from src/main/java/com/gooddata/md/Meta.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Meta.java index 9633059bc..388f4332e 100644 --- a/src/main/java/com/gooddata/md/Meta.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Meta.java @@ -1,14 +1,16 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; +import com.gooddata.sdk.model.util.TagsDeserializer; +import com.gooddata.sdk.model.util.TagsSerializer; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.databind.annotation.JsonDeserialize; import com.fasterxml.jackson.databind.annotation.JsonSerialize; @@ -18,8 +20,6 @@ import com.gooddata.util.GDDateTimeDeserializer; import com.gooddata.util.GDDateTimeSerializer; import com.gooddata.util.GoodDataToStringBuilder; -import com.gooddata.util.TagsDeserializer; -import com.gooddata.util.TagsSerializer; import org.joda.time.DateTime; import java.io.Serializable; diff --git a/src/main/java/com/gooddata/md/Metric.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Metric.java similarity index 97% rename from src/main/java/com/gooddata/md/Metric.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Metric.java index 853c660bb..6d83bca8a 100644 --- a/src/main/java/com/gooddata/md/Metric.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Metric.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; diff --git a/src/main/java/com/gooddata/md/NestedAttribute.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/NestedAttribute.java similarity index 98% rename from src/main/java/com/gooddata/md/NestedAttribute.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/NestedAttribute.java index 05719f6b2..0e62267c0 100644 --- a/src/main/java/com/gooddata/md/NestedAttribute.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/NestedAttribute.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.*; import com.gooddata.util.GoodDataToStringBuilder; diff --git a/src/main/java/com/gooddata/md/Obj.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Obj.java similarity index 82% rename from src/main/java/com/gooddata/md/Obj.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Obj.java index 62f036f99..dcada8a04 100644 --- a/src/main/java/com/gooddata/md/Obj.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Obj.java @@ -1,16 +1,16 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; -import com.gooddata.md.report.Report; -import com.gooddata.md.report.ReportDefinition; -import com.gooddata.md.visualization.VisualizationClass; -import com.gooddata.md.visualization.VisualizationObject; +import com.gooddata.sdk.model.md.report.Report; +import com.gooddata.sdk.model.md.report.ReportDefinition; +import com.gooddata.sdk.model.md.visualization.VisualizationClass; +import com.gooddata.sdk.model.md.visualization.VisualizationObject; import org.springframework.web.util.UriTemplate; /** diff --git a/src/main/java/com/gooddata/md/ProjectDashboard.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/ProjectDashboard.java similarity index 97% rename from src/main/java/com/gooddata/md/ProjectDashboard.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/ProjectDashboard.java index dcd3521d9..bae7b11e7 100644 --- a/src/main/java/com/gooddata/md/ProjectDashboard.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/ProjectDashboard.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import static com.gooddata.util.Validate.notNull; import static java.util.Arrays.asList; diff --git a/src/main/java/com/gooddata/md/Query.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Query.java similarity index 96% rename from src/main/java/com/gooddata/md/Query.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Query.java index 5fa715c09..fe6d6677e 100644 --- a/src/main/java/com/gooddata/md/Query.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Query.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/md/Queryable.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Queryable.java similarity index 76% rename from src/main/java/com/gooddata/md/Queryable.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Queryable.java index 058e7f7ab..6e7ed8434 100644 --- a/src/main/java/com/gooddata/md/Queryable.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Queryable.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; /** * Marker interface for metadata objects which can be found using query resource (see MetadataService.find* methods). diff --git a/src/main/java/com/gooddata/md/ReportAttachment.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/ReportAttachment.java similarity index 96% rename from src/main/java/com/gooddata/md/ReportAttachment.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/ReportAttachment.java index 79c398a4d..d90707d9d 100644 --- a/src/main/java/com/gooddata/md/ReportAttachment.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/ReportAttachment.java @@ -1,13 +1,13 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; -import com.gooddata.export.ExportFormat; +import com.gooddata.sdk.model.export.ExportFormat; import com.gooddata.util.GoodDataToStringBuilder; import java.util.Arrays; diff --git a/src/main/java/com/gooddata/md/Restriction.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Restriction.java similarity index 93% rename from src/main/java/com/gooddata/md/Restriction.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Restriction.java index aedf780a2..f72887841 100644 --- a/src/main/java/com/gooddata/md/Restriction.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Restriction.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.gooddata.util.GoodDataToStringBuilder; @@ -64,7 +64,7 @@ public String toString() { return GoodDataToStringBuilder.defaultToString(this); } - enum Type { + public enum Type { IDENTIFIER, TITLE, SUMMARY } } diff --git a/src/main/java/com/gooddata/md/ScheduledMail.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/ScheduledMail.java similarity index 97% rename from src/main/java/com/gooddata/md/ScheduledMail.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/ScheduledMail.java index f5c712c63..ce826d153 100644 --- a/src/main/java/com/gooddata/md/ScheduledMail.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/ScheduledMail.java @@ -1,14 +1,14 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.*; -import com.gooddata.export.ExportFormat; -import com.gooddata.md.report.ReportDefinition; -import com.gooddata.report.ReportExportFormat; +import com.gooddata.sdk.model.export.ExportFormat; +import com.gooddata.sdk.model.md.report.ReportDefinition; +import com.gooddata.sdk.model.report.ReportExportFormat; import com.gooddata.util.GoodDataToStringBuilder; import org.joda.time.LocalDate; diff --git a/src/main/java/com/gooddata/md/ScheduledMailWhen.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/ScheduledMailWhen.java similarity index 95% rename from src/main/java/com/gooddata/md/ScheduledMailWhen.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/ScheduledMailWhen.java index 801303e3c..74d1f5653 100644 --- a/src/main/java/com/gooddata/md/ScheduledMailWhen.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/ScheduledMailWhen.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonInclude; import com.gooddata.util.GDDateDeserializer; @@ -18,7 +18,7 @@ import java.io.Serializable; /** - * Represents the start date and cron-like expression for {@link com.gooddata.md.ScheduledMail} mail schedule. + * Represents the start date and cron-like expression for {@link ScheduledMail} mail schedule. */ public class ScheduledMailWhen implements Serializable { diff --git a/src/main/java/com/gooddata/md/Table.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Table.java similarity index 96% rename from src/main/java/com/gooddata/md/Table.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Table.java index cf0811e69..fafbc766f 100644 --- a/src/main/java/com/gooddata/md/Table.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Table.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/md/TableDataLoad.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/TableDataLoad.java similarity index 96% rename from src/main/java/com/gooddata/md/TableDataLoad.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/TableDataLoad.java index 824d17fa0..a93083f47 100644 --- a/src/main/java/com/gooddata/md/TableDataLoad.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/TableDataLoad.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/md/Updatable.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Updatable.java similarity index 76% rename from src/main/java/com/gooddata/md/Updatable.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Updatable.java index 59fd60e1c..e27b62dcf 100644 --- a/src/main/java/com/gooddata/md/Updatable.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Updatable.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; /** * Marker interface for metadata objects which can be updated. (see {@link MetadataService#updateObj(Updatable)}). diff --git a/src/main/java/com/gooddata/md/Usage.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Usage.java similarity index 83% rename from src/main/java/com/gooddata/md/Usage.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Usage.java index 90ae129a4..688f123a7 100644 --- a/src/main/java/com/gooddata/md/Usage.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/Usage.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.gooddata.util.GoodDataToStringBuilder; @@ -23,7 +23,7 @@ public class Usage { * @param uri object URI * @param usedBy using objects */ - Usage(final String uri, final Collection usedBy) { + public Usage(final String uri, final Collection usedBy) { this.uri = uri; this.usedBy = usedBy; } diff --git a/src/main/java/com/gooddata/md/UseMany.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/UseMany.java similarity index 82% rename from src/main/java/com/gooddata/md/UseMany.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/UseMany.java index c440f8b4a..77897c76c 100644 --- a/src/main/java/com/gooddata/md/UseMany.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/UseMany.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -20,12 +20,12 @@ */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) -class UseMany { +public class UseMany { private final Collection useMany; @JsonCreator - UseMany(@JsonProperty("useMany") final Collection useMany) { + private UseMany(@JsonProperty("useMany") final Collection useMany) { this.useMany = notNull(useMany, "useMany"); } diff --git a/src/main/java/com/gooddata/md/UseManyEntries.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/UseManyEntries.java similarity index 89% rename from src/main/java/com/gooddata/md/UseManyEntries.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/UseManyEntries.java index 059c22b69..438504e43 100644 --- a/src/main/java/com/gooddata/md/UseManyEntries.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/UseManyEntries.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md; +package com.gooddata.sdk.model.md; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -15,7 +15,7 @@ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) -class UseManyEntries { +public class UseManyEntries { private final String uri; diff --git a/src/main/java/com/gooddata/md/maintenance/PartialMdArtifact.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/maintenance/PartialMdArtifact.java similarity index 85% rename from src/main/java/com/gooddata/md/maintenance/PartialMdArtifact.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/maintenance/PartialMdArtifact.java index 1e5693d3e..d399b6ec5 100644 --- a/src/main/java/com/gooddata/md/maintenance/PartialMdArtifact.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/maintenance/PartialMdArtifact.java @@ -1,12 +1,12 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.maintenance; +package com.gooddata.sdk.model.md.maintenance; import com.fasterxml.jackson.annotation.*; -import com.gooddata.gdc.UriResponse; +import com.gooddata.sdk.model.gdc.UriResponse; import com.gooddata.util.GoodDataToStringBuilder; /** @@ -16,7 +16,7 @@ @JsonTypeName("partialMDArtifact") @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonInclude(JsonInclude.Include.NON_NULL) -class PartialMdArtifact { +public class PartialMdArtifact { private final UriResponse status; private final String token; diff --git a/src/main/java/com/gooddata/md/maintenance/PartialMdExport.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/maintenance/PartialMdExport.java similarity index 96% rename from src/main/java/com/gooddata/md/maintenance/PartialMdExport.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/maintenance/PartialMdExport.java index f2a5bb744..612967cfb 100644 --- a/src/main/java/com/gooddata/md/maintenance/PartialMdExport.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/maintenance/PartialMdExport.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.maintenance; +package com.gooddata.sdk.model.md.maintenance; import static com.gooddata.util.Validate.notEmpty; import static java.util.Arrays.asList; diff --git a/src/main/java/com/gooddata/md/maintenance/PartialMdExportToken.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/maintenance/PartialMdExportToken.java similarity index 95% rename from src/main/java/com/gooddata/md/maintenance/PartialMdExportToken.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/maintenance/PartialMdExportToken.java index 78cb7b444..47ba12a3d 100644 --- a/src/main/java/com/gooddata/md/maintenance/PartialMdExportToken.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/maintenance/PartialMdExportToken.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.maintenance; +package com.gooddata.sdk.model.md.maintenance; import static com.gooddata.util.Validate.notEmpty; @@ -56,7 +56,7 @@ public PartialMdExportToken(String token) { * @param token token identifying metadata partially exported from another project * @param importAttributeProperties see {@link #setImportAttributeProperties(boolean)} */ - PartialMdExportToken(String token, boolean importAttributeProperties) { + public PartialMdExportToken(String token, boolean importAttributeProperties) { this.token = notEmpty(token, "token"); setImportAttributeProperties(importAttributeProperties); setOverwriteNewer(true); diff --git a/src/main/java/com/gooddata/md/report/AttributeInGrid.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/AttributeInGrid.java similarity index 96% rename from src/main/java/com/gooddata/md/report/AttributeInGrid.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/AttributeInGrid.java index d6cc56c98..8f41f917b 100644 --- a/src/main/java/com/gooddata/md/report/AttributeInGrid.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/AttributeInGrid.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.report; +package com.gooddata.sdk.model.md.report; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -12,8 +12,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; -import com.gooddata.md.Attribute; -import com.gooddata.md.DisplayForm; +import com.gooddata.sdk.model.md.Attribute; +import com.gooddata.sdk.model.md.DisplayForm; import com.gooddata.util.GoodDataToStringBuilder; import java.io.Serializable; diff --git a/src/main/java/com/gooddata/md/report/Filter.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/Filter.java similarity index 91% rename from src/main/java/com/gooddata/md/report/Filter.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/Filter.java index 40d92fd68..c8939165a 100644 --- a/src/main/java/com/gooddata/md/report/Filter.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/Filter.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.report; +package com.gooddata.sdk.model.md.report; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/md/report/Grid.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/Grid.java similarity index 96% rename from src/main/java/com/gooddata/md/report/Grid.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/Grid.java index 28e4d3dcf..e89bff124 100644 --- a/src/main/java/com/gooddata/md/report/Grid.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/Grid.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.report; +package com.gooddata.sdk.model.md.report; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/md/report/GridElement.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/GridElement.java similarity index 74% rename from src/main/java/com/gooddata/md/report/GridElement.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/GridElement.java index f77d89d3e..cbb547c1c 100644 --- a/src/main/java/com/gooddata/md/report/GridElement.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/GridElement.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.report; +package com.gooddata.sdk.model.md.report; /** * Grid element diff --git a/src/main/java/com/gooddata/md/report/GridElementDeserializer.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/GridElementDeserializer.java similarity index 87% rename from src/main/java/com/gooddata/md/report/GridElementDeserializer.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/GridElementDeserializer.java index 266700a7d..5785e908a 100644 --- a/src/main/java/com/gooddata/md/report/GridElementDeserializer.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/GridElementDeserializer.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.report; +package com.gooddata.sdk.model.md.report; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; @@ -11,7 +11,7 @@ import java.io.IOException; -import static com.gooddata.md.report.MetricGroup.METRIC_GROUP; +import static com.gooddata.sdk.model.md.report.MetricGroup.METRIC_GROUP; /** * Custom deserializer for {@link GridElement}'s implementations diff --git a/src/main/java/com/gooddata/md/report/GridElementSerializer.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/GridElementSerializer.java similarity index 90% rename from src/main/java/com/gooddata/md/report/GridElementSerializer.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/GridElementSerializer.java index a1b1c77a0..abb52245a 100644 --- a/src/main/java/com/gooddata/md/report/GridElementSerializer.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/GridElementSerializer.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.report; +package com.gooddata.sdk.model.md.report; import com.fasterxml.jackson.core.JsonGenerationException; import com.fasterxml.jackson.core.JsonGenerator; diff --git a/src/main/java/com/gooddata/md/report/GridReportDefinitionContent.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/GridReportDefinitionContent.java similarity index 92% rename from src/main/java/com/gooddata/md/report/GridReportDefinitionContent.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/GridReportDefinitionContent.java index ccb6c77f0..ca86ebd1b 100644 --- a/src/main/java/com/gooddata/md/report/GridReportDefinitionContent.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/GridReportDefinitionContent.java @@ -1,12 +1,12 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.report; +package com.gooddata.sdk.model.md.report; import com.fasterxml.jackson.annotation.JsonInclude; -import com.gooddata.md.Meta; +import com.gooddata.sdk.model.md.Meta; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/md/report/MetricElement.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/MetricElement.java similarity index 95% rename from src/main/java/com/gooddata/md/report/MetricElement.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/MetricElement.java index a80dfc895..b6863b0b6 100644 --- a/src/main/java/com/gooddata/md/report/MetricElement.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/MetricElement.java @@ -1,15 +1,15 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.report; +package com.gooddata.sdk.model.md.report; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; -import com.gooddata.md.Metric; +import com.gooddata.sdk.model.md.Metric; import com.gooddata.util.GoodDataToStringBuilder; import java.io.Serializable; diff --git a/src/main/java/com/gooddata/md/report/MetricGroup.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/MetricGroup.java similarity index 92% rename from src/main/java/com/gooddata/md/report/MetricGroup.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/MetricGroup.java index 833956416..ea3765235 100644 --- a/src/main/java/com/gooddata/md/report/MetricGroup.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/MetricGroup.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.report; +package com.gooddata.sdk.model.md.report; import java.io.Serializable; diff --git a/src/main/java/com/gooddata/md/report/OneNumberReportDefinitionContent.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/OneNumberReportDefinitionContent.java similarity index 95% rename from src/main/java/com/gooddata/md/report/OneNumberReportDefinitionContent.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/OneNumberReportDefinitionContent.java index 47d80bd58..55cd91e26 100644 --- a/src/main/java/com/gooddata/md/report/OneNumberReportDefinitionContent.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/OneNumberReportDefinitionContent.java @@ -1,12 +1,12 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.report; +package com.gooddata.sdk.model.md.report; import com.fasterxml.jackson.annotation.JsonInclude; -import com.gooddata.md.Meta; +import com.gooddata.sdk.model.md.Meta; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/md/report/Report.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/Report.java similarity index 87% rename from src/main/java/com/gooddata/md/report/Report.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/Report.java index a416ff154..97e3d0f9f 100644 --- a/src/main/java/com/gooddata/md/report/Report.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/Report.java @@ -1,15 +1,15 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.report; +package com.gooddata.sdk.model.md.report; import com.fasterxml.jackson.annotation.JsonInclude; -import com.gooddata.md.AbstractObj; -import com.gooddata.md.Meta; -import com.gooddata.md.Queryable; -import com.gooddata.md.Updatable; +import com.gooddata.sdk.model.md.AbstractObj; +import com.gooddata.sdk.model.md.Meta; +import com.gooddata.sdk.model.md.Queryable; +import com.gooddata.sdk.model.md.Updatable; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; @@ -18,9 +18,9 @@ import com.gooddata.util.GoodDataToStringBuilder; import java.io.Serializable; +import java.util.Arrays; import java.util.Collection; -import static java.util.Arrays.asList; import static java.util.Collections.emptyList; /** @@ -49,7 +49,7 @@ private Report(@JsonProperty("meta") Meta meta, @JsonProperty("content") Content */ public Report(String title, ReportDefinition... definitions) { // domains must be empty list to be included in serialized form properly - this(new Meta(title), new Content(asList(uris(definitions)), emptyList())); + this(new Meta(title), new Content(Arrays.asList(uris(definitions)), emptyList())); } @JsonIgnore diff --git a/src/main/java/com/gooddata/md/report/ReportDefinition.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/ReportDefinition.java similarity index 89% rename from src/main/java/com/gooddata/md/report/ReportDefinition.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/ReportDefinition.java index 0671f72ff..ff96bc317 100644 --- a/src/main/java/com/gooddata/md/report/ReportDefinition.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/ReportDefinition.java @@ -1,17 +1,17 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.report; +package com.gooddata.sdk.model.md.report; import static com.gooddata.util.Validate.notNullState; import com.fasterxml.jackson.annotation.JsonInclude; -import com.gooddata.md.AbstractObj; -import com.gooddata.md.Meta; -import com.gooddata.md.Queryable; -import com.gooddata.md.Updatable; +import com.gooddata.sdk.model.md.AbstractObj; +import com.gooddata.sdk.model.md.Meta; +import com.gooddata.sdk.model.md.Queryable; +import com.gooddata.sdk.model.md.Updatable; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonProperty; diff --git a/src/main/java/com/gooddata/md/report/ReportDefinitionContent.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/ReportDefinitionContent.java similarity index 94% rename from src/main/java/com/gooddata/md/report/ReportDefinitionContent.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/ReportDefinitionContent.java index 87cf8a341..09954bce0 100644 --- a/src/main/java/com/gooddata/md/report/ReportDefinitionContent.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/ReportDefinitionContent.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.report; +package com.gooddata.sdk.model.md.report; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/src/main/java/com/gooddata/md/report/Total.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/Total.java similarity index 93% rename from src/main/java/com/gooddata/md/report/Total.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/Total.java index 9b70de36a..b4089721b 100644 --- a/src/main/java/com/gooddata/md/report/Total.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/report/Total.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.report; +package com.gooddata.sdk.model.md.report; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; diff --git a/src/main/java/com/gooddata/md/visualization/Bucket.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/Bucket.java similarity index 92% rename from src/main/java/com/gooddata/md/visualization/Bucket.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/Bucket.java index 4367a4397..5e3dc5c13 100644 --- a/src/main/java/com/gooddata/md/visualization/Bucket.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/Bucket.java @@ -1,16 +1,16 @@ /* - * Copyright (C) 2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.visualization; +package com.gooddata.sdk.model.md.visualization; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; -import com.gooddata.executeafm.afm.LocallyIdentifiable; +import com.gooddata.sdk.model.executeafm.afm.LocallyIdentifiable; import java.io.Serializable; import java.util.List; diff --git a/src/main/java/com/gooddata/md/visualization/BucketItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/BucketItem.java similarity index 86% rename from src/main/java/com/gooddata/md/visualization/BucketItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/BucketItem.java index e4327474c..479d92953 100644 --- a/src/main/java/com/gooddata/md/visualization/BucketItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/BucketItem.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.visualization; +package com.gooddata.sdk.model.md.visualization; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/src/main/java/com/gooddata/md/visualization/CollectionType.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/CollectionType.java similarity index 77% rename from src/main/java/com/gooddata/md/visualization/CollectionType.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/CollectionType.java index d50f8dcb9..3f08ad751 100644 --- a/src/main/java/com/gooddata/md/visualization/CollectionType.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/CollectionType.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.visualization; +package com.gooddata.sdk.model.md.visualization; /** * Represents type of collection that can be used as local identifier for {@link Bucket} diff --git a/src/main/java/com/gooddata/md/visualization/Measure.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/Measure.java similarity index 92% rename from src/main/java/com/gooddata/md/visualization/Measure.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/Measure.java index 3d28a93b0..33813ab84 100644 --- a/src/main/java/com/gooddata/md/visualization/Measure.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/Measure.java @@ -1,16 +1,16 @@ /* - * Copyright (C) 2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.visualization; +package com.gooddata.sdk.model.md.visualization; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; -import com.gooddata.executeafm.afm.MeasureDefinition; -import com.gooddata.executeafm.afm.MeasureItem; +import com.gooddata.sdk.model.executeafm.afm.MeasureDefinition; +import com.gooddata.sdk.model.executeafm.afm.MeasureItem; import java.util.Objects; diff --git a/src/main/java/com/gooddata/md/visualization/VOPopMeasureDefinition.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VOPopMeasureDefinition.java similarity index 71% rename from src/main/java/com/gooddata/md/visualization/VOPopMeasureDefinition.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VOPopMeasureDefinition.java index 08b6647e1..ae338bd17 100644 --- a/src/main/java/com/gooddata/md/visualization/VOPopMeasureDefinition.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VOPopMeasureDefinition.java @@ -1,27 +1,28 @@ /* - * Copyright (C) 2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.visualization; +package com.gooddata.sdk.model.md.visualization; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; -import com.gooddata.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.afm.PopMeasureDefinition; -import static com.gooddata.md.visualization.VOPopMeasureDefinition.NAME; +import static com.gooddata.sdk.model.md.visualization.VOPopMeasureDefinition.NAME; /** * Period over Period measure definition to be used within {@link Measure} * - * @deprecated identical with {@link com.gooddata.executeafm.afm.PopMeasureDefinition}, see https://github.com/gooddata/gooddata-java/issues/581 + * @deprecated identical with {@link PopMeasureDefinition}, see https://github.com/gooddata/gooddata-java/issues/581 */ @Deprecated @JsonInclude(JsonInclude.Include.NON_NULL) @JsonRootName(NAME) -public class VOPopMeasureDefinition extends com.gooddata.executeafm.afm.PopMeasureDefinition { +public class VOPopMeasureDefinition extends PopMeasureDefinition { private static final long serialVersionUID = -2727004914980057124L; public static final String NAME = "popMeasureDefinition"; diff --git a/src/main/java/com/gooddata/md/visualization/VOSimpleMeasureDefinition.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VOSimpleMeasureDefinition.java similarity index 69% rename from src/main/java/com/gooddata/md/visualization/VOSimpleMeasureDefinition.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VOSimpleMeasureDefinition.java index ce8f9c83c..2080d2af6 100644 --- a/src/main/java/com/gooddata/md/visualization/VOSimpleMeasureDefinition.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VOSimpleMeasureDefinition.java @@ -1,30 +1,32 @@ /* - * Copyright (C) 2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.visualization; +package com.gooddata.sdk.model.md.visualization; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonRootName; -import com.gooddata.executeafm.ObjQualifier; -import com.gooddata.executeafm.afm.Aggregation; -import com.gooddata.executeafm.afm.FilterItem; +import com.gooddata.sdk.model.executeafm.ObjQualifier; +import com.gooddata.sdk.model.executeafm.afm.Aggregation; +import com.gooddata.sdk.model.executeafm.afm.FilterItem; +import com.gooddata.sdk.model.executeafm.afm.MeasureDefinition; +import com.gooddata.sdk.model.executeafm.afm.SimpleMeasureDefinition; import java.util.List; -import static com.gooddata.md.visualization.VOSimpleMeasureDefinition.NAME; +import static com.gooddata.sdk.model.md.visualization.VOSimpleMeasureDefinition.NAME; /** * Simple measure definition to be used within {@link Measure} - * @deprecated identical with {@link com.gooddata.executeafm.afm.MeasureDefinition}, see https://github.com/gooddata/gooddata-java/issues/581 + * @deprecated identical with {@link MeasureDefinition}, see https://github.com/gooddata/gooddata-java/issues/581 */ @Deprecated @JsonInclude(JsonInclude.Include.NON_NULL) @JsonRootName(NAME) -public class VOSimpleMeasureDefinition extends com.gooddata.executeafm.afm.SimpleMeasureDefinition { +public class VOSimpleMeasureDefinition extends SimpleMeasureDefinition { private static final long serialVersionUID = 8467311354259963694L; public static final String NAME = "measureDefinition"; @@ -32,7 +34,7 @@ public class VOSimpleMeasureDefinition extends com.gooddata.executeafm.afm.Simpl /** * Creates instance of simple measure definition to be used in {@link VisualizationObject} * - * @see com.gooddata.executeafm.afm.SimpleMeasureDefinition#SimpleMeasureDefinition(ObjQualifier) + * @see SimpleMeasureDefinition#SimpleMeasureDefinition(ObjQualifier) */ public VOSimpleMeasureDefinition(ObjQualifier item) { super(item); @@ -56,7 +58,7 @@ public VOSimpleMeasureDefinition(@JsonProperty("item") final ObjQualifier item, /** * Creates instance of simple measure definition to be used in {@link VisualizationObject} * - * @see com.gooddata.executeafm.afm.SimpleMeasureDefinition#SimpleMeasureDefinition(ObjQualifier, Aggregation, Boolean, List) + * @see SimpleMeasureDefinition#SimpleMeasureDefinition(ObjQualifier, Aggregation, Boolean, List) */ public VOSimpleMeasureDefinition(ObjQualifier item, Aggregation aggregation, Boolean computeRatio, List filters) { super(item, aggregation, computeRatio, filters); @@ -65,7 +67,7 @@ public VOSimpleMeasureDefinition(ObjQualifier item, Aggregation aggregation, Boo /** * Creates instance of simple measure definition to be used in {@link VisualizationObject} * - * @see com.gooddata.executeafm.afm.SimpleMeasureDefinition#SimpleMeasureDefinition(ObjQualifier, Aggregation, Boolean, FilterItem...) + * @see SimpleMeasureDefinition#SimpleMeasureDefinition(ObjQualifier, Aggregation, Boolean, FilterItem...) */ public VOSimpleMeasureDefinition(ObjQualifier item, Aggregation aggregation, Boolean computeRatio, FilterItem... filters) { super(item, aggregation, computeRatio, filters); diff --git a/src/main/java/com/gooddata/md/visualization/VisualizationAttribute.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VisualizationAttribute.java similarity index 89% rename from src/main/java/com/gooddata/md/visualization/VisualizationAttribute.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VisualizationAttribute.java index 4bebd96c4..afd88aade 100644 --- a/src/main/java/com/gooddata/md/visualization/VisualizationAttribute.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VisualizationAttribute.java @@ -1,15 +1,15 @@ /* - * Copyright (C) 2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.visualization; +package com.gooddata.sdk.model.md.visualization; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonProperty; -import com.gooddata.executeafm.UriObjQualifier; -import com.gooddata.executeafm.afm.AttributeItem; +import com.gooddata.sdk.model.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.executeafm.afm.AttributeItem; import java.util.Objects; diff --git a/src/main/java/com/gooddata/md/visualization/VisualizationClass.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VisualizationClass.java similarity index 93% rename from src/main/java/com/gooddata/md/visualization/VisualizationClass.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VisualizationClass.java index 62b2121ec..40f939833 100644 --- a/src/main/java/com/gooddata/md/visualization/VisualizationClass.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VisualizationClass.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.visualization; +package com.gooddata.sdk.model.md.visualization; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -12,10 +12,10 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; -import com.gooddata.md.AbstractObj; -import com.gooddata.md.Meta; -import com.gooddata.md.Queryable; -import com.gooddata.md.Updatable; +import com.gooddata.sdk.model.md.AbstractObj; +import com.gooddata.sdk.model.md.Meta; +import com.gooddata.sdk.model.md.Queryable; +import com.gooddata.sdk.model.md.Updatable; import java.io.Serializable; diff --git a/src/main/java/com/gooddata/md/visualization/VisualizationConverter.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VisualizationConverter.java similarity index 91% rename from src/main/java/com/gooddata/md/visualization/VisualizationConverter.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VisualizationConverter.java index d8df11f9e..14cd7ab2a 100644 --- a/src/main/java/com/gooddata/md/visualization/VisualizationConverter.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VisualizationConverter.java @@ -1,41 +1,37 @@ /* - * Copyright (C) 2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.visualization; - -import static com.gooddata.executeafm.resultspec.Dimension.MEASURE_GROUP; -import static com.gooddata.md.visualization.CollectionType.SEGMENT; -import static com.gooddata.md.visualization.CollectionType.STACK; -import static com.gooddata.md.visualization.CollectionType.TREND; -import static com.gooddata.md.visualization.CollectionType.VIEW; -import static com.gooddata.util.Validate.notNull; -import static com.gooddata.util.Validate.isTrue; -import static java.util.stream.Collectors.toList; - +package com.gooddata.sdk.model.md.visualization; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.JsonNode; import com.fasterxml.jackson.databind.ObjectMapper; -import com.gooddata.executeafm.Execution; -import com.gooddata.executeafm.afm.Afm; -import com.gooddata.executeafm.afm.AttributeItem; -import com.gooddata.executeafm.afm.CompatibilityFilter; -import com.gooddata.executeafm.afm.DateFilter; -import com.gooddata.executeafm.afm.FilterItem; -import com.gooddata.executeafm.afm.MeasureItem; -import com.gooddata.executeafm.afm.NegativeAttributeFilter; -import com.gooddata.executeafm.afm.PositiveAttributeFilter; -import com.gooddata.executeafm.afm.SimpleMeasureDefinition; -import com.gooddata.executeafm.resultspec.Dimension; -import com.gooddata.executeafm.resultspec.ResultSpec; -import com.gooddata.executeafm.resultspec.SortItem; +import com.gooddata.sdk.model.executeafm.Execution; +import com.gooddata.sdk.model.executeafm.afm.Afm; +import com.gooddata.sdk.model.executeafm.afm.AttributeItem; +import com.gooddata.sdk.model.executeafm.afm.CompatibilityFilter; +import com.gooddata.sdk.model.executeafm.afm.DateFilter; +import com.gooddata.sdk.model.executeafm.afm.FilterItem; +import com.gooddata.sdk.model.executeafm.afm.MeasureItem; +import com.gooddata.sdk.model.executeafm.afm.NegativeAttributeFilter; +import com.gooddata.sdk.model.executeafm.afm.PositiveAttributeFilter; +import com.gooddata.sdk.model.executeafm.afm.SimpleMeasureDefinition; +import com.gooddata.sdk.model.executeafm.resultspec.Dimension; +import com.gooddata.sdk.model.executeafm.resultspec.ResultSpec; +import com.gooddata.sdk.model.executeafm.resultspec.SortItem; + import java.util.ArrayList; import java.util.List; import java.util.function.Function; import java.util.stream.Collectors; +import static com.gooddata.sdk.model.executeafm.resultspec.Dimension.MEASURE_GROUP; +import static com.gooddata.util.Validate.isTrue; +import static com.gooddata.util.Validate.notNull; +import static java.util.stream.Collectors.toList; + /** * Helper class for converting {@link VisualizationObject} into {@link Execution} */ @@ -150,9 +146,9 @@ private static List getDimensions(final VisualizationObject visualiza switch (visualizationType) { case COLUMN: case BAR: - return getDimensionsForStacked(visualizationObject, STACK, VIEW); + return getDimensionsForStacked(visualizationObject, CollectionType.STACK, CollectionType.VIEW); case LINE: - return getDimensionsForStacked(visualizationObject, SEGMENT, TREND); + return getDimensionsForStacked(visualizationObject, CollectionType.SEGMENT, CollectionType.TREND); case PIE: return getDimensionsForPie(visualizationObject); default: diff --git a/src/main/java/com/gooddata/md/visualization/VisualizationObject.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VisualizationObject.java similarity index 93% rename from src/main/java/com/gooddata/md/visualization/VisualizationObject.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VisualizationObject.java index f07517a63..ae6384059 100644 --- a/src/main/java/com/gooddata/md/visualization/VisualizationObject.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VisualizationObject.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.visualization; +package com.gooddata.sdk.model.md.visualization; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnore; @@ -14,21 +14,21 @@ import com.fasterxml.jackson.annotation.JsonTypeName; import static com.fasterxml.jackson.annotation.JsonTypeInfo.As.WRAPPER_OBJECT; import static com.fasterxml.jackson.annotation.JsonTypeInfo.Id.NAME; -import static com.gooddata.md.visualization.CollectionType.*; import static java.util.Collections.emptyList; import static java.util.stream.Collectors.toList; import static org.apache.commons.lang3.Validate.notEmpty; import static org.apache.commons.lang3.Validate.notNull; -import com.gooddata.executeafm.UriObjQualifier; -import com.gooddata.executeafm.afm.Afm; -import com.gooddata.executeafm.afm.FilterItem; -import com.gooddata.executeafm.Execution; -import com.gooddata.executeafm.resultspec.ResultSpec; -import com.gooddata.md.AbstractObj; -import com.gooddata.md.Meta; -import com.gooddata.md.Queryable; -import com.gooddata.md.Updatable; +import com.gooddata.sdk.model.executeafm.UriObjQualifier; +import com.gooddata.sdk.model.executeafm.afm.Afm; +import com.gooddata.sdk.model.executeafm.afm.FilterItem; +import com.gooddata.sdk.model.executeafm.Execution; +import com.gooddata.sdk.model.executeafm.resultspec.ResultSpec; +import com.gooddata.sdk.model.md.AbstractObj; +import com.gooddata.sdk.model.md.Meta; +import com.gooddata.sdk.model.md.Queryable; +import com.gooddata.sdk.model.md.Updatable; +import com.gooddata.sdk.model.md.*; import java.io.Serializable; import java.util.ArrayList; @@ -37,7 +37,7 @@ import java.util.function.Function; /** - * Complete information about new visualization object that can be stored as MD object (see {@link com.gooddata.md.Obj}) + * Complete information about new visualization object that can be stored as MD object (see {@link Obj}) * to md server. *

* The visualization object is part of new GD UI visualizations situated in AD and KPI dashboards. @@ -164,7 +164,7 @@ public String getItemById(String id) { */ @JsonIgnore public VisualizationAttribute getStack() { - return getAttributeFromCollection(STACK); + return getAttributeFromCollection(CollectionType.STACK); } /** @@ -172,7 +172,7 @@ public VisualizationAttribute getStack() { */ @JsonIgnore public VisualizationAttribute getView() { - return getAttributeFromCollection(VIEW); + return getAttributeFromCollection(CollectionType.VIEW); } /** @@ -180,7 +180,7 @@ public VisualizationAttribute getView() { */ @JsonIgnore public VisualizationAttribute getSegment() { - return getAttributeFromCollection(SEGMENT); + return getAttributeFromCollection(CollectionType.SEGMENT); } /** @@ -188,7 +188,7 @@ public VisualizationAttribute getSegment() { */ @JsonIgnore public VisualizationAttribute getTrend() { - return getAttributeFromCollection(TREND); + return getAttributeFromCollection(CollectionType.TREND); } /** diff --git a/src/main/java/com/gooddata/md/visualization/VisualizationType.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VisualizationType.java similarity index 88% rename from src/main/java/com/gooddata/md/visualization/VisualizationType.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VisualizationType.java index c3829b740..34fc1053d 100644 --- a/src/main/java/com/gooddata/md/visualization/VisualizationType.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/md/visualization/VisualizationType.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2018, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.md.visualization; +package com.gooddata.sdk.model.md.visualization; import org.springframework.util.StringUtils; diff --git a/src/main/java/com/gooddata/notification/Channel.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/Channel.java similarity index 90% rename from src/main/java/com/gooddata/notification/Channel.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/Channel.java index 9a7b37aec..59f59f645 100644 --- a/src/main/java/com/gooddata/notification/Channel.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/Channel.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.notification; +package com.gooddata.sdk.model.notification; import static com.gooddata.util.Validate.notEmpty; import static com.gooddata.util.Validate.notNull; @@ -13,8 +13,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; -import com.gooddata.account.Account; -import com.gooddata.md.Meta; +import com.gooddata.sdk.model.account.Account; +import com.gooddata.sdk.model.md.Meta; import com.gooddata.util.GoodDataToStringBuilder; import org.springframework.web.util.UriTemplate; diff --git a/src/main/java/com/gooddata/notification/Configuration.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/Configuration.java similarity index 83% rename from src/main/java/com/gooddata/notification/Configuration.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/Configuration.java index 3a2473b2a..658cc4684 100644 --- a/src/main/java/com/gooddata/notification/Configuration.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/Configuration.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.notification; +package com.gooddata.sdk.model.notification; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; diff --git a/src/main/java/com/gooddata/notification/EmailConfiguration.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/EmailConfiguration.java similarity index 91% rename from src/main/java/com/gooddata/notification/EmailConfiguration.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/EmailConfiguration.java index 387f918df..6fb53bbf6 100644 --- a/src/main/java/com/gooddata/notification/EmailConfiguration.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/EmailConfiguration.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.notification; +package com.gooddata.sdk.model.notification; import static com.gooddata.util.Validate.notEmpty; diff --git a/src/main/java/com/gooddata/notification/MessageTemplate.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/MessageTemplate.java similarity index 91% rename from src/main/java/com/gooddata/notification/MessageTemplate.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/MessageTemplate.java index 13755a576..cab621870 100644 --- a/src/main/java/com/gooddata/notification/MessageTemplate.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/MessageTemplate.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.notification; +package com.gooddata.sdk.model.notification; import static com.gooddata.util.Validate.notEmpty; diff --git a/src/main/java/com/gooddata/notification/ProjectEvent.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/ProjectEvent.java similarity index 96% rename from src/main/java/com/gooddata/notification/ProjectEvent.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/ProjectEvent.java index cc2173a3e..99fea9f04 100644 --- a/src/main/java/com/gooddata/notification/ProjectEvent.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/ProjectEvent.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.notification; +package com.gooddata.sdk.model.notification; import static com.gooddata.util.Validate.notEmpty; import static com.gooddata.util.Validate.notNull; diff --git a/src/main/java/com/gooddata/notification/Subscription.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/Subscription.java similarity index 95% rename from src/main/java/com/gooddata/notification/Subscription.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/Subscription.java index c6aeb8b8b..9391eee54 100644 --- a/src/main/java/com/gooddata/notification/Subscription.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/Subscription.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.notification; +package com.gooddata.sdk.model.notification; import static org.apache.commons.lang3.Validate.notEmpty; import static org.apache.commons.lang3.Validate.notNull; @@ -13,7 +13,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; -import com.gooddata.md.Meta; +import com.gooddata.sdk.model.md.Meta; import com.gooddata.util.GoodDataToStringBuilder; import org.springframework.web.util.UriTemplate; diff --git a/src/main/java/com/gooddata/notification/TimerEvent.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/TimerEvent.java similarity index 91% rename from src/main/java/com/gooddata/notification/TimerEvent.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/TimerEvent.java index 4498ca08c..ef62c0685 100644 --- a/src/main/java/com/gooddata/notification/TimerEvent.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/TimerEvent.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.notification; +package com.gooddata.sdk.model.notification; import static com.gooddata.util.Validate.notEmpty; diff --git a/src/main/java/com/gooddata/notification/Trigger.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/Trigger.java similarity index 82% rename from src/main/java/com/gooddata/notification/Trigger.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/Trigger.java index d575d5850..eed7023ae 100644 --- a/src/main/java/com/gooddata/notification/Trigger.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/Trigger.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.notification; +package com.gooddata.sdk.model.notification; import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; diff --git a/src/main/java/com/gooddata/notification/TriggerCondition.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/TriggerCondition.java similarity index 90% rename from src/main/java/com/gooddata/notification/TriggerCondition.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/TriggerCondition.java index cb83f53db..7e8ba780f 100644 --- a/src/main/java/com/gooddata/notification/TriggerCondition.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/notification/TriggerCondition.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.notification; +package com.gooddata.sdk.model.notification; import static com.gooddata.util.Validate.notEmpty; diff --git a/src/main/java/com/gooddata/project/CreatedInvitations.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/CreatedInvitations.java similarity index 95% rename from src/main/java/com/gooddata/project/CreatedInvitations.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/CreatedInvitations.java index 0ab708ca5..ac71390e2 100644 --- a/src/main/java/com/gooddata/project/CreatedInvitations.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/CreatedInvitations.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/project/Environment.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Environment.java similarity index 87% rename from src/main/java/com/gooddata/project/Environment.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Environment.java index d98bd5ce5..2acab64fd 100644 --- a/src/main/java/com/gooddata/project/Environment.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Environment.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; /** * Optional property for project or warehouse create, the property is ignored during update. diff --git a/src/main/java/com/gooddata/project/Invitation.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Invitation.java similarity index 93% rename from src/main/java/com/gooddata/project/Invitation.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Invitation.java index db09ef0e5..77f98171d 100644 --- a/src/main/java/com/gooddata/project/Invitation.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Invitation.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -11,7 +11,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; -import com.gooddata.md.Meta; +import com.gooddata.sdk.model.md.Meta; import com.gooddata.util.GoodDataToStringBuilder; import static com.gooddata.util.Validate.notEmpty; diff --git a/src/main/java/com/gooddata/project/Invitations.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Invitations.java similarity index 73% rename from src/main/java/com/gooddata/project/Invitations.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Invitations.java index 64be0cba1..49f95580a 100644 --- a/src/main/java/com/gooddata/project/Invitations.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Invitations.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; @@ -16,17 +16,17 @@ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) -class Invitations { +public class Invitations { /** * @see Project#getInvitationsUri() */ - static final String URI = Project.URI + "/invitations"; - static final UriTemplate TEMPLATE = new UriTemplate(URI); + public static final String URI = Project.URI + "/invitations"; + public static final UriTemplate TEMPLATE = new UriTemplate(URI); private final List invitations; - Invitations(Invitation... invitations) { + public Invitations(Invitation... invitations) { this.invitations = asList(invitations); } diff --git a/src/main/java/com/gooddata/project/Project.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Project.java similarity index 99% rename from src/main/java/com/gooddata/project/Project.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Project.java index 38afb9c52..bb0889b6f 100644 --- a/src/main/java/com/gooddata/project/Project.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Project.java @@ -1,12 +1,12 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonInclude; -import com.gooddata.md.Meta; +import com.gooddata.sdk.model.md.Meta; import com.gooddata.util.BooleanDeserializer; import com.gooddata.util.GDDateTimeDeserializer; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/src/main/java/com/gooddata/project/ProjectDriver.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectDriver.java similarity index 82% rename from src/main/java/com/gooddata/project/ProjectDriver.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectDriver.java index d753f960a..2a9fd4cbb 100644 --- a/src/main/java/com/gooddata/project/ProjectDriver.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectDriver.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import static com.gooddata.util.Validate.notEmpty; diff --git a/src/main/java/com/gooddata/project/ProjectEnvironment.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectEnvironment.java similarity index 80% rename from src/main/java/com/gooddata/project/ProjectEnvironment.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectEnvironment.java index cda79d1dc..9124548fa 100644 --- a/src/main/java/com/gooddata/project/ProjectEnvironment.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectEnvironment.java @@ -1,14 +1,14 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; /** * Optional property for project create, the property is ignored during project update. * Default value is {@link #PRODUCTION} which is also environment for all currently existing projects.

- * Preffer {@link com.gooddata.project.Environment} if possible. + * Preffer {@link Environment} if possible. */ public enum ProjectEnvironment { /** Default value, projects are backed-up and archived. */ diff --git a/src/main/java/com/gooddata/project/ProjectTemplate.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectTemplate.java similarity index 92% rename from src/main/java/com/gooddata/project/ProjectTemplate.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectTemplate.java index dc316083b..a246e9f67 100644 --- a/src/main/java/com/gooddata/project/ProjectTemplate.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectTemplate.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/project/ProjectTemplates.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectTemplates.java similarity index 88% rename from src/main/java/com/gooddata/project/ProjectTemplates.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectTemplates.java index 4ff21115a..fef575aff 100644 --- a/src/main/java/com/gooddata/project/ProjectTemplates.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectTemplates.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -19,7 +19,7 @@ */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) -class ProjectTemplates { +public class ProjectTemplates { private final Collection templatesInfo; diff --git a/src/main/java/com/gooddata/project/ProjectUsersUpdateResult.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectUsersUpdateResult.java similarity index 90% rename from src/main/java/com/gooddata/project/ProjectUsersUpdateResult.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectUsersUpdateResult.java index 44c589cbb..b3c534326 100644 --- a/src/main/java/com/gooddata/project/ProjectUsersUpdateResult.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectUsersUpdateResult.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -21,7 +21,7 @@ @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) -class ProjectUsersUpdateResult { +public class ProjectUsersUpdateResult { private final List successful; private final List failed; diff --git a/src/main/java/com/gooddata/project/ProjectValidationResult.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResult.java similarity index 96% rename from src/main/java/com/gooddata/project/ProjectValidationResult.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResult.java index 6e7d18b7c..fea341017 100644 --- a/src/main/java/com/gooddata/project/ProjectValidationResult.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResult.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/project/ProjectValidationResultGdcTimeElParam.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultGdcTimeElParam.java similarity index 93% rename from src/main/java/com/gooddata/project/ProjectValidationResultGdcTimeElParam.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultGdcTimeElParam.java index 49ead2703..a7c10a6a4 100644 --- a/src/main/java/com/gooddata/project/ProjectValidationResultGdcTimeElParam.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultGdcTimeElParam.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -12,7 +12,6 @@ import com.gooddata.util.GoodDataToStringBuilder; import java.util.List; -import java.util.Objects; @JsonTypeName("gdctime_el") @JsonIgnoreProperties(ignoreUnknown = true) diff --git a/src/main/java/com/gooddata/project/ProjectValidationResultItem.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultItem.java similarity index 93% rename from src/main/java/com/gooddata/project/ProjectValidationResultItem.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultItem.java index 551347d4e..e002ba163 100644 --- a/src/main/java/com/gooddata/project/ProjectValidationResultItem.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultItem.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/project/ProjectValidationResultObjectParam.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultObjectParam.java similarity index 94% rename from src/main/java/com/gooddata/project/ProjectValidationResultObjectParam.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultObjectParam.java index b1175c619..aa4900f0e 100644 --- a/src/main/java/com/gooddata/project/ProjectValidationResultObjectParam.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultObjectParam.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/project/ProjectValidationResultParam.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultParam.java similarity index 90% rename from src/main/java/com/gooddata/project/ProjectValidationResultParam.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultParam.java index df2d81aa8..a6ffdb6ff 100644 --- a/src/main/java/com/gooddata/project/ProjectValidationResultParam.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultParam.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonSubTypes; diff --git a/src/main/java/com/gooddata/project/ProjectValidationResultSliElParam.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultSliElParam.java similarity index 97% rename from src/main/java/com/gooddata/project/ProjectValidationResultSliElParam.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultSliElParam.java index 81e382dc9..68ab8bc75 100644 --- a/src/main/java/com/gooddata/project/ProjectValidationResultSliElParam.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultSliElParam.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import static java.lang.String.format; diff --git a/src/main/java/com/gooddata/project/ProjectValidationResultStringParam.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultStringParam.java similarity index 93% rename from src/main/java/com/gooddata/project/ProjectValidationResultStringParam.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultStringParam.java index e5b06f3b6..a29ee0b6b 100644 --- a/src/main/java/com/gooddata/project/ProjectValidationResultStringParam.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResultStringParam.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/project/ProjectValidationResults.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResults.java similarity index 97% rename from src/main/java/com/gooddata/project/ProjectValidationResults.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResults.java index 433ab3147..a660a1aa6 100644 --- a/src/main/java/com/gooddata/project/ProjectValidationResults.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationResults.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.gooddata.util.BooleanDeserializer; import com.fasterxml.jackson.annotation.JsonCreator; diff --git a/src/main/java/com/gooddata/project/ProjectValidationType.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationType.java similarity index 94% rename from src/main/java/com/gooddata/project/ProjectValidationType.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationType.java index 9e7e686fb..a9045fff9 100644 --- a/src/main/java/com/gooddata/project/ProjectValidationType.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidationType.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonValue; diff --git a/src/main/java/com/gooddata/project/ProjectValidations.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidations.java similarity index 83% rename from src/main/java/com/gooddata/project/ProjectValidations.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidations.java index 7b7aa8a2f..670a92813 100644 --- a/src/main/java/com/gooddata/project/ProjectValidations.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/ProjectValidations.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -22,7 +22,7 @@ */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) -class ProjectValidations { +public class ProjectValidations { public static final String URI = "/gdc/md/{projectId}/validate"; @@ -33,7 +33,7 @@ class ProjectValidations { } @JsonCreator - ProjectValidations(@JsonProperty("availableValidations") final Set validations) { + public ProjectValidations(@JsonProperty("availableValidations") final Set validations) { this.validations = validations; } diff --git a/src/main/java/com/gooddata/project/Projects.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Projects.java similarity index 90% rename from src/main/java/com/gooddata/project/Projects.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Projects.java index 268b9336f..4a6bb00f8 100644 --- a/src/main/java/com/gooddata/project/Projects.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Projects.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/project/Role.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Role.java similarity index 95% rename from src/main/java/com/gooddata/project/Role.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Role.java index 99164ed74..f744e8586 100644 --- a/src/main/java/com/gooddata/project/Role.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Role.java @@ -1,12 +1,12 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonInclude; -import com.gooddata.md.Meta; +import com.gooddata.sdk.model.md.Meta; import com.gooddata.util.BooleanDeserializer; import com.gooddata.util.BooleanStringSerializer; import com.fasterxml.jackson.annotation.JsonCreator; @@ -98,7 +98,7 @@ public String getIdentifier() { *

* NOTE: This is intentionally left package-private. */ - void setUri(final String uri) { + public void setUri(final String uri) { links.put(SELF_LINK, uri); } diff --git a/src/main/java/com/gooddata/project/Roles.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Roles.java similarity index 88% rename from src/main/java/com/gooddata/project/Roles.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Roles.java index 28629dcd1..27217efa9 100644 --- a/src/main/java/com/gooddata/project/Roles.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Roles.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -21,7 +21,7 @@ @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonTypeName("projectRoles") @JsonIgnoreProperties(ignoreUnknown = true) -class Roles { +public class Roles { public static final String URI = "/gdc/projects/{projectId}/roles"; public static final UriTemplate TEMPLATE = new UriTemplate(URI); @@ -32,7 +32,7 @@ class Roles { this.roles = roles; } - Set getRoles() { + public Set getRoles() { return roles; } diff --git a/src/main/java/com/gooddata/project/User.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/User.java similarity index 96% rename from src/main/java/com/gooddata/project/User.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/User.java index 9b028659a..5552fc492 100644 --- a/src/main/java/com/gooddata/project/User.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/User.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonInclude; @@ -12,7 +12,7 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonTypeInfo; import com.fasterxml.jackson.annotation.JsonTypeName; -import com.gooddata.account.Account; +import com.gooddata.sdk.model.account.Account; import com.gooddata.util.GoodDataToStringBuilder; import org.springframework.web.util.UriTemplate; @@ -45,7 +45,7 @@ public class User { this.links = links; } - User(final Account account, + public User(final Account account, final Role... userRoles) { final List userRoleUris = Arrays.asList(userRoles).stream().map(e -> e.getUri()).collect(Collectors.toList()); diff --git a/src/main/java/com/gooddata/project/Users.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Users.java similarity index 87% rename from src/main/java/com/gooddata/project/Users.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Users.java index cb308cb82..06dd3dd8e 100644 --- a/src/main/java/com/gooddata/project/Users.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/Users.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import static java.util.Arrays.asList; @@ -27,7 +27,7 @@ @JsonIgnoreProperties(ignoreUnknown = true) @JsonDeserialize(using = UsersDeserializer.class) @JsonSerialize(using = UsersSerializer.class) -class Users extends PageableList { +public class Users extends PageableList { public static final String URI = "/gdc/projects/{projectId}/users"; public static final UriTemplate TEMPLATE = new UriTemplate(URI); @@ -37,7 +37,7 @@ class Users extends PageableList { super(items, paging); } - Users(final User... users) { + public Users(final User... users) { this(asList(users), null); } } diff --git a/src/main/java/com/gooddata/project/UsersDeserializer.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/UsersDeserializer.java similarity index 85% rename from src/main/java/com/gooddata/project/UsersDeserializer.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/UsersDeserializer.java index 3dce8ba45..149e0e5e4 100644 --- a/src/main/java/com/gooddata/project/UsersDeserializer.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/UsersDeserializer.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.gooddata.collections.PageableListDeserializer; import com.gooddata.collections.Paging; diff --git a/src/main/java/com/gooddata/project/UsersSerializer.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/UsersSerializer.java similarity index 90% rename from src/main/java/com/gooddata/project/UsersSerializer.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/UsersSerializer.java index cde681587..b138ab1d2 100644 --- a/src/main/java/com/gooddata/project/UsersSerializer.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/UsersSerializer.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.project; +package com.gooddata.sdk.model.project; import com.fasterxml.jackson.core.JsonGenerator; diff --git a/src/main/java/com/gooddata/model/DiffRequest.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/model/DiffRequest.java similarity index 93% rename from src/main/java/com/gooddata/model/DiffRequest.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/model/DiffRequest.java index 0a87125f0..3789c29f0 100644 --- a/src/main/java/com/gooddata/model/DiffRequest.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/model/DiffRequest.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.model; +package com.gooddata.sdk.model.project.model; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonInclude; diff --git a/src/main/java/com/gooddata/model/MaqlDdl.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/model/MaqlDdl.java similarity index 63% rename from src/main/java/com/gooddata/model/MaqlDdl.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/model/MaqlDdl.java index bce30b01d..3fa91618e 100644 --- a/src/main/java/com/gooddata/model/MaqlDdl.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/model/MaqlDdl.java @@ -1,17 +1,17 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.model; +package com.gooddata.sdk.model.project.model; -import com.gooddata.gdc.AbstractMaql; +import com.gooddata.sdk.model.gdc.AbstractMaql; /** * MAQL DDL statement. * Serialization only. */ -class MaqlDdl extends AbstractMaql { +public class MaqlDdl extends AbstractMaql { public static final String URI = "/gdc/md/{project}/ldm/manage2"; diff --git a/src/main/java/com/gooddata/model/MaqlDdlLinks.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/model/MaqlDdlLinks.java similarity index 88% rename from src/main/java/com/gooddata/model/MaqlDdlLinks.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/model/MaqlDdlLinks.java index a1fe493c4..74e8406d0 100644 --- a/src/main/java/com/gooddata/model/MaqlDdlLinks.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/model/MaqlDdlLinks.java @@ -1,12 +1,12 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.model; +package com.gooddata.sdk.model.project.model; import com.fasterxml.jackson.annotation.JsonInclude; -import com.gooddata.gdc.LinkEntries; +import com.gooddata.sdk.model.gdc.LinkEntries; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import com.fasterxml.jackson.annotation.JsonProperty; @@ -19,6 +19,7 @@ */ @JsonIgnoreProperties(ignoreUnknown = true) @JsonInclude(JsonInclude.Include.NON_NULL) +public class MaqlDdlLinks extends LinkEntries { private static final String TASKS_STATUS = "tasks-status"; diff --git a/src/main/java/com/gooddata/model/ModelDiff.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/model/ModelDiff.java similarity index 97% rename from src/main/java/com/gooddata/model/ModelDiff.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/model/ModelDiff.java index 79e17c7ca..c1c857ec5 100644 --- a/src/main/java/com/gooddata/model/ModelDiff.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/project/model/ModelDiff.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.model; +package com.gooddata.sdk.model.project.model; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -113,7 +113,7 @@ public String toString() { @JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT, use = JsonTypeInfo.Id.NAME) @JsonTypeName("updateScript") @JsonIgnoreProperties(ignoreUnknown = true) - static class UpdateScript { + public static class UpdateScript { private final List maqlChunks; private final Boolean preserveData; diff --git a/src/main/java/com/gooddata/projecttemplate/Template.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/projecttemplate/Template.java similarity index 97% rename from src/main/java/com/gooddata/projecttemplate/Template.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/projecttemplate/Template.java index e0ed00164..8795144d8 100644 --- a/src/main/java/com/gooddata/projecttemplate/Template.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/projecttemplate/Template.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.projecttemplate; +package com.gooddata.sdk.model.projecttemplate; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; diff --git a/src/main/java/com/gooddata/projecttemplate/Templates.java b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/projecttemplate/Templates.java similarity index 74% rename from src/main/java/com/gooddata/projecttemplate/Templates.java rename to gooddata-java-model/src/main/java/com/gooddata/sdk/model/projecttemplate/Templates.java index 28991b8e2..a50e9197e 100644 --- a/src/main/java/com/gooddata/projecttemplate/Templates.java +++ b/gooddata-java-model/src/main/java/com/gooddata/sdk/model/projecttemplate/Templates.java @@ -1,9 +1,9 @@ /* - * Copyright (C) 2004-2017, GoodData(R) Corporation. All rights reserved. + * Copyright (C) 2004-2019, GoodData(R) Corporation. All rights reserved. * This source code is licensed under the BSD-style license found in the * LICENSE.txt file in the root directory of this source tree. */ -package com.gooddata.projecttemplate; +package com.gooddata.sdk.model.projecttemplate; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @@ -16,9 +16,9 @@ * Deserialization only. */ @JsonIgnoreProperties(ignoreUnknown = true) -class Templates { +public class Templates { - static final String URI = "/projectTemplates"; + public static final String URI = "/projectTemplates"; private final List