Search in sources :

Example 21 with ServerPort

use of org.eclipse.wst.server.core.ServerPort in project webtools.servertools by eclipse.

the class PreviewServer method getServerPorts.

public ServerPort[] getServerPorts() {
    int port = getPort();
    ServerPort[] ports = { new ServerPort("http", Messages.httpPort, port, "http") };
    return ports;
}
Also used : ServerPort(org.eclipse.wst.server.core.ServerPort)

Example 22 with ServerPort

use of org.eclipse.wst.server.core.ServerPort in project webtools.servertools by eclipse.

the class PreviewServerBehaviour method setupLaunch.

/**
 * Setup for starting the server.
 *
 * @param launch ILaunch
 * @param launchMode String
 * @param monitor IProgressMonitor
 * @throws CoreException if anything goes wrong
 */
protected void setupLaunch(ILaunch launch, String launchMode, IProgressMonitor monitor) throws CoreException {
    // check that ports are free
    ServerPort[] ports = getPreviewServer().getServerPorts();
    int port = ports[0].getPort();
    if (SocketUtil.isPortInUse(port, 5))
        throw new CoreException(new Status(IStatus.ERROR, PreviewPlugin.PLUGIN_ID, 0, NLS.bind(Messages.errorPortInUse, new String[] { port + "", getServer().getName() }), null));
    // generate preview config file
    XMLMemento memento = XMLMemento.createWriteRoot("server");
    memento.putInteger("port", port);
    IModule[] modules = getServer().getModules();
    for (IModule module : modules) {
        IMemento mod = memento.createChild("module");
        mod.putString("name", module.getName());
        String type = module.getModuleType().getId();
        if ("wst.web".equals(type)) {
            IStaticWeb staticWeb = (IStaticWeb) module.loadAdapter(IStaticWeb.class, null);
            if (staticWeb != null)
                mod.putString("context", staticWeb.getContextRoot());
            mod.putString("type", "static");
        }
        mod.putString("path", getModulePublishDirectory(module).toPortableString());
    }
    try {
        memento.saveToFile(getTempDirectory().append("preview.xml").toOSString());
    } catch (IOException e) {
        Trace.trace(Trace.SEVERE, "Could not write preview config", e);
        throw new CoreException(new Status(IStatus.ERROR, PreviewPlugin.PLUGIN_ID, 0, "Could not write preview configuration", null));
    }
    setServerRestartState(false);
    setServerState(IServer.STATE_STARTING);
    setMode(launchMode);
    // ping server to check for startup
    try {
        String url = "http://localhost";
        if (port != 80)
            url += ":" + port;
        ping = new PingThread(getServer(), url, this);
    } catch (Exception e) {
        Trace.trace(Trace.SEVERE, "Can't ping for Tomcat startup.");
    }
}
Also used : MultiStatus(org.eclipse.core.runtime.MultiStatus) Status(org.eclipse.core.runtime.Status) IStatus(org.eclipse.core.runtime.IStatus) IModule(org.eclipse.wst.server.core.IModule) IOException(java.io.IOException) IOException(java.io.IOException) CoreException(org.eclipse.core.runtime.CoreException) IStaticWeb(org.eclipse.wst.server.core.util.IStaticWeb) CoreException(org.eclipse.core.runtime.CoreException) ServerPort(org.eclipse.wst.server.core.ServerPort)

Example 23 with ServerPort

use of org.eclipse.wst.server.core.ServerPort in project webtools.servertools by eclipse.

the class ModifyPortCommand method execute.

/**
 * Execute the command.
 */
public void execute() {
    // find old port number
    ServerPort temp = server.getServerPorts()[0];
    oldPort = temp.getPort();
    // make the change
    server.setPort(port);
}
Also used : ServerPort(org.eclipse.wst.server.core.ServerPort)

Example 24 with ServerPort

use of org.eclipse.wst.server.core.ServerPort in project webtools.servertools by eclipse.

the class Tomcat41Configuration method getServerPorts.

/**
 * Returns a list of ServerPorts that this configuration uses.
 *
 * @return java.util.List
 */
public List getServerPorts() {
    List<ServerPort> ports = new ArrayList<ServerPort>();
    // first add server port
    try {
        int port = Integer.parseInt(server.getPort());
        ports.add(new ServerPort("server", Messages.portServer, port, "TCPIP"));
    } catch (Exception e) {
    // ignore
    }
    // add connectors
    try {
        String instanceServiceName = serverInstance.getService().getName();
        int size = server.getServiceCount();
        for (int i = 0; i < size; i++) {
            Service service = server.getService(i);
            int size2 = service.getConnectorCount();
            for (int j = 0; j < size2; j++) {
                Connector connector = service.getConnector(j);
                String className = connector.getClassName();
                String name = className;
                String protocol = "TCPIP";
                boolean advanced = true;
                String[] contentTypes = null;
                int port = -1;
                try {
                    port = Integer.parseInt(connector.getPort());
                } catch (Exception e) {
                // ignore
                }
                if (HTTP_CONNECTOR.equals(className)) {
                    name = "HTTP Connector";
                    protocol = "HTTP";
                    contentTypes = new String[] { "web", "webservices" };
                    // check for AJP/1.3 Coyote connector
                    String protocolHandler = connector.getProtocolHandlerClassName();
                    if (JK_PROTOCOL_HANDLER.equals(protocolHandler)) {
                        name = "AJP/1.3 Connector";
                        protocol = "AJP/1.3";
                    } else {
                        // assume HTTP, check for HTTP SSL connector
                        try {
                            Element element = connector.getSubElement("Factory");
                            if (SSL_SOCKET_FACTORY.equals(element.getAttribute("className"))) {
                                name = "SSL Connector";
                                protocol = "SSL";
                            }
                        } catch (Exception e) {
                        // ignore
                        }
                    }
                    if ("HTTP".equals(protocol))
                        advanced = false;
                } else if (APACHE_CONNECTOR.equals(className))
                    name = "Apache Connector";
                String portId;
                if (instanceServiceName != null && instanceServiceName.equals(service.getName()))
                    portId = Integer.toString(j);
                else
                    portId = i + "/" + j;
                if (className != null && className.length() > 0)
                    ports.add(new ServerPort(portId, name, port, protocol, contentTypes, advanced));
            }
        }
    } catch (Exception e) {
        Trace.trace(Trace.SEVERE, "Error getting server ports", e);
    }
    return ports;
}
Also used : Connector(org.eclipse.jst.server.tomcat.core.internal.xml.server40.Connector) Element(org.w3c.dom.Element) ArrayList(java.util.ArrayList) Service(org.eclipse.jst.server.tomcat.core.internal.xml.server40.Service) ServerPort(org.eclipse.wst.server.core.ServerPort) CoreException(org.eclipse.core.runtime.CoreException)

