Skip to content

Commit

Permalink
fix
Browse files Browse the repository at this point in the history
Signed-off-by: Pavel Jareš <[email protected]>
  • Loading branch information
pj892031 committed Jan 24, 2025
1 parent 818961a commit 1f6c8ac
Show file tree
Hide file tree
Showing 4 changed files with 94 additions and 28 deletions.
16 changes: 0 additions & 16 deletions caching-service-package/src/main/resources/bin/start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -90,20 +90,6 @@ then
QUICK_START=-Xquickstart
fi

if [ -z "${ZWE_configs_storage_infinispan_persistence_dataLocation}" ]; then
if [ -n "${ZWE_zowe_workspaceDirectory}" ]; then
ZWE_configs_storage_infinispan_persistence_dataLocation="${ZWE_zowe_workspaceDirectory}/caching-service/${ZWE_haInstance_id:-localhost}/data"
fi
fi
if [ -z "${ZWE_configs_storage_infinispan_persistence_indexLocation}" ]; then
if [ -n "${ZWE_zowe_workspaceDirectory}" ]; then
ZWE_configs_storage_infinispan_persistence_indexLocation="${ZWE_zowe_workspaceDirectory}/caching-service/${ZWE_haInstance_id:-localhost}/index"
fi
fi
if [ -z "${ZWE_configs_storage_infinispan_initialHosts}" ]; then
ZWE_configs_storage_infinispan_initialHosts="${ZWE_haInstance_hostname:-localhost}[${ZWE_configs_storage_infinispan_jgroups_port:-7098}]"
fi

LIBPATH="$LIBPATH":"/lib"
LIBPATH="$LIBPATH":"/usr/lib"
LIBPATH="$LIBPATH":"${JAVA_HOME}"/bin
Expand Down Expand Up @@ -260,8 +246,6 @@ _BPX_JOBNAME=${ZWE_zowe_job_prefix}${CACHING_CODE} ${JAVA_BIN_DIR}java \
-Djgroups.bind.address=${ZWE_configs_storage_infinispan_jgroups_host:-${ZWE_haInstance_hostname:-localhost}} \
-Djgroups.bind.port=${ZWE_configs_storage_infinispan_jgroups_port:-7098} \
-Djgroups.keyExchange.port=${ZWE_configs_storage_infinispan_jgroups_keyExchange_port:-7118} \
-Dcaching.storage.infinispan.persistence.dataLocation=${ZWE_configs_storage_infinispan_persistence_dataLocation:-data} \
-Dcaching.storage.infinispan.persistence.indexLocation=${ZWE_configs_storage_infinispan_persistence_indexLocation:-index} \
-Dcaching.storage.infinispan.initialHosts=${ZWE_configs_storage_infinispan_initialHosts:-localhost[7098]} \
-Dserver.address=${ZWE_configs_zowe_network_server_listenAddresses_0:-${ZWE_zowe_network_server_listenAddresses_0:-"0.0.0.0"}} \
-Dserver.ssl.enabled=${ZWE_configs_server_ssl_enabled:-true} \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@

package org.zowe.apiml.caching.service.infinispan.config;

import jakarta.annotation.PostConstruct;
import org.apache.commons.lang3.StringUtils;
import org.infinispan.commons.api.CacheContainerAdmin;
import org.infinispan.commons.dataconversion.MediaType;
Expand All @@ -30,12 +31,13 @@
import org.zowe.apiml.caching.service.Storage;
import org.zowe.apiml.caching.service.infinispan.exception.InfinispanConfigException;
import org.zowe.apiml.caching.service.infinispan.storage.InfinispanStorage;
import static org.zowe.apiml.security.SecurityUtils.formatKeyringUrl;
import static org.zowe.apiml.security.SecurityUtils.isKeyring;

import jakarta.annotation.PostConstruct;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Paths;

import static org.zowe.apiml.security.SecurityUtils.formatKeyringUrl;
import static org.zowe.apiml.security.SecurityUtils.isKeyring;

@Configuration
@ConfigurationProperties(value = "caching.storage.infinispan")
Expand All @@ -46,10 +48,6 @@ public class InfinispanConfig {

@Value("${caching.storage.infinispan.initialHosts}")
private String initialHosts;
@Value("${caching.storage.infinispan.persistence.dataLocation}")
private String dataLocation;
@Value("${caching.storage.infinispan.persistence.indexLocation:index}")
private String indexLocation;
@Value("${server.ssl.keyStoreType}")
private String keyStoreType;
@Value("${server.ssl.keyStore}")
Expand All @@ -71,6 +69,21 @@ void updateKeyring() {
}
}

