head	1.1;
access;
symbols
	HELM_PEER_PORT_BRANCH:1.1.0.2;
locks; strict;
comment	@# @;


1.1
date	2001.02.15.17.52.33;	author leonardr;	state dead;
branches
	1.1.2.1;
next	;

1.1.2.1
date	2001.02.15.17.52.33;	author leonardr;	state Exp;
branches;
next	1.1.2.2;

1.1.2.2
date	2001.02.15.17.54.02;	author leonardr;	state dead;
branches;
next	;


desc
@@


1.1
log
@file StaticUtils.java~ was initially added on branch HELM_PEER_PORT_BRANCH.
@
text
@@


1.1.2.1
log
@Ported StaticUtils and TaskList, moving them into the host package.
@
text
@a0 122
/* ================================================================
 * Copyright (c) 2001 CollabNet.  All rights reserved.
 * 
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions are
 * met:
 * 
 * 1. Redistributions of source code must retain the above copyright
 * notice, this list of conditions and the following disclaimer.
 * 
 * 2. Redistributions in binary form must reproduce the above copyright
 * notice, this list of conditions and the following disclaimer in the
 * documentation and/or other materials provided with the distribution.
 * 
 * 3. The end-user documentation included with the redistribution, if
 * any, must include the following acknowlegement: "This product includes
 * software developed by CollabNet (http://www.collab.net/)."
 * Alternately, this acknowlegement may appear in the software itself, if
 * and wherever such third-party acknowlegements normally appear.
 * 
 * 4. The hosted project names must not be used to endorse or promote
 * products derived from this software without prior written
 * permission. For written permission, please contact info@@collab.net.
 * 
 * 5. Products derived from this software may not use the "Tigris" name
 * nor may "Tigris" appear in their names without prior written
 * permission of CollabNet.
 * 
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
 * IN NO EVENT SHALL COLLABNET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
 * GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *
 * ====================================================================
 * 
 * This software consists of voluntary contributions made by many
 * individuals on behalf of CollabNet.
 */

package org.tigris.helm.host;

import java.sql.Connection;

import org.webmacro.servlet.*;

import org.apache.turbine.util.Log;

import org.joist.security.RedirectException;

import org.tigris.helm.security.HelmServlet;
import org.tigris.helm.tool.task.TaskRunner;

/**
 * Miscellaneous utilities for dealing with static data structures.
 *
 * @@author <a href="mailto:leonardr@@collab.net">Leonard Richardson</a>
 * @@version $Id: StaticUtils.java,v 1.7 2001/01/26 18:29:09 edk Exp $
 */
public class StaticUtils extends HelmServlet 
{
    public static final  String versionID = "$Id: StaticUtils.java,v 1.7 2001/01/26 18:29:09 edk Exp $";

    private static boolean DEBUG = true;

    private static String START_TASK_RUNNER_ACTION="Start Task Runner";
    private static String STOP_TASK_RUNNER_ACTION="Stop Task Runner";

    /**
     *  Rebuild data structures and start/stop threads.
     */
    protected String processRequest (Connection connection, WebContext context)
	throws HandlerException, RedirectException
    {
	String templateName = super.processRequest(connection, context);
        try 
        {
            String action = getAction(context);
            String message = "";

            //See if the TaskRunner thread is running.
            context.put("threadRunning", new Boolean(TaskRunner.numberOfInstances() > 0));

            if (action != null)
            {
                if (action.equals(STOP_TASK_RUNNER_ACTION)) {
                    int i = TaskRunner.stopThreads();
                    message = String.valueOf(i) + 
                        (i==1?" thread":" threads") + " stopped.";
                    context.put("threadRunning", Boolean.FALSE);
                } else if (action.equals(START_TASK_RUNNER_ACTION)) {
                    if (TaskRunner.numberOfInstances() > 0)
                    {
                        message = "Task runner already active.";
                    } else {
                        TaskRunner tr = new TaskRunner();
                        tr.start();
                        message = "Task runner started.";
                        context.put("threadRunning", Boolean.TRUE);
                    }
                }
            }
            
            appendToMessage(context, message, null);

        } catch (Exception e) {
            Log.error("Exception thrown in StaticUtils", e);
            throw new HandlerException(e.getMessage());
        }

        return templateName;  
    }

} /* end class StaticUtils */


@


1.1.2.2
log
@~ files.... mother nature's own version control.
@
text
@d64 1
a64 1
 * @@version $Id: StaticUtils.java~,v 1.1.2.1 2001/02/15 17:52:33 leonardr Exp $
d68 1
a68 1
    public static final  String versionID = "$Id: StaticUtils.java~,v 1.1.2.1 2001/02/15 17:52:33 leonardr Exp $";
@


