package org.infinispan.scripting.utils;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.stream.Collectors;
import org.infinispan.commons.api.BasicCache;
import org.infinispan.manager.EmbeddedCacheManager;
import org.infinispan.scripting.ScriptingManager;
import org.infinispan.test.TestingUtil;
/**
* Utility class containing general methods for use.
*/
public class ScriptingUtils {
public static ScriptingManager getScriptingManager(EmbeddedCacheManager manager) {
return manager.getGlobalComponentRegistry().getComponent(ScriptingManager.class);
}
public static void loadData(BasicCache<String, String> cache, String fileName) throws IOException {
try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(
ScriptingUtils.class.getResourceAsStream(fileName)))) {
String value = null;
int chunkId = 0;
while (!(value = bufferedReader.lines().limit(400).collect(Collectors.joining(" "))).isEmpty()) {
cache.put(fileName + (chunkId++), value);
}
}
}
public static void loadScript(ScriptingManager scriptingManager, String fileName) throws IOException {
if (!fileName.startsWith("/")) {
fileName = "/" + fileName;
}
try (InputStream is = ScriptingUtils.class.getResourceAsStream(fileName)) {
String script = TestingUtil.loadFileAsString(is);
scriptingManager.addScript(fileName.replaceAll("\\/", ""), script);
}
}
}