### Question:
AbstractCallableCommand extends MasterToSlaveCallable<V, T> implements Serializable { public abstract <V, E extends Throwable> Callable<V, E> getCallable(); protected  AbstractCallableCommand(final ServerConfigurationProvider serverConfig); Server createServer(); abstract Callable<V, E> getCallable();  }### Answer:
@Test public void verifySerializable() throws IOException { final ServerConfigurationProvider server = new ServerConfigurationProvider() { public String getUrl() { return null; } public String getUserName() { return null; } public String getUserPassword() { return null; } public TaskListener getListener() { return null; } public WebProxySettings getWebProxySettings() { final List<Pattern> patterns = Arrays.asList( Pattern.compile(".+\\.com"), Pattern.compile(".+\\.org") ); final Secret secret; final SecretOverride secretOverride = new SecretOverride(); try { secret = Secret.fromString("password"); } finally { try { secretOverride.close(); } catch (final IOException ignored) { } } return new WebProxySettings("localhost", 8080, patterns, "user", secret); } @Override public ExtraSettings getExtraSettings() { return ExtraSettings.DEFAULT; } }; final AbstractCallableCommand command = createCommand(server); final Callable<?, Exception> callable = command.getCallable(); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); final ObjectOutputStream oos = new ObjectOutputStream(baos); oos.writeObject(callable); }