public void setSessionAttribute(String name, Object attribute);
+ public String getContentType();
+
}
public void criticalNotification(WrappedRequest request,
WrappedResponse response, String cap, String msg,
String details, String outOfSyncURL) throws IOException {
- portlet.criticalNotification(
- ((WrappedPortletRequest) request).getPortletRequest(),
- ((WrappedPortletResponse) response).getPortletResponse(),
- cap, msg, details, outOfSyncURL);
+ PortletRequest portletRequest = ((WrappedPortletRequest) request)
+ .getPortletRequest();
+ PortletResponse portletResponse = ((WrappedPortletResponse) response)
+ .getPortletResponse();
+ portlet.criticalNotification(portletRequest,
+ (MimeResponse) portletResponse, cap, msg, details,
+ outOfSyncURL);
}
public InputStream getThemeResourceAsStream(String themeName,
PortletResponse response) throws PortletException, IOException {
AbstractApplicationPortletWrapper portletWrapper = new AbstractApplicationPortletWrapper(
this);
+ WrappedPortletRequest wrappedRequest = new WrappedPortletRequest(
+ request);
+ WrappedPortletResponse wrappedResponse = new WrappedPortletResponse(
+ response);
+
RequestType requestType = getRequestType(request);
if (requestType == RequestType.UNKNOWN) {
break;
default:
root = applicationManager.getApplicationRoot(
- request, portletWrapper, application, null);
+ wrappedRequest, portletWrapper,
+ application, null);
}
// if window not found, not a problem - use null
}
/* Handle the request */
if (requestType == RequestType.FILE_UPLOAD) {
- applicationManager.handleFileUpload(
- (ResourceRequest) request,
- (ResourceResponse) response);
+ applicationManager.handleFileUpload(wrappedRequest,
+ wrappedResponse);
return;
} else if (requestType == RequestType.UIDL) {
// Handles AJAX UIDL requests
// warn if versions do not match
checkWidgetsetVersion(request);
}
- applicationManager.handleUidlRequest(
- (ResourceRequest) request,
- (ResourceResponse) response, portletWrapper, root);
+ applicationManager.handleUidlRequest(wrappedRequest,
+ wrappedResponse, portletWrapper, root);
return;
} else {
/*
return;
}
- handleOtherRequest(request, response, requestType,
- application, root, applicationContext,
+ handleOtherRequest(wrappedRequest, wrappedResponse,
+ requestType, application, root, applicationContext,
applicationManager);
}
} catch (final SessionExpiredException e) {
* @throws IOException
* @throws MalformedURLException
*/
- private void handleOtherRequest(PortletRequest request,
- PortletResponse response, RequestType requestType,
+ private void handleOtherRequest(WrappedRequest request,
+ WrappedResponse response, RequestType requestType,
Application application, Root root,
PortletApplicationContext2 applicationContext,
PortletCommunicationManager applicationManager)
if (requestType == RequestType.APPLICATION_RESOURCE) {
if (!applicationManager.handleApplicationRequest(request, response)) {
- response.setProperty(ResourceResponse.HTTP_STATUS_CODE, "404");
+ response.setStatus(404);
}
} else if (requestType == RequestType.RENDER) {
- writeAjaxPage((RenderRequest) request, (RenderResponse) response,
- root, application);
+ PortletRequest portletRequest = ((WrappedPortletRequest) request)
+ .getPortletRequest();
+ PortletResponse portletResponse = ((WrappedPortletResponse) response)
+ .getPortletResponse();
+ writeAjaxPage((RenderRequest) portletRequest,
+ (RenderResponse) portletResponse, root, application);
} else if (requestType == RequestType.EVENT) {
// nothing to do, listeners do all the work
} else if (requestType == RequestType.ACTION) {
HttpServletResponse response) throws ServletException, IOException {
AbstractApplicationServletWrapper servletWrapper = new AbstractApplicationServletWrapper(
this);
+ WrappedHttpServletRequest wrappedRequest = new WrappedHttpServletRequest(
+ request, this);
+ WrappedHttpServletResponse wrappedResponse = new WrappedHttpServletResponse(
+ response);
RequestType requestType = getRequestType(request);
if (!ensureCookiesEnabled(requestType, request, response)) {
/* Handle the request */
if (requestType == RequestType.FILE_UPLOAD) {
- applicationManager.handleFileUpload(request, response, this);
+ applicationManager.handleFileUpload(wrappedRequest,
+ wrappedResponse);
return;
} else if (requestType == RequestType.UIDL) {
// Handles AJAX UIDL requests
- Root root = applicationManager.getApplicationRoot(request,
- this, servletWrapper, application, null);
- applicationManager.handleUidlRequest(request, response, this,
- servletWrapper, root);
+ Root root = applicationManager.getApplicationRoot(
+ wrappedRequest, servletWrapper, application, null);
+ applicationManager.handleUidlRequest(wrappedRequest,
+ wrappedResponse, servletWrapper, root);
return;
}
return;
}
- if (applicationManager.handleApplicationRequest(request, response,
- this)) {
+ if (applicationManager.handleApplicationRequest(wrappedRequest,
+ wrappedResponse)) {
return;
}
// TODO Should return 404 error here and not do anything more
// Finds the root within the application
- Root root = getApplicationRoot(request, applicationManager,
+ Root root = getApplicationRoot(wrappedRequest, applicationManager,
servletWrapper, application);
if (root == null) {
throw new ServletException(ERROR_NO_WINDOW_FOUND);
* if an exception has occurred that interferes with the
* servlet's normal operation.
*/
- protected Root getApplicationRoot(HttpServletRequest request,
+ protected Root getApplicationRoot(WrappedRequest request,
CommunicationManager applicationManager, Callback servletWrapper,
Application application) throws ServletException {
//
//
// }
//
- return applicationManager.getApplicationRoot(request, this,
- servletWrapper, application, assumedRoot);
+ return applicationManager.getApplicationRoot(request, servletWrapper,
+ application, assumedRoot);
}
/**
* @throws IOException
* @throws InvalidUIDLSecurityKeyException
*/
- protected void doHandleUidlRequest(WrappedRequest request,
+ public void handleUidlRequest(WrappedRequest request,
WrappedResponse response, Callback callback, Root root)
throws IOException, InvalidUIDLSecurityKeyException {
outWriter.print("\"changes\":[]");
} else {
// re-get window - may have been changed
- Root newRoot = doGetApplicationWindow(request, callback,
- application, root);
+ Root newRoot = getApplicationRoot(request, callback, application,
+ root);
if (newRoot != root) {
root = newRoot;
repaintAll = true;
}
/**
- * TODO New method - document me!
+ * Gets the existing application or creates a new one. Get a window within
+ * an application based on the requested URI.
*
* @param request
- * @param callback
+ * the HTTP Request.
* @param application
- * @param assumedWindow
- * @return
+ * the Application to query for window.
+ * @param assumedRoot
+ * if the window has been already resolved once, this parameter
+ * must contain the window.
+ * @param callback
+ * @return Window matching the given URI or null if not found.
*/
- protected Root doGetApplicationWindow(WrappedRequest request,
- Callback callback, Application application, Root assumedRoot) {
+ public Root getApplicationRoot(WrappedRequest request, Callback callback,
+ Application application, Root assumedRoot) {
return application.getRoot(request);
// Window window = null;
import java.util.Map;
import java.util.UUID;
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
import com.vaadin.Application;
import com.vaadin.terminal.Paintable;
import com.vaadin.terminal.StreamVariable;
import com.vaadin.terminal.VariableOwner;
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.terminal.WrappedResponse;
import com.vaadin.ui.Component;
-import com.vaadin.ui.Root;
/**
* Application manager processes changes and paints for single application
*
* @param request
* @param response
- * @param servlet
* @throws IOException
* @throws InvalidUIDLSecurityKeyException
*/
- public void handleFileUpload(HttpServletRequest request,
- HttpServletResponse response, AbstractApplicationServlet servlet)
- throws IOException, InvalidUIDLSecurityKeyException {
+ public void handleFileUpload(WrappedRequest request,
+ WrappedResponse response) throws IOException,
+ InvalidUIDLSecurityKeyException {
/*
* URI pattern: APP/UPLOAD/[PID]/[NAME]/[SECKEY] See #createReceiverUrl
*/
- String pathInfo = request.getPathInfo();
+ String pathInfo = request.getRequestPathInfo();
// strip away part until the data we are interested starts
int startOfData = pathInfo
.indexOf(AbstractApplicationServlet.UPLOAD_URL_PREFIX)
VariableOwner source = getVariableOwner(paintableId);
String contentType = request.getContentType();
- if (request.getContentType().contains("boundary")) {
+ if (contentType.contains("boundary")) {
// Multipart requests contain boundary string
- doHandleSimpleMultipartFileUpload(
- new WrappedHttpServletRequest(request, servlet),
- new WrappedHttpServletResponse(response),
+ doHandleSimpleMultipartFileUpload(request, response,
streamVariable, variableName, source,
contentType.split("boundary=")[1]);
} else {
// if boundary string does not exist, the posted file is from
// XHR2.post(File)
- doHandleXhrFilePost(new WrappedHttpServletRequest(request,
- servlet), new WrappedHttpServletResponse(response),
- streamVariable, variableName, source,
- request.getContentLength());
+ doHandleXhrFilePost(request, response, streamVariable,
+ variableName, source, request.getContentLength());
}
} else {
throw new InvalidUIDLSecurityKeyException(
}
- /**
- * Handles UIDL request
- *
- * TODO document
- *
- * @param request
- * @param response
- * @param applicationServlet
- * @param callback
- * @param window
- * target window of the UIDL request, can be null if window not
- * found
- * @throws IOException
- * @throws ServletException
- */
- public void handleUidlRequest(HttpServletRequest request,
- HttpServletResponse response,
- AbstractApplicationServlet applicationServlet, Callback callback,
- Root root) throws IOException, ServletException,
- InvalidUIDLSecurityKeyException {
- doHandleUidlRequest(new WrappedHttpServletRequest(request,
- applicationServlet), new WrappedHttpServletResponse(response),
- callback, root);
- }
-
- /**
- * Gets the existing application or creates a new one. Get a window within
- * an application based on the requested URI.
- *
- * @param request
- * the HTTP Request.
- * @param application
- * the Application to query for window.
- * @param assumedRoot
- * if the window has been already resolved once, this parameter
- * must contain the window.
- * @param callback
- * @return Window matching the given URI or null if not found.
- * @throws ServletException
- * if an exception has occurred that interferes with the
- * servlet's normal operation.
- */
- Root getApplicationRoot(HttpServletRequest request,
- AbstractApplicationServlet applicationServlet, Callback callback,
- Application application, Root assumedRoot) throws ServletException {
- return doGetApplicationWindow(new WrappedHttpServletRequest(request,
- applicationServlet), callback, application, assumedRoot);
- }
-
@Override
protected void unregisterPaintable(Component p) {
/* Cleanup possible receivers */
pidToNameToStreamVariable.remove(getPaintableId((Paintable) owner));
}
}
-
- public boolean handleApplicationRequest(HttpServletRequest request,
- HttpServletResponse response, AbstractApplicationServlet servlet)
- throws IOException {
- return handleApplicationRequest(new WrappedHttpServletRequest(request,
- servlet), new WrappedHttpServletResponse(response));
- }
-
}
import java.util.HashMap;
import java.util.Map;
-import javax.portlet.PortletRequest;
-import javax.portlet.PortletResponse;
-import javax.portlet.ResourceRequest;
import javax.portlet.ResourceResponse;
import javax.portlet.ResourceURL;
-import javax.servlet.ServletException;
import com.vaadin.Application;
import com.vaadin.terminal.Paintable;
import com.vaadin.terminal.StreamVariable;
import com.vaadin.terminal.VariableOwner;
+import com.vaadin.terminal.WrappedRequest;
+import com.vaadin.terminal.WrappedResponse;
import com.vaadin.ui.Component;
import com.vaadin.ui.Root;
super(application);
}
- public void handleFileUpload(ResourceRequest request,
- ResourceResponse response) throws IOException {
+ public void handleFileUpload(WrappedRequest request,
+ WrappedResponse response) throws IOException {
String contentType = request.getContentType();
String name = request.getParameter("name");
String ownerId = request.getParameter("rec-owner");
variableOwner).get(name);
if (contentType.contains("boundary")) {
- doHandleSimpleMultipartFileUpload(
- new WrappedPortletRequest(request),
- new WrappedPortletResponse(response), streamVariable, name,
- variableOwner, contentType.split("boundary=")[1]);
+ doHandleSimpleMultipartFileUpload(request, response,
+ streamVariable, name, variableOwner,
+ contentType.split("boundary=")[1]);
} else {
- doHandleXhrFilePost(new WrappedPortletRequest(request),
- new WrappedPortletResponse(response), streamVariable, name,
+ doHandleXhrFilePost(request, response, streamVariable, name,
variableOwner, request.getContentLength());
}
}
}
- public void handleUidlRequest(ResourceRequest request,
- ResourceResponse response, Callback callback, Root root)
- throws InvalidUIDLSecurityKeyException, IOException {
- currentUidlResponse = response;
- doHandleUidlRequest(new WrappedPortletRequest(request),
- new WrappedPortletResponse(response), callback, root);
+ @Override
+ public void handleUidlRequest(WrappedRequest request,
+ WrappedResponse response, Callback callback, Root root)
+ throws IOException, InvalidUIDLSecurityKeyException {
+ currentUidlResponse = (ResourceResponse) ((WrappedPortletResponse) response)
+ .getPortletResponse();
+ super.handleUidlRequest(request, response, callback, root);
currentUidlResponse = null;
}
- /**
- * Gets the existing application or creates a new one. Get a window within
- * an application based on the requested URI.
- *
- * @param request
- * the portlet Request.
- * @param applicationPortlet
- * @param application
- * the Application to query for window.
- * @param assumedRoot
- * if the window has been already resolved once, this parameter
- * must contain the window.
- * @return Window matching the given URI or null if not found.
- * @throws ServletException
- * if an exception has occurred that interferes with the
- * servlet's normal operation.
- */
- Root getApplicationRoot(PortletRequest request, Callback callback,
- Application application, Root assumedRoot) {
-
- return doGetApplicationWindow(new WrappedPortletRequest(request),
- callback, application, assumedRoot);
- }
-
private Map<VariableOwner, Map<String, StreamVariable>> ownerToNameToStreamVariable;
@Override
}
}
- public boolean handleApplicationRequest(PortletRequest request,
- PortletResponse response) throws IOException {
- return handleApplicationRequest(new WrappedPortletRequest(request),
- new WrappedPortletResponse(response));
- }
-
}
public HttpServletRequest getHttpServletRequest() {
return request;
}
+
+ public String getContentType() {
+ return request.getContentType();
+ }
}
\ No newline at end of file
return request;
}
+ public String getContentType() {
+ return ((ResourceRequest) request).getContentType();
+ }
+
}
\ No newline at end of file
return ((MimeResponse) response).getPortletOutputStream();
}
- public MimeResponse getPortletResponse() {
- return (MimeResponse) response;
+ public PortletResponse getPortletResponse() {
+ return response;
}
public void setContentType(String type) {