/*
 * Copyright 2015 Red Hat, Inc.
 *
 *  All rights reserved. This program and the accompanying materials
 *  are made available under the terms of the Eclipse Public License v1.0
 *  and Apache License v2.0 which accompanies this distribution.
 *
 *  The Eclipse Public License is available at
 *  http://www.eclipse.org/legal/epl-v10.html
 *
 *  The Apache License v2.0 is available at
 *  http://www.opensource.org/licenses/apache2.0.php
 *
 *  You may elect to redistribute this code under either of these licenses.
 *
 *
 * Copyright (c) 2015 The original author or authors
 * ------------------------------------------------------
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * and Apache License v2.0 which accompanies this distribution.
 *
 *     The Eclipse Public License is available at
 *     http://www.eclipse.org/legal/epl-v10.html
 *
 *     The Apache License v2.0 is available at
 *     http://www.opensource.org/licenses/apache2.0.php
 *
 * You may elect to redistribute this code under either of these licenses.
 *
 */

package io.vertx.ext.shell.term;

import io.vertx.codegen.annotations.DataObject;
import io.vertx.codegen.annotations.GenIgnore;
import io.vertx.core.buffer.Buffer;
import io.vertx.core.http.ClientAuth;
import io.vertx.core.http.HttpServerOptions;
import io.vertx.core.json.JsonObject;
import io.vertx.core.net.JksOptions;
import io.vertx.core.net.PemKeyCertOptions;
import io.vertx.core.net.PemTrustOptions;
import io.vertx.core.net.PfxOptions;
import io.vertx.ext.shell.term.impl.Helper;
import io.vertx.ext.web.handler.sockjs.SockJSHandlerOptions;

import java.nio.charset.StandardCharsets;

