Package org.glite.authz.pap.server.standalone

Source Code of org.glite.authz.pap.server.standalone.ShutdownClient

/**
* Copyright (c) Members of the EGEE Collaboration. 2006-2009.
* See http://www.eu-egee.org/partners/ for details on the copyright holders.
*
* 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 org.glite.authz.pap.server.standalone;

import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.methods.GetMethod;

import org.glite.authz.pap.common.PAPConfiguration;
import org.slf4j.LoggerFactory;

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;

/**
* This class implement the client that request the shutdown of the local PAP
* service.
*
* @author andrea
*
*/
public class ShutdownClient {

    /**
     * Prints the message of the exception passed as argument and exits
     *
     * @param e
     *            , the exception to be printed
     */
    static void printErrorMessageAndExit(Exception e) {

  System.err.println("PAP shutdown error: " + e.getMessage());
  System.exit(1);
    }

    /**
     * Triggers the shutdown of the local PAP service.
     */
    static void doShutdown() {

  PAPConfiguration conf = PAPConfiguration.instance();

  String shutdownEndpoint = String.format(
    "http://localhost:%s/shutdown",
    conf.getString(PAPConfiguration.STANDALONE_SERVICE_STANZA
      + ".shutdown_port"));

  String shutdownCommand = conf
    .getString(PAPConfiguration.STANDALONE_SERVICE_STANZA
      + ".shutdown_command");

  HttpClient httpClient = new HttpClient();

  GetMethod get = new GetMethod(shutdownEndpoint);

  if (shutdownCommand != null) {
      get.setRequestHeader(new Header(
        ShutdownServlet.SHUTDOWN_COMMAND_HEADER_NAME,
        shutdownCommand));
  }

  try {

      httpClient.executeMethod(get);

  } catch (Exception e) {

      printErrorMessageAndExit(e);
  }

    }

    /** Disables logging messages (logback version) */
    private static void disableLogBackLibraryLogging() {
      LoggerContext lc = (LoggerContext) LoggerFactory.getILoggerFactory();
    Logger rootLogger = lc.getLogger(org.slf4j.Logger.ROOT_LOGGER_NAME);
    rootLogger.setLevel(Level.OFF);
    }

   
    private static void disableLibraryLogging(){
 
  // Switch off log4j logging
  // LogManager.getRootLogger().setLevel(Level.OFF);
 
    }
   
    public static void main(String[] args) {

  disableLibraryLogging();
    // disableLogBackLibraryLogging();

  if (System.getProperty("PAP_HOME") == null) {

      System.err
        .println("Please set the PAP_HOME environment variable before running this command!");
      System.exit(1);
  }

  try {
      String papConfigurationHome = System.getProperty("PAP_HOME")
        + "/conf";
      PAPConfiguration.initialize(papConfigurationHome);

  } catch (Throwable t) {

      System.err
        .println("Error reading PAP configuration. Is the PAP_HOME system property/environment variable set correctly?");
      System.err.println(t.getMessage());
      t.printStackTrace(System.err);
      System.exit(1);

  }

  doShutdown();
    }
}
TOP

Related Classes of org.glite.authz.pap.server.standalone.ShutdownClient

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.