Skip to content

Commit aeab3a8

Browse files
Yu Zengzengyu714
authored andcommitted
Encode common package version in the pom
1 parent fbde111 commit aeab3a8

File tree

3 files changed

+75
-50
lines changed

3 files changed

+75
-50
lines changed

pom.xml

Lines changed: 46 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,116 +1,123 @@
11
<?xml version="1.0" encoding="utf-8"?>
22
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
33
<modelVersion>4.0.0</modelVersion>
4+
<properties>
5+
<awssdk.version>2.17.100</awssdk.version>
6+
<aws-java-sdk.version>1.12.3</aws-java-sdk.version>
7+
<netty.version>4.1.72.Final</netty.version>
8+
<fasterxml-jackson.version>2.13.1</fasterxml-jackson.version>
9+
<logback.version>1.2.10</logback.version>
10+
</properties>
411
<dependencies>
512
<dependency>
613
<groupId>software.amazon.awssdk</groupId>
714
<artifactId>kinesis</artifactId>
8-
<version>2.17.52</version>
15+
<version>${awssdk.version}</version>
916
</dependency>
1017
<dependency>
1118
<groupId>software.amazon.awssdk</groupId>
1219
<artifactId>annotations</artifactId>
13-
<version>2.17.52</version>
20+
<version>${awssdk.version}</version>
1421
</dependency>
1522
<dependency>
1623
<groupId>software.amazon.awssdk</groupId>
1724
<artifactId>apache-client</artifactId>
18-
<version>2.17.52</version>
25+
<version>${awssdk.version}</version>
1926
</dependency>
2027
<dependency>
2128
<groupId>software.amazon.awssdk</groupId>
2229
<artifactId>auth</artifactId>
23-
<version>2.17.52</version>
30+
<version>${awssdk.version}</version>
2431
</dependency>
2532
<dependency>
2633
<groupId>software.amazon.awssdk</groupId>
2734
<artifactId>aws-cbor-protocol</artifactId>
28-
<version>2.17.52</version>
35+
<version>${awssdk.version}</version>
2936
</dependency>
3037
<dependency>
3138
<groupId>software.amazon.awssdk</groupId>
3239
<artifactId>aws-core</artifactId>
33-
<version>2.17.52</version>
40+
<version>${awssdk.version}</version>
3441
</dependency>
3542
<dependency>
3643
<groupId>software.amazon.awssdk</groupId>
3744
<artifactId>aws-json-protocol</artifactId>
38-
<version>2.17.52</version>
45+
<version>${awssdk.version}</version>
3946
</dependency>
4047
<dependency>
4148
<groupId>software.amazon.awssdk</groupId>
4249
<artifactId>aws-query-protocol</artifactId>
43-
<version>2.17.102</version>
50+
<version>${awssdk.version}</version>
4451
</dependency>
4552
<dependency>
4653
<groupId>software.amazon.awssdk</groupId>
4754
<artifactId>cloudwatch</artifactId>
48-
<version>2.17.52</version>
55+
<version>${awssdk.version}</version>
4956
</dependency>
5057
<dependency>
5158
<groupId>software.amazon.awssdk</groupId>
5259
<artifactId>dynamodb</artifactId>
53-
<version>2.17.102</version>
60+
<version>${awssdk.version}</version>
5461
</dependency>
5562
<dependency>
5663
<groupId>software.amazon.awssdk</groupId>
5764
<artifactId>http-client-spi</artifactId>
58-
<version>2.17.52</version>
65+
<version>${awssdk.version}</version>
5966
</dependency>
6067
<dependency>
6168
<groupId>software.amazon.awssdk</groupId>
6269
<artifactId>json-utils</artifactId>
63-
<version>2.17.52</version>
70+
<version>${awssdk.version}</version>
6471
</dependency>
6572
<dependency>
6673
<groupId>software.amazon.awssdk</groupId>
6774
<artifactId>metrics-spi</artifactId>
68-
<version>2.17.52</version>
75+
<version>${awssdk.version}</version>
6976
</dependency>
7077
<dependency>
7178
<groupId>software.amazon.awssdk</groupId>
7279
<artifactId>netty-nio-client</artifactId>
73-
<version>2.17.52</version>
80+
<version>${awssdk.version}</version>
7481
</dependency>
7582
<dependency>
7683
<groupId>software.amazon.awssdk</groupId>
7784
<artifactId>protocol-core</artifactId>
78-
<version>2.17.52</version>
85+
<version>${awssdk.version}</version>
7986
</dependency>
8087
<dependency>
8188
<groupId>software.amazon.awssdk</groupId>
8289
<artifactId>profiles</artifactId>
83-
<version>2.17.102</version>
90+
<version>${awssdk.version}</version>
8491
</dependency>
8592
<dependency>
8693
<groupId>software.amazon.awssdk</groupId>
8794
<artifactId>regions</artifactId>
88-
<version>2.17.52</version>
95+
<version>${awssdk.version}</version>
8996
</dependency>
9097
<dependency>
9198
<groupId>software.amazon.awssdk</groupId>
9299
<artifactId>sdk-core</artifactId>
93-
<version>2.17.52</version>
100+
<version>${awssdk.version}</version>
94101
</dependency>
95102
<dependency>
96103
<groupId>software.amazon.awssdk</groupId>
97104
<artifactId>sts</artifactId>
98-
<version>2.17.52</version>
105+
<version>${awssdk.version}</version>
99106
</dependency>
100107
<dependency>
101108
<groupId>software.amazon.awssdk</groupId>
102109
<artifactId>third-party-jackson-core</artifactId>
103-
<version>2.17.52</version>
110+
<version>${awssdk.version}</version>
104111
</dependency>
105112
<dependency>
106113
<groupId>software.amazon.awssdk</groupId>
107114
<artifactId>third-party-jackson-dataformat-cbor</artifactId>
108-
<version>2.17.52</version>
115+
<version>${awssdk.version}</version>
109116
</dependency>
110117
<dependency>
111118
<groupId>software.amazon.awssdk</groupId>
112119
<artifactId>utils</artifactId>
113-
<version>2.17.52</version>
120+
<version>${awssdk.version}</version>
114121
</dependency>
115122
<dependency>
116123
<groupId>software.amazon.eventstream</groupId>
@@ -155,72 +162,72 @@
155162
<dependency>
156163
<groupId>com.fasterxml.jackson.core</groupId>
157164
<artifactId>jackson-annotations</artifactId>
158-
<version>2.12.4</version>
165+
<version>${fasterxml-jackson.version}</version>
159166
</dependency>
160167
<dependency>
161168
<groupId>com.fasterxml.jackson.core</groupId>
162169
<artifactId>jackson-core</artifactId>
163-
<version>2.12.4</version>
170+
<version>${fasterxml-jackson.version}</version>
164171
</dependency>
165172
<dependency>
166173
<groupId>com.fasterxml.jackson.core</groupId>
167174
<artifactId>jackson-databind</artifactId>
168-
<version>2.12.4</version>
175+
<version>${fasterxml-jackson.version}</version>
169176
</dependency>
170177
<dependency>
171178
<groupId>com.fasterxml.jackson.dataformat</groupId>
172179
<artifactId>jackson-dataformat-cbor</artifactId>
173-
<version>2.13.0</version>
180+
<version>${fasterxml-jackson.version}</version>
174181
</dependency>
175182
<dependency>
176183
<groupId>io.netty</groupId>
177184
<artifactId>netty-codec-http</artifactId>
178-
<version>4.1.68.Final</version>
185+
<version>${netty.version}</version>
179186
</dependency>
180187
<dependency>
181188
<groupId>io.netty</groupId>
182189
<artifactId>netty-codec-http2</artifactId>
183-
<version>4.1.68.Final</version>
190+
<version>${netty.version}</version>
184191
</dependency>
185192
<dependency>
186193
<groupId>io.netty</groupId>
187194
<artifactId>netty-codec</artifactId>
188-
<version>4.1.68.Final</version>
195+
<version>${netty.version}</version>
189196
</dependency>
190197
<dependency>
191198
<groupId>io.netty</groupId>
192199
<artifactId>netty-transport</artifactId>
193-
<version>4.1.72.Final</version>
200+
<version>${netty.version}</version>
194201
</dependency>
195202
<dependency>
196203
<groupId>io.netty</groupId>
197204
<artifactId>netty-resolver</artifactId>
198-
<version>4.1.68.Final</version>
205+
<version>${netty.version}</version>
199206
</dependency>
200207
<dependency>
201208
<groupId>io.netty</groupId>
202209
<artifactId>netty-common</artifactId>
203-
<version>4.1.68.Final</version>
210+
<version>${netty.version}</version>
204211
</dependency>
205212
<dependency>
206213
<groupId>io.netty</groupId>
207214
<artifactId>netty-buffer</artifactId>
208-
<version>4.1.68.Final</version>
215+
<version>${netty.version}</version>
209216
</dependency>
210217
<dependency>
211218
<groupId>io.netty</groupId>
212219
<artifactId>netty-handler</artifactId>
213-
<version>4.1.68.Final</version>
220+
<version>${netty.version}</version>
214221
</dependency>
215222
<dependency>
216223
<groupId>io.netty</groupId>
217224
<artifactId>netty-transport-native-epoll</artifactId>
218-
<version>4.1.68.Final</version>
225+
<version>${netty.version}</version>
219226
</dependency>
220227
<dependency>
221228
<groupId>io.netty</groupId>
222229
<artifactId>netty-transport-native-unix-common</artifactId>
223-
<version>4.1.68.Final</version>
230+
<version>${netty.version}</version>
224231
</dependency>
225232
<dependency>
226233
<groupId>io.reactivex.rxjava2</groupId>
@@ -285,7 +292,7 @@
285292
<dependency>
286293
<groupId>org.apache.httpcomponents</groupId>
287294
<artifactId>httpcore</artifactId>
288-
<version>4.4.14</version>
295+
<version>4.4.15</version>
289296
</dependency>
290297
<dependency>
291298
<groupId>org.checkerframework</groupId>
@@ -335,12 +342,12 @@
335342
<dependency>
336343
<groupId>ch.qos.logback</groupId>
337344
<artifactId>logback-classic</artifactId>
338-
<version>1.2.7</version>
345+
<version>${logback.version}</version>
339346
</dependency>
340347
<dependency>
341348
<groupId>ch.qos.logback</groupId>
342349
<artifactId>logback-core</artifactId>
343-
<version>1.2.10</version>
350+
<version>${logback.version}</version>
344351
</dependency>
345352
<dependency>
346353
<groupId>joda-time</groupId>

