Skip to content

Commit 9880b96

Browse files
committed
Moved tablesaw build to javascript. Updated dependencies and jooby version. Requires java 17
1 parent bfad7f2 commit 9880b96

16 files changed

+155
-199
lines changed

build.groovy

-194
This file was deleted.

build.js

+150
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
importPackage(Packages.tablesaw);
2+
importPackage(Packages.tablesaw.rules);
3+
importPackage(Packages.org.freecompany.redline);
4+
importPackage(Packages.org.freecompany.redline.header);
5+
importPackage(Packages.org.freecompany.redline.payload);
6+
importPackage(Packages.groovy.yaml);
7+
importPackage(Packages.java.nio.file);
8+
importPackage(Packages.java.io);
9+
importPackage(Packages.org.yaml.snakeyaml);
10+
11+
saw.setProperty(Tablesaw.PROP_MULTI_THREAD_OUTPUT, Tablesaw.PROP_VALUE_ON);
12+
13+
//Do not use '-' in version string, it breaks rpm uninstall.
14+
var release = saw.getProperty("KAIROS_RELEASE_NUMBER", "1"); //package release number
15+
16+
saw.includeDefinitionFile("definitions.xml");
17+
18+
var rpmDir = "target/rpm";
19+
new DirectoryRule("target");
20+
var rpmDirRule = new DirectoryRule(rpmDir);
21+
22+
//Read pom file to get version out
23+
var pom = saw.parsePomFile("pom.xml");
24+
var version = pom.getVersion();
25+
26+
//Read stork definitions
27+
var yaml = new Yaml();
28+
var yamlMap = yaml.load(Files.readString(Path.of("src/main/launchers/stork.yml")));
29+
30+
var programName = yamlMap.get("name");
31+
var summary = yamlMap.get("short_description");
32+
var description = yamlMap.get("long_description");
33+
34+
35+
var mvnRule = new SimpleRule("maven-package")
36+
.setDescription("Run maven package build")
37+
.setMakeAction("doMavenBuild");
38+
39+
function doMavenBuild(rule)
40+
{
41+
saw.exec(`mvn package`);
42+
}
43+
44+
rpmFile = `${programName}-${version}-${release}.rpm`
45+
srcRpmFile = `${programName}-${version}-${release}.src.rpm`
46+
47+
//------------------------------------------------------------------------------
48+
//Build rpm file
49+
rpmBaseInstallDir = "/opt/topic-monitor"
50+
rpmRule = new SimpleRule("package-rpm").setDescription("Build RPM Package")
51+
.addDepend(mvnRule)
52+
.addDepend(rpmDirRule)
53+
.addTarget(`${rpmDir}/${rpmFile}`)
54+
.setMakeAction("doRPM")
55+
.setProperty("dependency", "on");
56+
57+
function doRPM(rule)
58+
{
59+
//Build rpm using redline rpm library
60+
host = Packages.java.net.InetAddress.getLocalHost().getHostName();
61+
rpmBuilder = new Builder();
62+
rpmBuilder.setDescription(description);
63+
rpmBuilder.group = "System Environment/Daemons";
64+
rpmBuilder.license = "license";
65+
rpmBuilder.setPackage(programName, version, release);
66+
rpmBuilder.setPlatform(Architecture.NOARCH, Os.LINUX);
67+
rpmBuilder.summary = summary;
68+
rpmBuilder.type = RpmType.BINARY;
69+
rpmBuilder.url = "http://kairosdb.org";
70+
rpmBuilder.vendor = "KairosDB";
71+
rpmBuilder.provides = programName;
72+
//prefixes = rpmBaseInstallDir
73+
rpmBuilder.buildHost = host;
74+
rpmBuilder.sourceRpm = srcRpmFile;
75+
76+
rpmBuilder.setPrefixes(rpmBaseInstallDir);
77+
rpmBuilder.addDependencyMore("jre", yamlMap.get("min_java_version"));
78+
79+
rpmBuilder.addFile("$rpmBaseInstallDir/bin/topic-monitor", new File("target/stork/bin/topic-monitor"), 0755);
80+
81+
rpmBuilder.addFile("$rpmBaseInstallDir/conf/application.conf",
82+
new File("target/stork/conf/application.conf"), 0644, new Directive(Directive.RPMFILE_CONFIG | Directive.RPMFILE_NOREPLACE));
83+
rpmBuilder.addFile("$rpmBaseInstallDir/conf/logback.xml",
84+
new File("target/stork/conf/logback.xml"), 0644, new Directive(Directive.RPMFILE_CONFIG | Directive.RPMFILE_NOREPLACE));
85+
rpmBuilder.addFile("$rpmBaseInstallDir/conf/metrics4j.conf",
86+
new File("target/stork/conf/metrics4j.conf"), 0644, new Directive(Directive.RPMFILE_CONFIG | Directive.RPMFILE_NOREPLACE));
87+
88+
addFileSetToRPM(rpmBuilder, "$rpmBaseInstallDir/lib", new RegExFileSet("target/stork/lib", ".*\\.jar"));
89+
addFileSetToRPM(rpmBuilder, "$rpmBaseInstallDir/share", new RegExFileSet("target/stork/share", ".*").recurse());
90+
91+
print(`Building RPM ${rule.getTarget()}`);
92+
outputFile = new FileOutputStream(rule.getTarget());
93+
rpmBuilder.build(outputFile.channel);
94+
outputFile.close();
95+
}
96+
97+
function addFileSetToRPM(builder, destination, files)
98+
{
99+
files.getFiles().forEach(function(file)
100+
{
101+
var f = new File(file.getBaseDir(), file.getFile());
102+
builder.addFile(destination + "/" + file.getFile(), f);
103+
});
104+
}
105+
106+
107+
debRule = new SimpleRule("package-deb").setDescription("Build Deb Package")
108+
.addDepend(rpmRule)
109+
.setMakeAction("doDeb");
110+
111+
function doDeb(rule)
112+
{
113+
114+
}
115+
116+
117+
118+
//------------------------------------------------------------------------------
119+
//Build notification
120+
function printMessage(strTitle, strMessage)
121+
{
122+
osName = saw.getProperty("os.name");
123+
124+
var notifyDef;
125+
if (osName.startsWith("Linux"))
126+
{
127+
notifyDef = saw.getDefinition("linux-notify");
128+
}
129+
else if (osName.startsWith("Mac"))
130+
{
131+
notifyDef = saw.getDefinition("mac-notify");
132+
}
133+
134+
if (notifyDef != null)
135+
{
136+
notifyDef.set("title", strTitle);
137+
notifyDef.set("message", strMessage);
138+
saw.exec(notifyDef.getCommand());
139+
}
140+
}
141+
142+
function buildFailure(exception)
143+
{
144+
printMessage("Build Failure", exception.getMessage())
145+
}
146+
147+
function buildSuccess(target)
148+
{
149+
printMessage("Build Success", target)
150+
}

