Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: microsoft/kiota-java
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.9.0
Choose a base ref
...
head repository: microsoft/kiota-java
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.9.1
Choose a head ref

Commits on Nov 10, 2023

  1. Merge pull request #808 from microsoft/releaseV0.9.0

    ready for release
    ramsessanchez authored Nov 10, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    60f4b25 View commit details

Commits on Nov 13, 2023

  1. Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    82b7d2b View commit details
  2. - bumps patch version

    baywet committed Nov 13, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    6110b58 View commit details
  3. - code linting

    baywet committed Nov 13, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    c73dd8a View commit details
  4. Merge pull request #809 from microsoft/bugfix/enum-queryparameters-se…

    …rialization
    
    bugfix/enum queryparameters serialization
    baywet authored Nov 13, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    d584b69 View commit details
  5. Bump io.opentelemetry:opentelemetry-context

    Bumps [io.opentelemetry:opentelemetry-context](https://github.com/open-telemetry/opentelemetry-java) from 1.31.0 to 1.32.0.
    - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases)
    - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md)
    - [Commits](open-telemetry/opentelemetry-java@v1.31.0...v1.32.0)
    
    ---
    updated-dependencies:
    - dependency-name: io.opentelemetry:opentelemetry-context
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Nov 13, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    67588ef View commit details
  6. Bump io.opentelemetry:opentelemetry-api in /components/http/okHttp

    Bumps [io.opentelemetry:opentelemetry-api](https://github.com/open-telemetry/opentelemetry-java) from 1.31.0 to 1.32.0.
    - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases)
    - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md)
    - [Commits](open-telemetry/opentelemetry-java@v1.31.0...v1.32.0)
    
    ---
    updated-dependencies:
    - dependency-name: io.opentelemetry:opentelemetry-api
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Nov 13, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    82475cc View commit details
  7. Bump io.opentelemetry:opentelemetry-context

    Bumps [io.opentelemetry:opentelemetry-context](https://github.com/open-telemetry/opentelemetry-java) from 1.31.0 to 1.32.0.
    - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases)
    - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md)
    - [Commits](open-telemetry/opentelemetry-java@v1.31.0...v1.32.0)
    
    ---
    updated-dependencies:
    - dependency-name: io.opentelemetry:opentelemetry-context
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Nov 13, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    395faa9 View commit details
  8. Merge pull request #821 from microsoft/dependabot/gradle/components/a…

    …uthentication/azure/io.opentelemetry-opentelemetry-context-1.32.0
    
    Bump io.opentelemetry:opentelemetry-context from 1.31.0 to 1.32.0 in /components/authentication/azure
    github-actions[bot] authored Nov 13, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    743d5e7 View commit details
  9. Merge pull request #818 from microsoft/dependabot/gradle/components/h…

    …ttp/okHttp/io.opentelemetry-opentelemetry-api-1.32.0
    
    Bump io.opentelemetry:opentelemetry-api from 1.31.0 to 1.32.0 in /components/http/okHttp
    github-actions[bot] authored Nov 13, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    4284026 View commit details
  10. Bump io.opentelemetry:opentelemetry-api

    Bumps [io.opentelemetry:opentelemetry-api](https://github.com/open-telemetry/opentelemetry-java) from 1.31.0 to 1.32.0.
    - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases)
    - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md)
    - [Commits](open-telemetry/opentelemetry-java@v1.31.0...v1.32.0)
    
    ---
    updated-dependencies:
    - dependency-name: io.opentelemetry:opentelemetry-api
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Nov 13, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    cc90e38 View commit details
  11. Bump io.opentelemetry:opentelemetry-api

    Bumps [io.opentelemetry:opentelemetry-api](https://github.com/open-telemetry/opentelemetry-java) from 1.31.0 to 1.32.0.
    - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases)
    - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md)
    - [Commits](open-telemetry/opentelemetry-java@v1.31.0...v1.32.0)
    
    ---
    updated-dependencies:
    - dependency-name: io.opentelemetry:opentelemetry-api
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Nov 13, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    f536d2c View commit details
  12. Bump io.opentelemetry:opentelemetry-context in /components/http/okHttp

    Bumps [io.opentelemetry:opentelemetry-context](https://github.com/open-telemetry/opentelemetry-java) from 1.31.0 to 1.32.0.
    - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases)
    - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md)
    - [Commits](open-telemetry/opentelemetry-java@v1.31.0...v1.32.0)
    
    ---
    updated-dependencies:
    - dependency-name: io.opentelemetry:opentelemetry-context
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Nov 13, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    4a49231 View commit details
  13. Bump io.opentelemetry:opentelemetry-context

    Bumps [io.opentelemetry:opentelemetry-context](https://github.com/open-telemetry/opentelemetry-java) from 1.31.0 to 1.32.0.
    - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases)
    - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md)
    - [Commits](open-telemetry/opentelemetry-java@v1.31.0...v1.32.0)
    
    ---
    updated-dependencies:
    - dependency-name: io.opentelemetry:opentelemetry-context
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Nov 13, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    aa97375 View commit details