samples/sample.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
executableName = sample_kclpy_app.py
55

66
# The name of an Amazon Kinesis stream to process.
7-
streamName = words
7+
streamName = kclpysample
88

99
# Used by the KCL as the name of this application. Will be used as the name
1010
# of an Amazon DynamoDB table which will store the lease and checkpoint
@@ -34,7 +34,7 @@ initialPositionInStream = TRIM_HORIZON
3434
# by the MultiLangDaemon.
3535

3636
# The KCL defaults to us-east-1
37-
#regionName = us-east-1
37+
regionName = us-east-1
3838

3939
# Fail over time in milliseconds. A worker which does not renew it's lease within this time interval
4040
# will be regarded as having problems and it's shards will be assigned to other workers.

setup.py

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -48,18 +48,15 @@
4848
# argparse is part of python2.7 but must be declared for python2.6
4949
'argparse',
5050
]
51-
52-
maven_pom_root = ET.parse('pom.xml').getroot()
53-
maven_pom_version = '{http://maven.apache.org/POM/4.0.0}'
54-
REMOTE_MAVEN_PACKAGES = [tuple(dep.find(maven_pom_version + attr).text for attr in ['groupId', 'artifactId', 'version'])
55-
for dep in maven_pom_root.iter(f'{maven_pom_version}dependency')]
51+
REMOTE_MAVEN_PACKAGES_FILE = 'pom.xml'
5652

