Skip to content

Commit a3feeee

Browse files
authored
Java DSL (#714)
* Java DSL * Update ScalaModule.java * add tests * Update ScalaModule.java
1 parent 9435ad5 commit a3feeee

File tree

5 files changed

+133
-1
lines changed

5 files changed

+133
-1
lines changed

build.sbt

+2-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,8 @@ scalacOptions ++= {
7878
// and we use it.
7979
//scalacOptions in (Compile, compile) += "-Xfatal-warnings"
8080

81-
compileOrder := CompileOrder.JavaThenScala
81+
Compile / compileOrder := CompileOrder.Mixed
82+
Test / compileOrder := CompileOrder.JavaThenScala
8283

8384
Compile / unmanagedSourceDirectories ++= {
8485
if (scalaReleaseVersion.value > 2) {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.fasterxml.jackson.module.scala.javadsl;
2+
3+
public final class DefaultScalaModule {
4+
public static com.fasterxml.jackson.module.scala.JacksonModule getInstance() {
5+
return com.fasterxml.jackson.module.scala.DefaultScalaModule$.MODULE$;
6+
}
7+
8+
private DefaultScalaModule() { }
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
package com.fasterxml.jackson.module.scala.javadsl;
2+
3+
import com.fasterxml.jackson.module.scala.*;
4+
import com.fasterxml.jackson.module.scala.deser.*;
5+
import com.fasterxml.jackson.module.scala.introspect.ScalaAnnotationIntrospectorModule;
6+
import com.fasterxml.jackson.module.scala.introspect.ScalaAnnotationIntrospectorModule$;
7+
8+
public final class ScalaModule {
9+
public static com.fasterxml.jackson.module.scala.ScalaModule.Builder builder() {
10+
return ScalaModule$.MODULE$.builder();
11+
}
12+
13+
public static EitherModule eitherModule() {
14+
return EitherModule$.MODULE$;
15+
}
16+
17+
/**
18+
* EnumModule is not available in Scala 2.x - as it relates to Scala 3 <code>enum</code>s.
19+
*/
20+
public static JacksonModule enumModule() {
21+
try {
22+
Class<?> objectClass = Class.forName("com.fasterxml.jackson.module.scala.EnumModule$");
23+
return (JacksonModule) objectClass.getDeclaredField("MODULE$").get(null);
24+
} catch (Throwable t) {
25+
return null;
26+
}
27+
}
28+
29+
public static EnumerationModule enumerationModule() {
30+
return EnumerationModule$.MODULE$;
31+
}
32+
33+
public static IteratorModule iteratorModule() {
34+
return IteratorModule$.MODULE$;
35+
}
36+
37+
public static IterableModule iterableModule() {
38+
return IterableModule$.MODULE$;
39+
}
40+
41+
public static OptionModule optionModule() {
42+
return OptionModule$.MODULE$;
43+
}
44+
45+
public static TupleModule tupleModule() {
46+
return TupleModule$.MODULE$;
47+
}
48+
49+
public static MapModule mapModule() {
50+
return MapModule$.MODULE$;
51+
}
52+
53+
public static SetModule setModule() {
54+
return SetModule$.MODULE$;
55+
}
56+
57+
public static SymbolModule symbolModule() {
58+
return SymbolModule$.MODULE$;
59+
}
60+
61+
public static ScalaAnnotationIntrospectorModule scalaAnnotationIntrospectorModule() {
62+
return ScalaAnnotationIntrospectorModule$.MODULE$;
63+
}
64+
65+
public static ScalaNumberDeserializersModule scalaNumberDeserializersModule() {
66+
return ScalaNumberDeserializersModule$.MODULE$;
67+
}
68+
69+
public static ScalaObjectDeserializerModule scalaObjectDeserializerModule() {
70+
return ScalaObjectDeserializerModule$.MODULE$;
71+
}
72+
73+
public static UntypedObjectDeserializerModule untypedObjectDeserializerModule() {
74+
return UntypedObjectDeserializerModule$.MODULE$;
75+
}
76+
77+
private ScalaModule() { }
78+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.fasterxml.jackson.module.scala.javadsl
2+
3+
import com.fasterxml.jackson.module.scala.{ BaseSpec, EnumModule }
4+
5+
class Scala3ModuleJavaDslTest extends BaseSpec {
6+
"Java DSL ScalaModule" should "support EnumModule (Scala 3 only)" in {
7+
val module = ScalaModule.enumModule()
8+
module shouldBe an[EnumModule]
9+
}
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.fasterxml.jackson.module.scala.javadsl
2+
3+
import com.fasterxml.jackson.module.scala._
4+
import com.fasterxml.jackson.module.scala.deser.UntypedObjectDeserializerModule
5+
6+
class ScalaModuleJavaDslTest extends BaseSpec {
7+
"Java DSL ScalaModule" should "support EnumerationModule" in {
8+
javadsl.ScalaModule.enumerationModule() shouldBe an[EnumerationModule]
9+
}
10+
it should "support EitherModule" in {
11+
javadsl.ScalaModule.eitherModule() shouldBe an[EitherModule]
12+
}
13+
it should "support IterableModule" in {
14+
javadsl.ScalaModule.iterableModule() shouldBe an[IterableModule]
15+
}
16+
it should "support IteratorModule" in {
17+
javadsl.ScalaModule.iteratorModule() shouldBe an[IteratorModule]
18+
}
19+
it should "support OptionModule" in {
20+
javadsl.ScalaModule.optionModule() shouldBe an[OptionModule]
21+
}
22+
it should "support SetModule" in {
23+
javadsl.ScalaModule.setModule() shouldBe a[SetModule]
24+
}
25+
it should "support MapModule" in {
26+
javadsl.ScalaModule.mapModule() shouldBe a[MapModule]
27+
}
28+
it should "support TupleModule" in {
29+
javadsl.ScalaModule.tupleModule() shouldBe a[TupleModule]
30+
}
31+
it should "support UntypedObjectDeserializerModule" in {
32+
javadsl.ScalaModule.untypedObjectDeserializerModule() shouldBe an[UntypedObjectDeserializerModule]
33+
}
34+
}

0 commit comments

Comments
 (0)