Skip to content

Commit 0d718cb

Browse files
authored
adopt newer source generator (#1417)
* build on net8 * fix fmt * remove net8 for build * fix fmt * fix file load * mv proj * fix path * address comment * address comments
1 parent 7cdebbf commit 0d718cb

18 files changed

+218
-205
lines changed

kubernetes-client.sln

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
1+
3D1864AA-1FFC-4512-BB13-46055E410F73
22
Microsoft Visual Studio Solution File, Format Version 12.00
33
# Visual Studio Version 17
44
VisualStudioVersion = 17.0.31903.59
@@ -19,8 +19,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "simple", "examples\simple\s
1919
EndProject
2020
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "watch", "examples\watch\watch.csproj", "{1DDB0CCF-7CCE-4A60-BAC6-9AE1779DEDB5}"
2121
EndProject
22-
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{3D1864AA-1FFC-4512-BB13-46055E410F73}"
23-
EndProject
2422
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "KubernetesClient", "src\KubernetesClient\KubernetesClient.csproj", "{35DD7248-F9EC-4272-A32C-B0C59E5A6FA7}"
2523
EndProject
2624
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{8AF4A5C2-F0CE-47D5-A4C5-FE4AB83CA509}"
@@ -39,8 +37,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "customResource", "examples\
3937
EndProject
4038
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "generic", "examples\generic\generic.csproj", "{F06D4C3A-7825-43A8-832B-6BDE3D355486}"
4139
EndProject
42-
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibKubernetesGenerator", "src\LibKubernetesGenerator\LibKubernetesGenerator.csproj", "{64C71596-B916-46EF-8115-B53E238F79D4}"
43-
EndProject
4440
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "portforward", "examples\portforward\portforward.csproj", "{DFBB1025-BD22-459D-A04D-E2AB31E129E2}"
4541
EndProject
4642
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "prometheus", "examples\prometheus\prometheus.csproj", "{682B94E4-1761-48FF-B5D0-87B45DC0C735}"
@@ -451,29 +447,24 @@ Global
451447
{1AA79D75-E7C4-4C0C-928B-FB12EC3CBF68} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
452448
{DDB14203-DD5B-452A-A1E0-9FD98629101F} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
453449
{1DDB0CCF-7CCE-4A60-BAC6-9AE1779DEDB5} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
454-
{35DD7248-F9EC-4272-A32C-B0C59E5A6FA7} = {3D1864AA-1FFC-4512-BB13-46055E410F73}
455450
{806AD0E5-833F-42FB-A870-4BCEE7F4B17F} = {8AF4A5C2-F0CE-47D5-A4C5-FE4AB83CA509}
456451
{04DE2C84-117D-4E21-8B45-B7AE627697BD} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
457452
{B9647AD4-F6B0-406F-8B79-6781E31600EC} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
458453
{5056C4A2-5E12-4C16-8DA7-8835DA58BFF2} = {8AF4A5C2-F0CE-47D5-A4C5-FE4AB83CA509}
459454
{4D2AE427-F856-49E5-B61D-EA6B17D89051} = {8AF4A5C2-F0CE-47D5-A4C5-FE4AB83CA509}
460455
{95672061-5799-4454-ACDB-D6D330DB1EC4} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
461456
{F06D4C3A-7825-43A8-832B-6BDE3D355486} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
462-
{64C71596-B916-46EF-8115-B53E238F79D4} = {3D1864AA-1FFC-4512-BB13-46055E410F73}
463457
{DFBB1025-BD22-459D-A04D-E2AB31E129E2} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
464458
{682B94E4-1761-48FF-B5D0-87B45DC0C735} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
465459
{17AB0AD8-6C90-42DD-880C-16B5AC4A373F} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
466-
{80F19E8A-F097-4AA4-A68C-D417B96BBC68} = {3D1864AA-1FFC-4512-BB13-46055E410F73}
467460
{FD90C861-56C6-4536-B7F5-AC7779296384} = {8AF4A5C2-F0CE-47D5-A4C5-FE4AB83CA509}
468461
{F626860C-F141-45B3-9DDD-88AD3932ACAF} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
469462
{973CCB4A-F344-4C4F-81A5-0F40F7F43C07} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
470-
{21201F30-5463-4FC6-93C3-FBF157F0D46C} = {3D1864AA-1FFC-4512-BB13-46055E410F73}
471463
{9128F6DC-6B7A-417F-937A-90461D6989A8} = {8AF4A5C2-F0CE-47D5-A4C5-FE4AB83CA509}
472464
{8E266190-AE6E-44A8-948D-BD974AA82428} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
473465
{C0759F88-A010-4DEF-BD3B-E183D3328FFC} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
474466
{05DC8884-AC54-4603-AC25-AE9D9F24E7AE} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
475467
{CC41E248-2139-427E-8DD4-B047A8924FD2} = {B70AFB57-57C9-46DC-84BE-11B7DDD34B40}
476-
{F1C8276A-8A60-4362-96B8-A006314446AE} = {3D1864AA-1FFC-4512-BB13-46055E410F73}
477468
EndGlobalSection
478469
GlobalSection(ExtensibilityGlobals) = postSolution
479470
SolutionGuid = {049A763A-C891-4E8D-80CF-89DD3E22ADC7}

src/KubernetesClient.Classic/KubernetesClient.Classic.csproj

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,10 +123,7 @@
123123
</ItemGroup>
124124

125125
<ItemGroup>
126-
<CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="Generator" />
127-
<AdditionalFiles Include="..\..\swagger.json"
128-
Generator="model,modelext,api,version,versionconverterstub" />
129-
<ProjectReference Include="..\LibKubernetesGenerator\LibKubernetesGenerator.csproj"
126+
<ProjectReference Include="..\LibKubernetesGenerator\generators\LibKubernetesGenerator\LibKubernetesGenerator.csproj"
130127
OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
131128
</ItemGroup>
132129
</Project>

src/KubernetesClient.ModelConverter/KubernetesClient.ModelConverter.csproj

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55
</PropertyGroup>
66

77
<ItemGroup>
8-
<CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="Generator" />
9-
<AdditionalFiles Include="..\..\swagger.json" Generator="versionconverterautomap,version" />
10-
<ProjectReference Include="..\LibKubernetesGenerator\LibKubernetesGenerator.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
8+
<ProjectReference Include="..\LibKubernetesGenerator\generators\LibKubernetesGenerator.Automapper\LibKubernetesGenerator.Automapper.csproj" OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
119
</ItemGroup>
1210

1311
<ItemGroup>

src/KubernetesClient/KubernetesClient.csproj

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
<PropertyGroup>
44
<TargetFrameworks>net6.0;net7.0</TargetFrameworks>
55
<RootNamespace>k8s</RootNamespace>
6+
<!-- seems bug in net7 json generator, some types missing in its result
7+
net8 is still in preview, will enable it after net8 release -->
8+
<!-- <PublishAot Condition="'$(TargetFramework)' == 'net8.0'">true</PublishAot> -->
9+
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
610
</PropertyGroup>
711

812
<ItemGroup>
@@ -75,10 +79,7 @@
7579
</ItemGroup>
7680

7781
<ItemGroup>
78-
<CompilerVisibleItemMetadata Include="AdditionalFiles" MetadataName="Generator" />
79-
<AdditionalFiles Include="..\..\swagger.json"
80-
Generator="model,modelext,api,version,versionconverterstub" />
81-
<ProjectReference Include="..\LibKubernetesGenerator\LibKubernetesGenerator.csproj"
82+
<ProjectReference Include="..\LibKubernetesGenerator\generators\LibKubernetesGenerator\LibKubernetesGenerator.csproj"
8283
OutputItemType="Analyzer" ReferenceOutputAssembly="false" />
8384
</ItemGroup>
8485

src/LibKubernetesGenerator/ApiGenerator.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ namespace LibKubernetesGenerator
88
{
99
internal class ApiGenerator
1010
{
11-
public void Generate(OpenApiDocument swagger, GeneratorExecutionContext context)
11+
public void Generate(OpenApiDocument swagger, IncrementalGeneratorPostInitializationContext context)
1212
{
1313
var data = swagger.Operations
1414
.Where(o => o.Method != OpenApiOperationMethod.Options)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
using System.IO;
2+
using System.Reflection;
3+
4+
namespace LibKubernetesGenerator;
5+
6+
internal static class EmbedResource
7+
{
8+
public static string GetResource(string name)
9+
{
10+
var assembly = Assembly.GetExecutingAssembly();
11+
12+
var resourceName = assembly.GetName().Name + "." + name;
13+
14+
using var stream = assembly.GetManifestResourceStream(resourceName);
15+
using var reader = new StreamReader(stream ?? throw new FileNotFoundException(resourceName));
16+
return reader.ReadToEnd();
17+
}
18+
}

src/LibKubernetesGenerator/GeneratorExecutionContextExt.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,16 @@
11
using Microsoft.CodeAnalysis;
22
using Microsoft.CodeAnalysis.Text;
33
using Nustache.Core;
4-
using System.IO;
54
using System.Text;
65

76
namespace LibKubernetesGenerator
87
{
98
internal static class GeneratorExecutionContextExt
109
{
11-
public static void RenderToContext(this GeneratorExecutionContext context, string templatefile, object data, string generatedfile)
10+
public static void RenderToContext(this IncrementalGeneratorPostInitializationContext context, string templatefile, object data, string generatedfile)
1211
{
13-
context.AnalyzerConfigOptions.GlobalOptions.TryGetValue("build_property.projectdir", out var root);
14-
var generated = Render.FileToString(Path.Combine(root, "..", "LibKubernetesGenerator", "templates", templatefile), data);
12+
var template = EmbedResource.GetResource(templatefile);
13+
var generated = Render.StringToString(template, data);
1514
context.AddSource(generatedfile, SourceText.From(generated, Encoding.UTF8));
1615
}
1716
}

0 commit comments

Comments
 (0)