Skip to content

Commit aa6d309

Browse files
authored
lib-ext-manager migration (#405)
* enable github cicd test Signed-off-by: phmai <phuc.mai@here.com> * kotlin class for Extension to support Platform json parsing Signed-off-by: phmai <phuc.mai@here.com> * kotlin class for ExtensionConfig to support Platform json parsing Signed-off-by: phmai <phuc.mai@here.com> * change casting Signed-off-by: phmai <phuc.mai@here.com> --------- Signed-off-by: phmai <phuc.mai@here.com>
1 parent 1703f3e commit aa6d309

File tree

12 files changed

+93
-182
lines changed

12 files changed

+93
-182
lines changed

.github/workflows/reusable-build-and-publish-v3s.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ jobs:
5555
# run: gradle shadowJar jacocoTestReport jacocoTestCoverageVerification
5656
shell: bash
5757
run: |
58-
array=( here-naksha-lib-model here-naksha-lib-base here-naksha-lib-core here-naksha-lib-psql here-naksha-lib-view here-naksha-storage-http here-naksha-lib-diff here-naksha-lib-handlers here-naksha-lib-hub here-naksha-handler-activitylog)
58+
array=( here-naksha-lib-model here-naksha-lib-base here-naksha-lib-core here-naksha-lib-psql here-naksha-lib-view here-naksha-storage-http here-naksha-lib-diff here-naksha-lib-handlers here-naksha-lib-hub here-naksha-handler-activitylog here-naksha-lib-ext-manager )
5959
for item in ${array[@]}; do
6060
gradle -x jsNodeTest :$item:build :$item:jacocoTestReport :$item:jacocoTestCoverageVerification
6161
done

here-naksha-lib-core/build.gradle.kts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ description = "Naksha Core Library"
33
plugins {
44
id("naksha.java")
55
id("naksha.publish")
6+
kotlin("jvm")
67
}
78

89
java {
@@ -25,4 +26,7 @@ dependencies {
2526
testImplementation(Lib.mockito)
2627
testImplementation(Lib.json_assert)
2728
}
28-
setOverallCoverage(0.0) // only increasing allowed!
29+
setOverallCoverage(0.0) // only increasing allowed!
30+
kotlin {
31+
jvmToolchain(11)
32+
}

here-naksha-lib-core/src/main/java/com/here/naksha/lib/core/models/ExtensionConfig.java

Lines changed: 0 additions & 76 deletions
This file was deleted.

here-naksha-lib-core/src/main/java/com/here/naksha/lib/core/models/features/Extension.java

Lines changed: 0 additions & 82 deletions
This file was deleted.
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
package com.here.naksha.lib.core.models
2+
3+
import com.here.naksha.lib.core.models.features.Extension
4+
import naksha.base.AnyObject
5+
import naksha.base.NotNullProperty
6+
import naksha.base.NullableProperty
7+
import naksha.base.StringList
8+
9+
class ExtensionConfig() : AnyObject() {
10+
companion object {
11+
private val EXTENSIONS_NULL = NullableProperty<ExtensionConfig, ExtensionList>(ExtensionList::class)
12+
private val WHITELIST_DELEGATE_CLASSES_NULL = NullableProperty<ExtensionConfig, StringList>(StringList::class)
13+
private val LONG = NotNullProperty<ExtensionConfig, Long>(Long::class)
14+
private val STRING = NotNullProperty<ExtensionConfig, String>(String::class)
15+
}
16+
17+
var expiry by LONG
18+
var extensions by EXTENSIONS_NULL
19+
var whitelistDelegateClasses by WHITELIST_DELEGATE_CLASSES_NULL
20+
var env by STRING
21+
22+
constructor(expiry: Long,
23+
extensions: List<Extension>,
24+
whitelistDelegateClasses: List<String>,
25+
env: String) : this() {
26+
this.expiry = expiry
27+
this.extensions = ExtensionList.fromList(extensions)
28+
this.whitelistDelegateClasses = StringList.fromList(whitelistDelegateClasses)
29+
this.env = env
30+
}
31+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
package com.here.naksha.lib.core.models
2+
3+
import com.here.naksha.lib.core.models.features.Extension
4+
import naksha.base.ListProxy
5+
6+
class ExtensionList: ListProxy<Extension>(Extension::class) {
7+
companion object ExtensionList_C {
8+
@JvmStatic
9+
fun fromList(extensions: List<Extension>): ExtensionList =
10+
ExtensionList().apply { addAll(extensions) }
11+
}
12+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.here.naksha.lib.core.models.features
2+
3+
import naksha.base.NotNullProperty
4+
import naksha.base.NullableProperty
5+
import naksha.model.objects.NakshaFeature
6+
7+
class Extension() : NakshaFeature() {
8+
companion object {
9+
private val STRING_NULL = NullableProperty<Extension, String>(String::class)
10+
private val STRING = NotNullProperty<Extension, String>(String::class)
11+
}
12+
13+
var url by STRING
14+
15+
var version by STRING
16+
17+
var initClassName by STRING_NULL
18+
19+
constructor(
20+
id: String,
21+
url: String,
22+
version: String,
23+
initClassName: String?
24+
) : this() {
25+
this.id = id
26+
this.url = url
27+
this.version = version
28+
this.initClassName = initClassName
29+
}
30+
}

here-naksha-lib-ext-manager/build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,6 @@ dependencies {
1010
implementation(Lib.jcl_slf4j)
1111
implementation(Lib.cytodynamics)
1212
testImplementation(Lib.mockito)
13+
testImplementation(project(":here-naksha-lib-core"))
1314
}
1415
setOverallCoverage(0.0) // only increasing allowed!

here-naksha-lib-ext-manager/src/main/java/com/here/naksha/lib/extmanager/ExtensionCache.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ private void publishIntoCache(KVPair<Extension, File> result, ExtensionConfig ex
103103
final File jarFile = result.getValue();
104104
ClassLoader loader;
105105
try {
106-
loader = ClassLoaderHelper.getClassLoader(jarFile, extensionConfig.getWhilelistDelegateClass());
106+
loader = ClassLoaderHelper.getClassLoader(jarFile, extensionConfig.getWhitelistDelegateClasses());
107107
} catch (Exception e) {
108108
logger.error("Failed to load extension jar " + extension.getId(), e);
109109
return;

here-naksha-lib-ext-manager/src/test/java/com/here/naksha/lib/extmanager/BaseSetup.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package com.here.naksha.lib.extmanager;
22

3-
import com.fasterxml.jackson.core.type.TypeReference;
4-
import com.fasterxml.jackson.databind.ObjectMapper;
53
import com.here.naksha.lib.core.models.ExtensionConfig;
4+
import com.here.naksha.lib.core.models.ExtensionList;
65
import com.here.naksha.lib.core.models.features.Extension;
6+
import naksha.base.FromJsonOptions;
7+
import naksha.base.JvmBoxingUtil;
8+
import naksha.base.JvmListProxy;
9+
import naksha.base.Platform;
10+
711
import java.io.File;
812
import java.io.IOException;
913
import java.nio.file.Files;
@@ -20,8 +24,7 @@ public ExtensionConfig getExtensionConfig() {
2024
List<Extension> list;
2125
try {
2226
String data = Files.readAllLines(file).stream().collect(Collectors.joining());
23-
list = new ObjectMapper().readValue(data, new TypeReference<>() {
24-
});
27+
list = JvmBoxingUtil.box(Platform.fromJSON(data, FromJsonOptions.DEFAULT), ExtensionList.class);
2528
} catch (IOException e) {
2629
throw new RuntimeException(e);
2730
}

0 commit comments

Comments
 (0)