Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

client, fix bug on POM dependency parse #2958

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion core
Submodule core updated 27 files
+7 −0 .chronus/changes/termsOfServiceUrlCheck-2024-8-23-12-59-15.md
+0 −1 packages/http-client-csharp/eng/scripts/Generate.ps1
+5 −0 packages/http-client-csharp/generator/Microsoft.Generator.CSharp/src/Properties/launchSettings.json
+1 −1 packages/http-client-csharp/generator/Microsoft.Generator.CSharp/src/Providers/ParameterProvider.cs
+172 −0 packages/http-client-csharp/generator/TestProjects/CadlRanch.Tests/Http/Parameters/Spread/SpreadTests.cs
+6 −0 packages/http-client-csharp/generator/TestProjects/CadlRanch/http/parameters/spread/Configuration.json
+48 −0 packages/http-client-csharp/generator/TestProjects/CadlRanch/http/parameters/spread/Parameters.Spread.sln
+58 −0 packages/http-client-csharp/generator/TestProjects/CadlRanch/http/parameters/spread/src/Generated/Alias.cs
+58 −0 packages/http-client-csharp/generator/TestProjects/CadlRanch/http/parameters/spread/src/Generated/Model.cs
+36 −0 ...generator/TestProjects/CadlRanch/http/parameters/spread/src/Generated/Models/BodyParameter.Serialization.cs
+17 −0 ...client-csharp/generator/TestProjects/CadlRanch/http/parameters/spread/src/Generated/Models/BodyParameter.cs
+14 −0 ...sharp/generator/TestProjects/CadlRanch/http/parameters/spread/src/Generated/ParametersSpreadModelFactory.cs
+22 −0 ...es/http-client-csharp/generator/TestProjects/CadlRanch/http/parameters/spread/src/Generated/SpreadClient.cs
+12 −0 ...-client-csharp/generator/TestProjects/CadlRanch/http/parameters/spread/src/Generated/SpreadClientOptions.cs
+16 −0 ...ges/http-client-csharp/generator/TestProjects/CadlRanch/http/parameters/spread/src/Parameters.Spread.csproj
+1,464 −0 packages/http-client-csharp/generator/TestProjects/CadlRanch/http/parameters/spread/tspCodeModel.json
+1 −1 packages/http-client-java/emitter/src/code-model-builder.ts
+4 −4 packages/http-client-java/emitter/src/external-schemas.ts
+0 −3 packages/http-client-java/eng/scripts/Build-Packages.ps1
+0 −6 ...client-generator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/mapper/PomMapper.java
+57 −53 ...erator-core/src/main/java/com/microsoft/typespec/http/client/generator/core/model/projectmodel/Project.java
+0 −4 ...-generator-mgmt/src/main/java/com/microsoft/typespec/http/client/generator/mgmt/mapper/FluentPomMapper.java
+1 −3 ...ient-java/generator/http-client-generator-test/src/main/java/com/cadl/multipart/models/InheritFileData.java
+4 −0 packages/http-client-python/eng/scripts/Build-Packages.ps1
+19 −0 packages/openapi/src/decorators.ts
+6 −0 packages/openapi/src/lib.ts
+12 −0 packages/openapi/test/decorators.test.ts
6 changes: 6 additions & 0 deletions fluentgen/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,12 @@
<version>5.9.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.11.0</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.typespec.http.client.generator.core.model.projectmodel;

import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;

import java.net.URISyntaxException;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;

