001 /* 002 * Copyright © 2008, 2012 Pedro Agulló Soliveres. 003 * 004 * This file is part of DirectJNgine. 005 * 006 * DirectJNgine is free software: you can redistribute it and/or modify 007 * it under the terms of the GNU Lesser General Public License as published by 008 * the Free Software Foundation, either version 3 of the License. 009 * 010 * Commercial use is permitted to the extent that the code/component(s) 011 * do NOT become part of another Open Source or Commercially developed 012 * licensed development library or toolkit without explicit permission. 013 * 014 * DirectJNgine is distributed in the hope that it will be useful, 015 * but WITHOUT ANY WARRANTY; without even the implied warranty of 016 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 017 * GNU Lesser General Public License for more details. 018 * 019 * You should have received a copy of the GNU Lesser General Public License 020 * along with DirectJNgine. If not, see <http://www.gnu.org/licenses/>. 021 * 022 * This software uses the ExtJs library (http://extjs.com), which is 023 * distributed under the GPL v3 license (see http://extjs.com/license). 024 */ 025 026 package com.softwarementors.extjs.djn.router.processor.standard.json; 027 028 import edu.umd.cs.findbugs.annotations.NonNull; 029 030 public class DefaultJsonRequestProcessorThread implements JsonRequestProcessorThread { 031 032 @NonNull private JsonRequestProcessor processor; 033 @NonNull private JsonRequestData request; 034 private int requestNumber; 035 036 public DefaultJsonRequestProcessorThread() { 037 // Do nothing 038 } 039 040 public void initialize(JsonRequestProcessor processor, JsonRequestData request, int requestNumber) { 041 this.processor = processor; 042 this.request = request; 043 this.requestNumber = requestNumber; 044 } 045 046 // @Override 047 public final String call() throws Exception { 048 /* 049 NDC.push( "thread=" + Thread.currentThread().getId() ); 050 try { 051 */ 052 /* 053 WebContextManager.attachWebContextToCurrentThread(this.webContext); 054 try { 055 */ 056 return processRequest(); 057 /* 058 } 059 finally { 060 WebContextManager.detachFromCurrentThread(); 061 } 062 */ 063 /* 064 } 065 finally { 066 NDC.pop(); 067 } 068 */ 069 } 070 071 public String processRequest() { 072 return this.processor.processIndividualRequest( this.request, true, this.requestNumber ); 073 } 074 }