From 621d9e5c413e561293d7484b93882d985b3fe15f Mon Sep 17 00:00:00 2001 From: Endi Sukma Dewata Date: Sat, 24 Mar 2012 02:27:47 -0500 Subject: Removed unnecessary pki folder. Previously the source code was located inside a pki folder. This folder was created during svn migration and is no longer needed. This folder has now been removed and the contents have been moved up one level. Ticket #131 --- .../com/netscape/cmscore/apps/CommandQueue.java | 99 ++++++++++++++++++++++ 1 file changed, 99 insertions(+) create mode 100644 base/common/src/com/netscape/cmscore/apps/CommandQueue.java (limited to 'base/common/src/com/netscape/cmscore/apps/CommandQueue.java') diff --git a/base/common/src/com/netscape/cmscore/apps/CommandQueue.java b/base/common/src/com/netscape/cmscore/apps/CommandQueue.java new file mode 100644 index 000000000..6604fea5b --- /dev/null +++ b/base/common/src/com/netscape/cmscore/apps/CommandQueue.java @@ -0,0 +1,99 @@ +// --- BEGIN COPYRIGHT BLOCK --- +// This program is free software; you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation; version 2 of the License. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. +// +// You should have received a copy of the GNU General Public License along +// with this program; if not, write to the Free Software Foundation, Inc., +// 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +// +// (C) 2007 Red Hat, Inc. +// All rights reserved. +// --- END COPYRIGHT BLOCK --- +package com.netscape.cmscore.apps; + +import java.util.Enumeration; +import java.util.Hashtable; + +import javax.servlet.Servlet; + +import com.netscape.certsrv.apps.ICommandQueue; +import com.netscape.cms.servlet.common.CMSRequest; + +/*--------------------------------------------------------------- + ** CommandQueue - Class + */ + +/** + * register and unregister proccess for clean shutdown + */ +public class CommandQueue implements Runnable, ICommandQueue { + + public static Hashtable mCommandQueue = new Hashtable(); + public static boolean mShuttingDown = false; + + /*----------------------------------------------------------- + ** CommandQueue - Constructor + */ + + /** + * Main constructor. + */ + public CommandQueue() { + + } // CommandQueue + + /*----------------------------------------------------------- + ** run + */ + + /** + * Overrides Thread.run(), calls batchPublish(). + */ + public void run() { + //int priority = Thread.MIN_PRIORITY; + //Thread.currentThread().setPriority(priority); + /*------------------------------------------------- + ** Loop until queue is empty + */ + mShuttingDown = true; + while (mCommandQueue.isEmpty() == false) { + try { + Thread.sleep(5 * 1000); + //gcProcess(); + } catch (Exception e) { + + } + } + } // run + + public boolean registerProcess(CMSRequest currentRequest, Servlet currentServlet) { + if (mShuttingDown == false) { + if ((currentServlet instanceof com.netscape.cms.servlet.base.CMSStartServlet) == false) + mCommandQueue.put(currentRequest, currentServlet); + return true; + } else + return false; + + } + + public void unRegisterProccess(Object currentRequest, Object currentServlet) { + Enumeration e = mCommandQueue.keys(); + + while (e.hasMoreElements()) { + Object thisRequest = e.nextElement(); + + if (thisRequest.equals(currentRequest)) { + if (mCommandQueue.get(currentRequest).equals(currentServlet)) + mCommandQueue.remove(currentRequest); + } + } + + } +} // CommandQueue + -- cgit