You are viewing a plain text version of this content. The canonical link for it is here.
Posted to pluto-scm@portals.apache.org by ms...@apache.org on 2016/01/18 13:41:25 UTC

[23/35] portals-pluto git commit: Initial integration of bean processor code

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/init/Init2.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/init/Init2.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/init/Init2.java
new file mode 100644
index 0000000..477b695
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/init/Init2.java
@@ -0,0 +1,62 @@
+/*  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.pluto.container.bean.processor.fixtures.init;
+
+import javax.inject.Inject;
+import javax.portlet.PortletConfig;
+import javax.portlet.annotations.InitMethod;
+
+import org.apache.pluto.container.bean.processor.fixtures.InvocationResults;
+
+/**
+ * @author Scott
+ *
+ */
+public class Init2 {
+   
+   @Inject
+   private InvocationResults meths;
+   
+   @InitMethod("portlet3")
+   public void init1(PortletConfig config) {
+      meths.addMethod(this.getClass().getSimpleName() + "#init1");
+   }
+   
+   // duplicate method
+   @InitMethod("portlet2")
+   public void init2(PortletConfig config) {
+      meths.addMethod(this.getClass().getSimpleName() + "#init2");
+   }
+   
+   // invalid signature
+   @InitMethod("portlet4")
+   public void init4(String x, PortletConfig config) {
+      meths.addMethod(this.getClass().getSimpleName() + "#init4");
+   }
+   
+   // invalid signature
+   @InitMethod("portlet5")
+   public String init5(PortletConfig config) {
+      meths.addMethod(this.getClass().getSimpleName() + "#init5");
+      return null;
+   }
+   
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/init/package-info.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/init/package-info.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/init/package-info.java
new file mode 100644
index 0000000..af29142
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/init/package-info.java
@@ -0,0 +1,23 @@
+/*  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.
+ */
+
+/**
+ * @author Scott
+ *
+ */
+package org.apache.pluto.container.bean.processor.fixtures.init;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockActionParameters.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockActionParameters.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockActionParameters.java
new file mode 100644
index 0000000..ac4a112
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockActionParameters.java
@@ -0,0 +1,102 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import java.util.Collections;
+import java.util.Set;
+
+import javax.portlet.ActionParameters;
+import javax.portlet.ActionRequest;
+import javax.portlet.MutableActionParameters;
+
+/**
+ * @author Scott
+ *
+ */
+public class MockActionParameters implements ActionParameters {
+   
+   private String actionName;
+   
+   /**
+    * Constructor 
+    */
+   public MockActionParameters(String name) {
+      actionName = name;
+   }
+   
+   public void setActionName(String name) {
+      actionName = name;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletParameters#getNames()
+    */
+   @Override
+   public Set<? extends String> getNames() {
+      return Collections.singleton(ActionRequest.ACTION_NAME);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletParameters#getValue(java.lang.String)
+    */
+   @Override
+   public String getValue(String arg0) {
+      if (arg0.equals(ActionRequest.ACTION_NAME)) {
+         return actionName;
+      }
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletParameters#getValues(java.lang.String)
+    */
+   @Override
+   public String[] getValues(String arg0) {
+      if (arg0.equals(ActionRequest.ACTION_NAME)) {
+         return new String[] {actionName};
+      }
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletParameters#isEmpty()
+    */
+   @Override
+   public boolean isEmpty() {
+      return false;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletParameters#size()
+    */
+   @Override
+   public int size() {
+      return 1;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ActionParameters#clone()
+    */
+   @Override
+   public MutableActionParameters clone() {
+      return null;
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockActionRequest.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockActionRequest.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockActionRequest.java
new file mode 100644
index 0000000..49534d0
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockActionRequest.java
@@ -0,0 +1,61 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import javax.portlet.ActionParameters;
+import javax.portlet.ActionRequest;
+
+/**
+ * @author Scott
+ *
+ */
+public class MockActionRequest extends MockClientDataRequest implements ActionRequest {
+
+   private String actionName;
+   
+
+   
+   /**
+    * @return the actionName
+    */
+   public String getActionName() {
+      return actionName;
+   }
+
+
+
+   /**
+    * @param actionName the actionName to set
+    */
+   public void setActionName(String actionName) {
+      this.actionName = actionName;
+   }
+
+   @Override
+   public ActionParameters getActionParameters() {
+      return new MockActionParameters(actionName);
+   }
+
+   @Override
+   public String getParameter(String name) {
+      return actionName;
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockActionResponse.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockActionResponse.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockActionResponse.java
new file mode 100644
index 0000000..7abbafd
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockActionResponse.java
@@ -0,0 +1,56 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import java.io.IOException;
+
+import javax.portlet.ActionResponse;
+import javax.portlet.MimeResponse.Copy;
+import javax.portlet.RenderURL;
+
+/**
+ * @author Scott
+ *
+ */
+public class MockActionResponse extends MockStateAwareResponse implements ActionResponse {
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ActionResponse#getRedirectURL(javax.portlet.MimeResponse.Copy)
+    */
+   @Override
+   public RenderURL getRedirectURL(Copy arg0) throws IllegalStateException {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ActionResponse#sendRedirect(java.lang.String)
+    */
+   @Override
+   public void sendRedirect(String arg0) throws IOException {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ActionResponse#sendRedirect(java.lang.String, java.lang.String)
+    */
+   @Override
+   public void sendRedirect(String arg0, String arg1) throws IOException {
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockClientDataRequest.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockClientDataRequest.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockClientDataRequest.java
new file mode 100644
index 0000000..3a48052
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockClientDataRequest.java
@@ -0,0 +1,90 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+
+import javax.portlet.ClientDataRequest;
+
+/**
+ * @author Scott
+ *
+ */
+public class MockClientDataRequest extends MockPortletRequest implements ClientDataRequest {
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ClientDataRequest#getCharacterEncoding()
+    */
+   @Override
+   public String getCharacterEncoding() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ClientDataRequest#getContentLength()
+    */
+   @Override
+   public int getContentLength() {
+      return 0;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ClientDataRequest#getContentType()
+    */
+   @Override
+   public String getContentType() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ClientDataRequest#getMethod()
+    */
+   @Override
+   public String getMethod() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ClientDataRequest#getPortletInputStream()
+    */
+   @Override
+   public InputStream getPortletInputStream() throws IOException {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ClientDataRequest#getReader()
+    */
+   @Override
+   public BufferedReader getReader() throws UnsupportedEncodingException, IOException {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ClientDataRequest#setCharacterEncoding(java.lang.String)
+    */
+   @Override
+   public void setCharacterEncoding(String arg0) throws UnsupportedEncodingException {
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockEvent.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockEvent.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockEvent.java
new file mode 100644
index 0000000..828afe6
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockEvent.java
@@ -0,0 +1,63 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import java.io.Serializable;
+
+import javax.portlet.Event;
+import javax.xml.namespace.QName;
+
+/**
+ * @author Scott Nicklous
+ *
+ */
+public class MockEvent implements Event {
+   
+   private final QName qn;
+   
+   public MockEvent(QName qn) {
+      this.qn = qn;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.Event#getName()
+    */
+   @Override
+   public String getName() {
+      return qn.getLocalPart();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.Event#getQName()
+    */
+   @Override
+   public QName getQName() {
+      return qn;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.Event#getValue()
+    */
+   @Override
+   public Serializable getValue() {
+      return null;
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockEventRequest.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockEventRequest.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockEventRequest.java
new file mode 100644
index 0000000..10906f7
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockEventRequest.java
@@ -0,0 +1,57 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import javax.portlet.Event;
+import javax.portlet.EventRequest;
+import javax.xml.namespace.QName;
+
+
+/**
+ * @author Scott Nicklous
+ *
+ */
+public class MockEventRequest extends MockClientDataRequest implements EventRequest {
+   
+   private QName qn;
+
+   /**
+    * @return the qn
+    */
+   public QName getQn() {
+      return qn;
+   }
+
+   /**
+    * @param qn the qn to set
+    */
+   public void setQn(QName qn) {
+      this.qn = qn;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.EventRequest#getEvent()
+    */
+   @Override
+   public Event getEvent() {
+      return new MockEvent(qn);
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockEventResponse.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockEventResponse.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockEventResponse.java
new file mode 100644
index 0000000..c68c4c9
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockEventResponse.java
@@ -0,0 +1,39 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import javax.portlet.EventRequest;
+import javax.portlet.EventResponse;
+
+/**
+ * @author Scott Nicklous
+ *
+ */
+public class MockEventResponse extends MockStateAwareResponse implements EventResponse {
+
+   /* (non-Javadoc)
+    * @see javax.portlet.EventResponse#setRenderParameters(javax.portlet.EventRequest)
+    */
+   @Override
+   public void setRenderParameters(EventRequest arg0) {
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockHeaderRequest.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockHeaderRequest.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockHeaderRequest.java
new file mode 100644
index 0000000..7085fe6
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockHeaderRequest.java
@@ -0,0 +1,30 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import javax.portlet.HeaderRequest;
+
+/**
+ * @author Scott Nicklous
+ *
+ */
+public class MockHeaderRequest extends MockRenderRequest implements HeaderRequest {
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockHeaderResponse.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockHeaderResponse.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockHeaderResponse.java
new file mode 100644
index 0000000..e2d1201
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockHeaderResponse.java
@@ -0,0 +1,38 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import javax.portlet.HeaderResponse;
+
+/**
+ * @author Scott Nicklous
+ *
+ */
+public class MockHeaderResponse extends MockMimeResponse implements HeaderResponse {
+
+   /* (non-Javadoc)
+    * @see javax.portlet.HeaderResponse#setTitle(java.lang.String)
+    */
+   @Override
+   public void setTitle(String arg0) {
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockMimeResponse.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockMimeResponse.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockMimeResponse.java
new file mode 100644
index 0000000..e8a060a
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockMimeResponse.java
@@ -0,0 +1,184 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintWriter;
+import java.util.Locale;
+
+import javax.portlet.ActionURL;
+import javax.portlet.CacheControl;
+import javax.portlet.MimeResponse;
+import javax.portlet.PortletURL;
+import javax.portlet.RenderURL;
+import javax.portlet.ResourceURL;
+
+/**
+ * @author Scott Nicklous
+ *
+ */
+public class MockMimeResponse extends MockPortletResponse implements MimeResponse {
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#createActionURL()
+    */
+   @Override
+   public <T extends PortletURL & ActionURL> T createActionURL() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#createActionURL(javax.portlet.MimeResponse.Copy)
+    */
+   @Override
+   public ActionURL createActionURL(Copy arg0) {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#createRenderURL()
+    */
+   @Override
+   public <T extends PortletURL & RenderURL> T createRenderURL() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#createRenderURL(javax.portlet.MimeResponse.Copy)
+    */
+   @Override
+   public RenderURL createRenderURL(Copy arg0) {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#createResourceURL()
+    */
+   @Override
+   public ResourceURL createResourceURL() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#flushBuffer()
+    */
+   @Override
+   public void flushBuffer() throws IOException {
+
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#getBufferSize()
+    */
+   @Override
+   public int getBufferSize() {
+      return 0;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#getCacheControl()
+    */
+   @Override
+   public CacheControl getCacheControl() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#getCharacterEncoding()
+    */
+   @Override
+   public String getCharacterEncoding() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#getContentType()
+    */
+   @Override
+   public String getContentType() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#getLocale()
+    */
+   @Override
+   public Locale getLocale() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#getPortletOutputStream()
+    */
+   @Override
+   public OutputStream getPortletOutputStream() throws IOException {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#getWriter()
+    */
+   @Override
+   public PrintWriter getWriter() throws IOException {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#isCommitted()
+    */
+   @Override
+   public boolean isCommitted() {
+      return false;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#reset()
+    */
+   @Override
+   public void reset() {
+
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#resetBuffer()
+    */
+   @Override
+   public void resetBuffer() {
+
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#setBufferSize(int)
+    */
+   @Override
+   public void setBufferSize(int arg0) {
+
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MimeResponse#setContentType(java.lang.String)
+    */
+   @Override
+   public void setContentType(String arg0) {
+
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockPortletConfig.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockPortletConfig.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockPortletConfig.java
new file mode 100644
index 0000000..9762f16
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockPortletConfig.java
@@ -0,0 +1,160 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import java.util.Enumeration;
+import java.util.ListResourceBundle;
+import java.util.Locale;
+import java.util.Map;
+import java.util.ResourceBundle;
+
+import javax.portlet.PortletConfig;
+import javax.portlet.PortletContext;
+import javax.portlet.PortletMode;
+import javax.portlet.WindowState;
+import javax.xml.namespace.QName;
+
+/**
+ * @author Scott
+ *
+ */
+public class MockPortletConfig implements PortletConfig {
+   
+   private class PortletRes extends ListResourceBundle {
+      protected Object[][] getContents() {
+          return new Object[][] {
+              {"javax.portlet.title", "Some Title"},
+          };
+      }
+  }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getContainerRuntimeOptions()
+    */
+   @Override
+   public Map<String, String[]> getContainerRuntimeOptions() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getDefaultNamespace()
+    */
+   @Override
+   public String getDefaultNamespace() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getInitParameter(java.lang.String)
+    */
+   @Override
+   public String getInitParameter(String arg0) {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getInitParameterNames()
+    */
+   @Override
+   public Enumeration<String> getInitParameterNames() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getPortletContext()
+    */
+   @Override
+   public PortletContext getPortletContext() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getPortletModes(java.lang.String)
+    */
+   @Override
+   public Enumeration<PortletMode> getPortletModes(String arg0) {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getPortletName()
+    */
+   @Override
+   public String getPortletName() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getProcessingEventQNames()
+    */
+   @Override
+   public Enumeration<QName> getProcessingEventQNames() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getPublicRenderParameterDefinitions()
+    */
+   @Override
+   public Map<String, QName> getPublicRenderParameterDefinitions() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getPublicRenderParameterNames()
+    */
+   @Override
+   public Enumeration<String> getPublicRenderParameterNames() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getPublishingEventQNames()
+    */
+   @Override
+   public Enumeration<QName> getPublishingEventQNames() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getResourceBundle(java.util.Locale)
+    */
+   @Override
+   public ResourceBundle getResourceBundle(Locale arg0) {
+      return new PortletRes();
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getSupportedLocales()
+    */
+   @Override
+   public Enumeration<Locale> getSupportedLocales() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletConfig#getWindowStates(java.lang.String)
+    */
+   @Override
+   public Enumeration<WindowState> getWindowStates(String arg0) {
+      return null;
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockPortletRequest.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockPortletRequest.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockPortletRequest.java
new file mode 100644
index 0000000..d8e2d6d
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockPortletRequest.java
@@ -0,0 +1,369 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import java.security.Principal;
+import java.util.Enumeration;
+import java.util.Locale;
+import java.util.Map;
+
+import javax.portlet.PortalContext;
+import javax.portlet.PortletMode;
+import javax.portlet.PortletPreferences;
+import javax.portlet.PortletRequest;
+import javax.portlet.PortletSession;
+import javax.portlet.RenderParameters;
+import javax.portlet.WindowState;
+import javax.servlet.http.Cookie;
+
+/**
+ * @author Scott
+ *
+ */
+public class MockPortletRequest implements PortletRequest {
+   
+   private PortletSession ps = new MockPortletSession();
+   private PortletMode mode;
+
+   /**
+    * @return the mode
+    */
+   public PortletMode getMode() {
+      return mode;
+   }
+
+   /**
+    * @param mode the mode to set
+    */
+   public void setMode(PortletMode mode) {
+      this.mode = mode;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletState#getPortletMode()
+    */
+   @Override
+   public PortletMode getPortletMode() {
+      return mode;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletState#getRenderParameters()
+    */
+   @Override
+   public RenderParameters getRenderParameters() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletState#getWindowState()
+    */
+   @Override
+   public WindowState getWindowState() {
+      return WindowState.NORMAL;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getAttribute(java.lang.String)
+    */
+   @Override
+   public Object getAttribute(String arg0) {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getAttributeNames()
+    */
+   @Override
+   public Enumeration<String> getAttributeNames() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getAuthType()
+    */
+   @Override
+   public String getAuthType() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getContextPath()
+    */
+   @Override
+   public String getContextPath() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getCookies()
+    */
+   @Override
+   public Cookie[] getCookies() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getLocale()
+    */
+   @Override
+   public Locale getLocale() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getLocales()
+    */
+   @Override
+   public Enumeration<Locale> getLocales() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getParameter(java.lang.String)
+    */
+   @Override
+   public String getParameter(String arg0) {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getParameterMap()
+    */
+   @Override
+   public Map<String, String[]> getParameterMap() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getParameterNames()
+    */
+   @Override
+   public Enumeration<String> getParameterNames() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getParameterValues(java.lang.String)
+    */
+   @Override
+   public String[] getParameterValues(String arg0) {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getPortalContext()
+    */
+   @Override
+   public PortalContext getPortalContext() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getPortletSession()
+    */
+   @Override
+   public PortletSession getPortletSession() {
+      return ps;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getPortletSession(boolean)
+    */
+   @Override
+   public PortletSession getPortletSession(boolean arg0) {
+      return ps;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getPreferences()
+    */
+   @Override
+   public PortletPreferences getPreferences() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getPrivateParameterMap()
+    */
+   @Override
+   public Map<String, String[]> getPrivateParameterMap() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getProperties(java.lang.String)
+    */
+   @Override
+   public Enumeration<String> getProperties(String arg0) {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getProperty(java.lang.String)
+    */
+   @Override
+   public String getProperty(String arg0) {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getPropertyNames()
+    */
+   @Override
+   public Enumeration<String> getPropertyNames() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getPublicParameterMap()
+    */
+   @Override
+   public Map<String, String[]> getPublicParameterMap() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getRemoteUser()
+    */
+   @Override
+   public String getRemoteUser() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getRequestedSessionId()
+    */
+   @Override
+   public String getRequestedSessionId() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getResponseContentType()
+    */
+   @Override
+   public String getResponseContentType() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getResponseContentTypes()
+    */
+   @Override
+   public Enumeration<String> getResponseContentTypes() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getScheme()
+    */
+   @Override
+   public String getScheme() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getServerName()
+    */
+   @Override
+   public String getServerName() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getServerPort()
+    */
+   @Override
+   public int getServerPort() {
+      return 0;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getUserPrincipal()
+    */
+   @Override
+   public Principal getUserPrincipal() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#getWindowID()
+    */
+   @Override
+   public String getWindowID() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#isPortletModeAllowed(javax.portlet.PortletMode)
+    */
+   @Override
+   public boolean isPortletModeAllowed(PortletMode arg0) {
+      return false;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#isRequestedSessionIdValid()
+    */
+   @Override
+   public boolean isRequestedSessionIdValid() {
+      return false;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#isSecure()
+    */
+   @Override
+   public boolean isSecure() {
+      return false;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#isUserInRole(java.lang.String)
+    */
+   @Override
+   public boolean isUserInRole(String arg0) {
+      return false;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#isWindowStateAllowed(javax.portlet.WindowState)
+    */
+   @Override
+   public boolean isWindowStateAllowed(WindowState arg0) {
+      return false;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#removeAttribute(java.lang.String)
+    */
+   @Override
+   public void removeAttribute(String arg0) {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletRequest#setAttribute(java.lang.String, java.lang.Object)
+    */
+   @Override
+   public void setAttribute(String arg0, Object arg1) {
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockPortletResponse.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockPortletResponse.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockPortletResponse.java
new file mode 100644
index 0000000..ffa0aca
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockPortletResponse.java
@@ -0,0 +1,86 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import javax.portlet.PortletResponse;
+import javax.servlet.http.Cookie;
+
+import org.w3c.dom.DOMException;
+import org.w3c.dom.Element;
+
+/**
+ * @author Scott
+ *
+ */
+public class MockPortletResponse implements PortletResponse {
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletResponse#addProperty(javax.servlet.http.Cookie)
+    */
+   @Override
+   public void addProperty(Cookie arg0) {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletResponse#addProperty(java.lang.String, java.lang.String)
+    */
+   @Override
+   public void addProperty(String arg0, String arg1) {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletResponse#addProperty(java.lang.String, org.w3c.dom.Element)
+    */
+   @Override
+   public void addProperty(String arg0, Element arg1) {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletResponse#createElement(java.lang.String)
+    */
+   @Override
+   public Element createElement(String arg0) throws DOMException {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletResponse#encodeURL(java.lang.String)
+    */
+   @Override
+   public String encodeURL(String arg0) {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletResponse#getNamespace()
+    */
+   @Override
+   public String getNamespace() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletResponse#setProperty(java.lang.String, java.lang.String)
+    */
+   @Override
+   public void setProperty(String arg0, String arg1) {
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockPortletSession.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockPortletSession.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockPortletSession.java
new file mode 100644
index 0000000..35f58be
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockPortletSession.java
@@ -0,0 +1,177 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+
+import javax.portlet.PortletContext;
+import javax.portlet.PortletSession;
+
+/**
+ * @author Scott Nicklous
+ *
+ */
+public class MockPortletSession implements PortletSession {
+   
+   private Map<String, Object> attrs = new HashMap<String, Object>();
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getAttribute(java.lang.String)
+    */
+   @Override
+   public Object getAttribute(String arg0) {
+      return attrs.get(arg0);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getAttribute(java.lang.String, int)
+    */
+   @Override
+   public Object getAttribute(String arg0, int arg1) {
+      return attrs.get(arg0);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getAttributeMap()
+    */
+   @Override
+   public Map<String, Object> getAttributeMap() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getAttributeMap(int)
+    */
+   @Override
+   public Map<String, Object> getAttributeMap(int arg0) {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getAttributeNames()
+    */
+   @Override
+   public Enumeration<String> getAttributeNames() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getAttributeNames(int)
+    */
+   @Override
+   public Enumeration<String> getAttributeNames(int arg0) {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getCreationTime()
+    */
+   @Override
+   public long getCreationTime() {
+      return 0;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getId()
+    */
+   @Override
+   public String getId() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getLastAccessedTime()
+    */
+   @Override
+   public long getLastAccessedTime() {
+      return 0;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getMaxInactiveInterval()
+    */
+   @Override
+   public int getMaxInactiveInterval() {
+      return 0;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#getPortletContext()
+    */
+   @Override
+   public PortletContext getPortletContext() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#invalidate()
+    */
+   @Override
+   public void invalidate() {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#isNew()
+    */
+   @Override
+   public boolean isNew() {
+      return false;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#removeAttribute(java.lang.String)
+    */
+   @Override
+   public void removeAttribute(String arg0) {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#removeAttribute(java.lang.String, int)
+    */
+   @Override
+   public void removeAttribute(String arg0, int arg1) {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#setAttribute(java.lang.String, java.lang.Object)
+    */
+   @Override
+   public void setAttribute(String arg0, Object arg1) {
+      attrs.put(arg0, arg1);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#setAttribute(java.lang.String, java.lang.Object, int)
+    */
+   @Override
+   public void setAttribute(String arg0, Object arg1, int arg2) {
+      attrs.put(arg0, arg1);
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletSession#setMaxInactiveInterval(int)
+    */
+   @Override
+   public void setMaxInactiveInterval(int arg0) {
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockRenderRequest.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockRenderRequest.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockRenderRequest.java
new file mode 100644
index 0000000..f365fa0
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockRenderRequest.java
@@ -0,0 +1,38 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import javax.portlet.RenderRequest;
+
+/**
+ * @author Scott Nicklous
+ *
+ */
+public class MockRenderRequest extends MockPortletRequest implements RenderRequest {
+
+   /* (non-Javadoc)
+    * @see javax.portlet.RenderRequest#getETag()
+    */
+   @Override
+   public String getETag() {
+      return null;
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockRenderResponse.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockRenderResponse.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockRenderResponse.java
new file mode 100644
index 0000000..3ec5812
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockRenderResponse.java
@@ -0,0 +1,47 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import java.util.Collection;
+
+import javax.portlet.PortletMode;
+import javax.portlet.RenderResponse;
+
+/**
+ * @author Scott Nicklous
+ *
+ */
+public class MockRenderResponse extends MockMimeResponse implements RenderResponse {
+
+   /* (non-Javadoc)
+    * @see javax.portlet.RenderResponse#setNextPossiblePortletModes(java.util.Collection)
+    */
+   @Override
+   public void setNextPossiblePortletModes(Collection<? extends PortletMode> arg0) {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.RenderResponse#setTitle(java.lang.String)
+    */
+   @Override
+   public void setTitle(String arg0) {
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockResourceRequest.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockResourceRequest.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockResourceRequest.java
new file mode 100644
index 0000000..6a36ed5
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockResourceRequest.java
@@ -0,0 +1,89 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import java.util.Map;
+
+import javax.portlet.ResourceParameters;
+import javax.portlet.ResourceRequest;
+
+/**
+ * @author Scott Nicklous
+ *
+ */
+public class MockResourceRequest extends MockClientDataRequest implements ResourceRequest {
+   
+   private String resourceId;
+
+   /**
+    * @return the resourceId
+    */
+   public String getResourceId() {
+      return resourceId;
+   }
+
+   /**
+    * @param resourceId the resourceId to set
+    */
+   public void setResourceId(String resourceId) {
+      this.resourceId = resourceId;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ResourceRequest#getCacheability()
+    */
+   @Override
+   public String getCacheability() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ResourceRequest#getETag()
+    */
+   @Override
+   public String getETag() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ResourceRequest#getPrivateRenderParameterMap()
+    */
+   @Override
+   public Map<String, String[]> getPrivateRenderParameterMap() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ResourceRequest#getResourceID()
+    */
+   @Override
+   public String getResourceID() {
+      return resourceId;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ResourceRequest#getResourceParameters()
+    */
+   @Override
+   public ResourceParameters getResourceParameters() {
+      return null;
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockResourceResponse.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockResourceResponse.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockResourceResponse.java
new file mode 100644
index 0000000..e0d734a
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockResourceResponse.java
@@ -0,0 +1,60 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import java.util.Locale;
+
+import javax.portlet.ResourceResponse;
+
+/**
+ * @author Scott Nicklous
+ *
+ */
+public class MockResourceResponse extends MockMimeResponse implements ResourceResponse {
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ResourceResponse#setCharacterEncoding(java.lang.String)
+    */
+   @Override
+   public void setCharacterEncoding(String arg0) {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ResourceResponse#setContentLength(int)
+    */
+   @Override
+   public void setContentLength(int arg0) {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ResourceResponse#setLocale(java.util.Locale)
+    */
+   @Override
+   public void setLocale(Locale arg0) {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.ResourceResponse#setStatus(int)
+    */
+   @Override
+   public void setStatus(int arg0) {
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockStateAwareResponse.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockStateAwareResponse.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockStateAwareResponse.java
new file mode 100644
index 0000000..cbfc72d
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/MockStateAwareResponse.java
@@ -0,0 +1,127 @@
+/*  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.pluto.container.bean.processor.fixtures.mocks;
+
+import java.io.Serializable;
+import java.util.Map;
+
+import javax.portlet.MutableRenderParameters;
+import javax.portlet.PortletMode;
+import javax.portlet.PortletModeException;
+import javax.portlet.StateAwareResponse;
+import javax.portlet.WindowState;
+import javax.portlet.WindowStateException;
+import javax.xml.namespace.QName;
+
+/**
+ * @author Scott
+ *
+ */
+public class MockStateAwareResponse extends MockPortletResponse implements StateAwareResponse {
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MutablePortletState#getRenderParameters()
+    */
+   @Override
+   public MutableRenderParameters getRenderParameters() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MutablePortletState#setPortletMode(javax.portlet.PortletMode)
+    */
+   @Override
+   public void setPortletMode(PortletMode arg0) throws PortletModeException {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.MutablePortletState#setWindowState(javax.portlet.WindowState)
+    */
+   @Override
+   public void setWindowState(WindowState arg0) throws WindowStateException {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletState#getPortletMode()
+    */
+   @Override
+   public PortletMode getPortletMode() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.PortletState#getWindowState()
+    */
+   @Override
+   public WindowState getWindowState() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.StateAwareResponse#getRenderParameterMap()
+    */
+   @Override
+   public Map<String, String[]> getRenderParameterMap() {
+      return null;
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.StateAwareResponse#removePublicRenderParameter(java.lang.String)
+    */
+   @Override
+   public void removePublicRenderParameter(String arg0) {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.StateAwareResponse#setEvent(javax.xml.namespace.QName, java.io.Serializable)
+    */
+   @Override
+   public void setEvent(QName arg0, Serializable arg1) {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.StateAwareResponse#setEvent(java.lang.String, java.io.Serializable)
+    */
+   @Override
+   public void setEvent(String arg0, Serializable arg1) {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.StateAwareResponse#setRenderParameter(java.lang.String, java.lang.String)
+    */
+   @Override
+   public void setRenderParameter(String arg0, String arg1) {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.StateAwareResponse#setRenderParameter(java.lang.String, java.lang.String[])
+    */
+   @Override
+   public void setRenderParameter(String arg0, String... arg1) {
+   }
+
+   /* (non-Javadoc)
+    * @see javax.portlet.StateAwareResponse#setRenderParameters(java.util.Map)
+    */
+   @Override
+   public void setRenderParameters(Map<String, String[]> arg0) {
+   }
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/package-info.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/package-info.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/package-info.java
new file mode 100644
index 0000000..657b9a4
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/mocks/package-info.java
@@ -0,0 +1,26 @@
+/*  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 containing mock portlet artifacts. Used for testing the 
+ * portlet invoker.
+ * 
+ * @author Scott Nicklous
+ *
+ */
+package org.apache.pluto.container.bean.processor.fixtures.mocks;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/package-info.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/package-info.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/package-info.java
new file mode 100644
index 0000000..e232510
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/package-info.java
@@ -0,0 +1,25 @@
+/*  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.
+ */
+
+/**
+ * Contains test fixtures for the bean processor.
+ * 
+ * @author Scott Nicklous
+ *
+ */
+package org.apache.pluto.container.bean.processor.fixtures;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/render/Render1.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/render/Render1.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/render/Render1.java
new file mode 100644
index 0000000..857d3c1
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/render/Render1.java
@@ -0,0 +1,97 @@
+/*  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.pluto.container.bean.processor.fixtures.render;
+
+import javax.inject.Inject;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.annotations.RenderMethod;
+
+import org.apache.pluto.container.bean.processor.fixtures.InvocationResults;
+
+/**
+ * @author Scott
+ *
+ */
+public class Render1 {
+   
+   @Inject
+   private InvocationResults meths;
+   
+   @RenderMethod(portletNames="portlet1")
+   public void render1a(RenderRequest req, RenderResponse resp) {
+      meths.addMethod(this.getClass().getSimpleName() + "#render1a");
+   }
+   
+   @RenderMethod(portletNames="portlet1")
+   public void render1b() {
+      meths.addMethod(this.getClass().getSimpleName() + "#render1b");
+   }
+   
+   @RenderMethod(portletNames="portlet1")
+   public String render1c() {
+      meths.addMethod(this.getClass().getSimpleName() + "#render1c");
+      return null;
+   }
+   
+   @RenderMethod(portletNames="portlet2", portletMode="help")
+   public void render2a(RenderRequest req, RenderResponse resp) {
+      meths.addMethod(this.getClass().getSimpleName() + "#render2a");
+   }
+   
+   @RenderMethod(portletNames="portlet2", portletMode="edit")
+   public void render2b(RenderRequest req, RenderResponse resp) {
+      meths.addMethod(this.getClass().getSimpleName() + "#render2b");
+   }
+   
+   @RenderMethod(portletNames="portlet2", portletMode="config")
+   public void render2c(RenderRequest req, RenderResponse resp) {
+      meths.addMethod(this.getClass().getSimpleName() + "#render2c");
+   }
+   
+   @RenderMethod(portletNames="portlet3", ordinal=200)
+   public void render3a(RenderRequest req, RenderResponse resp) {
+      meths.addMethod(this.getClass().getSimpleName() + "#render3a");
+   }
+   
+   @RenderMethod(portletNames="portlet3", ordinal=300)
+   public void render3b() {
+      meths.addMethod(this.getClass().getSimpleName() + "#render3b");
+   }
+   
+   @RenderMethod(portletNames="portlet3", ordinal=-42)
+   public String render3c() {
+      meths.addMethod(this.getClass().getSimpleName() + "#render3c");
+      return null;
+   }
+   
+   @RenderMethod(portletNames="portlet3", ordinal=-420, portletMode="")
+   public String render3d() {
+      meths.addMethod(this.getClass().getSimpleName() + "#render3d");
+      return null;
+   }
+   
+   @RenderMethod(portletNames="portlet3", ordinal=300, portletMode="help")
+   public void render3e() {
+      meths.addMethod(this.getClass().getSimpleName() + "#render3e");
+   }
+   
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/render/Render2.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/render/Render2.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/render/Render2.java
new file mode 100644
index 0000000..031af11
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/render/Render2.java
@@ -0,0 +1,83 @@
+/*  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.pluto.container.bean.processor.fixtures.render;
+
+import javax.activity.InvalidActivityException;
+import javax.inject.Inject;
+import javax.portlet.RenderRequest;
+import javax.portlet.RenderResponse;
+import javax.portlet.annotations.RenderMethod;
+
+import org.apache.pluto.container.bean.processor.fixtures.InvocationResults;
+
+/**
+ * @author Scott Nicklous
+ *
+ */
+public class Render2 {
+   
+   @Inject
+   private InvocationResults meths;
+   
+   @RenderMethod(portletNames="portlet2", portletMode="edit", ordinal=-100)
+   public void render2c(RenderRequest req, RenderResponse resp) {
+      meths.addMethod(this.getClass().getSimpleName() + "#render2c");
+   }
+   
+   @RenderMethod(portletNames="portlet2", portletMode="edit", ordinal=100)
+   public void render2d(RenderRequest req, RenderResponse resp) {
+      meths.addMethod(this.getClass().getSimpleName() + "#render2d");
+   }
+   
+   // invalid signature
+   @RenderMethod(portletNames="portlet4")
+   public void render4(String x, RenderRequest req, RenderResponse resp) {
+      meths.addMethod(this.getClass().getSimpleName() + "#render4");
+   }
+   
+   // invalid signature
+   @RenderMethod(portletNames="portlet5")
+   public String render5(RenderRequest req, RenderResponse resp) {
+      meths.addMethod(this.getClass().getSimpleName() + "#render5");
+      return null;
+   }
+   
+   // invalid signature, bad exception
+   @RenderMethod(portletNames="portlet8")
+   public String render8(RenderRequest req, RenderResponse resp) throws InvalidActivityException {return null;}
+   
+   @RenderMethod(portletNames= {"portlet6", "portlet7"})
+   public void render6and7(RenderRequest req, RenderResponse resp) {
+      meths.addMethod(this.getClass().getSimpleName() + "#render6and7");
+   }
+   
+   // ignored asterisk
+   @RenderMethod(portletNames= {"portlet6", "*"}, ordinal=100)
+   public void render6andStar(RenderRequest req, RenderResponse resp) {
+      meths.addMethod(this.getClass().getSimpleName() + "#render6andStar");
+   }
+   
+   @RenderMethod(portletNames="*", portletMode="admin")
+   public void renderAll(RenderRequest req, RenderResponse resp) {
+      meths.addMethod(this.getClass().getSimpleName() + "#renderAll");
+   }
+   
+
+}

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/render/package-info.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/render/package-info.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/render/package-info.java
new file mode 100644
index 0000000..492d736
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/render/package-info.java
@@ -0,0 +1,23 @@
+/*  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.
+ */
+
+/**
+ * @author Scott
+ *
+ */
+package org.apache.pluto.container.bean.processor.fixtures.render;
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/portals-pluto/blob/2e60a313/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/resource/Resource1.java
----------------------------------------------------------------------
diff --git a/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/resource/Resource1.java b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/resource/Resource1.java
new file mode 100644
index 0000000..69486d6
--- /dev/null
+++ b/pluto-container/src/test/java/org/apache/pluto/container/bean/processor/fixtures/resource/Resource1.java
@@ -0,0 +1,92 @@
+/*  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.pluto.container.bean.processor.fixtures.resource;
+
+import javax.inject.Inject;
+import javax.portlet.ResourceRequest;
+import javax.portlet.ResourceResponse;
+import javax.portlet.annotations.ServeResourceMethod;
+
+import org.apache.pluto.container.bean.processor.fixtures.InvocationResults;
+
+/**
+ * @author Scott
+ *
+ */
+public class Resource1 {
+   
+   @Inject
+   private InvocationResults meths;
+   
+   @ServeResourceMethod(portletNames="portlet1")
+   public void resource1a(ResourceRequest req, ResourceResponse resp) {
+      meths.addMethod(this.getClass().getSimpleName() + "#resource1a");
+   }
+   
+   @ServeResourceMethod(portletNames="portlet1")
+   public void resource1b() {
+      meths.addMethod(this.getClass().getSimpleName() + "#resource1b");
+   }
+   
+   @ServeResourceMethod(portletNames="portlet1")
+   public String resource1c() {
+      meths.addMethod(this.getClass().getSimpleName() + "#resource1c");
+      return null;
+   }
+   
+   @ServeResourceMethod(portletNames="portlet2", resourceID="help")
+   public void resource2a(ResourceRequest req, ResourceResponse resp) {
+      meths.addMethod(this.getClass().getSimpleName() + "#resource2a");
+   }
+   
+   @ServeResourceMethod(portletNames="portlet2", resourceID="edit")
+   public void resource2b(ResourceRequest req, ResourceResponse resp) {
+      meths.addMethod(this.getClass().getSimpleName() + "#resource2b");
+   }
+   
+   @ServeResourceMethod(portletNames="portlet2", resourceID="config")
+   public void resource2c(ResourceRequest req, ResourceResponse resp) {
+      meths.addMethod(this.getClass().getSimpleName() + "#resource2c");
+   }
+   
+   @ServeResourceMethod(portletNames="portlet3", ordinal=200)
+   public void resource3a(ResourceRequest req, ResourceResponse resp) {
+      meths.addMethod(this.getClass().getSimpleName() + "#resource3a");
+   }
+   
+   @ServeResourceMethod(portletNames="portlet3", ordinal=300)
+   public void resource3b() {
+      meths.addMethod(this.getClass().getSimpleName() + "#resource3b");
+   }
+   
+   @ServeResourceMethod(portletNames="portlet3", ordinal=-42)
+   public String resource3c() {
+      meths.addMethod(this.getClass().getSimpleName() + "#resource3c");
+      return null;
+   }
+   
+   @ServeResourceMethod(portletNames="portlet3", ordinal=200, resourceID="help")
+   public String resource3e() {
+      meths.addMethod(this.getClass().getSimpleName() + "#resource3e");
+      return null;
+   }
+   
+
+}