head	1.4;
access;
symbols
	dlr:1.1.1
	HELM_PEER_PORT_BRANCH:1.1.1.1;
locks; strict;
comment	@# @;


1.4
date	2001.03.08.21.31.00;	author leonardr;	state dead;
branches;
next	1.3;

1.3
date	2001.02.22.22.24.45;	author leonardr;	state Exp;
branches;
next	1.2;

1.2
date	2001.02.21.03.02.22;	author edk;	state Exp;
branches;
next	1.1;

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

1.1.1.1
date	2001.02.21.00.32.37;	author dlr;	state Exp;
branches;
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.20.50.37;	author leonardr;	state Exp;
branches;
next	1.1.2.3;

1.1.2.3
date	2001.02.16.16.09.06;	author leonardr;	state Exp;
branches;
next	1.1.2.4;

1.1.2.4
date	2001.02.16.18.51.45;	author leonardr;	state Exp;
branches;
next	;


desc
@@


1.4
log
@Changed StaticUtils to AdminUtils, and added links from it to other servlets.
@
text
@/* ================================================================
 * Copyright (c) 2000-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.om.*;
import org.tigris.helm.tool.task.TaskRunner;
import org.tigris.helm.tool.audit.AuditLog;

/**
 * Miscellaneous utilities for dealing with static data structures.
 *
 * @@author <a href="mailto:leonardr@@collab.net">Leonard Richardson</a>
 * @@version $Id: StaticUtils.java,v 1.3 2001/02/22 22:24:45 leonardr Exp $
 */
public class StaticUtils extends HelmServlet 
{
    public static final  String versionID = "$Id: StaticUtils.java,v 1.3 2001/02/22 22:24:45 leonardr 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";

    /**
     * Partial description of the audit log entry created when the
     * task runner is stopped or started.
     */
    private static String AUDIT_LOG_ON_TASK_RUNNER_ACTION="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 = "";
            User loginUser = getLoginUser(context);

            //See if the TaskRunner thread is running.
            if (action != null)
            {
                if (action.equals(STOP_TASK_RUNNER_ACTION)) {
                    if (TaskRunner.numberOfInstances() <= 0)
                    {
                        message = "Task runner was not active.";
                    } else {
                        String s = "stopped.";
                        int i = TaskRunner.stopThreads();
                        message = String.valueOf(i) + 
                            (i==1?" thread":" threads") + s + " ";
                        AuditLog.logEvent
                            (loginUser, AUDIT_LOG_ON_TASK_RUNNER_ACTION + s);
                    }
                } else if (action.equals(START_TASK_RUNNER_ACTION)) {
                    if (TaskRunner.numberOfInstances() > 0)
                    {
                        message = "Task runner already active.";
                    } else {
                        String s = "started.";
                        TaskRunner tr = new TaskRunner();
                        tr.start();
                        message = "Task runner " + s;
                        AuditLog.logEvent
                            (loginUser, AUDIT_LOG_ON_TASK_RUNNER_ACTION + s);
                    }
                }
            }
            
            context.put("threadInstances", 
                        new Integer(TaskRunner.numberOfInstances()));
            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.3
log
@Fixed some silently-fail and ugly-message bugs.
@
text
@d66 1
a66 1
 * @@version $Id: StaticUtils.java,v 1.2 2001/02/21 03:02:22 edk Exp $
d70 1
a70 1
    public static final  String versionID = "$Id: StaticUtils.java,v 1.2 2001/02/21 03:02:22 edk Exp $";
@


1.2
log
@adding files from the branch to the head
@
text
@d66 1
a66 1
 * @@version $Id: StaticUtils.java,v 1.1.1.1 2001/02/21 00:32:37 dlr Exp $
d70 1
a70 1
    public static final  String versionID = "$Id: StaticUtils.java,v 1.1.1.1 2001/02/21 00:32:37 dlr Exp $";
d100 1
a100 1
                    if (TaskRunner.numberOfInstances() > 0)
d107 1
a107 1
                            (i==1?" thread":" threads") + s;
@


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


1.1.1.1
log
@Replacing the HEAD with the HELM_PEER_PORT_BRANCH.
@
text
@a0 141
/* ================================================================
 * Copyright (c) 2000-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.om.*;
import org.tigris.helm.tool.task.TaskRunner;
import org.tigris.helm.tool.audit.AuditLog;

/**
 * Miscellaneous utilities for dealing with static data structures.
 *
 * @@author <a href="mailto:leonardr@@collab.net">Leonard Richardson</a>
 * @@version $Id: StaticUtils.java,v 1.1.2.4 2001/02/16 18:51:45 leonardr Exp $
 */
public class StaticUtils extends HelmServlet 
{
    public static final  String versionID = "$Id: StaticUtils.java,v 1.1.2.4 2001/02/16 18:51:45 leonardr 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";

