1 package com.icesoft.faces.webapp.http.portlet; 2 3 import org.apache.commons.logging.Log; 4 import org.apache.commons.logging.LogFactory; 5 6 import javax.portlet.ActionRequest; 7 import javax.portlet.ActionResponse; 8 import javax.portlet.Portlet; 9 import javax.portlet.PortletConfig; 10 import javax.portlet.PortletContext; 11 import javax.portlet.PortletException; 12 import javax.portlet.PortletMode; 13 import javax.portlet.PortletRequest; 14 import javax.portlet.PortletRequestDispatcher; 15 import javax.portlet.PortletSession; 16 import javax.portlet.RenderRequest; 17 import javax.portlet.RenderResponse; 18 import java.io.IOException ; 19 import java.util.Enumeration ; 20 21 import com.icesoft.jasper.Constants; 22 23 40 public class MainPortlet implements Portlet { 41 42 private static Log log = LogFactory.getLog(MainPortlet.class); 43 44 private static final String PORTLET_MARKER = "portlet"; 45 private PortletConfig portletConfig; 46 47 public void init(PortletConfig portletConfig) 48 throws PortletException { 49 50 this.portletConfig = portletConfig; 51 52 if (log.isTraceEnabled()) { 53 log.trace("portlet config: " + portletConfig); 54 } 55 } 56 57 public void destroy() { 58 if (log.isTraceEnabled()) { 59 log.trace("portlet config: " + portletConfig); 60 } 61 } 62 63 public void processAction( 64 ActionRequest actionRequest, ActionResponse actionResponse) 65 throws IOException , PortletException { 66 67 if (log.isTraceEnabled()) { 68 dumpMaps(actionRequest, "portlet action request"); 69 } 70 71 } 72 73 public void render( 74 RenderRequest renderRequest, RenderResponse renderResponse) 75 throws IOException , PortletException { 76 77 if (log.isTraceEnabled()) { 80 dumpMaps(renderRequest, "portlet render request"); 81 } 82 83 addAttribute(renderRequest,Constants.NAMESPACE_KEY,renderResponse.getNamespace()); 89 90 addAttribute(renderRequest,Constants.PORTLET_KEY, PORTLET_MARKER); 93 94 PortletMode portletMode = portletMode = renderRequest.getPortletMode(); 96 String viewId = null; 97 if (portletMode == PortletMode.VIEW) { 98 viewId = portletConfig.getInitParameter(Constants.VIEW_KEY); 99 if(viewId == null){ 100 if( log.isErrorEnabled() ){ 101 log.error(Constants.VIEW_KEY + " is not properly configured"); 102 } 103 throw new PortletException(Constants.VIEW_KEY + " is not properly configured"); 104 } 105 } else if (portletMode == PortletMode.EDIT) { 106 viewId = portletConfig.getInitParameter(Constants.EDIT_KEY); 107 if(viewId == null){ 108 if( log.isErrorEnabled() ){ 109 log.error(Constants.EDIT_KEY + " is not properly configured"); 110 } 111 throw new PortletException(Constants.EDIT_KEY + " is not properly configured"); 112 } 113 } else if (portletMode == PortletMode.HELP) { 114 viewId = portletConfig.getInitParameter(Constants.HELP_KEY); 115 if(viewId == null){ 116 if( log.isErrorEnabled() ){ 117 log.error(Constants.HELP_KEY + " is not properly configured"); 118 } 119 throw new PortletException(Constants.HELP_KEY + " is not properly configured"); 120 } 121 } 122 123 PortletContext ctxt = portletConfig.getPortletContext(); 127 PortletRequestDispatcher disp = ctxt.getRequestDispatcher(viewId); 128 129 if(disp == null){ 130 throw new PortletException("could not find dispatcher for " + viewId); 131 } 132 133 PortletArtifactHack hack = new PortletArtifactHack(portletConfig, 135 renderRequest); 136 addAttribute(renderRequest,PortletArtifactHack.PORTLET_HACK_KEY, hack); 137 138 renderResponse.setContentType("text/html"); 144 disp.include(renderRequest, renderResponse); 145 146 } 147 148 149 private static void addAttribute(RenderRequest req, String key, Object value){ 150 if (key != null && value != null) { 151 req.setAttribute(key, value); 152 } 153 if (log.isTraceEnabled()) { 154 log.trace( key + ": " + value); 155 } 156 } 157 158 159 private void dumpMaps(PortletRequest req, String header) { 162 163 log.trace(header + "\n-------------------------------"); 164 165 Enumeration keys; 166 String key; 167 StringBuffer buff; 168 169 keys = portletConfig.getInitParameterNames(); 170 buff = new StringBuffer ("portlet config init parameters:\n"); 171 while (keys.hasMoreElements()) { 172 key = (String ) keys.nextElement(); 173 buff.append("\t"); 174 buff.append(key); 175 buff.append(" - "); 176 buff.append(portletConfig.getInitParameter(key)); 177 buff.append("\n"); 178 } 179 log.trace(buff.toString()); 180 181 PortletContext portletContext = portletConfig.getPortletContext(); 182 keys = portletContext.getAttributeNames(); 183 buff = new StringBuffer ("portlet context attributes:\n"); 184 while (keys.hasMoreElements()) { 185 key = (String ) keys.nextElement(); 186 buff.append("\t"); 187 buff.append(key); 188 buff.append(" - "); 189 buff.append(portletContext.getAttribute(key)); 190 buff.append("\n"); 191 } 192 log.trace(buff.toString()); 193 194 keys = portletContext.getInitParameterNames(); 195 buff = new StringBuffer ("portlet context init parameters:\n"); 196 while (keys.hasMoreElements()) { 197 key = (String ) keys.nextElement(); 198 buff.append("\t"); 199 buff.append(key); 200 buff.append(" - "); 201 buff.append(portletContext.getInitParameter(key)); 202 buff.append("\n"); 203 } 204 log.trace(buff.toString()); 205 206 PortletSession session = req.getPortletSession(); 207 keys = session.getAttributeNames(); 208 buff = new StringBuffer ("portlet session attributes:\n"); 209 while (keys.hasMoreElements()) { 210 key = (String ) keys.nextElement(); 211 buff.append("\t"); 212 buff.append(key); 213 buff.append(" - "); 214 buff.append(session.getAttribute(key)); 215 buff.append("\n"); 216 } 217 log.trace(buff.toString()); 218 219 keys = req.getAttributeNames(); 220 buff = new StringBuffer ("request attributes:\n"); 221 while (keys.hasMoreElements()) { 222 key = (String ) keys.nextElement(); 223 buff.append("\t"); 224 buff.append(key); 225 buff.append(" - "); 226 buff.append(req.getAttribute(key)); 227 buff.append("\n"); 228 } 229 log.trace(buff.toString()); 230 231 keys = req.getParameterNames(); 232 buff = new StringBuffer ("request parameters:\n"); 233 while (keys.hasMoreElements()) { 234 key = (String ) keys.nextElement(); 235 buff.append("\t"); 236 buff.append(key); 237 buff.append(" - "); 238 buff.append(req.getParameter(key)); 239 buff.append("\n"); 240 } 241 log.trace(buff.toString()); 242 243 keys = req.getPropertyNames(); 244 buff = new StringBuffer ("request properties:\n"); 245 while (keys.hasMoreElements()) { 246 key = (String ) keys.nextElement(); 247 buff.append("\t"); 248 buff.append(key); 249 buff.append(" - "); 250 buff.append(req.getProperty(key)); 251 buff.append("\n"); 252 } 253 log.trace(buff.toString()); 254 255 } 256 } 257 | Popular Tags |