head	1.10;
access;
symbols
	TIGRIS_0_9_2_4:1.4
	TIGRIS_0_9_2_3:1.4
	HELM_PEER_PORT_BRANCH:1.9.0.2
	TURBINE_PEER:1.9
	TIGRIS_0_9_2_1:1.9
	TIGRIS_0_9_2:1.4.0.2
	TIGRIS_0_9_0:1.3.0.2
	TIGRIS_0_8_4:1.1.1.1.0.2
	NEWHELM:1.1.1.1
	TIGRIS_NOV_12_2000:1.1.1;
locks; strict;
comment	@# @;


1.10
date	2001.02.21.03.23.56;	author edk;	state dead;
branches;
next	1.9;

1.9
date	2001.01.26.18.29.00;	author edk;	state Exp;
branches
	1.9.2.1;
next	1.8;

1.8
date	2001.01.26.05.24.05;	author edk;	state dead;
branches;
next	1.7;

1.7
date	2001.01.24.22.24.36;	author leonardr;	state Exp;
branches;
next	1.6;

1.6
date	2001.01.24.21.41.48;	author leonardr;	state Exp;
branches;
next	1.5;

1.5
date	2001.01.24.20.42.46;	author dlr;	state Exp;
branches;
next	1.4;

1.4
date	2001.01.05.01.10.55;	author dlr;	state Exp;
branches;
next	1.3;

1.3
date	2000.12.12.01.53.55;	author leonardr;	state Exp;
branches
	1.3.2.1;
next	1.2;

1.2
date	2000.12.07.18.58.41;	author leonardr;	state Exp;
branches;
next	1.1;

1.1
date	2000.11.12.21.14.51;	author dlr;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	2000.11.12.21.14.51;	author dlr;	state Exp;
branches;
next	;

1.3.2.1
date	2001.01.13.02.36.41;	author leonardr;	state Exp;
branches;
next	1.3.2.2;

1.3.2.2
date	2001.01.13.03.28.08;	author leonardr;	state Exp;
branches;
next	;

1.9.2.1
date	2001.01.28.01.02.17;	author dlr;	state dead;
branches;
next	;


desc
@@


1.10
log
@delete stuff from the head which is obsolete in the branch (more changes
are still needed for a clean compile)
@
text
@/* ================================================================
 * Copyright (c) 2000 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 COLLAB.NET 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.database;

import java.util.*;
import java.sql.*;

import org.apache.turbine.services.db.TurbineDB;
import org.apache.turbine.util.db.pool.DBConnection;

import org.webmacro.util.*;
import org.webmacro.servlet.*;

import com.workingdogs.village.*;

import org.joist.database.*;
import org.joist.util.*;

/**
 * Manages the action table. The resource of this manager is limited
 * because most action management shouldn't be done from Java
 * code.
 *
 * @@author <a href="mailto:leonardr@@collab.net">Leonard Richardson</a>
 * @@author <a href="mailto:dlr@@collab.net">Daniel Rall</a>
 * @@version $Id: ActionManager.java,v 1.9 2001/01/26 18:29:00 edk Exp $
 *
 * Copyright (c) 2000 CollabNet, Inc.  
 */

public class ActionManager extends TableManager
{
    /**
     * SQL statement used to lock the tables used in the initializer.
     */
    private static final String LOCK_TABLES = "lock tables " + 
        "HELM_ACTION read";

    /**
     * SQL statement used to unlock the tables used in the initializer.
     */
    private static final String UNLOCK_TABLES = "unlock tables";

    /**
     * A static mapping of actionIDs to records. Used for speed
     * reasons.
     */
    private static HashMap actionIDMap = new HashMap();

    /**
     * A static mapping of action names to records. Used for speed
     * reasons.
     */
    private static HashMap actionNameMap = new HashMap();

    /**
     * The name of the database table that this <code>TableManager</code> 
     * manages.
     */
    public static final String TABLE_NAME = "HELM_ACTION";

    /**
     * The primary database key field.
     */
    public static final String ACTION_ID = "ACTION_ID";

    /**
     * The name field.
     */
    public static final String ACTION_NAME = "NAME";   

    /**
     * The type field.
     */
    public static final String ACTION_TYPE = "TYPE";   

