package org.infinispan.server.test.task.servertask; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.ObjectInputStream; import java.util.Optional; import org.infinispan.tasks.ServerTask; import org.infinispan.tasks.TaskContext; /** * ServerTask getting a custom mojo as parameter and processing it. * * @author amanukya */ public class GreetingServerTask implements ServerTask { public static final String NAME = "testTask"; private TaskContext taskContext; @Override @SuppressWarnings("unchecked") public Object call() throws IOException, ClassNotFoundException { Greeting params = fromBytes((byte[]) taskContext.getParameters().get().get("greeting")); return params.getGreeting(); } @Override public void setTaskContext(TaskContext taskContext) { this.taskContext = taskContext; } @Override public String getName() { return NAME; } @Override public Optional<String> getAllowedRole() { return Optional.empty(); } private <T> T fromBytes(byte[] bytes) { try { ByteArrayInputStream is = new ByteArrayInputStream(bytes); ObjectInputStream ois = new ObjectInputStream(is); return (T) ois.readObject(); } catch (Exception e) { throw new AssertionError(e); } } }