All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.gwt.core.ext.ServletContainerLauncher Maven / Gradle / Ivy

/*
 * Copyright 2008 Google Inc.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 * use this file except in compliance with the License. You may obtain a copy of
 * the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
 * License for the specific language governing permissions and limitations under
 * the License.
 */
package com.google.gwt.core.ext;

import java.io.File;
import java.net.BindException;

/**
 * Defines the service provider interface for launching servlet containers that
 * can be used by the GWT development mode.
 * 

* Subclasses should be careful about calling any methods defined on this class * or else they risk failing when used with a version of GWT that did not have * those methods. */ public abstract class ServletContainerLauncher { /* * NOTE: Any new methods must have default implementations, and any users of * this class must be prepared to handle LinkageErrors when calling new * methods. */ /** * @return byte array containing an icon (fitting into 24x24) to * use for the server, or null if only the name should be used */ public byte[] getIconBytes() { return null; } /** * @return a path to a 24-pixel high image file (relative to the classpath) to * be used for this servlet container, or null if none. * @deprecated see {@link #getIconBytes} instead. */ @Deprecated public String getIconPath() { return null; } /** * @return a short human-readable name of this servlet container, or null * if no name should be displayed. */ public String getName() { return "Web Server"; } /** * Return true if this servlet container launcher is configured for secure * operation (ie, HTTPS). This value is only queried after arguments, if any, * have been processed. * * The default implementation just returns false. * * @return true if HTTPS is in use */ public boolean isSecure() { return false; } /** * Process any supplied arguments. *

* Will be called before {@link #start(TreeLogger, int, File)}, if at all. * * @param logger logger to use for warnings/errors * @param arguments single string containing the arguments for this SCL, the * format to be defined by the SCL * @return true if the arguments were processed successfully */ public boolean processArguments(TreeLogger logger, String arguments) { logger.log(TreeLogger.ERROR, getName() + " does not accept any arguments"); return false; } /** * Set the bind address for the web server socket. *

* Will be called before {@link #start(TreeLogger, int, File)}, if at all. * If not called, the SCL should listen on all addresses. * * @param bindAddress host name or IP address, suitable for use with * {@link java.net.InetAddress#getByName(String)} */ public void setBindAddress(String bindAddress) { /* * By default, we do nothing, which means that old SCL implementations * will bind to all addresses. */ } /** * Start an embedded HTTP servlet container. * * @param logger the server logger * @param port the TCP port to serve on; if 0 is requested, a port should be * automatically selected * @param appRootDir the base WAR directory * @return the launched servlet container * @throws BindException if the requested port is already in use * @throws Exception if the server fails to start for any other reason */ public abstract ServletContainer start(TreeLogger logger, int port, File appRootDir) throws BindException, Exception; }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy