Browse Source
With the introduction of the -H:+InlineBeforeAnalysis native image compiler flag in GraalVM 21.0.0, it is now possible to use an utility method and get code removal at build time. This flag will be enabled as of Spring Native 0.9.0. closes gh-25795pull/26556/head
Sébastien Deleuze
4 years ago
7 changed files with 58 additions and 57 deletions
@ -0,0 +1,39 @@
@@ -0,0 +1,39 @@
|
||||
/* |
||||
* Copyright 2002-2021 the original author or authors. |
||||
* |
||||
* Licensed under the Apache License, Version 2.0 (the "License"); |
||||
* you may not use this file except in compliance with the License. |
||||
* You may obtain a copy of the License at |
||||
* |
||||
* https://www.apache.org/licenses/LICENSE-2.0
|
||||
* |
||||
* Unless required by applicable law or agreed to in writing, software |
||||
* distributed under the License is distributed on an "AS IS" BASIS, |
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
||||
* See the License for the specific language governing permissions and |
||||
* limitations under the License. |
||||
*/ |
||||
|
||||
package org.springframework.core; |
||||
|
||||
/** |
||||
* A common delegate for detecting a GraalVM native image environment. |
||||
* |
||||
* <p>Requires using the {@code -H:+InlineBeforeAnalysis} native image compiler flag in order to allow code removal at |
||||
* build time. |
||||
* |
||||
* @author Sebastien Deleuze |
||||
* @since 5.3.4 |
||||
*/ |
||||
public abstract class NativeDetector { |
||||
|
||||
// See https://github.com/oracle/graal/blob/master/sdk/src/org.graalvm.nativeimage/src/org/graalvm/nativeimage/ImageInfo.java
|
||||
private static final boolean imageCode = (System.getProperty("org.graalvm.nativeimage.imagecode") != null); |
||||
|
||||
/** |
||||
* Returns {@code true} if invoked in the context of image building or during image runtime, else {@code false}. |
||||
*/ |
||||
public static boolean inNativeImage() { |
||||
return imageCode; |
||||
} |
||||
} |
Loading…
Reference in new issue