Add Scala compiler.
Change-Id: I68ffcf35b1b6ea2e42a479bdb71f868a486781db
diff --git a/pom.xml b/pom.xml
index 5f7a1f1..c5261ca 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,6 +13,8 @@
<maven.compiler.source>11</maven.compiler.source>
<maven.compiler.target>11</maven.compiler.target>
+ <scala.version>2.13.3</scala.version>
+
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
@@ -21,6 +23,7 @@
<quarkus.version>1.7.0.Final</quarkus.version>
<resources-plugin.version>3.1.0</resources-plugin.version>
<spotless-plugin.version>2.0.1</spotless-plugin.version>
+ <scala-plugin.version>4.4.0</scala-plugin.version>
<!-- <quarkus.platform.artifact-id>quarkus-universe-bom</quarkus.platform.artifact-id> -->
<quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
@@ -35,6 +38,7 @@
<jakarta-jacc-api.version>1.6.1</jakarta-jacc-api.version>
<jna.version>5.6.0</jna.version>
<jsoup.version>1.13.1</jsoup.version>
+ <kotlin-annotations.version>1.4.0</kotlin-annotations.version>
<liquibase.version>3.9.0</liquibase.version>
<postgresql.version>42.2.14</postgresql.version>
<rome.version>1.15.0</rome.version>
@@ -122,11 +126,26 @@
<dependencies>
<dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-library</artifactId>
+ <version>${scala.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.scala-lang</groupId>
+ <artifactId>scala-reflect</artifactId>
+ <version>${scala.version}</version>
+ </dependency>
+
+ <dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-agroal</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
+ <artifactId>quarkus-scala</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>io.quarkus</groupId>
<artifactId>quarkus-elytron-security-properties-file</artifactId>
</dependency>
<dependency>
@@ -368,6 +387,77 @@
</executions>
</plugin>
+ <plugin>
+ <groupId>net.alchim31.maven</groupId>
+ <artifactId>scala-maven-plugin</artifactId>
+ <version>${scala-plugin.version}</version>
+
+ <executions>
+ <execution>
+ <id>scala-compile-first</id>
+ <phase>process-resources</phase>
+ <goals>
+ <goal>add-source</goal>
+ <goal>compile</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>scala-test-compile</id>
+ <phase>process-test-resources</phase>
+ <goals>
+ <goal>add-source</goal>
+ <goal>testCompile</goal>
+ </goals>
+ </execution>
+ </executions>
+
+ <configuration>
+ <scalaVersion>${scala.version}</scalaVersion>
+ <localInstall>false</localInstall>
+ <!--<recompileMode>incremental</recompileMode>-->
+ <args>
+ <arg>-Xsource:3</arg>
+ <!--
+ <arg>-deprecation</arg>
+ <arg>-feature</arg>
+ <arg>-explaintypes</arg>
+ <arg>-target:jvm-1.8</arg>
+ <arg>-Ypartial-unification</arg>
+ -->
+ </args>
+
+ <javacArgs>
+ <javacArg>-Xlint:deprecation</javacArg>
+ </javacArgs>
+
+ <additionalDependencies>
+
+ <!-- Hibernate -->
+ <dependency>
+ <groupId>org.hibernate</groupId>
+ <artifactId>hibernate-jpamodelgen</artifactId>
+ <version>${hibernate.version}</version>
+ </dependency>
+
+ <!-- Quarkus -->
+ <dependency>
+ <groupId>io.quarkus</groupId>
+ <artifactId>quarkus-panache-common</artifactId>
+ <version>${quarkus.version}</version>
+ </dependency>
+
+ <!-- Annotations -->
+ <dependency>
+ <groupId>org.jetbrains.kotlin</groupId>
+ <artifactId>kotlin-annotations-jvm</artifactId>
+ <version>${kotlin-annotations.version}</version>
+ </dependency>
+
+ </additionalDependencies>
+ </configuration>
+
+ </plugin>
+
</plugins>
<resources>
diff --git a/src/main/java/eu/mulk/mulkcms2/cms/about/AboutResource.java b/src/main/scala/eu/mulk/mulkcms2/cms/about/AboutResource.scala
similarity index 60%
rename from src/main/java/eu/mulk/mulkcms2/cms/about/AboutResource.java
rename to src/main/scala/eu/mulk/mulkcms2/cms/about/AboutResource.scala
index 39ecaca..0d70f53 100644
--- a/src/main/java/eu/mulk/mulkcms2/cms/about/AboutResource.java
+++ b/src/main/scala/eu/mulk/mulkcms2/cms/about/AboutResource.scala
@@ -1,23 +1,21 @@
package eu.mulk.mulkcms2.cms.about;
-import static javax.ws.rs.core.MediaType.TEXT_HTML;
-
import io.quarkus.qute.Template;
import io.quarkus.qute.TemplateInstance;
import io.quarkus.qute.api.ResourcePath;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
@Path("/about")
-public class AboutResource {
+class AboutResource {
@ResourcePath("benki/about/index.html")
- Template index;
+ var index: Template = null;
@GET
- @Produces(TEXT_HTML)
- public TemplateInstance getIndex() {
- return index.instance();
- }
+ @Produces(Array(MediaType.TEXT_HTML))
+ def getIndex(): TemplateInstance =
+ index.instance();
}