public class ProjectTests {

@Test
public void testParsePom() throws URISyntaxException {
Path pomPath = Paths.get(ProjectTests.class.getClassLoader().getResource("test-pom.xml").toURI());

List<String> dependencyIdentifiers = Project.findPomDependencies(pomPath);

Assertions.assertTrue(dependencyIdentifiers.contains("com.azure.resourcemanager:azure-resourcemanager-resources:2.42.0:test"));
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT License.

package com.microsoft.typespec.http.client.generator.mgmt.mapper;

import com.microsoft.typespec.http.client.generator.core.model.clientmodel.Pom;
import com.microsoft.typespec.http.client.generator.mgmt.FluentGen;
import com.microsoft.typespec.http.client.generator.mgmt.FluentGenAccessor;
import com.microsoft.typespec.http.client.generator.mgmt.TestUtils;
import com.microsoft.typespec.http.client.generator.mgmt.model.projectmodel.FluentProject;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;
import org.mockito.Mockito;

import java.util.List;

public class FluentPomMapperTests {

private static FluentGenAccessor fluentgenAccessor;

@BeforeAll
public static void ensurePlugin() {
FluentGen fluentgen = new TestUtils.MockFluentGen();
fluentgenAccessor = new FluentGenAccessor(fluentgen);
}

@Test
public void testMergeDependencies() {
String additionalDependencyIdentifier = "com.azure.resourcemanager:azure-resourcemanager-resources:2.42.0:test";

FluentProject fluentProject = Mockito.mock(FluentProject.class);
Mockito.when(fluentProject.getGroupId()).thenReturn("com.azure.resourcemanager");
Mockito.when(fluentProject.getArtifactId()).thenReturn("azure-resourcemanager-mock");
Mockito.when(fluentProject.getVersion()).thenReturn("1.0.0-beta.1");
Mockito.when(fluentProject.getServiceName()).thenReturn("MockManagement");
Mockito.when(fluentProject.getServiceDescription()).thenReturn("MockManagement");
Mockito.when(fluentProject.getServiceDescriptionForPom()).thenReturn("MockManagement");
Mockito.when(fluentProject.getPomDependencyIdentifiers()).thenReturn(List.of(additionalDependencyIdentifier));

Pom pom = new FluentPomMapper().map(fluentProject);

Assertions.assertTrue(pom.getDependencyIdentifiers().stream().anyMatch(p -> p.equals(additionalDependencyIdentifier)));
}
}
105 changes: 105 additions & 0 deletions fluentgen/src/test/resources/test-pom.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
<!--
~ Copyright (c) Microsoft Corporation. All rights reserved.
~ Licensed under the MIT License.
~ Code generated by Microsoft (R) AutoRest Code Generator.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.azure</groupId>
<artifactId>azure-client-sdk-parent</artifactId>
<version>1.7.0</version> <!-- {x-version-update;com.azure:azure-client-sdk-parent;current} -->
<relativePath>../../parents/azure-client-sdk-parent</relativePath>
</parent>

<groupId>com.azure.resourcemanager</groupId>
<artifactId>azure-resourcemanager-databricks</artifactId>
<version>1.0.0-beta.5</version> <!-- {x-version-update;com.azure.resourcemanager:azure-resourcemanager-databricks;current} -->
<packaging>jar</packaging>

<name>Microsoft Azure SDK for AzureDatabricks Management</name>
<description>This package contains Microsoft Azure SDK for AzureDatabricks Management SDK. For documentation on how to use this package, please see https://aka.ms/azsdk/java/mgmt. The Microsoft Azure management APIs allow end users to operate on Azure Databricks Workspace / Access Connector resources. Package tag package-2023-05-01.</description>
<url>https://github.com/Azure/azure-sdk-for-java</url>

<licenses>
<license>
<name>The MIT License (MIT)</name>
<url>http://opensource.org/licenses/MIT</url>
<distribution>repo</distribution>
</license>
</licenses>

<scm>
<url>https://github.com/Azure/azure-sdk-for-java</url>
<connection>scm:git:git@github.com:Azure/azure-sdk-for-java.git</connection>
<developerConnection>scm:git:git@github.com:Azure/azure-sdk-for-java.git</developerConnection>
<tag>HEAD</tag>
</scm>
<developers>
<developer>
<id>microsoft</id>
<name>Microsoft</name>
</developer>
</developers>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<jacoco.min.linecoverage>0</jacoco.min.linecoverage>
<jacoco.min.branchcoverage>0</jacoco.min.branchcoverage>
</properties>
<dependencies>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core</artifactId>
<version>1.52.0</version> <!-- {x-version-update;com.azure:azure-core;dependency} -->
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core-management</artifactId>
<version>1.15.3</version> <!-- {x-version-update;com.azure:azure-core-management;dependency} -->
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-core-test</artifactId>
<version>1.27.0-beta.1</version> <!-- {x-version-update;com.azure:azure-core-test;dependency} -->
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>com.azure</groupId>
<artifactId>azure-core-http-jdk-httpclient</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-identity</artifactId>
<version>1.13.3</version> <!-- {x-version-update;com.azure:azure-identity;dependency} -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>4.11.0</version> <!-- {x-version-update;org.mockito:mockito-core;external_dependency} -->
<scope>test</scope>
</dependency>
<!-- bytebuddy dependencies are required for mockito 4.11.0 to work with Java 21. Mockito 4.11.0 is the last release -->
<!-- of Mockito supporting Java 8 as a baseline. -->
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>1.14.12</version> <!-- {x-version-update;testdep_net.bytebuddy:byte-buddy;external_dependency} -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-agent</artifactId>
<version>1.14.12</version> <!-- {x-version-update;testdep_net.bytebuddy:byte-buddy-agent;external_dependency} -->
<scope>test</scope>
</dependency>
<dependency>
<groupId>com.azure.resourcemanager</groupId>
<artifactId>azure-resourcemanager-resources</artifactId>
<version>2.42.0</version> <!-- {x-version-update;com.azure.resourcemanager:azure-resourcemanager-resources;dependency} -->
<scope>test</scope>
</dependency>
</dependencies>
</project>
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@autorest/java",
"version": "4.1.38",
"version": "4.1.40",
"description": "The Java extension for classic generators in AutoRest.",
"scripts": {
"autorest": "autorest",
Expand Down
4 changes: 4 additions & 0 deletions typespec-extension/changelog.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# Release History

## 0.21.2 (2024-09-30)

Compatible with compiler 0.60.

## 0.21.1 (2024-09-27)

Compatible with compiler 0.60.
Expand Down
4 changes: 2 additions & 2 deletions typespec-extension/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion typespec-extension/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@azure-tools/typespec-java",
"version": "0.21.1",
"version": "0.21.2",
"description": "TypeSpec library for emitting Java client from the TypeSpec REST protocol binding",
"keywords": [
"TypeSpec"
Expand Down
2 changes: 1 addition & 1 deletion typespec-tests/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
},
"dependencies": {
"@azure-tools/cadl-ranch-specs": "0.37.1",
"@azure-tools/typespec-java": "file:/../typespec-extension/azure-tools-typespec-java-0.21.1.tgz"
"@azure-tools/typespec-java": "file:/../typespec-extension/azure-tools-typespec-java-0.21.2.tgz"
},
"devDependencies": {
"@typespec/prettier-plugin-typespec": "~0.60.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,7 @@
import com.azure.core.util.BinaryData;

/**
* Image file of content-type "image/jpeg"
*
* The file details for the "fileData1" field.
* Image file of content-type "image/jpeg".
*/
@Immutable
public final class InheritFileData {
Expand Down
Loading