Author: nilsga
Date: Fri Mar 27 09:40:17 2009
New Revision: 759073

URL: http://svn.apache.org/viewvc?rev=759073&view=rev
Log:
WW-2955 Added PortletConfigAware interface.

Added:
    
struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletConfigAware.java
Modified:
    
struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptor.java
    
struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptorTest.java

Modified: 
struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptor.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptor.java?rev=759073&r1=759072&r2=759073&view=diff
==============================================================================
--- 
struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptor.java
 (original)
+++ 
struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptor.java
 Fri Mar 27 09:40:17 2009
@@ -21,6 +21,7 @@
 
 package org.apache.struts2.portlet.interceptor;
 
+import javax.portlet.PortletConfig;
 import javax.portlet.PortletContext;
 import javax.portlet.PortletRequest;
 import javax.portlet.PortletResponse;
@@ -69,6 +70,10 @@
             PortletContext portletContext = (PortletContext) 
context.get(STRUTS_PORTLET_CONTEXT);
             ((PortletContextAware) action).setPortletContext(portletContext);
         }
+        if (action instanceof PortletConfigAware) {
+               PortletConfig portletConfig = 
(PortletConfig)context.get(PORTLET_CONFIG);
+               ((PortletConfigAware) action).setPortletConfig(portletConfig);
+        }
         if (action instanceof PortletPreferencesAware) {
                PortletRequest request = (PortletRequest) context.get(REQUEST);
             

Added: 
struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletConfigAware.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletConfigAware.java?rev=759073&view=auto
==============================================================================
--- 
struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletConfigAware.java
 (added)
+++ 
struts/struts2/trunk/plugins/portlet/src/main/java/org/apache/struts2/portlet/interceptor/PortletConfigAware.java
 Fri Mar 27 09:40:17 2009
@@ -0,0 +1,34 @@
+/*
+ * $Id: $
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *  http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.struts2.portlet.interceptor;
+
+import javax.portlet.PortletConfig;
+
+
+/**
+ * Actions that wants a reference to the PortletConfig object can
+ * implement this interface.
+ *
+ */
+public interface PortletConfigAware {
+       
+       void setPortletConfig(PortletConfig portletConfig);
+}

Modified: 
struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptorTest.java
URL: 
http://svn.apache.org/viewvc/struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptorTest.java?rev=759073&r1=759072&r2=759073&view=diff
==============================================================================
--- 
struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptorTest.java
 (original)
+++ 
struts/struts2/trunk/plugins/portlet/src/test/java/org/apache/struts2/portlet/interceptor/PortletAwareInterceptorTest.java
 Fri Mar 27 09:40:17 2009
@@ -24,6 +24,7 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import javax.portlet.PortletConfig;
 import javax.portlet.PortletRequest;
 
 import junit.framework.TestCase;
@@ -37,10 +38,22 @@
 public class PortletAwareInterceptorTest extends TestCase implements 
PortletActionConstants {
 
        private PortletAwareInterceptor interceptor;
+       private TestAction action;
+       private PortletRequest portletRequest;
+       private PortletConfig portletConfig;
+       private Map<String, Object> contextMap;
+       private ActionInvocation invocation;
        
        protected void setUp() throws Exception {
                super.setUp();
                interceptor = new PortletAwareInterceptor();
+               action = new TestAction();
+               portletRequest = EasyMock.createNiceMock(PortletRequest.class);
+               portletConfig = EasyMock.createNiceMock(PortletConfig.class);
+               contextMap = new HashMap<String, Object>();
+               invocation = EasyMock.createNiceMock(ActionInvocation.class);
+               EasyMock.expect(invocation.getAction()).andReturn(action);
+               
EasyMock.expect(invocation.getInvocationContext()).andReturn(new 
ActionContext(contextMap));
        }
        
        protected void tearDown() throws Exception {
@@ -48,21 +61,39 @@
        }
        
        public void testPortletRequestIsSet() throws Exception {
-               PortletRequest request = 
EasyMock.createMock(PortletRequest.class);
-               Map<String, Object> ctx = new HashMap<String, Object>();
-               ctx.put(REQUEST, request);
-               PortletRequestAware action = 
EasyMock.createMock(PortletRequestAware.class);
-               action.setPortletRequest(request);
-               
-               ActionInvocation invocation = 
EasyMock.createNiceMock(ActionInvocation.class);
-               
EasyMock.expect(invocation.getInvocationContext()).andReturn(new 
ActionContext(ctx));
-               EasyMock.expect(invocation.getAction()).andReturn(action);
-               
-               EasyMock.replay(action);
+               contextMap.put(REQUEST, portletRequest);
                EasyMock.replay(invocation);
-               
                interceptor.intercept(invocation);
+               assertEquals(portletRequest, action.getPortletRequest());
+       }
+       
+       public void testPortletConfigIsSet() throws Exception {
+               contextMap.put(PORTLET_CONFIG, portletConfig);
+               EasyMock.replay(invocation);
+               interceptor.intercept(invocation);
+               assertEquals(portletConfig, action.getPortletConfig());
+       }
+       
+       public static class TestAction implements PortletRequestAware, 
PortletConfigAware {
+
+               private PortletRequest request;
+               private PortletConfig config;
+
+               public void setPortletRequest(PortletRequest request) {
+                       this.request = request;
+               }
+
+               public void setPortletConfig(PortletConfig portletConfig) {
+                       this.config = portletConfig;
+               }
+
+               public PortletConfig getPortletConfig() {
+                       return config;
+               }
+
+               public PortletRequest getPortletRequest() {
+                       return request;
+               }
                
-               EasyMock.verify(action);
        }
 }


Reply via email to