    public static final String HOST_TYPE = "Host";
    public static final String DOMAIN_TYPE = "Domain";
    public static final String PROJECT_TYPE = "Project";

    /**
     * The logger instance for all instances of this class.
     */
    private static Log log = new Log("actMgr", "ActionManager");

    /**
     * Whether we want debugging information.
     */
    private static boolean debug = true;

    /**
     * Static initializer--build the map of action IDs to action records.
     */
    static
    {
        DBConnection dbConn = null;
        try
        {
            // Get a connection from the Turbine ConnectionPool.
            dbConn = TurbineDB.getConnection();
            Connection connection = dbConn.getConnection();
            DataManager dMgr = new DataManager();

            Statement stmt = null;        
            try
            {
                // Grab a light weight database lock.
                stmt = connection.createStatement();
                stmt.executeUpdate(LOCK_TABLES);
            }
            catch (Exception e)
            {
                log.info("Table locking/unlocking error in static " +
                          "initializer: " + e.getMessage());
                throw new RuntimeException(e.getMessage());
            }

            try
            {
                buildActionMaps(connection, dMgr);
            }
            catch (DataSetException e)
            {
                log.exception(e);
                throw new RuntimeException(e.getMessage());
            }
            catch (SQLException e)
            {
                log.exception(e);
                throw new RuntimeException(e.getMessage());
            }

            if (stmt != null)
            {
                // Unlock the database tables.
                stmt.executeUpdate(UNLOCK_TABLES);
                stmt.close();
            }
        }
        catch (Exception e)
        {
            log.exception(e);
            throw new RuntimeException(e.getMessage());
        }
        finally
        {
            // Return the connection to the pool.
            if (dbConn != null)
            {
                try
                {
                    TurbineDB.releaseConnection(dbConn);
                }
                catch (Exception e)
                {
                    throw new RuntimeException(e.getMessage());
                }
            }
        }
    }

    /**
     * Builds the Maps used for speed reasons.
     */
    public static void buildActionMaps (Connection connection,
                                        DataManager dMgr)
        throws SQLException, DataSetException
    {
        DataSet actions = null;
        try
        {
            actions = new TableDataSet(connection, TABLE_NAME);
            actions.fetchRecords();
            for (int i = 0; i < actions.size(); i++)
            {
                Record action = actions.getRecord(i);
                String actionID = action.getValue(ACTION_ID).toString();
                String actionName = action.getValue(ACTION_NAME).toString();
                actionIDMap.put(actionID, action);
                actionNameMap.put(actionName, action);
            }
        }
        finally
        {
            if (actions != null) actions.close();
        }
    }

    /**
     * Creates a new instance.
     *
     * @@param dataMgr The manager of this instance.
     */
    public ActionManager(DataManager dataMgr)
    {
        super(dataMgr);
    }    

    /**
     * Maps a action ID to a action name
     *
     * @@param	connection    A JDBC database connection
     * @@param	actionID  The action ID to get a name for
     * @@return	 a String
     * @@exception	SQLException
     * @@exception	DataSetException
     * @@exception	JoistDatabaseException
     */
    public String actionName (String actionID)
	throws SQLException, DataSetException, JoistDatabaseException
    {        
        return getAction(actionID).getValue(ACTION_NAME)
            .toString();
    }

    /**
     * Gets the record for an action with given name.
     *
     * @@param	connection    A JDBC database connection
     * @@param	actionID  The action name to retrieve.
     * @@return	 a Record representing the Action.
     * @@exception	SQLException
     * @@exception	DataSetException
     * @@exception	JoistDatabaseException
     */
    public Record getActionForName (String actionName)
	throws SQLException, DataSetException, JoistDatabaseException
    {        
        Record action = (Record)actionNameMap.get(actionName);
        if (action != null)
        {
            return action;
        } else {
            throw new JoistDatabaseException ("No such action " + actionName);
        }
    }

    /**
     * Gets the record for an action with given ID.
     *
     * @@param	connection    A JDBC database connection
     * @@param	actionID  The action ID to get the action for
     * @@return	 a Record representing the Action.
     * @@exception	SQLException
     * @@exception	DataSetException
     * @@exception	JoistDatabaseException
     */
    public Record getAction (String actionID)
	throws SQLException, DataSetException, JoistDatabaseException
    {        
        Record action = null;
        action = (Record)actionIDMap.get(actionID);
        if (action != null)
        {
            return action;
        } else {
            throw new JoistDatabaseException ("No such action " + actionID);
        }
    }