static String getRootFolder() {
// using getenv().get is because of system compatibility (see non-case sensitive on Windows)
String instanceId = System.getenv().get("ZWE_haInstance_id");
if (StringUtils.isBlank(instanceId)) {
instanceId = "localhost";
}

String workspaceFolder = System.getenv().get("ZWE_zowe_workspaceDirectory");
if (StringUtils.isBlank(workspaceFolder)) {
return Paths.get("caching-service", instanceId).toString();
} else {
return Paths.get(workspaceFolder, "caching-service", instanceId).toString();
}
}

@Bean
DefaultCacheManager cacheManager(ResourceLoader resourceLoader) {
System.setProperty("jgroups.tcpping.initial_hosts", initialHosts);
Expand All @@ -88,6 +101,9 @@ DefaultCacheManager cacheManager(ResourceLoader resourceLoader) {
} catch (IOException e) {
throw new InfinispanConfigException("Can't read configuration file", e);
}
holder.getGlobalConfigurationBuilder().globalState().persistentLocation(getRootFolder()).enable();
holder.newConfigurationBuilder("default").persistence().passivation(true).addSoftIndexFileStore()
.shared(false);

DefaultCacheManager cacheManager = new DefaultCacheManager(holder, true);

Expand All @@ -97,8 +113,7 @@ DefaultCacheManager cacheManager(ResourceLoader resourceLoader) {

builder.persistence().passivation(true)
.addSoftIndexFileStore()
.shared(false)
.dataLocation(dataLocation).indexLocation(indexLocation);
.shared(false);
cacheManager.administration()
.withFlags(CacheContainerAdmin.AdminFlag.VOLATILE)
.getOrCreateCache("zoweCache", builder.build());
Expand Down
10 changes: 8 additions & 2 deletions caching-service/src/main/resources/infinispan.xml
Original file line number Diff line number Diff line change
@@ -1,4 +1,11 @@
<infinispan>
<infinispan
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="urn:infinispan:config:15.1 https://infinispan.org/schemas/infinispan-config-15.1.xsd
urn:infinispan:server:15.1 https://infinispan.org/schemas/infinispan-server-15.1.xsd
urn:infinispan:jgroups:5.3 http://www.jgroups.org/schema/jgroups-5.3.xsd
"
xmlns="urn:infinispan:config:15.1"
xmlns:server="urn:infinispan:server:15.1">
<jgroups>
<stack name="prod">
<!-- jgroups.tcp.address is deprecated and will be removed, see ISPN-11867 -->
Expand Down Expand Up @@ -83,6 +90,5 @@
</allow-list>
</serialization>


</cache-container>
</infinispan>
Original file line number Diff line number Diff line change
Expand Up @@ -10,11 +10,18 @@

package org.zowe.apiml.caching.service.infinispan.config;

import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Nested;
import org.junit.jupiter.api.Test;
import org.springframework.test.util.ReflectionTestUtils;

import java.io.File;
import java.lang.reflect.Field;
import java.util.Map;

import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.fail;

class InfinispanConfigTest {

Expand Down Expand Up @@ -52,4 +59,58 @@ void whenKeystore_thenDontUpdate() {

}

}
@Nested
class GlobalConfiguration {

private static final String INSTANCE = "ZWE_haInstance_id";
private static final String WORKSPACE = "ZWE_zowe_workspaceDirectory";

Map<String, String> getEnvMap() {
try {
Class<?> envVarClass = System.getenv().getClass();
Field mField = envVarClass.getDeclaredField("m");
mField.setAccessible(true);
return (Map<String, String>) mField.get(System.getenv());
} catch (NoSuchFieldException | IllegalAccessException e) {
fail(e);
return null;
}
}

@BeforeEach
@AfterEach
void cleanUp() {
getEnvMap().remove(INSTANCE);
getEnvMap().remove(WORKSPACE);
}

@Test
void givenNoEnvironmentValues_whenEvaluatingRootFolder_thenUseLocalhost() {
assertEquals("caching-service" + File.separator + "localhost", InfinispanConfig.getRootFolder());
}

@Test
void givenOnlyInstanceIdValues_whenEvaluatingRootFolder_thenUseRelativePath() {
getEnvMap().put(INSTANCE, "myInstance");
assertEquals("caching-service" + File.separator + "myInstance", InfinispanConfig.getRootFolder());

}

@Test
void givenAllEnvironmentValues_whenEvaluatingRootFolder_thenUseExactLocation() {
getEnvMap().put(INSTANCE, "lpar1");
getEnvMap().put(WORKSPACE, "/some/path");
assertEquals(File.separator + "some" + File.separator + "path" + File.separator + "caching-service" + File.separator + "lpar1", InfinispanConfig.getRootFolder());

}

@Test
void givenOnlyWorkspaceValues_whenEvaluatingRootFolder_thenUseExactLocationWithLocalhost() {
getEnvMap().put(WORKSPACE, "/another/path");
assertEquals(File.separator + "another" + File.separator + "path" + File.separator + "caching-service" + File.separator + "localhost", InfinispanConfig.getRootFolder());

}

}

}

0 comments on commit 1f6c8ac

Please sign in to comment.