Downgrade to Java 11.

Downgrades to Java 11 in order to support consumers that are not on
Java 16 yet.

Change-Id: Ia5930d1c40d0090ca145fd14c0b63a139e4ac970
diff --git a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LogEntry.java b/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LogEntry.java
index 4394033..4c70e6f 100644
--- a/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LogEntry.java
+++ b/runtime/src/main/java/eu/mulk/quarkus/googlecloud/jsonlogging/LogEntry.java
@@ -18,21 +18,56 @@
  * <p>A few of the fields are treated specially by the fluentd instance running in Google Kubernetes
  * Engine. All other fields end up in the jsonPayload field on the Google Cloud Logging side.
  */
-record LogEntry(
-    String message,
-    String severity,
-    Timestamp timestamp,
-    @Nullable String trace,
-    @Nullable String spanId,
-    SourceLocation sourceLocation,
-    Map<String, String> labels,
-    List<StructuredParameter> parameters,
-    Map<String, String> mappedDiagnosticContext,
-    @Nullable String nestedDiagnosticContext,
-    @Nullable String type) {
+final class LogEntry {
 
-  static record SourceLocation(
-      @Nullable String file, @Nullable String line, @Nullable String function) {
+  private final String message;
+  private final String severity;
+  private final Timestamp timestamp;
+  @Nullable private final String trace;
+  @Nullable private final String spanId;
+  private final SourceLocation sourceLocation;
+  private final Map<String, String> labels;
+  private final List<StructuredParameter> parameters;
+  private final Map<String, String> mappedDiagnosticContext;
+  @Nullable private final String nestedDiagnosticContext;
+  @Nullable private final String type;
+
+  LogEntry(
+      String message,
+      String severity,
+      Timestamp timestamp,
+      @Nullable String trace,
+      @Nullable String spanId,
+      SourceLocation sourceLocation,
+      Map<String, String> labels,
+      List<StructuredParameter> parameters,
+      Map<String, String> mappedDiagnosticContext,
+      @Nullable String nestedDiagnosticContext,
+      @Nullable String type) {
+    this.message = message;
+    this.severity = severity;
+    this.timestamp = timestamp;
+    this.trace = trace;
+    this.spanId = spanId;
+    this.sourceLocation = sourceLocation;
+    this.labels = labels;
+    this.parameters = parameters;
+    this.mappedDiagnosticContext = mappedDiagnosticContext;
+    this.nestedDiagnosticContext = nestedDiagnosticContext;
+    this.type = type;
+  }
+
+  static final class SourceLocation {
+
+    @Nullable private final String file;
+    @Nullable private final String line;
+    @Nullable private final String function;
+
+    SourceLocation(@Nullable String file, @Nullable String line, @Nullable String function) {
+      this.file = file;
+      this.line = line;
+      this.function = function;
+    }
 
     JsonObject json() {
       return Json.createObjectBuilder()
@@ -43,7 +78,15 @@
     }
   }
 
-  static record Timestamp(long seconds, int nanos) {
+  static final class Timestamp {
+
+    private final long seconds;
+    private final int nanos;
+
+    Timestamp(long seconds, int nanos) {
+      this.seconds = seconds;
+      this.nanos = nanos;
+    }
 
     Timestamp(Instant t) {
       this(t.getEpochSecond(), t.getNano());