Commits on Nov 14, 2023

  1. Merge pull request #819 from microsoft/dependabot/gradle/components/h…

    …ttp/okHttp/io.opentelemetry-opentelemetry-context-1.32.0
    
    Bump io.opentelemetry:opentelemetry-context from 1.31.0 to 1.32.0 in /components/http/okHttp
    github-actions[bot] authored Nov 14, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    46bfec8 View commit details
  2. Merge pull request #820 from microsoft/dependabot/gradle/components/a…

    …uthentication/azure/io.opentelemetry-opentelemetry-api-1.32.0
    
    Bump io.opentelemetry:opentelemetry-api from 1.31.0 to 1.32.0 in /components/authentication/azure
    baywet authored Nov 14, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    c2a55ba View commit details
  3. Merge pull request #813 from microsoft/dependabot/gradle/components/a…

    …uthentication/azure/android/io.opentelemetry-opentelemetry-api-1.32.0
    
    Bump io.opentelemetry:opentelemetry-api from 1.31.0 to 1.32.0 in /components/authentication/azure/android
    github-actions[bot] authored Nov 14, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    6d4d216 View commit details
  4. Merge pull request #817 from microsoft/dependabot/gradle/components/h…

    …ttp/okHttp/android/io.opentelemetry-opentelemetry-context-1.32.0
    
    Bump io.opentelemetry:opentelemetry-context from 1.31.0 to 1.32.0 in /components/http/okHttp/android
    github-actions[bot] authored Nov 14, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    9457bb3 View commit details
  5. Merge pull request #811 from microsoft/dependabot/gradle/components/a…

    …bstractions/android/io.opentelemetry-opentelemetry-context-1.32.0
    
    Bump io.opentelemetry:opentelemetry-context from 1.31.0 to 1.32.0 in /components/abstractions/android
    github-actions[bot] authored Nov 14, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    bae8dbe View commit details
  6. Bump io.opentelemetry:opentelemetry-api in /components/abstractions

    Bumps [io.opentelemetry:opentelemetry-api](https://github.com/open-telemetry/opentelemetry-java) from 1.31.0 to 1.32.0.
    - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases)
    - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md)
    - [Commits](open-telemetry/opentelemetry-java@v1.31.0...v1.32.0)
    
    ---
    updated-dependencies:
    - dependency-name: io.opentelemetry:opentelemetry-api
      dependency-type: direct:production
      update-type: version-update:semver-minor
    ...
    
    Signed-off-by: dependabot[bot] <support@github.com>
    dependabot[bot] authored Nov 14, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    8006740 View commit details
  7. Merge pull request #814 from microsoft/dependabot/gradle/components/a…

    …bstractions/io.opentelemetry-opentelemetry-api-1.32.0
    
    Bump io.opentelemetry:opentelemetry-api from 1.31.0 to 1.32.0 in /components/abstractions
    github-actions[bot] authored Nov 14, 2023

    Verified

    This commit was created on GitHub.com and signed with GitHub’s verified signature.
    Copy the full SHA
    1822d68 View commit details
6 changes: 6 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -10,6 +10,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Changed

## [0.9.1] - 2023-11-13

### Changed

