Java tutorial
/* * $Id$ * -------------------------------------------------------------------------------------- * Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com * * The software in this package is published under the terms of the CPAL v1.0 * license, a copy of which has been included with this distribution in the * LICENSE.txt file. */ package org.mule.transport.http.servlet; import org.mule.api.MuleEvent; import org.mule.api.MuleMessage; import org.mule.transport.http.HttpConnector; import org.mule.transport.http.HttpConstants; import java.io.BufferedReader; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.Principal; import java.util.Arrays; import java.util.Enumeration; import java.util.Iterator; import java.util.Locale; import java.util.Map; import javax.servlet.RequestDispatcher; import javax.servlet.ServletInputStream; import javax.servlet.http.Cookie; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.apache.commons.collections.iterators.IteratorEnumeration; /** * THIS CLASS IS UNSUPPORTED AND THE IMPLEMENTATION DOES NOT CONFORM TO THE SERVLET SPECIFICATION! */ public class MuleHttpServletRequest implements HttpServletRequest { private MuleEvent event; private MuleMessage message; public MuleHttpServletRequest(MuleEvent event) { super(); this.event = event; this.message = event.getMessage(); } public Object getAttribute(String name) { return null; } public Enumeration getAttributeNames() { return null; } public String getCharacterEncoding() { return event.getEncoding(); } public void setCharacterEncoding(String env) throws UnsupportedEncodingException { message.setEncoding(env); } public int getContentLength() { return -1; } public String getContentType() { return message.getInboundProperty(HttpConstants.HEADER_CONTENT_TYPE); } public ServletInputStream getInputStream() throws IOException { return new ServletInputStream() { @Override public int read() throws IOException { return 0; } }; } public String getParameter(String name) { return null; } public Enumeration getParameterNames() { return null; } public String[] getParameterValues(String name) { return null; } public Map getParameterMap() { return null; } public String getProtocol() { return null; } public String getScheme() { return event.getMessageSourceURI().getScheme(); } public String getServerName() { return message.getInboundProperty(HttpConstants.HEADER_HOST); } public int getServerPort() { return 0; } public BufferedReader getReader() throws IOException { return null; } public String getRemoteAddr() { return null; } public String getRemoteHost() { return null; } public void setAttribute(String name, Object o) { } public void removeAttribute(String name) { } public Locale getLocale() { return null; } public Enumeration getLocales() { return null; } public boolean isSecure() { return false; } public RequestDispatcher getRequestDispatcher(String path) { return null; } public String getRealPath(String path) { return null; } public int getRemotePort() { return 0; } public String getLocalName() { return null; } public String getLocalAddr() { return null; } public int getLocalPort() { return 0; } public String getAuthType() { return null; } public Cookie[] getCookies() { org.apache.commons.httpclient.Cookie[] cookies = message .getInboundProperty(HttpConnector.HTTP_COOKIES_PROPERTY); if (cookies == null) return null; Cookie[] servletCookies = new Cookie[cookies.length]; for (org.apache.commons.httpclient.Cookie c : cookies) { Cookie servletCookie = new Cookie(c.getName(), c.getValue()); servletCookie.setComment(c.getComment()); servletCookie.setDomain(c.getDomain()); } return servletCookies; } public long getDateHeader(String name) { return 0; } public String getHeader(String name) { return message.getInboundProperty(name); } public Enumeration getHeaders(String name) { return new IteratorEnumeration(Arrays.asList(getHeader(name)).iterator()); } public Enumeration getHeaderNames() { Iterator<String> iterator = message.getInboundPropertyNames().iterator(); return new IteratorEnumeration(iterator); } public int getIntHeader(String name) { return 0; } public String getMethod() { return message.getInboundProperty(HttpConnector.HTTP_METHOD_PROPERTY); } public String getPathInfo() { String req = message.getInboundProperty(HttpConnector.HTTP_REQUEST_PATH_PROPERTY); String contextPath = message.getInboundProperty(HttpConnector.HTTP_CONTEXT_PATH_PROPERTY); String pathInfo = req.substring(contextPath.length()); if (!pathInfo.startsWith("/")) { pathInfo = "/" + pathInfo; } return pathInfo; } public String getPathTranslated() { return null; } public String getContextPath() { return message.getInboundProperty(HttpConnector.HTTP_CONTEXT_PATH_PROPERTY); } public String getQueryString() { String req = message.getInboundProperty(HttpConnector.HTTP_REQUEST_PROPERTY); if (req != null) { int queryPath = req.indexOf('?'); if (queryPath > -1) { return req.substring(queryPath + 1); } } return null; } public String getRemoteUser() { return null; } public boolean isUserInRole(String role) { return false; } public Principal getUserPrincipal() { return null; } public String getRequestedSessionId() { return null; } public String getRequestURI() { return message.getInboundProperty(HttpConnector.HTTP_REQUEST_PATH_PROPERTY); } public StringBuffer getRequestURL() { return null; } public String getServletPath() { // assume contextpath as we have no servlet path return message.getInboundProperty(HttpConnector.HTTP_CONTEXT_PATH_PROPERTY); } public HttpSession getSession(boolean create) { return null; } public HttpSession getSession() { return null; } public boolean isRequestedSessionIdValid() { return false; } public boolean isRequestedSessionIdFromCookie() { return false; } public boolean isRequestedSessionIdFromURL() { return false; } public boolean isRequestedSessionIdFromUrl() { return false; } }