how_to_build.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
Building requires JDK 1.8 or later.
1+
Building requires JDK 17 or later.
22

33
To build set your classpath to the tablesaw jar file like so:
4-
>export CLASSPATH=tools/tablesaw-1.2.6.jar
4+
>export CLASSPATH=tools/tablesaw-1.2.9.jar
55

66
Then to build type
77
>java make package-rpm

pom.xml

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<artifactId>kafka-topic-monitor</artifactId>
99
<groupId>app</groupId>
10-
<version>2.0.2</version>
10+
<version>2.1.0</version>
1111

1212
<name>kafka-topic-monitor</name>
1313

@@ -63,7 +63,7 @@
6363
<dependency>
6464
<groupId>org.kairosdb</groupId>
6565
<artifactId>metrics4j</artifactId>
66-
<version>1.0.0</version>
66+
<version>1.0.1</version>
6767
</dependency>
6868

6969
<!-- Tests -->

src/main/java/org/kairosdb/kafka/monitor/RawOffsetReader.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ protected int readTopic()
133133
continue;
134134
}
135135

136-
System.out.println("Topic: "+offset.getTopic()+" Partition: "+offset.getPartition()+" Offset: "+offset.getOffset());
136+
//System.out.println("Topic: "+offset.getTopic()+" Partition: "+offset.getPartition()+" Offset: "+offset.getOffset());
137137
//Filter out expired offsets. We can still read them long after they have expired
138138
//System.out.println(offset.getCommitTime() + " " + expireTime);
139139
if (offset.getCommitTime() > expireTime)

tools/groovy-3.0.7.jar

-7.58 MB
Binary file not shown.

tools/groovy-json-3.0.7.jar

-130 KB
Binary file not shown.

tools/groovy-xml-3.0.7.jar

-286 KB
Binary file not shown.

tools/groovy-yaml-3.0.7.jar

-9.91 KB
Binary file not shown.

tools/jackson-annotations-2.11.3.jar

-66.6 KB
Binary file not shown.

tools/jackson-core-2.11.3.jar

-343 KB
Binary file not shown.

tools/jackson-databind-2.11.3.jar

-1.36 MB
Binary file not shown.
-45.8 KB
Binary file not shown.

tools/rhino-1.7.14.jar

1.32 MB
Binary file not shown.

tools/tablesaw-1.2.6.jar

-254 KB
Binary file not shown.

tools/tablesaw-1.2.9.jar

268 KB
Binary file not shown.

0 commit comments

Comments
 (0)