    /**
     * Returns a dataset of all the actions.
     *
     * @@param	connection    A JDBC database connection
     * @@return	 a DataSet
     * @@exception	SQLException
     * @@exception	DataSetException
     * @@exception	JoistDatabaseException
     */
    public DataSet listActions (Connection connection)
	throws SQLException, DataSetException
    {        
        return getActions(connection,null,null,null);
    }

    /**
     * Returns a dataset of all the actions of a given type.
     *
     * @@param	connection    A JDBC database connection
     * @@return	 a DataSet
     * @@exception	SQLException
     * @@exception	DataSetException
     * @@exception	JoistDatabaseException
     */
    public DataSet getActionsForType (Connection connection, String type)
	throws SQLException, DataSetException
    {        
        return getActions(connection,null,null,type);
    }

    /**
     *  Retrieves actions by action ID or name.
     *
     * @@param	connection    A JDBC database connection
     * @@param   actionID  A action ID (can be null)
     * @@ param  name          A action name (can be null)
     * @@return	 a DataSet
     * @@exception	SQLException
     * @@exception	DataSetException
     */
    private TableDataSet getActions(Connection connection,
                                    String actionID,
                                    String name,
                                    String type)
        throws SQLException, DataSetException
    {
        TableDataSet actions = null;
        try {
            actions = new TableDataSet(connection, TABLE_NAME);
            actions.where(buildWhereClause(actionID, name, type));
            actions.fetchRecords();
	}
	catch (DataSetException e)
	{
	    log.exception(e);
	    if (debug) log.debug("Getting Actions: " + e.getMessage());
	    throw e;
	}
	catch (SQLException e)
	{
	    log.exception(e);
	    if (debug) log.debug("Getting Actions: " + e.getMessage());
	    throw e;
	}
	finally
	{
	    registerToClose(actions);
	}
        return actions;
    }

    /**
     * Creates a SQL <code>where</code> clause.
     */
    protected static String buildWhereClause (String actionID, 
                                              String name,
                                              String type)
    {
        StringBuffer whereClause = new StringBuffer();
        boolean firstClause = true;

        if (actionID != null)
        {
            whereClause.append(ACTION_ID).append('=').append(actionID);
            firstClause = false;
        }

        if (name != null)
        {
            if (!firstClause)
            {
                whereClause.append(" AND ");
            }
            whereClause.append(ACTION_NAME).append('=')
                .append(escapeAndQuoteSQL(name));
            firstClause = false;
        }

        if (type != null)
        {
            if (!firstClause)
            {
                whereClause.append(" AND ");
            }
            whereClause.append(ACTION_TYPE).append('=')
                .append(escapeAndQuoteSQL(type));
            firstClause = false;
        }
        return whereClause.toString();
    }

}
@


1.9
log
@readding all the files as part of the process of returning to the way
things were as of tuesday
@
text
@d69 1
a69 1
 * @@version $Id: ActionManager.java,v 1.4 2001/01/05 01:10:55 dlr Exp $
@


1.9.2.1
log
@Porting to the Turbine Peer system.  -dlr and leonardr
@
text
@d69 1
a69 1
 * @@version $Id: ActionManager.java,v 1.9 2001/01/26 18:29:00 edk Exp $
@


1.8
log
@revert this stuff to its state as of 2001/01/24 12:42:00 GMT -- with
the following exceptions, which have some different modifications so
they'll work with changes which have happened in joist:

ProjectNewsEdit.java
SkinManager.java
SkinStyleElementValueManager.java
StyleElementManager.java
StyleManager.java

it compiles.  i dunno if it works, though.
@
text
@d32 1
a32 1
 * IN NO EVENT SHALL COLLABNET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
d59 1
a59 3
import org.joist.database.TableManager;
import org.joist.database.DataManager;
import org.joist.database.Criterion;
a61 2
import org.tigris.helm.DoesNotExist;

d69 1
a69 1
 * @@version $Id: ActionManager.java,v 1.7 2001/01/24 22:24:36 leonardr Exp $