Example 25 with ServerPort

use of org.eclipse.wst.server.core.ServerPort in project webtools.servertools by eclipse.

the class Tomcat70Configuration method getServerPorts.

/**
 * Returns a list of ServerPorts that this configuration uses.
 *
 * @return java.util.List
 */
public List getServerPorts() {
    List<ServerPort> ports = new ArrayList<ServerPort>();
    // first add server port
    try {
        int port = Integer.parseInt(server.getPort());
        ports.add(new ServerPort("server", Messages.portServer, port, "TCPIP"));
    } catch (Exception e) {
    // ignore
    }
    // add connectors
    try {
        String instanceServiceName = serverInstance.getService().getName();
        int size = server.getServiceCount();
        for (int i = 0; i < size; i++) {
            Service service = server.getService(i);
            int size2 = service.getConnectorCount();
            for (int j = 0; j < size2; j++) {
                Connector connector = service.getConnector(j);
                String name = "HTTP/1.1";
                String protocol2 = "HTTP";
                boolean advanced = true;
                String[] contentTypes = null;
                int port = -1;
                try {
                    port = Integer.parseInt(connector.getPort());
                } catch (Exception e) {
                // ignore
                }
                String protocol = connector.getProtocol();
                if (protocol != null && protocol.length() > 0) {
                    if (protocol.startsWith("HTTP")) {
                        name = protocol;
                    } else if (protocol.startsWith("AJP")) {
                        name = protocol;
                        protocol2 = "AJP";
                    } else {
                        // Get Tomcat equivalent name if protocol handler class specified
                        name = protocolHandlerMap.get(protocol);
                        if (name != null) {
                            // Prepare simple protocol string for ServerPort protocol
                            int index = name.indexOf('/');
                            if (index > 0)
                                protocol2 = name.substring(0, index);
                            else
                                protocol2 = name;
                        } else // Specified protocol is unknown, just use as is
                        {
                            name = protocol;
                            protocol2 = protocol;
                        }
                    }
                }
                if (protocol2.toLowerCase().equals("http"))
                    contentTypes = new String[] { "web", "webservices" };
                String secure = connector.getSecure();
                if (secure != null && secure.length() > 0) {
                    name = "SSL";
                    protocol2 = "SSL";
                } else
                    advanced = false;
                String portId;
                if (instanceServiceName != null && instanceServiceName.equals(service.getName()))
                    portId = Integer.toString(j);
                else
                    portId = i + "/" + j;
                ports.add(new ServerPort(portId, name, port, protocol2, contentTypes, advanced));
            }
        }
    } catch (Exception e) {
        Trace.trace(Trace.SEVERE, "Error getting server ports", e);
    }
    return ports;
}
Also used : Connector(org.eclipse.jst.server.tomcat.core.internal.xml.server40.Connector) ArrayList(java.util.ArrayList) Service(org.eclipse.jst.server.tomcat.core.internal.xml.server40.Service) ServerPort(org.eclipse.wst.server.core.ServerPort) CoreException(org.eclipse.core.runtime.CoreException)

Aggregations

ServerPort (org.eclipse.wst.server.core.ServerPort)26 CoreException (org.eclipse.core.runtime.CoreException)14 ArrayList (java.util.ArrayList)10 Connector (org.eclipse.jst.server.tomcat.core.internal.xml.server40.Connector)9 Service (org.eclipse.jst.server.tomcat.core.internal.xml.server40.Service)9 IStatus (org.eclipse.core.runtime.IStatus)4 Status (org.eclipse.core.runtime.Status)4 Iterator (java.util.Iterator)3 TableItem (org.eclipse.swt.widgets.TableItem)3 IOException (java.io.IOException)2 MultiStatus (org.eclipse.core.runtime.MultiStatus)2 IModule (org.eclipse.wst.server.core.IModule)2 IStaticWeb (org.eclipse.wst.server.core.util.IStaticWeb)2 Element (org.w3c.dom.Element)2 List (java.util.List)1 IWebModule (org.eclipse.jst.server.core.IWebModule)1 Port (org.eclipse.jst.server.generic.servertype.definition.Port)1 IMemento (org.eclipse.jst.server.preview.adapter.internal.IMemento)1 XMLMemento (org.eclipse.jst.server.preview.adapter.internal.XMLMemento)1 ITomcatConfigurationWorkingCopy (org.eclipse.jst.server.tomcat.core.internal.ITomcatConfigurationWorkingCopy)1