Skip to content

Commit dfde37a

Browse files
authored
feat(pacmak): support adding a suffix to Java package version (#552)
Allows setting a `jsii.targets.java.maven.versionSuffix` key that defines a string to be appended at the end of the version number of the Maven package. If the suffix starts with `.` or `-`, it will be appended to the version number directly (`0.12.0` with suffix `.dp` will render `0.12.0.dp`); but otherwise, it'll be prepended with a `-` before it is concatenated with the version number (`0.12.0` with suffix `dp` will render `0.12.0-dp`).
1 parent 3ce4842 commit dfde37a

File tree

10 files changed

+52
-27
lines changed

10 files changed

+52
-27
lines changed

packages/jsii-calc-lib/package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
"package": "software.amazon.jsii.tests.calculator.lib",
1515
"maven": {
1616
"groupId": "software.amazon.jsii.tests",
17-
"artifactId": "calculator-lib"
17+
"artifactId": "calculator-lib",
18+
"versionSuffix": "devpreview"
1819
}
1920
},
2021
"dotnet": {
@@ -53,4 +54,4 @@
5354
"type": "git",
5455
"url": "https://github.com/awslabs/jsii.git"
5556
}
56-
}
57+
}

packages/jsii-calc-lib/test/assembly.jsii

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,8 @@
105105
"java": {
106106
"maven": {
107107
"artifactId": "calculator-lib",
108-
"groupId": "software.amazon.jsii.tests"
108+
"groupId": "software.amazon.jsii.tests",
109+
"versionSuffix": "devpreview"
109110
},
110111
"package": "software.amazon.jsii.tests.calculator.lib"
111112
},
@@ -540,5 +541,5 @@
540541
}
541542
},
542543
"version": "0.12.1",
543-
"fingerprint": "8rURgFQ4mU5jtzoxcgnq46MwxVxAepVcXcayr94T7Jk="
544+
"fingerprint": "MXSaKBVwpFalIulxHb3PUOMH4eKJJHPxI2u+zfEsbmA="
544545
}

packages/jsii-calc/test/assembly.jsii

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,8 @@
9191
"java": {
9292
"maven": {
9393
"artifactId": "calculator-lib",
94-
"groupId": "software.amazon.jsii.tests"
94+
"groupId": "software.amazon.jsii.tests",
95+
"versionSuffix": "devpreview"
9596
},
9697
"package": "software.amazon.jsii.tests.calculator.lib"
9798
},
@@ -165,7 +166,8 @@
165166
"java": {
166167
"maven": {
167168
"artifactId": "calculator-lib",
168-
"groupId": "software.amazon.jsii.tests"
169+
"groupId": "software.amazon.jsii.tests",
170+
"versionSuffix": "devpreview"
169171
},
170172
"package": "software.amazon.jsii.tests.calculator.lib"
171173
},
@@ -8774,5 +8776,5 @@
87748776
}
87758777
},
87768778
"version": "0.12.1",
8777-
"fingerprint": "zqNgOADt1geKGnlmywyqSBDc4sGLkoK3kxoWdDOf6ro="
8779+
"fingerprint": "AlSn00Q27h2jLbVq5Xtz97KdHszOYlZOq+al2FOvsWM="
87788780
}

packages/jsii-kernel/test/test.kernel.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -252,7 +252,7 @@ defineTest('naming allows returns the module name for different languages', asyn
252252
},
253253
java: {
254254
package: 'software.amazon.jsii.tests.calculator.lib',
255-
maven: { groupId: 'software.amazon.jsii.tests', artifactId: 'calculator-lib' }
255+
maven: { groupId: 'software.amazon.jsii.tests', artifactId: 'calculator-lib', versionSuffix: 'devpreview' },
256256
},
257257
js: { npm: '@scope/jsii-calc-lib' },
258258
python: { distName: 'scope.jsii-calc-lib', module: 'scope.jsii_calc_lib' },

packages/jsii-pacmak/lib/targets/java.ts

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -423,8 +423,9 @@ class JavaGenerator extends Generator {
423423
url: assm.repository.url
424424
},
425425

426-
...assm.targets.java.maven,
427-
'version': assm.version,
426+
'groupId': assm.targets.java.maven.groupId,
427+
'artifactId': assm.targets.java.maven.artifactId,
428+
'version': makeVersion(assm.version, assm.targets.java.maven.versionSuffix),
428429
'packaging': 'jar',
429430

430431
'properties': { 'project.build.sourceEncoding': 'UTF-8' },
@@ -492,6 +493,22 @@ class JavaGenerator extends Generator {
492493
);
493494
this.code.closeFile('pom.xml');
494495

496+
/**
497+
* Combines a version number with an optional suffix. If the suffix starts with '-' or '.', it will be
498+
* concatenated as-is to the semantic version number. Otherwise, it'll be appended to the version number with an
499+
* intercalar '-'.
500+
*
501+
* @param version the semantic version number
502+
* @param suffix the suffix, if any.
503+
*/
504+
function makeVersion(version: string, suffix?: string): string {
505+
if (!suffix) { return version; }
506+
if (!suffix.startsWith('-') && !suffix.startsWith('.')) {
507+
return `${version}-${suffix}`;
508+
}
509+
return `${version}${suffix}`;
510+
}
511+
495512
function mavenDependencies() {
496513
const dependencies = new Array<MavenDependency>();
497514
const allDeps = { ...(assm.dependencies || {}), ...self.referencedModules };
@@ -501,8 +518,9 @@ class JavaGenerator extends Generator {
501518
throw new Error(`Assembly ${assm.name} depends on ${depName}, which does not declare a java target`);
502519
}
503520
dependencies.push({
504-
...dep.targets.java.maven,
505-
version: dep.version
521+
groupId: dep.targets.java.maven.groupId,
522+
artifactId: dep.targets.java.maven.artifactId,
523+
version: makeVersion(dep.version, dep.targets.java.maven.versionSuffix),
506524
});
507525
}
508526
// The JSII java runtime base classes

