Skip to content

Commit 99e83df

Browse files
authored
#48: Added support for multiple jars in BucketFS content. (#69)
1 parent 6bde6c9 commit 99e83df

File tree

4 files changed

+35
-13
lines changed

4 files changed

+35
-13
lines changed

doc/changes/changes_3.0.1.md

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,24 @@
22

33
## Summary
44

5+
## Features
6+
7+
* #48: Added support for multiple jars in BucketFS content.
8+
59
## Documentation
610

711
* #58: Added UDF script creation examples to user guide
812
* #64: Fixed typo in connection definition example in user guide
913

1014
## Dependency Updates
1115

12-
* Updated `com.exasol:exasol-testcontainers:3.4.0` to `3.4.1`
16+
* Updated `com.exasol:exasol-testcontainers:3.4.0` to `3.5.0`
17+
* Updated `com.exasol:hamcrest-resultset-matcher:1.3.0` to `1.4.0`
18+
* Updated `com.exasol:error-code-crawler-maven-plugin:0.1.0` to `0.1.1`
1319
* Updated `mysql:mysql-connector-java:8.0.22` to `8.0.23`
1420
* Updated `org.mockito:mockito-junit-jupiter:3.7.0` to `3.7.7`
15-
* Updated `com.exasol:error-code-crawler-maven-plugin:0.1.0` to `0.1.1`
1621
* Updated `org.codehaus.mojo:versions-maven-plugin:2.7` to `2.8.1`
1722
* Updated `org.jacoco:jacoco-maven-plugin:0.8.5` to `0.8.6`
23+
* Updated `org.junit.jupiter:junit-jupiter-engine:5.7.0` to `5.7.1`
24+
* Updated `org.junit.jupiter:junit-jupiter-params:5.7.0` to `5.7.1`
25+
* Updated `nl.jqno.equalsverifier:equalsverifier:3.5.1` to `3.5.4`

pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
1313
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
1414
<java.version>11</java.version>
15-
<junit.version>5.7.0</junit.version>
15+
<junit.version>5.7.1</junit.version>
1616
<test.containers.version>1.15.1</test.containers.version>
1717
<surefire.and.failsafe.plugin.version>3.0.0-M4</surefire.and.failsafe.plugin.version>
1818
<sonar.coverage.jacoco.xmlReportPaths>target/site/jacoco/jacoco.xml,target/site/jacoco-it/jacoco.xml
@@ -92,7 +92,7 @@
9292
<dependency>
9393
<groupId>com.exasol</groupId>
9494
<artifactId>exasol-testcontainers</artifactId>
95-
<version>3.4.1</version>
95+
<version>3.5.0</version>
9696
<scope>test</scope>
9797
</dependency>
9898
<dependency>
@@ -116,7 +116,7 @@
116116
<dependency>
117117
<groupId>com.exasol</groupId>
118118
<artifactId>hamcrest-resultset-matcher</artifactId>
119-
<version>1.3.0</version>
119+
<version>1.4.0</version>
120120
<scope>test</scope>
121121
</dependency>
122122
<dependency>
@@ -146,7 +146,7 @@
146146
<dependency>
147147
<groupId>nl.jqno.equalsverifier</groupId>
148148
<artifactId>equalsverifier</artifactId>
149-
<version>3.5.1</version>
149+
<version>3.5.4</version>
150150
<scope>test</scope>
151151
</dependency>
152152
<dependency>

src/main/java/com/exasol/dbbuilder/dialects/exasol/BucketFsContentAdapterScriptBuilder.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
/**
77
* Builder for {@link AbstractScript}, that can in addition add JAVA content from BucketFS.
8-
*
8+
*
99
* @param <T> this type
1010
*/
1111
public abstract class BucketFsContentAdapterScriptBuilder<T extends BucketFsContentAdapterScriptBuilder<T>>
@@ -17,14 +17,19 @@ protected BucketFsContentAdapterScriptBuilder(final ExasolImmediateDatabaseObjec
1717
}
1818

1919
/**
20-
* Set the script's content to a JAR file from BucketFS.
20+
* Set the script's content to a JAR files from BucketFS.
2121
*
22-
* @param scriptClass script class to execute
23-
* @param pathToJarInBucketfs path to the jar in BucketFS
22+
* @param scriptClass script class to execute
23+
* @param jarPathsInBucketfs paths to the jar files in BucketFS
2424
* @return self
2525
*/
26-
public T bucketFsContent(final String scriptClass, final String pathToJarInBucketfs) {
27-
this.content("%scriptclass " + scriptClass + ";\n%jar " + pathToJarInBucketfs + ";\n");
26+
public T bucketFsContent(final String scriptClass, final String... jarPathsInBucketfs) {
27+
final StringBuilder bucketContent = new StringBuilder();
28+
bucketContent.append("%scriptclass ").append(scriptClass).append(";\n");
29+
for (final String jarPath : jarPathsInBucketfs) {
30+
bucketContent.append("%jar ").append(jarPath).append(";\n");
31+
}
32+
this.content(bucketContent.toString());
2833
return getSelf();
2934
}
3035
}

src/test/java/com/exasol/dbbuilder/dialects/exasol/AdapterScriptTest.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,13 @@ void testBucketFsContent() {
8989
.build().getContent(),
9090
equalTo("%scriptclass com.exasol.adapter.RequestDispatcher;\n%jar /buckets/bfsdefault/default/test.jar;\n"));
9191
}
92-
}
92+
93+
@Test
94+
void testBucketFsContentWithMultipleJars() {
95+
assertThat(
96+
defaultAdapterScriptBuilder()
97+
.bucketFsContent("com.exasol.adapter.RequestDispatcher", "/buckets/bfs/jars/test1.jar", "/buckets/bfs/jars/test2.jar")
98+
.build().getContent(),
99+
equalTo("%scriptclass com.exasol.adapter.RequestDispatcher;\n%jar /buckets/bfs/jars/test1.jar;\n%jar /buckets/bfs/jars/test2.jar;\n"));
100+
}
101+
}

0 commit comments

Comments
 (0)