Skip to content

Commit 7879271

Browse files
committed
add C# Net Framework 4.7.1+ / Netstandard generator as default
1 parent f6cea77 commit 7879271

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

58 files changed

+4739
-42
lines changed

pom.xml

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
<groupId>io.swagger.codegen.v3</groupId>
1414
<artifactId>swagger-codegen-generators</artifactId>
15-
<version>1.0.51</version>
15+
<version>1.0.52-SNAPSHOT</version>
1616
<packaging>jar</packaging>
1717

1818
<build>
@@ -256,28 +256,28 @@
256256
<dependency>
257257
<groupId>org.mockito</groupId>
258258
<artifactId>mockito-core</artifactId>
259-
<version>5.11.0</version>
259+
<version>5.12.0</version>
260260
<scope>test</scope>
261261
</dependency>
262262
</dependencies>
263263
<properties>
264264
<maven.compiler.release>8</maven.compiler.release>
265-
<swagger-codegen-version>3.0.61</swagger-codegen-version>
265+
<swagger-codegen-version>3.0.62-SNAPSHOT</swagger-codegen-version>
266266
<swagger-parser-version>2.1.22</swagger-parser-version>
267-
<swagger-core-version>2.2.21</swagger-core-version>
268-
<jackson-version>2.17.0</jackson-version>
269-
<jackson-databind-version>2.17.0</jackson-databind-version>
267+
<swagger-core-version>2.2.22</swagger-core-version>
268+
<jackson-version>2.17.2</jackson-version>
269+
<jackson-databind-version>2.17.2</jackson-databind-version>
270270
<scala-version>2.11.1</scala-version>
271271
<felix-version>3.3.0</felix-version>
272272
<commons-io-version>2.16.1</commons-io-version>
273-
<commons-cli-version>1.7.0</commons-cli-version>
273+
<commons-cli-version>1.8.0</commons-cli-version>
274274
<junit-version>4.13.2</junit-version>
275275
<maven-plugin-version>1.0.0</maven-plugin-version>
276276
<commons-lang-version>3.14.0</commons-lang-version>
277277
<slf4j-version>1.7.36</slf4j-version>
278278
<scala-maven-plugin-version>3.2.1</scala-maven-plugin-version>
279-
<testng-version>7.10.1</testng-version>
280-
<surefire-version>3.2.5</surefire-version>
279+
<testng-version>7.10.2</testng-version>
280+
<surefire-version>3.3.0</surefire-version>
281281
<jmockit-version>1.49</jmockit-version>
282282
<reflections-version>0.10.2</reflections-version>
283283

