Skip to content
This repository was archived by the owner on Apr 2, 2023. It is now read-only.

Fix JSON language header override method (take 2) #83

Merged
merged 1 commit into from
Feb 27, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,7 @@
package com.google.cloud.graalvm.features.substitutions;

import com.oracle.svm.core.annotate.Alias;
import com.oracle.svm.core.annotate.RecomputeFieldValue;
import com.oracle.svm.core.annotate.RecomputeFieldValue.CustomFieldValueTransformer;
import com.oracle.svm.core.annotate.RecomputeFieldValue.Kind;
import com.oracle.svm.core.annotate.Substitute;
import com.oracle.svm.core.annotate.TargetClass;
import java.util.function.BooleanSupplier;

Expand All @@ -33,33 +31,23 @@
final class ApiClientVersionSubstitutions {

@Alias
@RecomputeFieldValue(kind = Kind.Custom, declClass = ApiVersionTransformer.class)
private static String DEFAULT_VERSION;
private String versionString;

private ApiClientVersionSubstitutions() {
}

static class ApiVersionTransformer implements CustomFieldValueTransformer {

@Override
public Object transform(
jdk.vm.ci.meta.MetaAccessProvider metaAccess,
jdk.vm.ci.meta.ResolvedJavaField original,
jdk.vm.ci.meta.ResolvedJavaField annotated,
Object receiver,
Object originalValue) {
String originalHeader = (String) originalValue;
String[] tokens = originalHeader.split(" ");
@Substitute
public String toString() {
String[] tokens = versionString.split(" ");

if (tokens.length > 0 && tokens[0].startsWith("gl-java")) {
tokens[0] += "-graalvm";
return String.join(" ", tokens);
} else {
return originalValue;
}
if (tokens.length > 0 && tokens[0].startsWith("gl-java")) {
tokens[0] += "-graalvm";
return String.join(" ", tokens);
} else {
return versionString;
}
}

private ApiClientVersionSubstitutions() {
}

static class OnlyIfInClassPath implements BooleanSupplier {

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,5 @@ Args = -H:+AllowIncompleteClasspath --report-unsupported-elements-at-runtime \
io.grpc.netty.shaded.io.netty.internal.tcnative.SSLPrivateKeyMethod,\
io.grpc.netty.shaded.io.grpc.netty,\
io.grpc.netty.shaded.io.netty.channel.epoll,\
io.grpc.netty.shaded.io.netty.channel.unix
io.grpc.netty.shaded.io.netty.channel.unix,\
com.google.api.client.googleapis.services.AbstractGoogleClientRequest$ApiClientVersion