Author: chris.laprun(a)jboss.com
Date: 2008-06-24 20:06:46 -0400 (Tue, 24 Jun 2008)
New Revision: 11138
Added:
branches/JBoss_Portal_Branch_2_7/server/src/main/org/jboss/portal/server/impl/invocation/EmptyPortletInterceptorStackFactory.java
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/instance/InstanceContainerImpl.java
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/instance/persistent-jboss-beans.xml
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/instance/transient-jboss-beans.xml
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/state/jboss-beans.xml
branches/JBoss_Portal_Branch_2_7/server/src/main/org/jboss/portal/server/impl/invocation/PortletInterceptorStack.java
Log:
- Properly handle case when interceptor stack is empty.
- Added EmpyPortletInterceptorStackFactory to replace EmptyInterceptorStackFactory in
common that is not compatible with new interceptor stacks and use it in test beans
definitions.
- Replaced portletInvoker property by next property in test beans definitions.
- Minor clean-ups.
- All tests pass except for some WSRP tests which I still need to investigate.
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/instance/InstanceContainerImpl.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/instance/InstanceContainerImpl.java 2008-06-24
18:39:53 UTC (rev 11137)
+++
branches/JBoss_Portal_Branch_2_7/core/src/main/org/jboss/portal/core/impl/model/instance/InstanceContainerImpl.java 2008-06-25
00:06:46 UTC (rev 11138)
@@ -22,10 +22,6 @@
******************************************************************************/
package org.jboss.portal.core.impl.model.instance;
-import org.jboss.portal.common.invocation.InterceptorStackFactory;
-import org.jboss.portal.common.invocation.Invocation;
-import org.jboss.portal.common.invocation.InvocationException;
-import org.jboss.portal.common.invocation.InvocationHandler;
import org.jboss.portal.core.model.instance.DuplicateInstanceException;
import org.jboss.portal.core.model.instance.Instance;
import org.jboss.portal.core.model.instance.InstanceContainer;
@@ -54,7 +50,6 @@
import org.jboss.portal.security.spi.provider.PermissionFactory;
import org.jboss.portal.security.spi.provider.PermissionRepository;
import org.jboss.portal.security.spi.provider.SecurityConfigurationException;
-import org.jboss.portal.server.impl.invocation.JBossPortletInterceptorStackFactory;
import org.jboss.portal.server.impl.invocation.PortletInterceptorStack;
import org.jboss.portal.server.impl.invocation.PortletInterceptorStackFactory;
@@ -74,8 +69,7 @@
* @version $Revision$
*/
public class InstanceContainerImpl extends AbstractJBossService
- implements InstanceContainer, AuthorizationDomain, DomainConfigurator,
- PermissionRepository, PermissionFactory
+ implements InstanceContainer, AuthorizationDomain, DomainConfigurator,
PermissionRepository, PermissionFactory
{
@@ -96,8 +90,7 @@
{
public PortletInvocationResponse invoke(PortletInvocation invocation) throws
IllegalArgumentException, PortletInvokerException
{
- PortletInvocation portletInvocation = (PortletInvocation)invocation;
- return portletInvoker.invoke(portletInvocation);
+ return portletInvoker.invoke(invocation);
}
};
@@ -329,8 +322,8 @@
// Collect portlet info to destroy for logging purpose
StringBuffer destroyLog = new StringBuffer("About to destroy portlets for
instance=").
- append(definition.getInstanceId()).
- append(" [");
+ append(definition.getInstanceId()).
+ append(" [");
//
List toDestroy = new ArrayList(customizations.size());
@@ -370,8 +363,8 @@
if (failures.size() > 0)
{
StringBuffer failureLog = new StringBuffer("Some portlet were not properly
destroyed for instance=").
- append(definition.getInstanceId()).
- append(" [");
+ append(definition.getInstanceId()).
+ append(" [");
for (Iterator i = failures.iterator(); i.hasNext();)
{
DestroyCloneFailure failure = (DestroyCloneFailure)i.next();
@@ -417,30 +410,35 @@
PortletInvocationResponse invoke(PortletInvocation invocation) throws
PortletInvokerException
{
PortletInterceptorStack stack = stackFactory.getInterceptorStack();
- try
+ if (stack.getLength() != 0)
{
- stack.getInterceptor(stack.getLength()-1).setNext(handler);
- return stack.getInterceptor(0).invoke(invocation);
- }
- catch (Exception e)
- {
- if (e instanceof PortletInvokerException)
+ try
{
- throw (PortletInvokerException)e;
+ stack.getInterceptor(stack.getLength() - 1).setNext(handler);
+ return stack.getInterceptor(0).invoke(invocation);
}
- else if (e instanceof RuntimeException)
+ catch (Exception e)
{
- throw (RuntimeException)e;
+ if (e instanceof PortletInvokerException)
+ {
+ throw (PortletInvokerException)e;
+ }
+ else if (e instanceof RuntimeException)
+ {
+ throw (RuntimeException)e;
+ }
+ else
+ {
+ throw new PortletInvokerException(e);
+ }
}
- else
+ finally
{
- throw new PortletInvokerException(e);
+ stack.getInterceptor(stack.getLength() - 1).setNext(null);
}
}
- finally
- {
- stack.getInterceptor(stack.getLength()-1).setNext(null);
- }
+
+ return portletInvoker.invoke(invocation);
}
//**********************************************************************
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/instance/persistent-jboss-beans.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/instance/persistent-jboss-beans.xml 2008-06-24
18:39:53 UTC (rev 11137)
+++
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/instance/persistent-jboss-beans.xml 2008-06-25
00:06:46 UTC (rev 11138)
@@ -47,11 +47,9 @@
</constructor>
</bean>
- <bean name="JNDISupport"
class="org.jboss.portal.test.framework.embedded.JNDISupport">
- </bean>
+ <bean name="JNDISupport"
class="org.jboss.portal.test.framework.embedded.JNDISupport"/>
- <bean name="TransactionManagerSupport"
class="org.jboss.portal.test.framework.embedded.TransactionManagerSupport">
- </bean>
+ <bean name="TransactionManagerSupport"
class="org.jboss.portal.test.framework.embedded.TransactionManagerSupport"/>
<bean name="ConnectionManagerSupport"
class="org.jboss.portal.test.framework.embedded.ConnectionManagerSupport">
<property name="transactionManager"><inject
bean="TransactionManagerSupport"
property="transactionManager"/></property>
@@ -84,8 +82,7 @@
<property
name="jNDIName">java:/PortletSessionFactory</property>
</bean>
- <bean name="StateConverter"
class="org.jboss.portal.portlet.impl.state.StateConverterV0">
- </bean>
+ <bean name="StateConverter"
class="org.jboss.portal.portlet.impl.state.StateConverterV0"/>
<bean name="StateManagementPolicy"
class="org.jboss.portal.portlet.impl.state.StateManagementPolicyService">
<property name="persistLocally"><inject
bean="TestCaseConfig" property="persistLocally"/></property>
</bean>
@@ -97,13 +94,12 @@
</bean>
<bean name="Producer"
class="org.jboss.portal.portlet.state.producer.ProducerPortletInvoker">
<property name="persistenceManager"><inject
bean="PersistenceManager"/></property>
- <property name="portletInvoker"><inject
bean="PortletContainer"/></property>
+ <property name="next"><inject
bean="PortletContainer"/></property>
<property name="stateManagementPolicy"><inject
bean="StateManagementPolicy"/></property>
<property name="stateConverter"><inject
bean="StateConverter"/></property>
</bean>
- <bean name="StackFactory"
class="org.jboss.portal.common.invocation.EmptyInterceptorStackFactory">
- </bean>
+ <bean name="StackFactory"
class="org.jboss.portal.server.impl.invocation.EmptyPortletInterceptorStackFactory"/>
<bean name="ContainerContext"
class="org.jboss.portal.core.impl.model.instance.persistent.PersistentInstanceContainerContext">
<property
name="sessionFactoryJNDIName">java:/InstanceSessionFactory</property>
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/instance/transient-jboss-beans.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/instance/transient-jboss-beans.xml 2008-06-24
18:39:53 UTC (rev 11137)
+++
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/model/instance/transient-jboss-beans.xml 2008-06-25
00:06:46 UTC (rev 11138)
@@ -47,11 +47,9 @@
</constructor>
</bean>
- <bean name="JNDISupport"
class="org.jboss.portal.test.framework.embedded.JNDISupport">
- </bean>
+ <bean name="JNDISupport"
class="org.jboss.portal.test.framework.embedded.JNDISupport"/>
- <bean name="TransactionManagerSupport"
class="org.jboss.portal.test.framework.embedded.TransactionManagerSupport">
- </bean>
+ <bean name="TransactionManagerSupport"
class="org.jboss.portal.test.framework.embedded.TransactionManagerSupport"/>
<bean name="ConnectionManagerSupport"
class="org.jboss.portal.test.framework.embedded.ConnectionManagerSupport">
<property name="transactionManager"><inject
bean="TransactionManagerSupport"
property="transactionManager"/></property>
@@ -84,8 +82,7 @@
<property
name="jNDIName">java:/PortletSessionFactory</property>
</bean>
- <bean name="StateConverter"
class="org.jboss.portal.portlet.impl.state.StateConverterV0">
- </bean>
+ <bean name="StateConverter"
class="org.jboss.portal.portlet.impl.state.StateConverterV0"/>
<bean name="StateManagementPolicy"
class="org.jboss.portal.portlet.impl.state.StateManagementPolicyService">
<property name="persistLocally"><inject
bean="TestCaseConfig" property="persistLocally"/></property>
</bean>
@@ -93,19 +90,16 @@
class="org.jboss.portal.core.impl.portlet.state.PersistentPortletStatePersistenceManager">
<property
name="sessionFactoryJNDIName">java:/PortletSessionFactory</property>
</bean>
- <bean name="PortletContainer"
class="org.jboss.portal.test.core.model.instance.PortletInvokerSupport">
- </bean>
+ <bean name="PortletContainer"
class="org.jboss.portal.test.core.model.instance.PortletInvokerSupport"/>
<bean name="Producer"
class="org.jboss.portal.portlet.state.producer.ProducerPortletInvoker">
<property name="persistenceManager"><inject
bean="PersistenceManager"/></property>
- <property name="portletInvoker"><inject
bean="PortletContainer"/></property>
+ <property name="next"><inject
bean="PortletContainer"/></property>
<property name="stateManagementPolicy"><inject
bean="StateManagementPolicy"/></property>
<property name="stateConverter"><inject
bean="StateConverter"/></property>
</bean>
- <bean name="StackFactory"
class="org.jboss.portal.common.invocation.EmptyInterceptorStackFactory">
- </bean>
- <bean name="ContainerContext"
class="org.jboss.portal.core.impl.model.instance.TransientContainerContext">
- </bean>
+ <bean name="StackFactory"
class="org.jboss.portal.server.impl.invocation.EmptyPortletInterceptorStackFactory"/>
+ <bean name="ContainerContext"
class="org.jboss.portal.core.impl.model.instance.TransientContainerContext"/>
<bean name="InstanceContainer"
class="org.jboss.portal.core.impl.model.instance.InstanceContainerImpl">
<property name="cloneOnCreate"><inject
bean="TestCaseConfig" property="cloneOnCreate"/></property>
<property name="portletInvoker"><inject
bean="Producer"/></property>
Modified:
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/state/jboss-beans.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/state/jboss-beans.xml 2008-06-24
18:39:53 UTC (rev 11137)
+++
branches/JBoss_Portal_Branch_2_7/core/src/resources/portal-core-test-jar/org/jboss/portal/test/core/state/jboss-beans.xml 2008-06-25
00:06:46 UTC (rev 11138)
@@ -41,11 +41,9 @@
</constructor>
</bean>
- <bean name="JNDISupport"
class="org.jboss.portal.test.framework.embedded.JNDISupport">
- </bean>
+ <bean name="JNDISupport"
class="org.jboss.portal.test.framework.embedded.JNDISupport"/>
- <bean name="TransactionManagerSupport"
class="org.jboss.portal.test.framework.embedded.TransactionManagerSupport">
- </bean>
+ <bean name="TransactionManagerSupport"
class="org.jboss.portal.test.framework.embedded.TransactionManagerSupport"/>
<bean name="ConnectionManagerSupport"
class="org.jboss.portal.test.framework.embedded.ConnectionManagerSupport">
<property name="transactionManager"><inject
bean="TransactionManagerSupport"
property="transactionManager"/></property>
@@ -68,23 +66,20 @@
<property name="jNDIName">java:/SessionFactory</property>
</bean>
- <bean name="StateConverter"
class="org.jboss.portal.portlet.impl.state.StateConverterV0">
- </bean>
+ <bean name="StateConverter"
class="org.jboss.portal.portlet.impl.state.StateConverterV0"/>
- <bean name="StateManagementPolicy"
class="org.jboss.portal.core.impl.portlet.state.StateManagementPolicyImpl">
- </bean>
+ <bean name="StateManagementPolicy"
class="org.jboss.portal.core.impl.portlet.state.StateManagementPolicyImpl"/>
<bean name="PersistenceManager"
class="org.jboss.portal.core.impl.portlet.state.PersistentPortletStatePersistenceManager">
<property
name="sessionFactoryJNDIName">java:/SessionFactory</property>
</bean>
- <bean name="PortletContainer"
class="org.jboss.portal.test.core.model.instance.PortletInvokerSupport">
- </bean>
+ <bean name="PortletContainer"
class="org.jboss.portal.test.core.model.instance.PortletInvokerSupport"/>
<bean name="Producer"
class="org.jboss.portal.core.impl.portlet.state.ProducerPortletInvoker">
<property name="persistenceManager"><inject
bean="PersistenceManager"/></property>
- <property name="portletInvoker"><inject
bean="PortletContainer"/></property>
+ <property name="next"><inject
bean="PortletContainer"/></property>
<property name="stateManagementPolicy"><inject
bean="StateManagementPolicy"/></property>
<property name="stateConverter"><inject
bean="StateConverter"/></property>
</bean>
Added:
branches/JBoss_Portal_Branch_2_7/server/src/main/org/jboss/portal/server/impl/invocation/EmptyPortletInterceptorStackFactory.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/server/src/main/org/jboss/portal/server/impl/invocation/EmptyPortletInterceptorStackFactory.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/server/src/main/org/jboss/portal/server/impl/invocation/EmptyPortletInterceptorStackFactory.java 2008-06-25
00:06:46 UTC (rev 11138)
@@ -0,0 +1,36 @@
+/*
+* JBoss, a division of Red Hat
+* Copyright 2008, Red Hat Middleware, LLC, and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site:
http://www.fsf.org.
+*/
+
+package org.jboss.portal.server.impl.invocation;
+
+/**
+ * @author <a href="mailto:chris.laprun@jboss.com">Chris
Laprun</a>
+ * @version $Revision$
+ */
+public class EmptyPortletInterceptorStackFactory implements
PortletInterceptorStackFactory
+{
+ public PortletInterceptorStack getInterceptorStack()
+ {
+ return JBossPortletInterceptorStack.EMPTY_STACK;
+ }
+}
+
Modified:
branches/JBoss_Portal_Branch_2_7/server/src/main/org/jboss/portal/server/impl/invocation/PortletInterceptorStack.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/server/src/main/org/jboss/portal/server/impl/invocation/PortletInterceptorStack.java 2008-06-24
18:39:53 UTC (rev 11137)
+++
branches/JBoss_Portal_Branch_2_7/server/src/main/org/jboss/portal/server/impl/invocation/PortletInterceptorStack.java 2008-06-25
00:06:46 UTC (rev 11138)
@@ -22,7 +22,6 @@
******************************************************************************/
package org.jboss.portal.server.impl.invocation;
-import org.jboss.portal.common.invocation.Interceptor;
import org.jboss.portal.portlet.PortletInvokerInterceptor;
/**
@@ -32,7 +31,7 @@
public interface PortletInterceptorStack
{
/**
- * Returns the stack length.
+ * Returns the stack length.
*
* @return the length
*/
@@ -46,7 +45,5 @@
* @throws ArrayIndexOutOfBoundsException if the index is not valid
*/
PortletInvokerInterceptor getInterceptor(int index) throws
ArrayIndexOutOfBoundsException;
-
-
}