src/main/java/io/swagger/codegen/v3/generators/dotnet/AbstractCSharpCodegen.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import io.swagger.codegen.v3.generators.DefaultCodegenConfig;
1212
import io.swagger.codegen.v3.generators.handlebars.csharp.CsharpHelper;
1313
import io.swagger.codegen.v3.generators.handlebars.lambda.CamelCaseLambda;
14+
import io.swagger.codegen.v3.generators.handlebars.lambda.CapitaliseLambda;
1415
import io.swagger.codegen.v3.generators.handlebars.lambda.IndentedLambda;
1516
import io.swagger.codegen.v3.generators.handlebars.lambda.LowercaseLambda;
1617
import io.swagger.codegen.v3.generators.handlebars.lambda.TitlecaseLambda;
@@ -350,6 +351,7 @@ private void addHandlebarsLambdas(Map<String, Object> objs) {
350351
.put("titlecase", new TitlecaseLambda())
351352
.put("camelcase", new CamelCaseLambda().generator(this))
352353
.put("camelcase_param", new CamelCaseLambda().generator(this).escapeAsParamName(true))
354+
.put("capitalise", new CapitaliseLambda())
353355
.put("indented", new IndentedLambda())
354356
.put("indented_8", new IndentedLambda(8, " "))
355357
.put("indented_12", new IndentedLambda(12, " "))

src/main/java/io/swagger/codegen/v3/generators/dotnet/CSharpClientCodegen.java

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
public class CSharpClientCodegen extends AbstractCSharpCodegen {
3030
@SuppressWarnings({"hiding"})
3131
private static final Logger LOGGER = LoggerFactory.getLogger(CSharpClientCodegen.class);
32+
private static final String NET471 = "v4.7.1";
3233
private static final String NET45 = "v4.5";
3334
private static final String NET40 = "v4.0";
3435
private static final String NET35 = "v3.5";
@@ -48,10 +49,10 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen {
4849
protected String modelDocPath = "docs/";
4950

5051
// Defines TargetFrameworkVersion in csproj files
51-
protected String targetFramework = NET45;
52+
protected String targetFramework = NET471;
5253

5354
// Defines nuget identifiers for target framework
54-
protected String targetFrameworkNuget = "net45";
55+
protected String targetFrameworkNuget = "net471";
5556
protected boolean supportsAsync = Boolean.TRUE;
5657
protected boolean supportsUWP = Boolean.FALSE;
5758
protected boolean netStandard = Boolean.FALSE;
@@ -106,6 +107,7 @@ public CSharpClientCodegen() {
106107
.put(NET35, ".NET Framework 3.5 compatible")
107108
.put(NET40, ".NET Framework 4.0 compatible")
108109
.put(NET45, ".NET Framework 4.5+ compatible")
110+
.put(NET471, ".NET Framework 4.71+ compatible")
109111
.put(NETSTANDARD, ".NET Standard 1.3 compatible")
110112
.put(UWP, "Universal Windows Platform (IMPORTANT: this will be decommissioned and replaced by v5.0)")
111113
.build();
@@ -186,6 +188,16 @@ public CSharpClientCodegen() {
186188

187189
@Override
188190
public void processOpts() {
191+
192+
// process targetFramework first as it is used to get Template Dir
193+
if (additionalProperties.containsKey(CodegenConstants.DOTNET_FRAMEWORK)) {
194+
setTargetFramework((String) additionalProperties.get(CodegenConstants.DOTNET_FRAMEWORK));
195+
} else {
196+
// Ensure default is set.
197+
setTargetFramework(NET471);
198+
additionalProperties.put(CodegenConstants.DOTNET_FRAMEWORK, this.targetFramework);
199+
}
200+
189201
super.processOpts();
190202

191203
/*
@@ -221,14 +233,6 @@ public void processOpts() {
221233
additionalProperties.put(CodegenConstants.VALIDATABLE, validatable);
222234
}
223235

224-
if (additionalProperties.containsKey(CodegenConstants.DOTNET_FRAMEWORK)) {
225-
setTargetFramework((String) additionalProperties.get(CodegenConstants.DOTNET_FRAMEWORK));
226-
} else {
227-
// Ensure default is set.
228-
setTargetFramework(NET45);
229-
additionalProperties.put(CodegenConstants.DOTNET_FRAMEWORK, this.targetFramework);
230-
}
231-
232236
if (NET35.equals(this.targetFramework)) {
233237
// This is correct, mono will require you build .NET 3.5 sources using 4.0 SDK
234238
additionalProperties.put(MCS_NET_VERSION_KEY, "4");
@@ -273,10 +277,14 @@ public void processOpts() {
273277

274278
setTargetFrameworkNuget("net40");
275279
setSupportsAsync(Boolean.FALSE);
276-
} else {
280+
} else if (NET45.equals(this.targetFramework)) {
277281
additionalProperties.put(MCS_NET_VERSION_KEY, "4.5.2-api");
278282
setTargetFrameworkNuget("net45");
279283
setSupportsAsync(Boolean.TRUE);
284+
} else {
285+
additionalProperties.put(MCS_NET_VERSION_KEY, "4.7.1-api");
286+
setTargetFrameworkNuget("net471");
287+
setSupportsAsync(Boolean.TRUE);
280288
}
281289

282290
if (additionalProperties.containsKey(CodegenConstants.GENERATE_PROPERTY_CHANGED)) {
@@ -375,15 +383,17 @@ public void processOpts() {
375383
clientPackageDir, "ReadOnlyDictionary.cs"));
376384
}
377385

378-
if (Boolean.FALSE.equals(this.netStandard) && Boolean.FALSE.equals(this.netCoreProjectFileFlag)) {
386+
if (Boolean.FALSE.equals(this.netStandard) && Boolean.FALSE.equals(this.netCoreProjectFileFlag) && !NET471.equals(this.targetFramework)) {
379387
supportingFiles.add(new SupportingFile("compile.mustache", "", "build.bat"));
380388
supportingFiles.add(new SupportingFile("compile-mono.sh.mustache", "", "build.sh"));
381389

382-
// copy package.config to nuget's standard location for project-level installs
383-
supportingFiles.add(new SupportingFile("packages.config.mustache", packageFolder + File.separator, "packages.config"));
390+
if (!NET471.equals(this.targetFramework)) {
391+
// copy package.config to nuget's standard location for project-level installs
392+
supportingFiles.add(new SupportingFile("packages.config.mustache", packageFolder + File.separator, "packages.config"));
393+
}
384394
// .travis.yml for travis-ci.org CI
385395
supportingFiles.add(new SupportingFile("travis.mustache", "", ".travis.yml"));
386-
} else if (Boolean.FALSE.equals(this.netCoreProjectFileFlag)) {
396+
} else if (Boolean.FALSE.equals(this.netCoreProjectFileFlag) && !NET471.equals(this.targetFramework)) {
387397
supportingFiles.add(new SupportingFile("project.json.mustache", packageFolder + File.separator, "project.json"));
388398
}
389399

@@ -420,7 +430,7 @@ public void processOpts() {
420430
supportingFiles.add(new SupportingFile("git_push.sh.mustache", "", "git_push.sh"));
421431
supportingFiles.add(new SupportingFile("gitignore.mustache", "", ".gitignore"));
422432

423-
if (optionalAssemblyInfoFlag && Boolean.FALSE.equals(this.netCoreProjectFileFlag)) {
433+
if (optionalAssemblyInfoFlag && Boolean.FALSE.equals(this.netCoreProjectFileFlag) && !NET471.equals(this.targetFramework)) {
424434
supportingFiles.add(new SupportingFile("AssemblyInfo.mustache", packageFolder + File.separator + "Properties", "AssemblyInfo.cs"));
425435
}
426436
if (optionalProjectFileFlag) {
@@ -501,6 +511,13 @@ public String getName() {
501511
return "csharp";
502512
}
503513

514+
public String getDefaultTemplateDir() {
515+
if (NET471.equals(this.targetFramework)) {
516+
return "csharp-471";
517+
}
518+
return "csharp";
519+
}
520+
504521
@Override
505522
public String getHelp() {
506523
return "Generates a CSharp client library.";

0 commit comments

Comments
 (0)