The web term configuration options.
Author:Julien Viet
/** * The web term configuration options. * * @author <a href="mailto:julien@julienviet.com">Julien Viet</a> */
@DataObject(generateConverter = true) public class HttpTermOptions extends HttpServerOptions { public static final String DEFAULT_CHARSET = StandardCharsets.UTF_8.name(); public static final String DEFAULT_INPUTRC = "/io/vertx/ext/shell/inputrc";
Returns:the vertxshell.js default resource as a buffer
/** * @return the {@code vertxshell.js} default resource as a buffer */
public static Buffer defaultVertxShellJsResource() { return Helper.loadResource("/io/vertx/ext/shell/vertxshell.js"); }
Returns:the term.js default resource as a buffer
/** * @return the {@code term.js} default resource as a buffer */
public static Buffer defaultTermJsResource() { return Helper.loadResource("/io/vertx/ext/shell/term.js"); }
Returns:the shell.html default resource as a buffer
/** * @return the {@code shell.html} default resource as a buffer */
public static Buffer defaultShellHtmlResource() { return Helper.loadResource("/io/vertx/ext/shell/shell.html"); } private static final String DEFAULT_SOCKJSPATH = "/shell/*"; private SockJSHandlerOptions sockJSHandlerOptions; private JsonObject authOptions; private String sockJSPath; private Buffer vertsShellJsResource; private Buffer termJsResource; private Buffer shellHtmlResource; private String charset; private String intputrc; public HttpTermOptions() { init(); } public HttpTermOptions(JsonObject json) { super(json); init(); HttpTermOptionsConverter.fromJson(json, this); } public HttpTermOptions(HttpTermOptions that) { sockJSHandlerOptions = new SockJSHandlerOptions(that.sockJSHandlerOptions); sockJSPath = that.sockJSPath; vertsShellJsResource = that.vertsShellJsResource != null ? that.vertsShellJsResource.copy() : null; termJsResource = that.termJsResource != null ? that.termJsResource.copy() : null; shellHtmlResource = that.shellHtmlResource != null ? that.shellHtmlResource.copy() : null; authOptions = that.authOptions != null ? that.authOptions.copy() : null; charset = that.charset; intputrc = that.intputrc; } private void init() { sockJSHandlerOptions = new SockJSHandlerOptions(); sockJSPath = DEFAULT_SOCKJSPATH; vertsShellJsResource = defaultVertxShellJsResource(); termJsResource = defaultTermJsResource(); shellHtmlResource = defaultShellHtmlResource(); charset = DEFAULT_CHARSET; intputrc = DEFAULT_INPUTRC; }
Returns:the SockJS handler options
/** * @return the SockJS handler options */
public SockJSHandlerOptions getSockJSHandlerOptions() { return sockJSHandlerOptions; }
The SockJS handler options.
Params:
  • sockJSHandlerOptions – the options to use
Returns:a reference to this, so the API can be used fluently
/** * The SockJS handler options. * * @param sockJSHandlerOptions the options to use * @return a reference to this, so the API can be used fluently */
public HttpTermOptions setSockJSHandlerOptions(SockJSHandlerOptions sockJSHandlerOptions) { this.sockJSHandlerOptions = sockJSHandlerOptions; return this; }
Returns:the SockJS path
/** * @return the SockJS path */
public String getSockJSPath() { return sockJSPath; }
Configure the SockJS path, the default value is /term/*.
Params:
  • sockJSPath – the new SockJS path
Returns:a reference to this, so the API can be used fluently
/** * Configure the SockJS path, the default value is {@code /term/*}. * * @param sockJSPath the new SockJS path * @return a reference to this, so the API can be used fluently */
public HttpTermOptions setSockJSPath(String sockJSPath) { this.sockJSPath = sockJSPath; return this; }
Returns:the auth options
/** * @return the auth options */
public JsonObject getAuthOptions() { return authOptions; }
Set the auth options.
Params:
  • authOptions – the auth options
Returns:a reference to this, so the API can be used fluently
/** * Set the auth options. * * @param authOptions the auth options * @return a reference to this, so the API can be used fluently */
public HttpTermOptions setAuthOptions(JsonObject authOptions) { this.authOptions = authOptions; return this; } @Override public HttpTermOptions setSendBufferSize(int sendBufferSize) { return (HttpTermOptions) super.setSendBufferSize(sendBufferSize); } @Override public HttpTermOptions setReceiveBufferSize(int receiveBufferSize) { return (HttpTermOptions) super.setReceiveBufferSize(receiveBufferSize); } @Override public HttpTermOptions setReuseAddress(boolean reuseAddress) { return (HttpTermOptions) super.setReuseAddress(reuseAddress); } @Override public HttpTermOptions setTrafficClass(int trafficClass) { return (HttpTermOptions) super.setTrafficClass(trafficClass); } @Override public HttpTermOptions setTcpNoDelay(boolean tcpNoDelay) { return (HttpTermOptions) super.setTcpNoDelay(tcpNoDelay); } @Override public HttpTermOptions setTcpKeepAlive(boolean tcpKeepAlive) { return (HttpTermOptions) super.setTcpKeepAlive(tcpKeepAlive); } @Override public HttpTermOptions setSoLinger(int soLinger) { return (HttpTermOptions) super.setSoLinger(soLinger); } @Override public HttpTermOptions setIdleTimeout(int idleTimeout) { return (HttpTermOptions) super.setIdleTimeout(idleTimeout); } @Override public HttpTermOptions setSsl(boolean ssl) { return (HttpTermOptions) super.setSsl(ssl); } @Override public HttpTermOptions setKeyStoreOptions(JksOptions options) { return (HttpTermOptions) super.setKeyStoreOptions(options); } @Override public HttpTermOptions setPfxKeyCertOptions(PfxOptions options) { return (HttpTermOptions) super.setPfxKeyCertOptions(options); } @Override public HttpTermOptions setPemKeyCertOptions(PemKeyCertOptions options) { return (HttpTermOptions) super.setPemKeyCertOptions(options); } @Override public HttpTermOptions setTrustStoreOptions(JksOptions options) { return (HttpTermOptions) super.setTrustStoreOptions(options); } @Override public HttpTermOptions setPemTrustOptions(PemTrustOptions options) { return (HttpTermOptions) super.setPemTrustOptions(options); } @Override public HttpTermOptions setPfxTrustOptions(PfxOptions options) { return (HttpTermOptions) super.setPfxTrustOptions(options); } @Override public HttpTermOptions addEnabledCipherSuite(String suite) { return (HttpTermOptions) super.addEnabledCipherSuite(suite); } @Override public HttpTermOptions addCrlPath(String crlPath) throws NullPointerException { return (HttpTermOptions) super.addCrlPath(crlPath); } @Override public HttpTermOptions addCrlValue(Buffer crlValue) throws NullPointerException { return (HttpTermOptions) super.addCrlValue(crlValue); } @Override public HttpTermOptions setAcceptBacklog(int acceptBacklog) { return (HttpTermOptions) super.setAcceptBacklog(acceptBacklog); } @Override public HttpTermOptions setPort(int port) { return (HttpTermOptions) super.setPort(port); } @Override public HttpTermOptions setHost(String host) { return (HttpTermOptions) super.setHost(host); } @Override public HttpTermOptions setClientAuth(ClientAuth clientAuth) { return (HttpTermOptions) super.setClientAuth(clientAuth); } @Override public HttpTermOptions setCompressionSupported(boolean compressionSupported) { return (HttpTermOptions) super.setCompressionSupported(compressionSupported); } @Override public HttpTermOptions setHandle100ContinueAutomatically(boolean handle100ContinueAutomatically) { return (HttpTermOptions) super.setHandle100ContinueAutomatically(handle100ContinueAutomatically); }
Returns:the vertxshell.js resource for this server
/** * @return the {@code vertxshell.js} resource for this server */
public Buffer getVertsShellJsResource() { return vertsShellJsResource; }
Set vertxshell.js resource to use.
Params:
  • vertsShellJsResource – the resource
Returns:a reference to this, so the API can be used fluently
/** * Set {@code vertxshell.js} resource to use. * * @param vertsShellJsResource the resource * @return a reference to this, so the API can be used fluently */
public HttpTermOptions setVertsShellJsResource(Buffer vertsShellJsResource) { this.vertsShellJsResource = vertsShellJsResource; return this; }
Returns:the term.js resource for this server
/** * @return the {@code term.js} resource for this server */
public Buffer getTermJsResource() { return termJsResource; }
Set term.js resource to use.
Params:
  • termJsResource – the resource
Returns:a reference to this, so the API can be used fluently
/** * Set {@code term.js} resource to use. * * @param termJsResource the resource * @return a reference to this, so the API can be used fluently */
public HttpTermOptions setTermJsResource(Buffer termJsResource) { this.termJsResource = termJsResource; return this; }
Returns:the shell.html resource for this server
/** * @return the {@code shell.html} resource for this server */
public Buffer getShellHtmlResource() { return shellHtmlResource; }
Set shell.html resource to use.
Params:
  • shellHtmlResource – the resource
Returns:a reference to this, so the API can be used fluently
/** * Set {@code shell.html} resource to use. * * @param shellHtmlResource the resource * @return a reference to this, so the API can be used fluently */
public HttpTermOptions setShellHtmlResource(Buffer shellHtmlResource) { this.shellHtmlResource = shellHtmlResource; return this; }
Returns:the charset used for encoding / decoding text from/to SockJS
/** * @return the charset used for encoding / decoding text from/to SockJS */
public String getCharset() { return charset; }
Set the charset used for encoding / decoding text data from/to SockJS
Params:
  • charset – the charset to use
Returns:a reference to this, so the API can be used fluently
/** * Set the charset used for encoding / decoding text data from/to SockJS * * @param charset the charset to use * @return a reference to this, so the API can be used fluently */
public HttpTermOptions setCharset(String charset) { this.charset = charset; return this; }
Returns:the current path of the inputrc config
/** * @return the current path of the inputrc config */
public String getIntputrc() { return intputrc; }
The path of the inputrc config.
Params:
  • intputrc – the path of the inputrc config
Returns:a reference to this, so the API can be used fluently
/** * The path of the <i>inputrc</i> config. * * @param intputrc the path of the inputrc config * @return a reference to this, so the API can be used fluently */
public HttpTermOptions setIntputrc(String intputrc) { this.intputrc = intputrc; return this; } }