public <T> T post(final Object entity, TypeReference<T> typeReference) { ResponseCallback<T> callback = new ResponseCallback<T>(); post(entity, typeReference, callback); return callback.awaitResult(); }
public <T> T get(TypeReference<T> typeReference) { ResponseCallback<T> callback = new ResponseCallback<T>(); get(typeReference, callback); return callback.awaitResult(); }
private HttpRequest preparePostRequest(String uri, Object entity) { return prepareEntityRequest(uri, entity, HttpMethod.POST); }
@Override public void init(DockerClientConfig dockerClientConfig) { super.init(dockerClientConfig); bootstrap = new Bootstrap(); String scheme = dockerClientConfig.getDockerHost().getScheme(); String host = ""; if ("unix".equals(scheme)) { nettyInitializer = new UnixDomainSocketInitializer(); host = "DUMMY"; } else if ("tcp".equals(scheme)) { nettyInitializer = new InetSocketInitializer(); host = dockerClientConfig.getDockerHost().getHost() + ":" + Integer.toString(dockerClientConfig.getDockerHost().getPort()); } eventLoopGroup = nettyInitializer.init(bootstrap, dockerClientConfig); baseResource = new NettyWebTarget(channelProvider, host).path(dockerClientConfig.getApiVersion().asWebPathPart()); }
public void delete() { HttpRequestProvider requestProvider = httpDeleteRequestProvider(); ResponseCallback<Void> callback = new ResponseCallback<Void>(); HttpResponseHandler responseHandler = new HttpResponseHandler(requestProvider, callback); Channel channel = getChannel(); channel.pipeline().addLast(responseHandler); sendRequest(requestProvider, channel); callback.awaitResult(); }
public void postStream(InputStream body) { SkipResultCallback resultCallback = new SkipResultCallback(); HttpRequestProvider requestProvider = httpPostRequestProvider(null); Channel channel = getChannel(); HttpResponseHandler responseHandler = new HttpResponseHandler(requestProvider, resultCallback); channel.pipeline().addLast(new ChunkedWriteHandler()); channel.pipeline().addLast(responseHandler); postChunkedStreamRequest(requestProvider, channel, body); try { resultCallback.awaitCompletion(); } catch (InterruptedException e) { throw new RuntimeException(e); } }
public NettyInvocationBuilder request() { String resource = PATH_SEPARATOR + StringUtils.join(path, PATH_SEPARATOR); List<String> params = new ArrayList<>(); for (Map.Entry<String, String> entry : queryParams.entrySet()) { params.add(entry.getKey() + "=" + encodeComponent(entry.getValue(), HttpConstants.DEFAULT_CHARSET)); } for (Map.Entry<String, Set<String>> entry : queryParamsSet.entrySet()) { for (String entryValueValue : entry.getValue()) { params.add(entry.getKey() + "=" + encodeComponent(entryValueValue, HttpConstants.DEFAULT_CHARSET)); } } if (!params.isEmpty()) { resource = resource + "?" + StringUtils.join(params, "&"); } return new NettyInvocationBuilder(channelProvider, resource) .header("Host", host); }
public NettyWebTarget queryParam(String name, Object value) { ImmutableMap.Builder<String, String> builder = ImmutableMap.<String, String>builder().putAll(queryParams); if (value != null) { builder.put(name, value.toString()); } return new NettyWebTarget(channelProvider, host, path, builder.build(), queryParamsSet); }
@Override public EventLoopGroup init(Bootstrap bootstrap, DockerClientConfig dockerClientConfig) { if (SystemUtils.IS_OS_LINUX) { return epollGroup(); } else if (SystemUtils.IS_OS_MAC_OSX) { return kqueueGroup(); } throw new RuntimeException("Unsupported OS"); }
private HttpRequest prepareDeleteRequest(String uri) { FullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.DELETE, uri); setDefaultHeaders(request); return request; }
private DuplexChannel getChannel() { return channelProvider.getChannel(); }
private DuplexChannel connect(final Bootstrap bootstrap) throws InterruptedException { return nettyInitializer.connect(bootstrap); }
public T awaitResult() { try { awaitCompletion(); } catch (InterruptedException e) { throw new RuntimeException(e); } return result; }
private DuplexChannel connect() { try { return connect(bootstrap); } catch (InterruptedException e) { throw new RuntimeException(e); } }
@Override public void run() { byte[] buffer = new byte[1024]; int read; while ((read = read(stdin, buffer)) != -1) { channel.writeAndFlush(Unpooled.copiedBuffer(buffer, 0, read)); } // we close the writing side of the socket, but keep the read side open to transfer stdout/stderr channel.shutdownOutput(); } }).start();
private <T extends Channel> T configure(T channel) { ChannelConfig channelConfig = channel.config(); if (connectTimeout != null) { channelConfig.setConnectTimeoutMillis(connectTimeout); } if (readTimeout != null) { channel.pipeline().addLast("readTimeoutHandler", new ReadTimeoutHandler()); } return channel; }
@Override public InvocationBuilder accept(com.github.dockerjava.core.MediaType mediaType) { return header(HttpHeaderNames.ACCEPT.toString(), mediaType.getMediaType()); }
public <T> T post(TypeReference<T> typeReference, InputStream body) { ResponseCallback<T> callback = new ResponseCallback<T>(); post(typeReference, callback, body); return callback.awaitResult(); }
private HttpRequest preparePutRequest(String uri, Object entity) { return prepareEntityRequest(uri, entity, HttpMethod.PUT); }
private FullHttpRequest prepareGetRequest(String uri) { FullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.GET, uri); setDefaultHeaders(request); return request; }