Skip to content

Commit 9a2f155

Browse files
committed
fix option
1 parent 766620b commit 9a2f155

File tree

15 files changed

+94
-122
lines changed

15 files changed

+94
-122
lines changed

bin/configs/aspnetcore-8.0-use-centralized-package-version-management.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ additionalProperties:
66
packageGuid: '{3C799344-F285-4669-8FD5-7ED9B795D5C5}'
77
aspnetCoreVersion: "8.0"
88
userSecretsGuid: 'cb87e868-8646-48ef-9bb6-344b537d0d37'
9-
centralizedPackageVersionManagement: "jghfj"
9+
centralizedPackageVersionManagement: "enable"

docs/generators/aspnetcore.md

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ These options may be applied as additional-properties (cli) or configOptions (pl
2020
| ------ | ----------- | ------ | ------- |
2121
|aspnetCoreVersion|ASP.NET Core version: 6.0, 5.0, 3.1, 3.0, 2.2, 2.1, 2.0 (deprecated)|<dl><dt>**2.0**</dt><dd>ASP.NET Core 2.0</dd><dt>**2.1**</dt><dd>ASP.NET Core 2.1</dd><dt>**2.2**</dt><dd>ASP.NET Core 2.2</dd><dt>**3.0**</dt><dd>ASP.NET Core 3.0</dd><dt>**3.1**</dt><dd>ASP.NET Core 3.1</dd><dt>**5.0**</dt><dd>ASP.NET Core 5.0</dd><dt>**6.0**</dt><dd>ASP.NET Core 6.0</dd><dt>**7.0**</dt><dd>ASP.NET Core 7.0</dd><dt>**8.0**</dt><dd>ASP.NET Core 8.0</dd></dl>|8.0|
2222
|buildTarget|Target to build an application or library|<dl><dt>**program**</dt><dd>Generate code for a standalone server</dd><dt>**library**</dt><dd>Generate code for a server abstract class library</dd></dl>|program|
23-
|centralizedPackageVersionManagementOptOut|Opt out of centralized package version management. Set this if you have a Directory.Packages.pros file but want this project to ignore it. https://devblogs.microsoft.com/nuget/introducing-central-package-management/#disabling-central-package-management| |false|
23+
|centralizedPackageVersionManagement|Option to control the usage of centralized package version management. https://devblogs.microsoft.com/nuget/introducing-central-package-management/#disabling-central-package-management|<dl><dt>**optout**</dt><dd>Opt out of centralized package version management. Set this if you have a Directory.Packages.pros file but want this project to ignore it.</dd><dt>**default**</dt><dd>Property in project won't be used</dd><dt>**enable**</dt><dd>Centralized package version management will be used</dd></dl>|null|
2424
|classModifier|Class Modifier for controller classes: Empty string or abstract.| ||
2525
|compatibilityVersion|ASP.Net Core CompatibilityVersion| |Version_2_2|
2626
|enumNameSuffix|Suffix that will be appended to all enum names.| |Enum|
@@ -47,7 +47,6 @@ These options may be applied as additional-properties (cli) or configOptions (pl
4747
|sortParamsByRequiredFlag|Sort method arguments to place required parameters before optional parameters.| |true|
4848
|sourceFolder|source folder for generated code| |src|
4949
|swashbuckleVersion|Swashbuckle version: 3.0.0 (deprecated), 4.0.0 (deprecated), 5.0.0 (deprecated), 6.4.0|<dl><dt>**3.0.0**</dt><dd>Swashbuckle 3.0.0</dd><dt>**4.0.0**</dt><dd>Swashbuckle 4.0.0</dd><dt>**5.0.0**</dt><dd>Swashbuckle 5.0.0</dd><dt>**6.4.0**</dt><dd>Swashbuckle 6.4.0</dd></dl>|6.4.0|
50-
|useCentralizedPackageVersionManagement|Uses centralized package version management. https://devblogs.microsoft.com/nuget/introducing-central-package-management/#disabling-central-package-management| |false|
5150
|useCollection|Deserialize array types to Collection&lt;T&gt; instead of List&lt;T&gt;.| |false|
5251
|useDateTimeForDate|Use DateTime to model date properties even if DateOnly supported. (.net 6.0+ only)| |false|
5352
|useDateTimeOffset|Use DateTimeOffset to model date-time properties| |false|

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetServerCodegen.java

Lines changed: 30 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,9 @@ public class AspNetServerCodegen extends AbstractCSharpCodegen {
6767
public static final String NEWTONSOFT_VERSION = "newtonsoftVersion";
6868
public static final String CENTRALIZED_PACKAGE_VERSION_MANAGEMENT = "centralizedPackageVersionManagement";
6969
public static final String USE_PACKAGE_VERSIONS = "usePackageVersions";
70+
public static final String DEFAULT = "default";
71+
public static final String ENABLE = "enable";
72+
public static final String OPTOUT = "optout";
7073

7174
@Setter
7275
private String packageGuid = "{" + randomUUID().toString().toUpperCase(Locale.ROOT) + "}";
@@ -95,27 +98,6 @@ public class AspNetServerCodegen extends AbstractCSharpCodegen {
9598
private boolean useNewtonsoft = true;
9699
private boolean useDefaultRouting = true;
97100
private String newtonsoftVersion = "3.0.0";
98-
protected CliOption centralizedPackageVersionManagement = new CliOption(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT,"Option to control the usage of centralized package version management. https://devblogs.microsoft.com/nuget/introducing-central-package-management/#disabling-central-package-management");
99-
100-
101-
@Getter
102-
private enum CentralizedPackageVersionOptions {
103-
Default("default","Property in project wont be used"),
104-
Use("use","Centralized package version management will be used"),
105-
OptOut("optout","Opt out of centralized package version management. Set this if you have a Directory.Packages.pros file but want this project to ignore it. https://devblogs.microsoft.com/nuget/introducing-central-package-management/#disabling-central-package-management");
106-
107-
private final String Value;
108-
private final String Description;
109-
110-
CentralizedPackageVersionOptions(String Value,String Description) {
111-
this.Value = Value;
112-
this.Description = Description;
113-
}
114-
115-
public String GetDescription(){
116-
return this.Description;
117-
}
118-
}
119101

120102
public AspNetServerCodegen() {
121103
super();
@@ -274,7 +256,6 @@ public AspNetServerCodegen() {
274256
"Uses the Newtonsoft JSON library.",
275257
useNewtonsoft);
276258

277-
addCentralizedPackageVersionManagementOption();
278259

279260
addOption(NEWTONSOFT_VERSION,
280261
"Version for Microsoft.AspNetCore.Mvc.NewtonsoftJson for ASP.NET Core 3.0+",
@@ -328,17 +309,15 @@ public AspNetServerCodegen() {
328309
modelClassModifier.setDefault("partial");
329310
modelClassModifier.setOptValue(modelClassModifier.getDefault());
330311
addOption(modelClassModifier.getOpt(), modelClassModifier.getDescription(), modelClassModifier.getOptValue());
331-
}
332312

333-
private void addCentralizedPackageVersionManagementOption(){
334-
centralizedPackageVersionManagement.setType("String");
335-
for (CentralizedPackageVersionOptions option : CentralizedPackageVersionOptions.values() ) {
336-
centralizedPackageVersionManagement.addEnum(option.Value, option.GetDescription());
337-
}
338-
centralizedPackageVersionManagement.setDefault(CentralizedPackageVersionOptions.Default.Value);
339-
centralizedPackageVersionManagement.setOptValue(centralizedPackageVersionManagement.getDefault());
340-
cliOptions.add(centralizedPackageVersionManagement);
341-
}
313+
CliOption centralizedPackageVersionManagement = new CliOption(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT, "Option to control the usage of centralized package version management. https://devblogs.microsoft.com/nuget/introducing-central-package-management/#disabling-central-package-management");
314+
Map<String, String> centralizedPackageVersionManagementOptions = new HashMap<>();
315+
centralizedPackageVersionManagementOptions.put(DEFAULT, "Property in project won't be used");
316+
centralizedPackageVersionManagementOptions.put(ENABLE, "Centralized package version management will be used");
317+
centralizedPackageVersionManagementOptions.put(OPTOUT, "Opt out of centralized package version management. Set this if you have a Directory.Packages.pros file but want this project to ignore it.");
318+
centralizedPackageVersionManagement.setEnum(centralizedPackageVersionManagementOptions);
319+
cliOptions.add(centralizedPackageVersionManagement);
320+
}
342321

343322
@Deprecated
344323
@Override
@@ -415,8 +394,6 @@ public void processOpts() {
415394
newtonsoftVersion = (String) additionalProperties.get(NEWTONSOFT_VERSION);
416395
}
417396

418-
setCentralizedPackageVersionManagementSettings();
419-
420397
// Check for the modifiers etc.
421398
// The order of the checks is important.
422399
setBuildTarget();
@@ -502,6 +479,25 @@ public void processOpts() {
502479
supportingFiles.add(new SupportingFile("Formatters" + File.separator + "InputFormatterStream.mustache", packageFolder + File.separator + "Formatters", "InputFormatterStream.cs"));
503480

504481
this.setTypeMapping();
482+
483+
484+
if (additionalProperties.containsKey(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT)) {
485+
additionalProperties.put(USE_PACKAGE_VERSIONS, true);
486+
switch ((String) additionalProperties.get(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT)) {
487+
case DEFAULT:
488+
additionalProperties.remove(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT);
489+
break;
490+
case ENABLE:
491+
additionalProperties.replace(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT, "true");
492+
additionalProperties.put(USE_PACKAGE_VERSIONS, false);
493+
break;
494+
case OPTOUT:
495+
additionalProperties.replace(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT, "false");
496+
break;
497+
default:
498+
throw new RuntimeException("Invalid value `" + additionalProperties.get(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT) + "` for the option `centralizedPackageVersionManagement`. Please refer to the documentation for more information.");
499+
}
500+
}
505501
}
506502

507503
@Override
@@ -719,29 +715,6 @@ private void setBuildTarget() {
719715
additionalProperties.put(IS_LIBRARY, isLibrary);
720716
}
721717

722-
/**
723-
* This method sets both the USE_CENTRALIZED_PACKAGE_VERSION_MANAGEMENT and CENTRALIZED_PACKAGE_VERSION_MANAGEMENT_OPT_OUT setting
724-
*/
725-
private void setCentralizedPackageVersionManagementSettings() {
726-
727-
additionalProperties.put(USE_PACKAGE_VERSIONS, true);
728-
729-
if(additionalProperties.containsKey(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT)) {
730-
var chosenOption = additionalProperties.get(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT);
731-
732-
if (chosenOption == CentralizedPackageVersionOptions.Default) {
733-
additionalProperties.remove(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT);
734-
}
735-
if (chosenOption == CentralizedPackageVersionOptions.Use) {
736-
additionalProperties.replace(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT,"true");
737-
additionalProperties.put(USE_PACKAGE_VERSIONS, false);
738-
}
739-
if (chosenOption == CentralizedPackageVersionOptions.OptOut) {
740-
additionalProperties.replace(CENTRALIZED_PACKAGE_VERSION_MANAGEMENT,"false");
741-
}
742-
}
743-
}
744-
745718
private void setAspnetCoreVersion(String packageFolder) {
746719
setCliOption(aspnetCoreVersion);
747720

samples/server/petstore/aspnetcore-6.0-NewtonsoftFalse/src/Org.OpenAPITools/Org.OpenAPITools.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414
<DockerfileContext>..\..</DockerfileContext>
1515
</PropertyGroup>
1616
<ItemGroup>
17-
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" />
18-
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.8" />
19-
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
20-
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.4.0" />
21-
<PackageReference Include="JsonSubTypes" Version="1.8.0" />
17+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" />
18+
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" />
19+
<PackageReference Include="Swashbuckle.AspNetCore" />
20+
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" />
21+
<PackageReference Include="JsonSubTypes" />
2222
</ItemGroup>
2323
<ItemGroup>
2424
<!--<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.0" />-->

samples/server/petstore/aspnetcore-6.0-nullableReferenceTypes/src/Org.OpenAPITools/Org.OpenAPITools.csproj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,12 @@
1515
<DockerfileContext>..\..</DockerfileContext>
1616
</PropertyGroup>
1717
<ItemGroup>
18-
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" />
19-
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.8" />
20-
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="6.4.0" />
21-
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.4.0" />
22-
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.4.0" />
23-
<PackageReference Include="JsonSubTypes" Version="1.8.0" />
18+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" />
19+
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" />
20+
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" />
21+
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" />
22+
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" />
23+
<PackageReference Include="JsonSubTypes" />
2424
</ItemGroup>
2525
<ItemGroup>
2626
<!--<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.0" />-->

samples/server/petstore/aspnetcore-6.0-pocoModels/src/Org.OpenAPITools/Org.OpenAPITools.csproj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
<DockerfileContext>..\..</DockerfileContext>
1515
</PropertyGroup>
1616
<ItemGroup>
17-
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" />
18-
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.8" />
19-
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="6.4.0" />
20-
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.4.0" />
21-
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.4.0" />
22-
<PackageReference Include="JsonSubTypes" Version="1.8.0" />
17+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" />
18+
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" />
19+
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" />
20+
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" />
21+
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" />
22+
<PackageReference Include="JsonSubTypes" />
2323
</ItemGroup>
2424
<ItemGroup>
2525
<!--<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.0" />-->

samples/server/petstore/aspnetcore-6.0-project4Models/src/Org.OpenAPITools/Org.OpenAPITools.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@
1515
</PropertyGroup>
1616
<ItemGroup>
1717
<ProjectReference Include="../Org.OpenAPITools.Models/Org.OpenAPITools.Models.csproj"/>
18-
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.8" />
19-
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="6.4.0" />
20-
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.4.0" />
21-
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.4.0" />
22-
<PackageReference Include="JsonSubTypes" Version="1.8.0" />
18+
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" />
19+
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" />
20+
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" />
21+
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" />
22+
<PackageReference Include="JsonSubTypes" />
2323
</ItemGroup>
2424
<ItemGroup>
2525
<!--<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.0" />-->

samples/server/petstore/aspnetcore-6.0-useSwashBuckle/src/Org.OpenAPITools/Org.OpenAPITools.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@
1616
</PropertyGroup>
1717
<ItemGroup>
1818
<FrameworkReference Include="Microsoft.AspNetCore.App" />
19-
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" />
20-
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="3.0.0" />
21-
<PackageReference Include="JsonSubTypes" Version="1.8.0" />
19+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" />
20+
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" />
21+
<PackageReference Include="JsonSubTypes" />
2222
</ItemGroup>
2323
<ItemGroup>
2424
<!--<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.0" />-->

samples/server/petstore/aspnetcore-6.0/src/Org.OpenAPITools/Org.OpenAPITools.csproj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@
1414
<DockerfileContext>..\..</DockerfileContext>
1515
</PropertyGroup>
1616
<ItemGroup>
17-
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="6.0.0" />
18-
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.8" />
19-
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" Version="6.4.0" />
20-
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" Version="6.4.0" />
21-
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.4.0" />
22-
<PackageReference Include="JsonSubTypes" Version="1.8.0" />
17+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" />
18+
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" />
19+
<PackageReference Include="Swashbuckle.AspNetCore.Newtonsoft" />
20+
<PackageReference Include="Swashbuckle.AspNetCore.SwaggerUI" />
21+
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" />
22+
<PackageReference Include="JsonSubTypes" />
2323
</ItemGroup>
2424
<ItemGroup>
2525
<!--<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="6.0.0" />-->

samples/server/petstore/aspnetcore-8.0-NewtonsoftFalse/src/Org.OpenAPITools/Org.OpenAPITools.csproj

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,11 @@
1414
<DockerfileContext>..\..</DockerfileContext>
1515
</PropertyGroup>
1616
<ItemGroup>
17-
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="8.0.0" />
18-
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" Version="1.10.8" />
19-
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.4.0" />
20-
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" Version="6.4.0" />
21-
<PackageReference Include="JsonSubTypes" Version="1.8.0" />
17+
<PackageReference Include="Microsoft.Extensions.Configuration.Json" />
18+
<PackageReference Include="Microsoft.VisualStudio.Azure.Containers.Tools.Targets" />
19+
<PackageReference Include="Swashbuckle.AspNetCore" />
20+
<PackageReference Include="Swashbuckle.AspNetCore.Annotations" />
21+
<PackageReference Include="JsonSubTypes" />
2222
</ItemGroup>
2323
<ItemGroup>
2424
<!--<DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="8.0.0" />-->

0 commit comments

Comments
 (0)