packages/jsii-pacmak/test/expected.jsii-calc-base/java/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,17 @@
2525
<connection>scm:git:https://github.com/awslabs/jsii.git</connection>
2626
<url>https://github.com/awslabs/jsii.git</url>
2727
</scm>
28-
<artifactId>calculator-base</artifactId>
2928
<groupId>software.amazon.jsii.tests</groupId>
29+
<artifactId>calculator-base</artifactId>
3030
<version>0.12.1</version>
3131
<packaging>jar</packaging>
3232
<properties>
3333
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
3434
</properties>
3535
<dependencies>
3636
<dependency>
37-
<artifactId>calculator-base-of-base</artifactId>
3837
<groupId>software.amazon.jsii.tests</groupId>
38+
<artifactId>calculator-base-of-base</artifactId>
3939
<version>0.12.1</version>
4040
</dependency>
4141
<dependency>

packages/jsii-pacmak/test/expected.jsii-calc-lib/dotnet/Amazon.JSII.Tests.CalculatorPackageId.LibPackageId/.jsii

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,8 @@
105105
"java": {
106106
"maven": {
107107
"artifactId": "calculator-lib",
108-
"groupId": "software.amazon.jsii.tests"
108+
"groupId": "software.amazon.jsii.tests",
109+
"versionSuffix": "devpreview"
109110
},
110111
"package": "software.amazon.jsii.tests.calculator.lib"
111112
},
@@ -540,5 +541,5 @@
540541
}
541542
},
542543
"version": "0.12.1",
543-
"fingerprint": "8rURgFQ4mU5jtzoxcgnq46MwxVxAepVcXcayr94T7Jk="
544+
"fingerprint": "MXSaKBVwpFalIulxHb3PUOMH4eKJJHPxI2u+zfEsbmA="
544545
}

packages/jsii-pacmak/test/expected.jsii-calc-lib/java/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,17 @@
2525
<connection>scm:git:https://github.com/awslabs/jsii.git</connection>
2626
<url>https://github.com/awslabs/jsii.git</url>
2727
</scm>
28-
<artifactId>calculator-lib</artifactId>
2928
<groupId>software.amazon.jsii.tests</groupId>
30-
<version>0.12.1</version>
29+
<artifactId>calculator-lib</artifactId>
30+
<version>0.12.1-devpreview</version>
3131
<packaging>jar</packaging>
3232
<properties>
3333
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
3434
</properties>
3535
<dependencies>
3636
<dependency>
37-
<artifactId>calculator-base</artifactId>
3837
<groupId>software.amazon.jsii.tests</groupId>
38+
<artifactId>calculator-base</artifactId>
3939
<version>0.12.1</version>
4040
</dependency>
4141
<dependency>

packages/jsii-pacmak/test/expected.jsii-calc/dotnet/Amazon.JSII.Tests.CalculatorPackageId/.jsii

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,8 @@
9191
"java": {
9292
"maven": {
9393
"artifactId": "calculator-lib",
94-
"groupId": "software.amazon.jsii.tests"
94+
"groupId": "software.amazon.jsii.tests",
95+
"versionSuffix": "devpreview"
9596
},
9697
"package": "software.amazon.jsii.tests.calculator.lib"
9798
},
@@ -165,7 +166,8 @@
165166
"java": {
166167
"maven": {
167168
"artifactId": "calculator-lib",
168-
"groupId": "software.amazon.jsii.tests"
169+
"groupId": "software.amazon.jsii.tests",
170+
"versionSuffix": "devpreview"
169171
},
170172
"package": "software.amazon.jsii.tests.calculator.lib"
171173
},
@@ -8774,5 +8776,5 @@
87748776
}
87758777
},
87768778
"version": "0.12.1",
8777-
"fingerprint": "zqNgOADt1geKGnlmywyqSBDc4sGLkoK3kxoWdDOf6ro="
8779+
"fingerprint": "AlSn00Q27h2jLbVq5Xtz97KdHszOYlZOq+al2FOvsWM="
87788780
}

packages/jsii-pacmak/test/expected.jsii-calc/java/pom.xml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -46,28 +46,28 @@
4646
<connection>scm:git:https://github.com/awslabs/jsii.git</connection>
4747
<url>https://github.com/awslabs/jsii.git</url>
4848
</scm>
49-
<artifactId>calculator</artifactId>
5049
<groupId>software.amazon.jsii.tests</groupId>
50+
<artifactId>calculator</artifactId>
5151
<version>0.12.1</version>
5252
<packaging>jar</packaging>
5353
<properties>
5454
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
5555
</properties>
5656
<dependencies>
5757
<dependency>
58-
<artifactId>calculator-base</artifactId>
5958
<groupId>software.amazon.jsii.tests</groupId>
59+
<artifactId>calculator-base</artifactId>
6060
<version>0.12.1</version>
6161
</dependency>
6262
<dependency>
63-
<artifactId>calculator-base-of-base</artifactId>
6463
<groupId>software.amazon.jsii.tests</groupId>
64+
<artifactId>calculator-base-of-base</artifactId>
6565
<version>0.12.1</version>
6666
</dependency>
6767
<dependency>
68-
<artifactId>calculator-lib</artifactId>
6968
<groupId>software.amazon.jsii.tests</groupId>
70-
<version>0.12.1</version>
69+
<artifactId>calculator-lib</artifactId>
70+
<version>0.12.1-devpreview</version>
7171
</dependency>
7272
<dependency>
7373
<groupId>software.amazon.jsii</groupId>

0 commit comments

Comments
 (0)