d71 1
a71 1
 * Copyright (c) 2000-2001 CollabNet, Inc.  
a119 3
    /**
     * Represents an action of host type.
     */
a120 4

    /**
     * Represents an action of domain type.
     */
a121 4

    /**
     * Represents an action of project type.
     */
d165 6
a170 1
            catch (DBException e)
d182 3
a184 1
        } catch (Exception e) {
d187 3
a189 1
        } finally {
d206 1
a206 1
     * Builds the Maps used for performance reasons.
d210 1
a210 1
        throws DBException
a225 8
        catch (DataSetException e)
        {
            throw new DBException(e);
        }
        catch (SQLException e)
        {
            throw new DBException(e);
        }
d228 1
a228 9
            try
            {
                if (actions != null) actions.close();
            }
            catch (Exception e)
            {
                // Can only be a database-related exception.
                throw new DBException(e);
            }
d239 2
a240 2
        super(dataMgr, new KeyDef().addAttrib(ACTION_ID));
    }
d243 1
a243 1
     * Maps a action ID to a action name.
d248 3
a250 2
     * @@exception	DBException if a database error occurs.
     * @@exception DoesNotExist if the ID is invalid.
d253 1
a253 1
	throws DBException, DoesNotExist
d255 2
a256 7
        String name = null;
        try {
            name = getAction(actionID).getValue(ACTION_NAME).asString();
        } catch (DataSetException e) {
            throw new DBException(e);
        }
        return name;
d262 1
d265 3
a267 3
     * @@exception DoesNotExist if the name is invalid.
     *
     * @@exception DBException
d270 1
a270 1
	throws DoesNotExist
d277 1
a277 1
            throw new DoesNotExist ("Action named " + actionName);
d284 1
d287 3
a289 3
     *
     * @@exception DoesNotExist if the ID is invalid.
     * @@exception DBException
d292 1
a292 1
	throws DoesNotExist
d300 1
a300 1
            throw new DoesNotExist ("Action with ID " + actionID);
d307 5
a311 4
     * @@return	 a DataSet containing all actions.
     * @@exception DBException if a database error occurs.
     *
     * @@exception DBException
d313 2
a314 2
    public DataSet listActions()
	throws DBException
d316 1
a316 1
        return getActions(null);
d322 3
a324 3
     * @@param    type   The type of action to get.
     * @@return	 a DataSet containing all actions of the specified type.
     * @@exception	DBException if a database error occurs
d328 2
a329 2
    public DataSet getActionsForType (String type)
	throws DBException
d331 1
a331 2
        Criterion c = new Criterion(ACTION_TYPE, type);
        return getActions(c);
d335 1
a335 1
     *  Retrieves actions that fit a Criterion.
d337 6
a342 3
     * @@param	        criterion A Criterion specifying the match
     * @@return	        a DataSet containing actions matching the Criterion.
     * @@exception	DBException if a database error occurs.     
d344 5
a348 2
    private DataSet getActions(Criterion criterion)
        throws DBException
d350 1
a350 1
        DataSet s = null;
d352 37
a388 3
            s = runSelect(TABLE_NAME, criterion, TABLE_NAME + "." + ACTION_NAME);
        } catch (Exception e) {
            throw new DBException(e);
d390 23
a412 1
        return s;
d414 1
@


1.7
log
@Moved TableManagers to new keydef constructor and keydef-less runSelect.
@
text
@d73 1
a73 1
 * @@version $Id: ActionManager.java,v 1.6 2001/01/24 21:41:48 leonardr Exp $
@


1.6
log
@Ported UserManager and RoleManager to Helm. Started moving other TableManagers toward a grab-connection-on-demand model. Massive breakage ensues. dlr and I are working on it.
@
text
@d73 1
a73 1
 * @@version $Id: ActionManager.java,v 1.5 2001/01/24 20:42:46 dlr Exp $
d261 1
a261 9
        super(dataMgr);
    }

    /**
     * Returns a KeyDef object appropriate for this table.
     */
    private KeyDef keydef()
    {
        return new KeyDef().addAttrib(ACTION_ID);
d370 1
a370 1
            s = runSelect(TABLE_NAME, keydef(), criterion, TABLE_NAME + "." + ACTION_NAME);
@


1.5
log
@Making use of DBException.
@
text
@d32 1
a32 1
 * IN NO EVENT SHALL COLLAB.NET OR ITS CONTRIBUTORS BE LIABLE FOR ANY
d59 3
a61 1
import org.joist.database.*;
d64 2
d73 1
a73 1
 * @@version $Id: ActionManager.java,v 1.4 2001/01/05 01:10:55 dlr Exp $
d75 1
a75 1
 * Copyright (c) 2000 CollabNet, Inc.  
d124 3
d128 4
d133 4
d192 1
a192 3
        }
        catch (Exception e)
        {
d195 1
a195 3
        }
        finally
        {
d212 1
a212 1
     * Builds the Maps used for speed reasons.
d262 9
a270 1
    }    
