Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/vinculum/engine/VCMDispatch.java


1   /* * ** **  BEGIN LICENSE BLOCK * ** **
2    * Version: MPL 1.1/GPL 2.0/LGPL 2.1
3    *
4    * The contents of this file are subject to the Mozilla Public License Version 
5    * 1.1 (the "License"); you may not use this file except in compliance with 
6    * the License. You may obtain a copy of the License at 
7    * http://www.mozilla.org/MPL/
8    *
9    * Software distributed under the License is distributed on an "AS IS" basis,
10   * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
11   * for the specific language governing rights and limitations under the
12   * License.
13   *
14   * The Original Code is Vinculum Open Source.
15   *
16   * The Initial Developer of the Original Code is
17   * Gerard Toonstra.
18   * Portions created by the Initial Developer are Copyright (C) 2003
19   * the Initial Developer. All Rights Reserved.
20   *
21   * Contributor(s):
22   *
23   * Alternatively, the contents of this file may be used under the terms of
24   * either the GNU General Public License Version 2 or later (the "GPL"), or
25   * the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
26   * in which case the provisions of the GPL or the LGPL are applicable instead
27   * of those above. If you wish to allow use of your version of this file only
28   * under the terms of either the GPL or the LGPL, and not to allow others to
29   * use your version of this file under the terms of the MPL, indicate your
30   * decision by deleting the provisions above and replace them with the notice
31   * and other provisions required by the GPL or the LGPL. If you do not delete
32   * the provisions above, a recipient may use your version of this file under
33   * the terms of any one of the MPL, the GPL or the LGPL.
34   *
35   * ** ** * END LICENSE BLOCK * ** **
36   */
37  
38  /***************************************************************************
39                            $RCSfile: VCMDispatch.java,v $  -  description
40                               -------------------
41      begin                : $Date: 2003/09/12 17:50:42 $
42      copyright            : Vinculum (C) 2002
43      author               : $Author: chiraz $
44   ***************************************************************************/
45  
46  /**
47   * $Log: VCMDispatch.java,v $
48   * Revision 1.9  2003/09/12 17:50:42  chiraz
49   * Changes to support cleaning up objects belonging to specific sessions.
50   *
51   * Revision 1.8  2003/09/10 07:34:52  chiraz
52   * Fix back button issue
53   *
54   * Revision 1.7  2003/09/09 21:57:29  chiraz
55   * fix back button issues...
56   *
57   * Revision 1.6  2003/09/08 07:15:28  chiraz
58   * changes to support classloader passed to the Vinculum engine
59   *
60   * Revision 1.4  2003/09/04 21:26:20  chiraz
61   * changes to support classloader passed to the Vinculum engine
62   *
63   * Revision 1.3  2003/08/27 19:11:48  chiraz
64   * Changed classpath, making it loadable directly by eclipse
65   *
66   * Revision 1.2  2003/07/30 22:20:22  chiraz
67   * updated core JAVA classes for Vinculum.
68   *
69   * Revision 1.1.1.1  2003/07/08 07:41:46  chiraz
70   * egg
71   **/
72  
73  package com.vinculum.engine;
74  
75  import javax.servlet.http.HttpServlet;
76  import javax.servlet.http.HttpServletRequest;
77  import javax.servlet.http.HttpServletResponse;
78  import javax.servlet.http.HttpSession;
79  import javax.servlet.RequestDispatcher;
80  import javax.servlet.ServletException;
81  
82  import java.io.*;
83  import java.util.Enumeration;
84  import java.lang.StringBuffer;
85  
86  /**
87   * @author chilan
88   *
89   */
90  public class VCMDispatch extends HttpServlet
91  {
92    private final static String PROCESS_NAME = "processName";
93    
94    /**
95     * 
96     */
97    public VCMDispatch()
98    {
99      super();
100   }
101   
102   public void doGet( HttpServletRequest req, HttpServletResponse res )
103     throws IOException, ServletException
104   {
105     doPost( req, res );
106   }
107   
108   public void doPost( HttpServletRequest req, HttpServletResponse res )
109     throws IOException, ServletException
110   {
111     HttpSession session = req.getSession();
112     String forwardURL = null;
113     String processName = req.getParameter(PROCESS_NAME);
114     
115     System.out.println("Request for process " + processName );
116     
117     if ( session.isNew() == true )
118     {
119       VCMSessionMonitor monitor = new VCMSessionMonitor();
120       
121       session.setAttribute("VCMmonitor", monitor );
122     }
123     
124     Enumeration enum = req.getParameterNames();
125     StringBuffer buffer = new StringBuffer();
126     
127     while ( enum.hasMoreElements() )
128     {
129       buffer.append((String)enum.nextElement());
130     }
131 
132     HashUtil hash = new HashUtil( buffer );
133     
134     System.out.println("Hash getHash: " + hash.getStringHash() );      
135     
136     try
137     {
138       forwardURL = VCMworkflow.execute( processName, session.getId(), req, this.getClass().getClassLoader(), hash.getStringHash() );
139     }
140     catch (WebException e)
141     {
142       RequestDispatcher disp = req.getRequestDispatcher("/error.jsp");
143       VCMworkflow.deRegisterRequest( session.getId() );      
144       disp.forward(req, res);
145       return;
146     }
147 
148     if ( forwardURL != null )
149     {
150       VCMworkflow.deRegisterRequest( session.getId() );
151   
152       RequestDispatcher disp = req.getRequestDispatcher( forwardURL );  
153   
154       disp.forward(req,res);
155     }
156     else
157     {
158       RequestDispatcher disp = req.getRequestDispatcher("/error.jsp");
159       VCMworkflow.deRegisterRequest( session.getId() );      
160       disp.forward(req, res);
161       return;
162     }
163   }
164 }