Skip to content

Commit e3fb2b2

Browse files
fix(java): make system property accessible for native image compilation (#1694)
* fix(java): make system properties accessible for native image compilation * 🦉 Updates from OwlBot See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
1 parent 98cac5d commit e3fb2b2

File tree

2 files changed

+38
-7
lines changed

2 files changed

+38
-7
lines changed

google-cloud-spanner/pom.xml

Lines changed: 34 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,10 @@
1616
<properties>
1717
<site.installationModule>google-cloud-spanner</site.installationModule>
1818
<opencensus.version>0.31.0</opencensus.version>
19+
<spanner.testenv.config.class>com.google.cloud.spanner.GceTestEnvConfig</spanner.testenv.config.class>
20+
<spanner.testenv.instance>projects/gcloud-devel/instances/spanner-testing-east1</spanner.testenv.instance>
21+
<spanner.gce.config.project_id>gcloud-devel</spanner.gce.config.project_id>
22+
<spanner.testenv.kms_key.name>projects/gcloud-devel/locations/us-east1/keyRings/cmek-test-key-ring/cryptoKeys/cmek-test-key</spanner.testenv.kms_key.name>
1923
</properties>
2024

2125

@@ -70,10 +74,10 @@
7074
<artifactId>maven-failsafe-plugin</artifactId>
7175
<configuration>
7276
<systemPropertyVariables>
73-
<spanner.testenv.config.class>com.google.cloud.spanner.GceTestEnvConfig</spanner.testenv.config.class>
74-
<spanner.testenv.instance>projects/gcloud-devel/instances/spanner-testing-east1</spanner.testenv.instance>
75-
<spanner.gce.config.project_id>gcloud-devel</spanner.gce.config.project_id>
76-
<spanner.testenv.kms_key.name>projects/gcloud-devel/locations/us-east1/keyRings/cmek-test-key-ring/cryptoKeys/cmek-test-key</spanner.testenv.kms_key.name>
77+
<spanner.testenv.config.class>${spanner.testenv.config.class}</spanner.testenv.config.class>
78+
<spanner.testenv.instance>${spanner.testenv.instance}</spanner.testenv.instance>
79+
<spanner.gce.config.project_id>${spanner.gce.config.project_id}</spanner.gce.config.project_id>
80+
<spanner.testenv.kms_key.name>${spanner.testenv.kms_key.name}</spanner.testenv.kms_key.name>
7781
</systemPropertyVariables>
7882
<forkedProcessTimeoutInSeconds>3000</forkedProcessTimeoutInSeconds>
7983
</configuration>
@@ -100,6 +104,32 @@
100104
</execution>
101105
</executions>
102106
</plugin>
107+
108+
<!--Configurations for native image tests-->
109+
<plugin>
110+
<groupId>org.apache.maven.plugins</groupId>
111+
<artifactId>maven-surefire-plugin</artifactId>
112+
<configuration>
113+
<systemPropertyVariables>
114+
<spanner.testenv.config.class>${spanner.testenv.config.class}</spanner.testenv.config.class>
115+
<spanner.testenv.instance>${spanner.testenv.instance}</spanner.testenv.instance>
116+
<spanner.gce.config.project_id>${spanner.gce.config.project_id}</spanner.gce.config.project_id>
117+
<spanner.testenv.kms_key.name>${spanner.testenv.kms_key.name}</spanner.testenv.kms_key.name>
118+
</systemPropertyVariables>
119+
<forkedProcessTimeoutInSeconds>3000</forkedProcessTimeoutInSeconds>
120+
</configuration>
121+
</plugin>
122+
<plugin>
123+
<groupId>org.graalvm.buildtools</groupId>
124+
<artifactId>native-maven-plugin</artifactId>
125+
<configuration>
126+
<buildArgs combine.children="append">
127+
<buildArg>-Dspanner.testenv.config.class=${spanner.testenv.config.class}</buildArg>
128+
</buildArgs>
129+
</configuration>
130+
</plugin>
131+
<!--Configurations for native image tests-->
132+
103133
<plugin>
104134
<?m2e ignore?>
105135
<groupId>org.codehaus.mojo</groupId>

google-cloud-spanner/src/test/java/com/google/cloud/spanner/IntegrationTestEnv.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ public class IntegrationTestEnv extends ExternalResource {
4242
/** Names a property that provides the class name of the {@link TestEnvConfig} to use. */
4343
public static final String TEST_ENV_CONFIG_CLASS_NAME = "spanner.testenv.config.class";
4444

45+
public static final String CONFIG_CLASS = System.getProperty(TEST_ENV_CONFIG_CLASS_NAME, null);
46+
4547
/**
4648
* Names a property that, if set, identifies an existing Cloud Spanner instance to use for tests.
4749
*/
@@ -62,12 +64,11 @@ public RemoteSpannerHelper getTestHelper() {
6264
@SuppressWarnings("unchecked")
6365
protected void initializeConfig()
6466
throws ClassNotFoundException, InstantiationException, IllegalAccessException {
65-
String configClassName = System.getProperty(TEST_ENV_CONFIG_CLASS_NAME, null);
66-
if (configClassName == null) {
67+
if (CONFIG_CLASS == null) {
6768
throw new NullPointerException("Property " + TEST_ENV_CONFIG_CLASS_NAME + " needs to be set");
6869
}
6970
Class<? extends TestEnvConfig> configClass;
70-
configClass = (Class<? extends TestEnvConfig>) Class.forName(configClassName);
71+
configClass = (Class<? extends TestEnvConfig>) Class.forName(CONFIG_CLASS);
7172
config = configClass.newInstance();
7273
}
7374

0 commit comments

Comments
 (0)