Package net.sf.katta.util

Source Code of net.sf.katta.util.WebApp

/**
* Copyright 2008 the original author or authors.
*
* 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 net.sf.katta.util;

import java.io.File;

import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.webapp.WebAppContext;

public class WebApp {

  private final String _warPath;
  private int _port;

  public WebApp(String[] paths, int port) {
    _warPath = findWarInPathOrChilds(paths);
    _port = port;
  }

  private String findWarInPathOrChilds(String[] warPaths) {
    for (String path : warPaths) {
      File file = new File(path);
      if (isWarFile(file)) {
        return file.getAbsolutePath();
      }
      File[] listFiles = file.listFiles();
      if (listFiles != null) {
        for (File subFiles : listFiles) {
          if (isWarFile(subFiles)) {
            return subFiles.getAbsolutePath();
          }
        }
      }
    }
    throw new IllegalArgumentException("Unable to find war");
  }

  private boolean isWarFile(File file) {
    return file.exists() && file.getName().endsWith(".war");
  }

  public void startWebServer() throws Exception {

    Server server = new Server();
    Connector connector = new SelectChannelConnector();
    connector.setPort(_port);
    server.setConnectors(new Connector[] { connector });

    WebAppContext webapp = new WebAppContext();
    webapp.setContextPath("/");
    webapp.setWar(_warPath);
    server.setHandler(webapp);

    server.start();
    server.join();
  }

  public static void main(String[] args) throws Exception {
    WebApp webApp = new WebApp(new String[] { args[0] }, Integer.parseInt(args[1]));
    webApp.startWebServer();
  }

}
TOP

Related Classes of net.sf.katta.util.WebApp

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.