- Fixed a bug where path or query parameters of enum types would not be serialized properly. [microsoft/kiota#3693](https://github.com/microsoft/kiota/issues/3693)

## [0.9.0] - 2023-11-10

### Added
4 changes: 2 additions & 2 deletions components/abstractions/gradle/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -11,7 +11,7 @@ dependencies {
implementation 'com.google.guava:guava:32.1.3-jre'
implementation 'org.javatuples:javatuples:1.2'
implementation 'io.github.std-uritemplate:std-uritemplate:0.0.46'
implementation 'io.opentelemetry:opentelemetry-api:1.31.0'
implementation 'io.opentelemetry:opentelemetry-context:1.31.0'
implementation 'io.opentelemetry:opentelemetry-api:1.32.0'
implementation 'io.opentelemetry:opentelemetry-context:1.32.0'
implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1'
}
Original file line number Diff line number Diff line change
@@ -25,6 +25,7 @@

import com.microsoft.kiota.serialization.Parsable;
import com.microsoft.kiota.serialization.SerializationWriter;
import com.microsoft.kiota.serialization.ValuedEnum;

import io.opentelemetry.api.trace.Span;
import io.opentelemetry.context.Scope;
@@ -105,9 +106,10 @@ public URI getUri() throws URISyntaxException,IllegalStateException{
throw new IllegalStateException("PathParameters must contain a value for \"baseurl\" for the url to be built.");

Map<String, Object> params = new HashMap<>(pathParameters.size() + queryParameters.size());
params.putAll(pathParameters);
for (final Map.Entry<String, Object> pathParam : pathParameters.entrySet()) {
params.put(pathParam.getKey(), replaceEnumValue(pathParam.getValue()));
}
params.putAll(queryParameters);


return new URI(StdUriTemplate.expand(urlTemplate, params));
}
@@ -140,7 +142,7 @@ public void addQueryParameters(@Nullable final Object parameters) {
final Field[] fields = parameters.getClass().getFields();
for(final Field field : fields) {
try {
final Object value = field.get(parameters);
Object value = field.get(parameters);
String name = field.getName();
if (field.isAnnotationPresent(QueryParameter.class)) {
final String annotationName = field.getAnnotation(QueryParameter.class).name();
@@ -149,6 +151,7 @@ public void addQueryParameters(@Nullable final Object parameters) {
}
}
if(value != null) {
value = replaceEnumValue(value);
if(value.getClass().isArray()) {
queryParameters.put(name, Arrays.asList((Object[])value));
} else if(!value.toString().isEmpty()){
@@ -160,6 +163,20 @@ public void addQueryParameters(@Nullable final Object parameters) {
}
}
}
private Object replaceEnumValue(@Nonnull final Object source)
{
if (source instanceof ValuedEnum) {
return ((ValuedEnum)source).getValue();
} else if (source.getClass().isArray() && ((Object[])source).length > 0 && ((Object[])source)[0] instanceof ValuedEnum) {
final ArrayList<String> result = new ArrayList<>();
for(final Object item : (Object[])source) {
result.add(((ValuedEnum)item).getValue());
}
return result;
} else {
return source;
}
}
/**
* Adds query parameters to the request.
* @param name The name of the query parameter.
Original file line number Diff line number Diff line change
@@ -4,7 +4,10 @@

import com.microsoft.kiota.serialization.SerializationWriter;
import com.microsoft.kiota.serialization.SerializationWriterFactory;
import com.microsoft.kiota.serialization.mocks.TestEnum;

import java.net.URI;
import java.net.URISyntaxException;
import java.time.OffsetDateTime;
import java.time.ZoneOffset;
import java.util.ArrayList;
@@ -125,7 +128,7 @@ void DoesNotSetQueryParametersParametersIfEmptyCollection()
requestInfo.addQueryParameters(queryParameters);

// Assert
assertTrue(queryParameters.select.length == 0);
assertEquals(0, queryParameters.select.length);
var uriResult = assertDoesNotThrow(() -> requestInfo.getUri());
assertFalse(uriResult.toString().contains("select"));
}
@@ -230,18 +233,88 @@ void SetsBoundaryOnMultipartBody() {
assertFalse(multipartBody.getBoundary().isEmpty());
assertEquals("multipart/form-data; boundary=" + multipartBody.getBoundary(), requestInfo.headers.get("Content-Type").toArray()[0]);
}
@Test
void ReplacesEnumSingleValueQueryParameters() throws IllegalStateException, URISyntaxException
{
// Arrange as the request builders would
final RequestInformation requestInfo = new RequestInformation();
requestInfo.httpMethod = HttpMethod.GET;
requestInfo.urlTemplate = "http://localhost/{?dataset}";

final GetQueryParameters queryParameters = new GetQueryParameters();
queryParameters.dataset = TestEnum.First;
// Act
requestInfo.addQueryParameters(queryParameters);

// Assert
final URI uri = requestInfo.getUri();
assertEquals("http://localhost/?dataset=1", uri.toString());
}
@Test
void ReplacesEnumValuesQueryParameters() throws IllegalStateException, URISyntaxException
{
// Arrange as the request builders would
final RequestInformation requestInfo = new RequestInformation();
requestInfo.httpMethod = HttpMethod.GET;
requestInfo.urlTemplate = "http://localhost/{?datasets}";

final GetQueryParameters queryParameters = new GetQueryParameters();
queryParameters.datasets = new TestEnum[] {TestEnum.First, TestEnum.Second};
// Act
requestInfo.addQueryParameters(queryParameters);

// Assert
final URI uri = requestInfo.getUri();
assertEquals("http://localhost/?datasets=1,2", uri.toString());
}
@Test
void ReplacesEnumSingleValuePathParameters() throws IllegalStateException, URISyntaxException
{
// Arrange as the request builders would
final RequestInformation requestInfo = new RequestInformation();
requestInfo.httpMethod = HttpMethod.GET;
requestInfo.urlTemplate = "http://localhost/{dataset}";

// Act
requestInfo.pathParameters.put("dataset", ((Object)(TestEnum.First)));

// Assert
final URI uri = requestInfo.getUri();
assertEquals("http://localhost/1", uri.toString());
}
@Test
void ReplacesEnumValuesPathParameters() throws IllegalStateException, URISyntaxException
{
// Arrange as the request builders would
final RequestInformation requestInfo = new RequestInformation();
requestInfo.httpMethod = HttpMethod.GET;
requestInfo.urlTemplate = "http://localhost/{datasets}";

// Act
requestInfo.pathParameters.put("datasets", ((Object)(new TestEnum[] {TestEnum.First, TestEnum.Second})));

// Assert
final URI uri = requestInfo.getUri();
assertEquals("http://localhost/1,2", uri.toString());
}
}


/// <summary>The messages in a mailbox or folder. Read-only. Nullable.</summary>
/** The messages in a mailbox or folder. Read-only. Nullable. */
class GetQueryParameters
{
/// <summary>Select properties to be returned</summary>\
/** Select properties to be returned */
@QueryParameter(name ="%24select")
@jakarta.annotation.Nullable
public String[] select;
/// <summary>Search items by search phrases</summary>
/** Search items by search phrases */
@QueryParameter(name ="%24search")
@jakarta.annotation.Nullable
public String search;
@QueryParameter(name ="dataset")
@jakarta.annotation.Nullable
public TestEnum dataset;
@QueryParameter(name ="datasets")
@jakarta.annotation.Nullable
public TestEnum[] datasets;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package com.microsoft.kiota.serialization.mocks;

import java.util.Objects;
import com.microsoft.kiota.serialization.ValuedEnum;

public enum TestEnum implements ValuedEnum {
First("1"),
Second("2");
public final String value;
TestEnum(final String value) {
this.value = value;
}
@jakarta.annotation.Nonnull
public String getValue() { return this.value; }
@jakarta.annotation.Nullable
public static TestEnum forValue(@jakarta.annotation.Nonnull final String searchValue) {
Objects.requireNonNull(searchValue);
switch(searchValue) {
case "1": return First;
case "2": return Second;
default: return null;
}
}
}
4 changes: 2 additions & 2 deletions components/authentication/azure/gradle/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -8,8 +8,8 @@ dependencies {
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'

// This dependency is used internally, and not exposed to consumers on their own compile classpath.
implementation 'io.opentelemetry:opentelemetry-api:1.31.0'
implementation 'io.opentelemetry:opentelemetry-context:1.31.0'
implementation 'io.opentelemetry:opentelemetry-api:1.32.0'
implementation 'io.opentelemetry:opentelemetry-context:1.32.0'
implementation 'com.google.guava:guava:32.1.3-jre'
implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1'
api 'com.azure:azure-core:1.45.0'
4 changes: 2 additions & 2 deletions components/http/okHttp/gradle/dependencies.gradle
Original file line number Diff line number Diff line change
@@ -9,8 +9,8 @@ dependencies {


// This dependency is used internally, and not exposed to consumers on their own compile classpath.
implementation 'io.opentelemetry:opentelemetry-api:1.31.0'
implementation 'io.opentelemetry:opentelemetry-context:1.31.0'
implementation 'io.opentelemetry:opentelemetry-api:1.32.0'
implementation 'io.opentelemetry:opentelemetry-context:1.32.0'
implementation 'io.opentelemetry.semconv:opentelemetry-semconv:1.22.0-alpha'
implementation 'com.google.guava:guava:32.1.3-jre'
implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1'
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -26,7 +26,7 @@ org.gradle.caching=true
mavenGroupId = com.microsoft.kiota
mavenMajorVersion = 0
mavenMinorVersion = 9
mavenPatchVersion = 0
mavenPatchVersion = 1
mavenArtifactSuffix =

#These values are used to run functional tests