d278 2
a279 3
     * @@exception	SQLException
     * @@exception	DataSetException
     * @@exception	JoistDatabaseException
d282 1
a282 1
	throws DBException
d284 4
a287 6
        try
        {
            return getAction(actionID).getValue(ACTION_NAME).toString();
        }
        catch (DataSetException e)
        {
d290 1
a295 1
     * @@param	connection    A JDBC database connection
d298 1
d303 1
a303 1
	throws DBException
d309 2
a310 4
        }
        else
        {
            throw new DBException("No such action: " + actionName);
a316 1
     * @@param	connection    A JDBC database connection
d320 1
d324 1
a324 1
	throws DBException
d331 2
a332 4
        }
        else
        {
            throw new DBException("No such action: " + actionID);
d339 2
a340 2
     * @@param	connection    A JDBC database connection
     * @@return	 a DataSet
d344 1
a344 1
    public DataSet listActions (Connection connection)
d347 1
a347 1
        return getActions(connection,null,null,null);
d353 5
a357 4
     * @@param	connection    A JDBC database connection
     * @@return	 a DataSet
     *
     * @@exception DBException
d359 1
a359 1
    public DataSet getActionsForType (Connection connection, String type)
d362 2
a363 1
        return getActions(connection,null,null,type);
d367 1
a367 1
     *  Retrieves actions by action ID or name.
d369 3
a371 6
     * @@param	connection    A JDBC database connection
     * @@param   actionID  A action ID (can be null)
     * @@param  name          A action name (can be null)
     * @@return	 a DataSet
     *
     * @@exception DBException
d373 1
a373 4
    private TableDataSet getActions(Connection connection,
                                    String actionID,
                                    String name,
                                    String type)
d376 1
a376 1
        TableDataSet actions = null;
d378 2
a379 10
            actions = new TableDataSet(connection, TABLE_NAME);
            actions.where(buildWhereClause(actionID, name, type));
            actions.fetchRecords();
	}
	catch (DataSetException e)
	{
            throw new DBException(e);
	}
	catch (SQLException e)
	{
a380 44
	}
	finally
	{
	    registerToClose(actions);
	}
        return actions;
    }

    /**
     * Creates a SQL <code>where</code> clause.
     */
    protected static String buildWhereClause (String actionID, 
                                              String name,
                                              String type)
    {
        StringBuffer whereClause = new StringBuffer();
        boolean firstClause = true;

        if (actionID != null)
        {
            whereClause.append(ACTION_ID).append('=').append(actionID);
            firstClause = false;
        }

        if (name != null)
        {
            if (!firstClause)
            {
                whereClause.append(" AND ");
            }
            whereClause.append(ACTION_NAME).append('=')
                .append(escapeAndQuoteSQL(name));
            firstClause = false;
        }

        if (type != null)
        {
            if (!firstClause)
            {
                whereClause.append(" AND ");
            }
            whereClause.append(ACTION_TYPE).append('=')
                .append(escapeAndQuoteSQL(type));
            firstClause = false;
d382 1
a382 1
        return whereClause.toString();
a383 1

@


1.4
log
@Migrated to latest Turbine CVS to avoid connection release bug (fixed long ago in Turbine CVS--we just had a bunk version).
@
text
@d69 1
a69 1
 * @@version $Id: ActionManager.java,v 1.3 2000/12/12 01:53:55 leonardr Exp $
d165 1
a165 6
            catch (DataSetException e)
            {
                log.exception(e);
                throw new RuntimeException(e.getMessage());
            }
            catch (SQLException e)
d205 1
a205 1
        throws SQLException, DataSetException
d221 8
d231 9
a239 1
            if (actions != null) actions.close();
d254 1
a254 1
     * Maps a action ID to a action name
d264 1
a264 1
	throws SQLException, DataSetException, JoistDatabaseException
d266 8
a273 2
        return getAction(actionID).getValue(ACTION_NAME)
            .toString();
d282 2
a283 3
     * @@exception	SQLException
     * @@exception	DataSetException
     * @@exception	JoistDatabaseException
d286 1
a286 1
	throws SQLException, DataSetException, JoistDatabaseException
d292 4
a295 2
        } else {
            throw new JoistDatabaseException ("No such action " + actionName);
d305 2
a306 3
     * @@exception	SQLException
     * @@exception	DataSetException
     * @@exception	JoistDatabaseException
d309 1
a309 1
	throws SQLException, DataSetException, JoistDatabaseException
d316 4
a319 2
        } else {
            throw new JoistDatabaseException ("No such action " + actionID);
d328 2
a329 3
     * @@exception	SQLException
     * @@exception	DataSetException
     * @@exception	JoistDatabaseException
d332 1
a332 1
	throws SQLException, DataSetException
d342 2
a343 3
     * @@exception	SQLException
     * @@exception	DataSetException
     * @@exception	JoistDatabaseException
d346 1
a346 1
	throws SQLException, DataSetException
d356 1
a356 1
     * @@ param  name          A action name (can be null)
d358 2
a359 2
     * @@exception	SQLException
     * @@exception	DataSetException
d365 1
a365 1
        throws SQLException, DataSetException
d375 1
a375 3
	    log.exception(e);
	    if (debug) log.debug("Getting Actions: " + e.getMessage());
	    throw e;
d379 1
a379 3
	    log.exception(e);
	    if (debug) log.debug("Getting Actions: " + e.getMessage());
	    throw e;
@


1.3
log
@New servlet - StaticUtils
@
text
@d51 1
a51 1
import org.apache.turbine.services.db.PoolBrokerService;
d69 1
a69 1
 * @@version $Id: ActionManager.java,v 1.2 2000/12/07 18:58:41 leonardr Exp $
d143 1
a143 1
            dbConn = PoolBrokerService.getInstance().getConnection();
d195 1
a195 1
                    PoolBrokerService.getInstance().releaseConnection(dbConn);
@


1.3.2.1
log
@getGroups works properly -> delete works properly. Also got rid of a bunch of gratuitious exceptions that were being thrown due to null organizations.
@
text
@d51 1
a51 1
import org.apache.turbine.services.db.*;
d69 1
a69 1
 * @@version $Id: ActionManager.java,v 1.3 2000/12/12 01:53:55 leonardr Exp $
d143 1
a143 1
            dbConn = TurbineDB.getConnection();
d195 1
a195 1
                    TurbineDB.releaseConnection(dbConn);
@


1.3.2.2
log
@Re-oldified turbine connection syntax.
@
text
@d69 1
a69 1
 * @@version $Id: ActionManager.java,v 1.3.2.1 2001/01/13 02:36:41 leonardr Exp $
d143 1
a143 1
            dbConn = PoolBrokerService.getInstance().getConnection();
d195 1
a195 1
                    PoolBrokerService.getInstance().releaseConnection(dbConn);
@


1.2
log
@Made PermissionDump more modular.
@
text
@d69 1
a69 1
 * @@version $Id: ActionManager.java,v 1.1.1.1 2000/11/12 21:14:51 dlr Exp $
d208 2
a209 2
    private static void buildActionMaps (Connection connection,
                                         DataManager dMgr)
@


1.1
log
@Initial revision
@
text
@d69 1
a69 1
 * @@version $Id: ActionManager.java,v 1.10 2000/11/11 04:27:28 dlr Exp $
d120 4
d316 16
a331 1
        return getActions(connection,null,null);
d345 3
a347 2
                                        String actionID,
                                        String name)
d353 1
a353 1
            actions.where(buildWhereClause(actionID, name));
d379 2
a380 1
                                              String name)
d399 11
@


1.1.1.1
log
@Merging newhelm tree into helm, as per IZ issue #557.  Previous major version of helm is tagged TIGRIS_NOV_11_2000.
@
text
@@