5753
class MavenJarDownloader:
5854

59-
def __init__(self, on_completion, destdir=JAR_DIRECTORY, packages=REMOTE_MAVEN_PACKAGES):
55+
def __init__(self, on_completion, destdir=JAR_DIRECTORY, packages_file=REMOTE_MAVEN_PACKAGES_FILE):
6056
self.on_completion = on_completion
6157
self.destdir = destdir
62-
self.packages = packages
58+
self.packages_file = packages_file
59+
self.packages = self.parse_packages_from_pom()
6360

6461
def warning_string(self, missing_jars=[]):
6562
s = '''The following jars were not installed because they were not
@@ -79,15 +76,36 @@ def warning_string(self, missing_jars=[]):
7976
'''
8077
return s
8178

79+
def parse_packages_from_pom(self):
80+
maven_root = ET.parse(self.packages_file).getroot()
81+
maven_version = '{http://maven.apache.org/POM/4.0.0}'
82+
# dictionary of common package versions encoded in `properties` section
83+
properties = {f"${{{child.tag.replace(maven_version, '')}}}": child.text
84+
for child in maven_root.find(f'{maven_version}properties').iter() if 'version' in child.tag}
85+
86+
packages = []
87+
for dep in maven_root.iter(f'{maven_version}dependency'):
88+
dependency = []
89+
for attr in ['groupId', 'artifactId', 'version']:
90+
val = dep.find(maven_version + attr).text
91+
if val in properties:
92+
dependency.append(properties[val])
93+
else:
94+
dependency.append(val)
95+
packages.append(tuple(dependency))
96+
97+
return packages
98+
8299
def download_and_check(self):
100+
packages = self.parse_packages_from_pom()
83101
self.download_files()
84102
self.on_completion()
85103
missing_jars = self.missing_jars()
86104
if len(missing_jars) > 0:
87105
raise RuntimeError(self.warning_string(missing_jars))
88106

89-
def package_destination(self, artifcat_id, version):
90-
return '{artifcat_id}-{version}.jar'.format(artifcat_id=artifcat_id, version=version)
107+
def package_destination(self, artifact_id, version):
108+
return '{artifact_id}-{version}.jar'.format(artifact_id=artifact_id, version=version)
91109

92110
def missing_jars(self):
93111
file_list = [os.path.join(self.destdir, self.package_destination(p[1], p[2])) for p in self.packages]

0 commit comments

Comments
 (0)