    /**
     * Partial description of the audit log entry created when the
     * task runner is stopped or started.
     */
    private static String AUDIT_LOG_ON_TASK_RUNNER_ACTION="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 = "";
            User loginUser = getLoginUser(context);

            //See if the TaskRunner thread is running.
            if (action != null)
            {
                if (action.equals(STOP_TASK_RUNNER_ACTION)) {
                    if (TaskRunner.numberOfInstances() > 0)
                    {
                        message = "Task runner was not active.";
                    } else {
                        String s = "stopped.";
                        int i = TaskRunner.stopThreads();
                        message = String.valueOf(i) + 
                            (i==1?" thread":" threads") + s;
                        AuditLog.logEvent
                            (loginUser, AUDIT_LOG_ON_TASK_RUNNER_ACTION + s);
                    }
                } else if (action.equals(START_TASK_RUNNER_ACTION)) {
                    if (TaskRunner.numberOfInstances() > 0)
                    {
                        message = "Task runner already active.";
                    } else {
                        String s = "started.";
                        TaskRunner tr = new TaskRunner();
                        tr.start();
                        message = "Task runner " + s;
                        AuditLog.logEvent
                            (loginUser, AUDIT_LOG_ON_TASK_RUNNER_ACTION + s);
                    }
                }
            }
            
            context.put("threadInstances", 
                        new Integer(TaskRunner.numberOfInstances()));
            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.1
log
@Ported StaticUtils and TaskList, moving them into the host package.
@
text
@a0 120
/* ================================================================
 * 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.
            if (action != null)
            {
                if (action.equals(STOP_TASK_RUNNER_ACTION)) {
                    int i = TaskRunner.stopThreads();
                    message = String.valueOf(i) + 
                        (i==1?" thread":" threads") + " stopped.";
                } 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("threadInstances", 
                        new Integer(TaskRunner.numberOfInstances()));
            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
@Normalized copyright dates.
@
text
@d2 1
a2 1
 * Copyright (c) 2000-2001 CollabNet.  All rights reserved.
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 $";
@


1.1.2.3
log
@Added audit logging in a bunch of places.
@
text
@d64 1
a64 1
 * @@version $Id: StaticUtils.java,v 1.1.2.2 2001/02/15 20:50:37 leonardr Exp $
d68 1
a68 1
    public static final  String versionID = "$Id: StaticUtils.java,v 1.1.2.2 2001/02/15 20:50:37 leonardr Exp $";
a75 6
     * Partial description of the audit log entry created when the
     * task runner is stopped or started.
     */
    private static String AUDIT_LOG_ON_TASK_RUNNER_ACTION="Task runner ";

    /**
d91 3
a93 11
                    if (TaskRunner.numberOfInstances() > 0)
                    {
                        message = "Task runner was not active.";
                    } else {
                        String s = "stopped.";
                        int i = TaskRunner.stopThreads();
                        message = String.valueOf(i) + 
                            (i==1?" thread":" threads") + s;
                        AuditLog.logEvent
                            (loginUser, AUDIT_LOG_ON_TASK_RUNNER_ACTION + s);
                    }
a98 1
                        s = "started.";
d101 1
a101 3
                        message = "Task runner " + s;
                        AuditLog.logEvent
                            (loginUser, AUDIT_LOG_ON_TASK_RUNNER_ACTION + s);
a118 1

@


1.1.2.4
log
@Fixed more audit log bugs.
@
text
@a57 1
import org.tigris.helm.om.*;
a58 1
import org.tigris.helm.tool.audit.AuditLog;
d64 1
a64 1
 * @@version $Id: StaticUtils.java,v 1.1.2.3 2001/02/16 16:09:06 leonardr Exp $
d68 1
a68 1
    public static final  String versionID = "$Id: StaticUtils.java,v 1.1.2.3 2001/02/16 16:09:06 leonardr Exp $";
a91 1
            User loginUser = getLoginUser(context);
d113 1
a113 1
                        String s = "started.";
@


