Skip to content

Commit 4abc150

Browse files
authored
Merge pull request #242 from microsoftgraph/dev
2.0.7 release
2 parents 430d2a9 + d4749f2 commit 4abc150

File tree

9 files changed

+78
-8
lines changed

9 files changed

+78
-8
lines changed

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ mavenGroupId = com.microsoft.graph
2525
mavenArtifactId = microsoft-graph-core
2626
mavenMajorVersion = 2
2727
mavenMinorVersion = 0
28-
mavenPatchVersion = 6
28+
mavenPatchVersion = 7
2929
mavenArtifactSuffix =
3030

3131
#These values are used to run functional tests

readme.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ repositories {
2222
2323
dependencies {
2424
// Include the sdk as a dependency
25-
implementation 'com.microsoft.graph:microsoft-graph-core:2.0.6'
25+
implementation 'com.microsoft.graph:microsoft-graph-core:2.0.7'
2626
// This dependency is only needed if you are using the TokenCrendentialAuthProvider
2727
implementation 'com.azure:azure-identity:1.3.1'
2828
}
@@ -37,7 +37,7 @@ Add the dependency in `dependencies` in pom.xml
3737
<!-- Include the sdk as a dependency -->
3838
<groupId>com.microsoft.graph</groupId>
3939
<artifactId>microsoft-graph-core</artifactId>
40-
<version>2.0.6</version>
40+
<version>2.0.7</version>
4141
<!-- This dependency is only needed if you are using the TokenCrendentialAuthProvider -->
4242
<groupId>com.azure</groupId>
4343
<artifactId>azure-identity</artifactId>

src/main/java/com/microsoft/graph/http/BaseCollectionResponse.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ public String nextLink() {
5959
public final AdditionalDataManager additionalDataManager() {
6060
return additionalDataManager;
6161
}
62-
62+
private static final String VALUE_JSON_KEY = "value";
6363
/**
6464
* Sets the raw JSON object
6565
*
@@ -69,9 +69,9 @@ public final AdditionalDataManager additionalDataManager() {
6969
public void setRawObject(@Nonnull final ISerializer serializer, @Nonnull final JsonObject json) {
7070
Objects.requireNonNull(serializer, "parameter serializer cannot be null");
7171
Objects.requireNonNull(json, "parameter json cannot be null");
72-
if (json.has("value")) {
73-
final JsonArray array = json.getAsJsonArray("value");
74-
for (int i = 0; i < array.size(); i++) {
72+
if (json.has(VALUE_JSON_KEY) && value != null && !value.isEmpty()) {
73+
final JsonArray array = json.getAsJsonArray(VALUE_JSON_KEY);
74+
for (int i = 0; i < array.size() && i < value.size(); i++) {
7575
final Object targetObject = value.get(i);
7676
if(targetObject instanceof IJsonBackedObject && array.get(i).isJsonObject()) {
7777
((IJsonBackedObject)targetObject).setRawObject(serializer, array.get(i).getAsJsonObject());

src/main/java/com/microsoft/graph/httpcore/TelemetryHandler.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public class TelemetryHandler implements Interceptor{
2424
/**
2525
* Current SDK version
2626
*/
27-
public static final String VERSION = "v2.0.6";
27+
public static final String VERSION = "v2.0.7";
2828
/**
2929
* Verion prefix
3030
*/

src/main/java/com/microsoft/graph/serializer/CollectionResponseSerializer.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import com.google.gson.JsonElement;
3434
import com.google.gson.JsonObject;
3535
import com.google.gson.JsonParseException;
36+
import com.google.gson.JsonPrimitive;
3637
import com.microsoft.graph.http.BaseCollectionResponse;
3738
import com.microsoft.graph.logger.ILogger;
3839

@@ -96,6 +97,14 @@ public static <T1> BaseCollectionResponse<T1> deserialize(@Nonnull final JsonEle
9697
final T1 targetObject = (T1)serializer.deserializeObject(sourceObject, entityClass);
9798
((IJsonBackedObject)targetObject).setRawObject(serializer, sourceObject);
9899
list.add(targetObject);
100+
} else if (sourceElement.isJsonPrimitive()) {
101+
final JsonPrimitive primitiveValue = sourceElement.getAsJsonPrimitive();
102+
if(primitiveValue.isString())
103+
list.add((T1)primitiveValue.getAsString());
104+
else if(primitiveValue.isBoolean())
105+
list.add((T1) Boolean.valueOf(primitiveValue.getAsBoolean()));
106+
else if(primitiveValue.isNumber())
107+
list.add((T1) Long.valueOf(primitiveValue.getAsLong()));
99108
}
100109
}
101110
final BaseCollectionResponse<T1> response = (BaseCollectionResponse<T1>)responseClass.getConstructor().newInstance();
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.microsoft.graph.serializer;
2+
3+
import com.microsoft.graph.http.BaseCollectionResponse;
4+
5+
public class CollectionResponseOfBoolean extends BaseCollectionResponse<Boolean> {
6+
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package com.microsoft.graph.serializer;
2+
3+
import com.microsoft.graph.http.BaseCollectionResponse;
4+
5+
public class CollectionResponseOfLong extends BaseCollectionResponse<Long> {
6+
7+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package com.microsoft.graph.serializer;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
import static org.junit.jupiter.api.Assertions.assertNotNull;
5+
import static org.mockito.Mockito.mock;
6+
7+
import com.microsoft.graph.logger.ILogger;
8+
9+
import org.junit.jupiter.api.Test;
10+
11+
class CollectionResponseOfPrimitivesTests {
12+
@Test
13+
void DeserializesCollectionOfStrings() {
14+
final var serializer = new DefaultSerializer(mock(ILogger.class));
15+
final var serializedValue = "{\"@odata.context\": \"https://graph.microsoft.com/v1.0/$metadata#Collection(Edm.String)\",\"value\": [\"b72e90c8-3d3a-457e-8ca0-0fdde204d320\"]}";
16+
final var result = serializer.deserializeObject(serializedValue, CollectionResponseOfString.class);
17+
assertNotNull(result);
18+
assertNotNull(result.value);
19+
assertNotNull(result.additionalDataManager());
20+
assertEquals("https://graph.microsoft.com/v1.0/$metadata#Collection(Edm.String)", result.additionalDataManager().get("@odata.context").getAsString());
21+
assertEquals(1, result.value.size());
22+
}
23+
@Test
24+
void DeserializesCollectionOfBooleans() {
25+
final var serializer = new DefaultSerializer(mock(ILogger.class));
26+
final var serializedValue = "{\"@odata.context\": \"https://graph.microsoft.com/v1.0/$metadata#Collection(Edm.Boolean)\",\"value\": [true]}";
27+
final var result = serializer.deserializeObject(serializedValue, CollectionResponseOfBoolean.class);
28+
assertNotNull(result);
29+
assertNotNull(result.value);
30+
assertEquals(1, result.value.size());
31+
}
32+
@Test
33+
void DeserializesCollectionOfLongs() {
34+
final var serializer = new DefaultSerializer(mock(ILogger.class));
35+
final var serializedValue = "{\"@odata.context\": \"https://graph.microsoft.com/v1.0/$metadata#Collection(Edm.Long)\",\"value\": [42]}";
36+
final var result = serializer.deserializeObject(serializedValue, CollectionResponseOfLong.class);
37+
assertNotNull(result);
38+
assertNotNull(result.value);
39+
assertEquals(1, result.value.size());
40+
}
41+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.microsoft.graph.serializer;
2+
3+
import com.microsoft.graph.http.BaseCollectionResponse;
4+
5+
public class CollectionResponseOfString extends BaseCollectionResponse<String> {
6+
}

0 commit comments

Comments
 (0)