package org.infinispan; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; import java.util.Base64; /** * Rest example accessing a cache. * * @author Samuel Tauil (samuel@redhat.com) */ public class RestExample { /** * Method that puts a String value in cache. * * @param urlServerAddress URL containing the cache and the key to insert * @param value Text to insert * @param user Used for basic auth * @param password Used for basic auth */ public void putMethod(String urlServerAddress, String value, String user, String password) throws IOException { System.out.println("----------------------------------------"); System.out.println("Executing PUT"); System.out.println("----------------------------------------"); URL address = new URL(urlServerAddress); System.out.println("executing request " + urlServerAddress); HttpURLConnection connection = (HttpURLConnection) address.openConnection(); System.out.println("Executing put method of value: " + value); connection.setRequestMethod("PUT"); connection.setRequestProperty("Content-Type", "text/plain"); addAuthorization(connection, user, password); connection.setDoOutput(true); OutputStreamWriter outputStreamWriter = new OutputStreamWriter(connection.getOutputStream()); outputStreamWriter.write(value); connection.connect(); outputStreamWriter.flush(); System.out.println("----------------------------------------"); System.out.println(connection.getResponseCode() + " " + connection.getResponseMessage()); System.out.println("----------------------------------------"); connection.disconnect(); } /** * Method that gets a value by a key in url as param value. * * @param urlServerAddress URL containing the cache and the key to read * @param user Used for basic auth * @param password Used for basic auth * @return String value */ public String getMethod(String urlServerAddress, String user, String password) throws IOException { String line; StringBuilder stringBuilder = new StringBuilder(); System.out.println("----------------------------------------"); System.out.println("Executing GET"); System.out.println("----------------------------------------"); URL address = new URL(urlServerAddress); System.out.println("executing request " + urlServerAddress); HttpURLConnection connection = (HttpURLConnection) address.openConnection(); connection.setRequestMethod("GET"); connection.setRequestProperty("Content-Type", "text/plain"); addAuthorization(connection, user, password); connection.setDoOutput(true); BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(connection.getInputStream())); connection.connect(); while ((line = bufferedReader.readLine()) != null) { stringBuilder.append(line).append('\n'); } System.out.println("Executing get method of value: " + stringBuilder.toString()); System.out.println("----------------------------------------"); System.out.println(connection.getResponseCode() + " " + connection.getResponseMessage()); System.out.println("----------------------------------------"); connection.disconnect(); return stringBuilder.toString(); } private void addAuthorization(HttpURLConnection connection, String user, String pass) { String credentials = user + ":" + pass; String basic = Base64.getEncoder().encodeToString(credentials.getBytes()); connection.setRequestProperty("Authorization", "Basic " + basic); } /** * Main method example. */ public static void main(String[] args) throws IOException { RestExample restExample = new RestExample(); String user = "user"; String pass = "pass"; restExample.putMethod("http://localhost:11222/rest/v2/caches/default/1", "Infinispan REST Test", user, pass); restExample.getMethod("http://localhost:11222/rest/v2/caches/default/1", user, pass); } }