OSDN Git Service

Initial commit
[ultramonkey-l7/l7gui.git] / src / src / org / ultramonkey / l7 / view / ReplicationInfoChangeServlet.java
1 package org.ultramonkey.l7.view;
2
3 import java.io.IOException;
4 import java.util.Enumeration;
5
6 import javax.servlet.ServletException;
7 import javax.servlet.http.HttpServletRequest;
8 import javax.servlet.http.HttpServletResponse;
9 import javax.servlet.http.HttpSession;
10
11 import org.apache.log4j.Logger;
12 import org.ultramonkey.l7.model.ExecuteMode;
13 import org.ultramonkey.l7.model.L7guiFramework;
14 import org.ultramonkey.l7.model.LogCategorySet;
15 import org.ultramonkey.l7.model.Message;
16 import org.ultramonkey.l7.model.MessageView;
17 import org.ultramonkey.l7.model.SessionTransData;
18 import org.ultramonkey.l7.controller.*;
19
20
21 /**
22  * 
23  * <p>class ReplicationInfoChangeServlet</p>
24  * <p>Copyright(c) NTT COMWARE 2008</p>
25  * @author kubota
26  */
27
28 public class ReplicationInfoChangeServlet extends org.ultramonkey.l7.view.L7guiServletBase{
29         static final long serialVersionUID = 1L;        
30
31         private Logger logger = Logger.getLogger(LogCategorySet.GUI_IO);
32
33         /* (non-Java-doc)
34          * @see javax.servlet.http.HttpServlet#HttpServlet()
35          */
36         public ReplicationInfoChangeServlet() {
37                 super();
38         // --- debug log (constructor) ---
39         if (logger.isDebugEnabled()) {
40             logger.debug("11297 class ReplicationInfoChangeServlet created.");
41         }
42         // --- debug log (constructor) ---
43         }       
44         
45         /* (non-Java-doc)
46          * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
47          */
48         
49         protected void doGet(HttpServletRequest request, HttpServletResponse response)
50                 throws ServletException, IOException {
51                 // --- debug log (in method) ---
52                 if (logger.isDebugEnabled()) {
53                         StringBuffer buf = new StringBuffer();
54             buf.append("ReplicationInfoChangeServlet::doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException in ");
55             buf.append("request=(" + request + "), ");
56             buf.append("response=(" + response + ")");
57             logger.debug("11298 " + buf.toString());
58             request.setCharacterEncoding("UTF-8");
59                         logger.debug("11299 QueryString=\"" + request.getQueryString() + "\"");
60                 }
61                 // --- debug log (in method) ---
62
63                 response.sendRedirect(RedirectPages.LOGIN);
64
65                 // --- debug log (out method) ---
66                 if (logger.isDebugEnabled()) {
67             logger.debug("11300 ReplicationInfoChangeServlet::doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
68                 }
69                 // --- debug log (out method) ---
70                 return;
71         }
72
73         
74         /* (non-Java-doc)
75          * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
76          */
77         protected void doPost(HttpServletRequest request, HttpServletResponse response)
78                 throws ServletException, IOException {
79                 // --- debug log (in method) ---
80                 if (logger.isDebugEnabled()) {
81                         StringBuffer buf = new StringBuffer();
82             buf.append("ReplicationInfoChangeServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException in ");
83             buf.append("request=(" + request + "), ");
84             buf.append("response=(" + response + ")");
85             logger.debug("11301 " + buf.toString());
86             request.setCharacterEncoding("UTF-8");
87                         Enumeration keys = request.getParameterNames();
88                         String post = "";
89                         while (keys.hasMoreElements()) {
90                                 if (post.length() != 0)
91                                         post += "&";
92                                 String key = (String) keys.nextElement();
93                                 post += key + "=" + request.getParameter(key);
94                         }
95                         logger.debug("11302 PostData=\"" + post + "\"");
96                 }
97                 // --- debug log (in method) ---
98
99                 // check login session
100                 super.doPost(request, response);
101                 
102                 HttpSession session = request.getSession(false);
103                 if (login == false || session == null) {
104                         if (session != null) {
105                                 MessageView error = new MessageView(41073, LogCategorySet.GUI_USER_AUTHENTICATION,
106                                                 Message.INVALID_SESSSION);
107                                 session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
108                         }
109                         response.sendRedirect(RedirectPages.LOGIN);
110                         // --- debug log (out method) ---
111                         if (logger.isDebugEnabled()) {
112                                 logger.debug("11303 ReplicationInfoChangeServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
113                         }
114                         // --- debug log (out method) ---
115                         return;
116                 }
117                                 
118                 L7guiFramework framework = new L7guiFramework();
119                 ReplicationData rep = framework.getReplicationData();
120                 if ( rep == null ){
121                         MessageView error = new MessageView(41074, LogCategorySet.GUI_IO_FILE, 
122                                         Message.UNEXPECTED_ERROR);
123                         session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
124                         response.sendRedirect(RedirectPages.LOGIN);
125                         // --- debug log (out method) ---
126                         if (logger.isDebugEnabled()) {
127                                 logger.debug("11304 ReplicationInfoChangeServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
128                         }
129                         // --- debug log (out method) ---
130                         return;
131                 }
132
133         request.setCharacterEncoding("UTF-8");
134                 String str_repInterval = request.getParameter("rep_interval");
135                 String str_beforeRepData = Integer.toString(rep.interval);
136
137                 boolean validationFrag = validationCheck(session, str_repInterval, rep);
138                 if (validationFrag == false ){
139                         session.setAttribute(SessionKeys.INPUT_REP, rep);
140                         MessageView error = new MessageView(21040, LogCategorySet.GUI_REPLICATION,
141                                         Message.INVALID_VALUE);
142                         session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
143                         response.sendRedirect(RedirectPages.REPLICATION_MODIFY);
144                         // --- debug log (out method) ---
145                         if (logger.isDebugEnabled()) {
146                                 logger.debug("11305 ReplicationInfoChangeServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
147                         }
148                         // --- debug log (out method) ---
149                         return;
150                 }
151                 
152                 CommandExecuter thread = new CommandExecuter(session);
153                 
154                 ExecuteMode mode;
155                 String redirectPage;
156                 
157                 String button_mode = request.getParameter("button");
158
159                 // button mode : save
160                 if (button_mode != null && button_mode.equals(ButtonMode.SAVE)) {
161                         mode = ExecuteMode.REP_INFO_SAVE;
162                         redirectPage = RedirectPages.REPLICATION_INFO_EXECUTIVE;
163                 }
164                 // button mode : save and sync
165                 else if (button_mode != null && button_mode.equals(ButtonMode.SAVESYNC)) {
166                         mode = ExecuteMode.REP_INFO_SAVESYNC;
167                         redirectPage = RedirectPages.SAVE_SYNC_EXECUTIVE;
168
169                         SessionTransData trans = new SessionTransData();
170                         trans.sourceURI = RedirectPages.REPLICATION_MODIFY;
171                         trans.destURI   = RedirectPages.REPLICATION_INFO;
172                         trans.errorURI  = RedirectPages.REPLICATION_MODIFY_NG;
173                         session.setAttribute(SessionKeys.PAGE_TRANSDATA, trans);
174                 }
175                 else {
176                         MessageView error = new MessageView(41075, LogCategorySet.GUI_REPLICATION,
177                                         Message.UNEXPECTED_ERROR);
178                         session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
179                         response.sendRedirect(RedirectPages.LOGIN);
180                         // --- debug log (out method) ---
181                         if (logger.isDebugEnabled()) {
182                                 logger.debug("11306 ReplicationInfoChangeServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
183                         }
184                         // --- debug log (out method) ---
185                         return;
186                 }
187                 
188                 try {
189                         thread.setExecute(mode, rep);
190                         thread.start();
191                 }
192                 catch(Exception e)
193                 {
194                         MessageView error = new MessageView(41076, LogCategorySet.GUI_REPLICATION, 
195                                         Message.UNEXPECTED_ERROR);
196                         session.setAttribute(SessionKeys.RESULT_MESSAGE, error);
197                         response.sendRedirect(RedirectPages.LOGIN);
198                         // --- debug log (out method) ---
199                         if (logger.isDebugEnabled()) {
200                                 logger.debug("11307 ReplicationInfoChangeServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
201                         }
202                         // --- debug log (out method) ---
203                         return;
204                 }
205
206                 session.setAttribute(SessionKeys.BEFORE_REP_TIME, str_beforeRepData);
207                 String str_afterRepData = Integer.toString(rep.interval);               
208                 session.setAttribute(SessionKeys.AFTER_REP_TIME, str_afterRepData);
209                 response.sendRedirect(redirectPage);
210                 // --- debug log (out method) ---
211                 if (logger.isDebugEnabled()) {
212                         logger.debug("11308 ReplicationInfoChangeServlet::doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException out");
213                 }
214                 // --- debug log (out method) ---
215                 return;
216         } 
217         
218         /**
219          * 
220          * <p> validationCheck method</p>
221          *
222          * @param session
223          * @param str_repInterval
224          * @param rep
225          * @return
226          */
227         protected boolean validationCheck(HttpSession session, String str_repInterval, ReplicationData rep ){
228                 // --- debug log (in method) ---
229                 if (logger.isDebugEnabled()) {
230                         StringBuffer buf = new StringBuffer();
231                         buf.append("ReplicationInfoChangeServlet::validationCheck(HttpSession session, String str_repInterval, ReplicationData rep) in ");
232                         buf.append("session=(" + session + "), ");
233                         buf.append("str_repInterval=(" + str_repInterval + "), ");
234                         buf.append("rep=(" + rep + ")");
235                         logger.debug("11309 " + buf.toString());
236                 }
237                 // --- debug log (in method) ---
238
239                 boolean  validationFlag = true;
240                 
241                 final int MIN_REP_INTERVAL = 10;
242                 final int MAX_REP_INTERVAL = 10000;
243                 int repInterval = 0;
244                 
245                 if (session == null || rep == null) {
246                         validationFlag = false;
247                 } else if ( (str_repInterval == null) || str_repInterval.length() == 0){
248                         session.setAttribute(SessionKeys.INVALID_MESSAGE, Message.REQUIED_ITEM);
249                          validationFlag = false;
250                 }
251                 else {
252                         try {
253                                 repInterval = Integer.parseInt(str_repInterval); 
254                                 if ( (repInterval < MIN_REP_INTERVAL) || (repInterval > MAX_REP_INTERVAL) )     {
255                                         session.setAttribute(SessionKeys.INVALID_MESSAGE, Message.VALIDATION_ERROR);
256                                          validationFlag = false;        
257                                 } else {
258                                         rep.interval = repInterval;
259                                 }
260                         }
261                         catch (NumberFormatException e) {
262                                 session.setAttribute(SessionKeys.INVALID_MESSAGE, Message.VALIDATION_ERROR);
263                                  validationFlag = false;        
264                         }
265                 }
266                 
267                 // --- debug log (out method) ---
268                 if (logger.isDebugEnabled()) {
269                         logger.debug("11310 ReplicationInfoChangeServlet::validationCheck(HttpSession session, String str_repInterval, ReplicationData rep) out return=" + validationFlag);
270                 }
271                 // --- debug log (out method) ---
272                 return  validationFlag; 
273         }
274 }