Skip to content

Commit 954f180

Browse files
author
Jakub Amanowicz
committed
CASL-1466 migrated mom10 module to v3
Signed-off-by: Jakub Amanowicz <jakub.amanowicz@here.com>
1 parent 54cd9de commit 954f180

File tree

23 files changed

+115
-83
lines changed

23 files changed

+115
-83
lines changed

build.gradle.kts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ val allModules = mapOf(
9494
Pair("here-naksha-lib-view", Pair(CleanAndTest.KOTLIN, PublishModule.NO)),
9595
Pair("here-naksha-storage-http", Pair(CleanAndTest.KOTLIN, PublishModule.NO)),
9696
Pair("here-naksha-cli", Pair(CleanAndTest.KOTLIN, PublishModule.NO)),
97+
Pair("here-naksha-lib-mom10", Pair(CleanAndTest.KOTLIN, PublishModule.YES)),
9798
)
9899

99100
fun Project.configureVanniktechMavenPublish() {

buildSrc/src/main/kotlin/Descriptions.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ private val Descriptions = mapOf(
2525
"here-naksha-lib-view" to "Naksha library, adding capabilities to combine multiple storages, maps, collections into a single virtual view.",
2626
"here-naksha-storage-http" to "TBD",
2727
"here-naksha-cli" to "The Naksha CLI tool allows users to interact with Naksha storage.",
28+
"here-naksha-lib-mom10" to "Naksha library offering support for MOM 10"
2829
)
2930

3031
fun Project.gatherDescription(): String

here-naksha-lib-core/src/jvmMain/java/com/here/naksha/lib/core/models/geojson/implementation/namespaces/HereDeltaNs.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,6 @@
3333
@Deprecated
3434
public class HereDeltaNs extends JsonObject {
3535

36-
public static final String CHANGE_STATE_PROPERTY = "changeState";
37-
public static final String REVIEW_STATE_PROPERTY = "reviewState";
38-
3936
/**
4037
* Create a new default delta namespace for new features.
4138
*/
@@ -52,10 +49,10 @@ public HereDeltaNs() {
5249
*/
5350
@JsonCreator
5451
public HereDeltaNs(
55-
@JsonProperty(CHANGE_STATE_PROPERTY) @Nullable MomChangeState changeState,
56-
@JsonProperty(REVIEW_STATE_PROPERTY) @Nullable MomReviewState reviewState) {
52+
@JsonProperty("changeState") @Nullable MomChangeState changeState,
53+
@JsonProperty("reviewState") @Nullable MomReviewState reviewState) {
5754
if (changeState == null) {
58-
changeState = EChangeState.CREATED;
55+
changeState = MomChangeState.CREATED;
5956
}
6057
if (reviewState == null) {
6158
reviewState = MomReviewState.UNPUBLISHED;

here-naksha-lib-mom10/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ Because of the above, Naksha has to:
1818

1919
### Checking `modelVersion`
2020

21-
[Mom10Verification](src/main/java/com/here/naksha/mom10/Mom10Verification.java) is responsible for
21+
[Mom10Verification](src/jvmMain/java/com/here/naksha/mom10/Mom10Verification.java) is responsible for
2222
checking whether given feature **has MOM version equal or greater to `10.0.0`**.
2323
This information can be used to determine whether a further processing is required.
2424

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
plugins {
2+
alias(libs.plugins.kotlin.multiplatform)
3+
}
4+
5+
description = gatherDescription()
6+
7+
kotlin {
8+
jvm {}
9+
sourceSets {
10+
jvmMain {
11+
jvmToolchain(23)
12+
dependencies {
13+
implementation(project(":here-naksha-lib-model"))
14+
implementation(project(":here-naksha-lib-handlers"))
15+
}
16+
}
17+
jvmTest {
18+
dependencies {
19+
implementation(libs.bundles.testing)
20+
}
21+
}
22+
}
23+
}
24+
25+
tasks {
26+
getByName<Jar>("jvmJar") { dependsOn("jvmProcessResources") }
27+
getByName<ProcessResources>("jvmTestProcessResources") { dependsOn("jvmProcessResources") }
28+
getByName<Test>("jvmTest") {
29+
useJUnitPlatform()
30+
maxHeapSize = "6g"
31+
}
32+
}
33+
34+
setOverallCoverage(0.0) // only increasing allowed!

here-naksha-lib-mom10/src/main/java/com/here/naksha/mom10/DeltaProperties.java renamed to here-naksha-lib-mom10/src/jvmMain/java/com/here/naksha/mom10/DeltaProperties.java

File renamed without changes.

here-naksha-lib-mom10/src/main/java/com/here/naksha/mom10/MetaProperties.java renamed to here-naksha-lib-mom10/src/jvmMain/java/com/here/naksha/mom10/MetaProperties.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
*/
1919
package com.here.naksha.mom10;
2020

21-
import com.here.naksha.lib.core.models.geojson.implementation.XyzProperties;
2221
import java.util.Collections;
2322
import java.util.HashSet;
2423
import java.util.Set;
@@ -28,10 +27,11 @@
2827
*/
2928
public class MetaProperties {
3029

31-
private MetaProperties() {}
30+
private MetaProperties() {
31+
}
3232

3333
/**
34-
* Renamed in MOM 10 from {@link XyzProperties#HERE_META_NS}
34+
* Renamed in MOM 10 from {@link naksha.model.objects.NakshaProperties#META_KEY}
3535
*/
3636
public static final String META = "meta";
3737

@@ -61,7 +61,7 @@ private MetaProperties() {}
6161
"updatedByUser");
6262

6363
/**
64-
* Renamed from {@link XyzProperties#HERE_DELTA_NS} and moved under {@link MetaProperties#META}
64+
* Renamed from {@link naksha.model.objects.NakshaProperties#DELTA_KEY} and moved under {@link MetaProperties#META}
6565
*/
6666
public static final String MODERATION_INFO = "moderationInfo";
6767

here-naksha-lib-mom10/src/main/java/com/here/naksha/mom10/Mom10Transformation.java renamed to here-naksha-lib-mom10/src/jvmMain/java/com/here/naksha/mom10/Mom10Transformation.java

Lines changed: 26 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -22,38 +22,36 @@
2222
import static com.here.naksha.mom10.MetaProperties.META;
2323
import static com.here.naksha.mom10.MetaProperties.MODERATION_INFO;
2424

25-
import com.here.naksha.lib.core.models.geojson.implementation.XyzFeature;
26-
import com.here.naksha.lib.core.models.geojson.implementation.XyzProperties;
27-
import com.here.naksha.lib.core.models.geojson.implementation.namespaces.EChangeState;
28-
import com.here.naksha.lib.core.models.geojson.implementation.namespaces.EReviewState;
29-
import com.here.naksha.lib.core.models.geojson.implementation.namespaces.HereDeltaNs;
30-
import com.here.naksha.lib.core.models.geojson.implementation.namespaces.HereMetaNs;
31-
import com.here.naksha.lib.core.util.json.JsonEnum;
3225
import java.util.Map;
26+
import naksha.model.mom.MomDeltaNs;
27+
import naksha.model.mom.MomMetaNs;
28+
import naksha.model.objects.NakshaFeature;
29+
import naksha.model.objects.NakshaProperties;
3330
import org.jetbrains.annotations.NotNull;
3431
import org.jetbrains.annotations.Nullable;
3532

3633
public class Mom10Transformation {
3734

38-
private Mom10Transformation() {}
35+
private Mom10Transformation() {
36+
}
3937

40-
public static void populatePreMom10Namespaces(@Nullable XyzFeature feature) {
38+
public static void populatePreMom10Namespaces(@Nullable NakshaFeature feature) {
4139
if (feature == null) {
4240
return;
4341
}
4442

45-
XyzProperties properties = feature.getProperties();
43+
NakshaProperties properties = feature.getProperties();
4644
Map<String, Object> meta = (Map<String, Object>) properties.get(META);
4745
if (meta != null && !meta.isEmpty()) {
48-
HereDeltaNs deltaNs = deltaNs(meta);
49-
properties.setDeltaNamespace(deltaNs);
50-
HereMetaNs metaNs = metaNs(meta);
51-
properties.setMetaNamespace(metaNs);
46+
MomDeltaNs deltaNs = deltaNs(meta);
47+
properties.setDelta(deltaNs);
48+
MomMetaNs metaNs = metaNs(meta);
49+
properties.setMeta(metaNs);
5250
}
5351
}
5452

55-
private static @NotNull HereMetaNs metaNs(@NotNull Map<String, Object> meta) {
56-
HereMetaNs metaNs = new HereMetaNs();
53+
private static @NotNull MomMetaNs metaNs(@NotNull Map<String, Object> meta) {
54+
MomMetaNs metaNs = new MomMetaNs();
5755
for (String metaKey : COMMON_META_PROPERTIES) {
5856
Object value = meta.get(metaKey);
5957
if (value != null) {
@@ -63,19 +61,19 @@ public static void populatePreMom10Namespaces(@Nullable XyzFeature feature) {
6361
return metaNs;
6462
}
6563

66-
private static @Nullable HereDeltaNs deltaNs(@NotNull Map<String, Object> meta) {
64+
private static @Nullable MomDeltaNs deltaNs(@NotNull Map<String, Object> meta) {
6765
Map<String, Object> moderationInfo = (Map<String, Object>) meta.get(MODERATION_INFO);
6866
if (moderationInfo == null) {
6967
return null;
7068
} else {
71-
HereDeltaNs deltaNs = new HereDeltaNs();
72-
String rawChangeState = (String) moderationInfo.get(DeltaProperties.CHANGE_STATE);
73-
if (rawChangeState != null) {
74-
deltaNs.setChangeState(JsonEnum.get(EChangeState.class, rawChangeState));
69+
MomDeltaNs deltaNs = new MomDeltaNs();
70+
String changeState = (String) moderationInfo.get(DeltaProperties.CHANGE_STATE);
71+
if (changeState != null) {
72+
deltaNs.setChangeState(changeState);
7573
}
76-
String rawReviewState = (String) moderationInfo.get(DeltaProperties.REVIEW_STATE);
77-
if (rawChangeState != null) {
78-
deltaNs.setReviewState(JsonEnum.get(EReviewState.class, rawReviewState));
74+
String reviewState = (String) moderationInfo.get(DeltaProperties.REVIEW_STATE);
75+
if (reviewState != null) {
76+
deltaNs.setReviewState(reviewState);
7977
}
8078
String originId = (String) moderationInfo.get(DeltaProperties.ORIGIN_ID);
8179
if (originId != null) {
@@ -89,9 +87,9 @@ public static void populatePreMom10Namespaces(@Nullable XyzFeature feature) {
8987
}
9088
}
9189

92-
public static void dropPreMom10Namespaces(@Nullable XyzFeature feature) {
93-
XyzProperties properties = feature.getProperties();
94-
properties.remove(XyzProperties.HERE_META_NS);
95-
properties.remove(XyzProperties.HERE_DELTA_NS);
90+
public static void dropPreMom10Namespaces(@Nullable NakshaFeature feature) {
91+
NakshaProperties properties = feature.getProperties();
92+
properties.remove(NakshaProperties.META_KEY);
93+
properties.remove(NakshaProperties.DELTA_KEY);
9694
}
9795
}

here-naksha-lib-mom10/src/main/java/com/here/naksha/mom10/Mom10Verification.java renamed to here-naksha-lib-mom10/src/jvmMain/java/com/here/naksha/mom10/Mom10Verification.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,23 @@
1818
*/
1919
package com.here.naksha.mom10;
2020

21-
import com.here.naksha.lib.core.models.geojson.implementation.XyzFeature;
22-
import com.here.naksha.lib.core.util.json.JsonObject;
2321
import java.util.Map;
2422
import java.util.regex.Matcher;
2523
import java.util.regex.Pattern;
24+
import naksha.base.AnyObject;
25+
import naksha.model.objects.NakshaFeature;
2626
import org.jetbrains.annotations.NotNull;
2727
import org.jetbrains.annotations.Nullable;
2828

2929
public class Mom10Verification {
3030

3131
private static final Pattern SHORT_SEM_VER = Pattern.compile("^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\..+$");
3232

33-
private Mom10Verification() {}
33+
private Mom10Verification() {
34+
}
3435

35-
public static boolean isMom10OrGreater(JsonObject rawFeature) {
36-
Map properties = nestedMapOrNull(rawFeature, XyzFeature.PROPERTIES);
36+
public static boolean isMom10OrGreater(AnyObject rawFeature) {
37+
Map properties = nestedMapOrNull(rawFeature, NakshaFeature.PROPERTIES_KEY);
3738
if (properties != null) {
3839
Map meta = nestedMapOrNull(properties, MetaProperties.META);
3940
if (meta != null && meta.get(MetaProperties.MODEL_VERSION) instanceof String modelVersion) {

here-naksha-lib-mom10/src/test/java/com/here/naksha/mom10/Mom10VerificationTest.java renamed to here-naksha-lib-mom10/src/jvmTest/java/com/here/naksha/mom10/Mom10VerificationTest.java

Lines changed: 19 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,18 +2,20 @@
22

33
import static org.junit.jupiter.api.Named.named;
44

5-
import com.here.naksha.lib.core.models.geojson.implementation.XyzFeature;
6-
import com.here.naksha.lib.core.models.geojson.implementation.namespaces.HereMetaNs;
7-
import com.here.naksha.lib.core.util.json.JsonObject;
85
import java.util.stream.Stream;
6+
import naksha.base.AnyObject;
7+
import naksha.model.mom.MomMetaNs;
8+
import naksha.model.objects.NakshaFeature;
99
import org.junit.jupiter.api.Assertions;
1010
import org.junit.jupiter.api.Named;
1111
import org.junit.jupiter.params.ParameterizedTest;
1212
import org.junit.jupiter.params.provider.MethodSource;
1313

1414
class Mom10VerificationTest {
1515

16-
record VerificationCase(JsonObject rawFeature, boolean isAtLeastMom10) {}
16+
record VerificationCase(AnyObject rawFeature, boolean isAtLeastMom10) {
17+
18+
}
1719

1820
@ParameterizedTest
1921
@MethodSource
@@ -29,28 +31,31 @@ private static Stream<Named<VerificationCase>> shouldVerifyIfFeatureIsInMom10()
2931
named("10.0.0 version in correct field => true", new VerificationCase(featureWithVersionInMeta("10.0.0"), true)),
3032
named("10.0 version in correct field => true", new VerificationCase(featureWithVersionInMeta("10.0.0"), true)),
3133
named("10 version in correct field => true", new VerificationCase(featureWithVersionInMeta("10.0.0"), true)),
32-
named("10.0.1-lorem-ipsum version in correct field => true", new VerificationCase(featureWithVersionInMeta("10.0.1-lorem-ipsum"), true)),
34+
named("10.0.1-lorem-ipsum version in correct field => true",
35+
new VerificationCase(featureWithVersionInMeta("10.0.1-lorem-ipsum"), true)),
3336
named("12.0.3 version in correct field => true", new VerificationCase(featureWithVersionInMeta("12.0.3"), true)),
3437
named("9.9.9 version in correct field => false", new VerificationCase(featureWithVersionInMeta("9.9.9"), false)),
35-
named("Invalid string in correct field => false", new VerificationCase(featureWithVersionInMeta("10.plus.1.equals.11-not_a_semver"), false)),
38+
named("Invalid string in correct field => false",
39+
new VerificationCase(featureWithVersionInMeta("10.plus.1.equals.11-not_a_semver"), false)),
3640
named("10.0.0 version in incorrect field => false", new VerificationCase(featureWithVersionInOldMetaNs("10.0.0"), false)),
3741
named("Newer version in incorrect field => false", new VerificationCase(featureWithVersionInOldMetaNs("12.0.0"), false)),
3842
named("Older version in incorrect field => false", new VerificationCase(featureWithVersionInOldMetaNs("8.91"), false)),
39-
named("Invalid string in incorrect field => false", new VerificationCase(featureWithVersionInOldMetaNs("11.minus.2.equals.9"), false))
43+
named("Invalid string in incorrect field => false",
44+
new VerificationCase(featureWithVersionInOldMetaNs("11.minus.2.equals.9"), false))
4045
);
4146
}
4247

43-
private static XyzFeature featureWithVersionInOldMetaNs(String modelVersion) {
44-
HereMetaNs metaNs = new HereMetaNs();
48+
private static NakshaFeature featureWithVersionInOldMetaNs(String modelVersion) {
49+
MomMetaNs metaNs = new MomMetaNs();
4550
metaNs.put("modelVersion", modelVersion);
46-
XyzFeature feature = new XyzFeature();
47-
feature.getProperties().setMetaNamespace(metaNs);
51+
NakshaFeature feature = new NakshaFeature();
52+
feature.getProperties().setMeta(metaNs);
4853
return feature;
4954
}
5055

51-
private static XyzFeature featureWithVersionInMeta(String modelVersion) {
52-
XyzFeature feature = new XyzFeature();
53-
JsonObject newMeta = new JsonObject();
56+
private static NakshaFeature featureWithVersionInMeta(String modelVersion) {
57+
NakshaFeature feature = new NakshaFeature();
58+
AnyObject newMeta = new AnyObject();
5459
newMeta.put(MetaProperties.MODEL_VERSION, modelVersion);
5560
feature.getProperties().put(MetaProperties.META, newMeta);
5661
return feature;

0 commit comments

Comments
 (0)