Author: chris.laprun(a)jboss.com
Date: 2008-07-07 12:15:04 -0400 (Mon, 07 Jul 2008)
New Revision: 11320
Added:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/InteropServiceDescriptionTestCase.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/behaviors/interop/
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/behaviors/interop/LiferayServiceDescriptionBehavior.java
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/WSRPConsumerBaseTest.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/framework/ServiceDescriptionBehavior.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/MarkupTestCase.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/ServiceDescriptionTestCase.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/V1ConsumerBaseTest.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/behaviors/GroupedPortletsServiceDescriptionBehavior.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/WSRPUtils.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-wsrp-consumer-servicedescription-sar/META-INF/jboss-service.xml
Log:
- Improved WSRP consumer test framework to make it easier to emulate producer behaviors.
- Added test case to emulate Liferay non-conforming service description and added better
work-around for its behavior.
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/WSRPConsumerBaseTest.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/WSRPConsumerBaseTest.java 2008-07-07
16:14:32 UTC (rev 11319)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/WSRPConsumerBaseTest.java 2008-07-07
16:15:04 UTC (rev 11320)
@@ -24,9 +24,29 @@
package org.jboss.portal.test.wsrp;
import org.jboss.portal.common.junit.ExtendedAssert;
+import org.jboss.portal.test.wsrp.framework.BehaviorRegistry;
+import org.jboss.portal.test.wsrp.framework.MarkupBehavior;
+import org.jboss.portal.test.wsrp.framework.PortletManagementBehavior;
+import org.jboss.portal.test.wsrp.framework.RegistrationBehavior;
+import org.jboss.portal.test.wsrp.framework.ServiceDescriptionBehavior;
+import org.jboss.portal.test.wsrp.framework.TestProducerBehavior;
import org.jboss.portal.test.wsrp.framework.TestWSRPProducer;
+import org.jboss.portal.test.wsrp.framework.support.MockConsumerRegistry;
+import org.jboss.portal.test.wsrp.v1.consumer.behaviors.BasicMarkupBehavior;
+import org.jboss.portal.test.wsrp.v1.consumer.behaviors.BasicPortletManagementBehavior;
+import org.jboss.portal.test.wsrp.v1.consumer.behaviors.BasicServiceDescriptionBehavior;
+import org.jboss.portal.test.wsrp.v1.consumer.behaviors.EmptyMarkupBehavior;
+import
org.jboss.portal.test.wsrp.v1.consumer.behaviors.InitCookieNotRequiredMarkupBehavior;
+import org.jboss.portal.test.wsrp.v1.consumer.behaviors.NullMarkupBehavior;
+import
org.jboss.portal.test.wsrp.v1.consumer.behaviors.PerGroupInitCookieMarkupBehavior;
+import org.jboss.portal.test.wsrp.v1.consumer.behaviors.PerUserInitCookieMarkupBehavior;
+import org.jboss.portal.test.wsrp.v1.consumer.behaviors.ResourceMarkupBehavior;
+import org.jboss.portal.test.wsrp.v1.consumer.behaviors.SessionMarkupBehavior;
import org.jboss.portal.wsrp.WSRPConsumer;
+import org.jboss.portal.wsrp.producer.WSRPValidator;
+import java.util.Set;
+
/**
* @author <a href="mailto:boleslaw.dawidowicz@jboss.org">Boleslaw
Dawidowicz</a>
* @version $Revision$
@@ -43,6 +63,12 @@
/** . */
protected WSRPConsumer consumer;
+ private boolean strict = true;
+ private String sdClassName;
+ private String mClassName;
+ private String pmClassName;
+ private String rClassName;
+
protected WSRPConsumerBaseTest(String name) throws Exception
{
super(name);
@@ -54,9 +80,59 @@
public void setUp() throws Exception
{
+ // reset producer state
+ producer.reset();
+
+ // set the test producer identifier
consumer.getProducerInfo().setId(TEST_PRODUCER_ID);
+
+ // reset the behaviors
+ BehaviorRegistry registry = producer.getBehaviorRegistry();
+ setSDClassName(sdClassName);
+ setMClassName(mClassName);
+ setPMClassName(pmClassName);
+ setRClassName(rClassName);
+ registerAdditionalMarkupBehaviors(registry);
+
+ // use a fresh ConsumerRegistry
+ consumer.getProducerInfo().setRegistry(new MockConsumerRegistry());
+
+ // make sure we use clean producer info for each test
+ consumer.refreshProducerInfo();
+
+ // use cache to avoid un-necessary calls
+ consumer.getProducerInfo().setExpirationCacheSeconds(120);
}
+ protected void setRegistrationBehavior(RegistrationBehavior behavior)
+ {
+ producer.getBehaviorRegistry().setRegistrationBehavior(behavior);
+ }
+
+ protected void setServiceDescriptionBehavior(ServiceDescriptionBehavior behavior)
+ {
+ if (behavior == null)
+ {
+ log.info("Given service description behavior was null, using the default
one instead!");
+ behavior = new BasicServiceDescriptionBehavior();
+ }
+
+ producer.getBehaviorRegistry().setServiceDescriptionBehavior(behavior);
+ }
+
+ protected void setPortletManagementBehavior(PortletManagementBehavior behavior)
+ {
+ BehaviorRegistry registry = producer.getBehaviorRegistry();
+
+ if (behavior == null)
+ {
+ log.info("Given portlet management behavior was null, using the default one
instead!");
+ behavior = new BasicPortletManagementBehavior(registry);
+ }
+
+ registry.setPortletManagementBehavior(behavior);
+ }
+
public TestWSRPProducer getProducer()
{
return producer;
@@ -81,4 +157,98 @@
{
ExtendedAssert.assertEquals(TEST_PRODUCER_ID, consumer.getProducerId());
}
+
+ public void setSDClassName(String behaviorClassName)
+ {
+ sdClassName = behaviorClassName;
+ setServiceDescriptionBehavior(createBehavior(behaviorClassName,
ServiceDescriptionBehavior.class));
+ }
+
+ public void setMClassName(String behaviorClassName)
+ {
+ mClassName = behaviorClassName;
+ if (behaviorClassName != null)
+ {
+
producer.getBehaviorRegistry().registerMarkupBehavior(createBehavior(behaviorClassName,
MarkupBehavior.class));
+ }
+ }
+
+ public void setPMClassName(String behaviorClassName)
+ {
+ pmClassName = behaviorClassName;
+ setPortletManagementBehavior(createBehavior(behaviorClassName,
PortletManagementBehavior.class));
+ }
+
+ public void setRClassName(String behaviorClassName)
+ {
+ rClassName = behaviorClassName;
+ setRegistrationBehavior(createBehavior(behaviorClassName,
RegistrationBehavior.class));
+ }
+
+ public void setStrict(boolean strict)
+ {
+ this.strict = strict;
+ producer.setUseStrictMode(strict);
+ WSRPValidator.setStrict(strict);
+ }
+
+ public boolean isStrict()
+ {
+ return strict;
+ }
+
+ private <T extends TestProducerBehavior> T createBehavior(String
behaviorClassName, Class<T> expectedBehaviorClass)
+ {
+ if (behaviorClassName != null)
+ {
+ try
+ {
+ Class behaviorClass =
getClass().getClassLoader().loadClass(behaviorClassName);
+ if (expectedBehaviorClass.isAssignableFrom(behaviorClass))
+ {
+ return (T)behaviorClass.newInstance();
+ }
+ else
+ {
+ throw new IllegalArgumentException(behaviorClassName + " is not a
" + expectedBehaviorClass.getSimpleName());
+ }
+ }
+ catch (ClassNotFoundException e)
+ {
+ throw new IllegalArgumentException("Could not find behavior: " +
behaviorClassName, e);
+ }
+ catch (IllegalAccessException e)
+ {
+ throw new IllegalArgumentException("Could not access behavior: " +
behaviorClassName, e);
+ }
+ catch (InstantiationException e)
+ {
+ throw new IllegalArgumentException("Could not instantiate behavior:
" + behaviorClassName, e);
+ }
+ }
+
+ return null;
+ }
+
+ protected void registerAdditionalMarkupBehaviors(BehaviorRegistry registry)
+ {
+ registry.registerMarkupBehavior(new BasicMarkupBehavior(registry));
+ registry.registerMarkupBehavior(new EmptyMarkupBehavior(registry));
+ registry.registerMarkupBehavior(new
InitCookieNotRequiredMarkupBehavior(registry));
+ registry.registerMarkupBehavior(new PerGroupInitCookieMarkupBehavior(registry));
+ registry.registerMarkupBehavior(new PerUserInitCookieMarkupBehavior(registry));
+ registry.registerMarkupBehavior(new NullMarkupBehavior(registry));
+ registry.registerMarkupBehavior(new SessionMarkupBehavior(registry));
+ registry.registerMarkupBehavior(new ResourceMarkupBehavior(registry));
+ }
+
+ protected Set<String> getPortletHandles()
+ {
+ return
producer.getBehaviorRegistry().getServiceDescriptionBehavior().getPortletHandles();
+ }
+
+ protected int getPortletNumber()
+ {
+ return
producer.getBehaviorRegistry().getServiceDescriptionBehavior().getPortletNumber();
+ }
}
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/framework/ServiceDescriptionBehavior.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/framework/ServiceDescriptionBehavior.java 2008-07-07
16:14:32 UTC (rev 11319)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/framework/ServiceDescriptionBehavior.java 2008-07-07
16:15:04 UTC (rev 11320)
@@ -36,7 +36,9 @@
import org.jboss.portal.wsrp.core.WSRP_v1_ServiceDescription_PortType;
import java.rmi.RemoteException;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
/**
* @author <a
href="mailto:chris.laprun@jboss.com?subject=org.jboss.portal.test.wsrp.framework.ServiceDescriptionBehavior">Chris
@@ -57,7 +59,7 @@
}
public ServiceDescription getServiceDescription(GetServiceDescription
getServiceDescription) throws
- OperationFailedFault, InvalidRegistrationFault, RemoteException
+ OperationFailedFault, InvalidRegistrationFault, RemoteException
{
incrementCallCount();
return serviceDescription;
@@ -92,12 +94,30 @@
}
else
{
- List portlets = Tools.toList(initial);
+ List<PortletDescription> portlets = Tools.toList(initial);
portlets.add(portletDescription);
- serviceDescription.setOfferedPortlets((PortletDescription[])portlets.toArray(new
PortletDescription[0]));
+ serviceDescription.setOfferedPortlets(portlets.toArray(new
PortletDescription[portlets.size()]));
}
}
+ public Set<String> getPortletHandles()
+ {
+ PortletDescription[] portletDescriptions =
serviceDescription.getOfferedPortlets();
+ Set<String> handles = new HashSet<String>(portletDescriptions.length);
+
+ for (PortletDescription description : portletDescriptions)
+ {
+ handles.add(description.getPortletHandle());
+ }
+
+ return handles;
+ }
+
+ public int getPortletNumber()
+ {
+ return serviceDescription.getOfferedPortlets().length;
+ }
+
public static ServiceDescription createServiceDescription(boolean
requiresRegistration, int numberOfProperties)
{
ServiceDescription sd =
WSRPTypeFactory.createServiceDescription(requiresRegistration);
Added:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/InteropServiceDescriptionTestCase.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/InteropServiceDescriptionTestCase.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/InteropServiceDescriptionTestCase.java 2008-07-07
16:15:04 UTC (rev 11320)
@@ -0,0 +1,79 @@
+/*
+* 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.test.wsrp.v1.consumer;
+
+import org.jboss.portal.common.junit.ExtendedAssert;
+import org.jboss.portal.portlet.Portlet;
+import org.jboss.portal.portlet.PortletInvokerException;
+import org.jboss.portal.test.wsrp.framework.BehaviorRegistry;
+
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * @author <a href="mailto:chris.laprun@jboss.com">Chris
Laprun</a>
+ * @version $Revision$
+ */
+public class InteropServiceDescriptionTestCase extends V1ConsumerBaseTest
+{
+ public InteropServiceDescriptionTestCase() throws Exception
+ {
+ super();
+ }
+
+ @Override
+ public void setUp() throws Exception
+ {
+ setStrict(false);
+ super.setUp();
+ }
+
+ public void testUsesRelaxedMode()
+ {
+ ExtendedAssert.assertFalse(isStrict());
+ }
+
+ public void testGetPortlets() throws PortletInvokerException
+ {
+ //invoke consumer
+ Set returnedPortlets = consumer.getPortlets();
+
+ int portletNumber = returnedPortlets.size();
+ ExtendedAssert.assertEquals(getPortletNumber(), portletNumber);
+ Set<String> handles = getPortletHandles();
+ Set<String> consumerHandles = new HashSet<String>(portletNumber);
+ for (Object o : returnedPortlets)
+ {
+ Portlet portlet = (Portlet)o;
+ consumerHandles.add(portlet.getContext().getId());
+ }
+
+ ExtendedAssert.assertTrue(handles.containsAll(consumerHandles));
+ }
+
+ @Override
+ protected void registerAdditionalMarkupBehaviors(BehaviorRegistry registry)
+ {
+ // do nothing so that we don't pollute the service description with markup
behaviors
+ }
+}
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/MarkupTestCase.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/MarkupTestCase.java 2008-07-07
16:14:32 UTC (rev 11319)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/MarkupTestCase.java 2008-07-07
16:15:04 UTC (rev 11320)
@@ -36,6 +36,7 @@
import org.jboss.portal.portlet.invocation.response.PortletInvocationResponse;
import org.jboss.portal.portlet.invocation.response.UpdateNavigationalStateResponse;
import org.jboss.portal.portlet.spi.WindowContext;
+import org.jboss.portal.test.wsrp.framework.BehaviorRegistry;
import org.jboss.portal.test.wsrp.framework.support.BasicInstanceContext;
import org.jboss.portal.test.wsrp.framework.support.BasicPortalContext;
import org.jboss.portal.test.wsrp.framework.support.BasicSecurityContext;
@@ -54,8 +55,11 @@
import org.jboss.portal.wsrp.consumer.ProducerSessionInformation;
import org.jboss.portal.wsrp.core.CookieProtocol;
import org.jboss.portal.wsrp.core.InvalidHandleFault;
+import org.jboss.portal.wsrp.core.InvalidRegistrationFault;
+import org.jboss.portal.wsrp.core.OperationFailedFault;
import javax.servlet.http.HttpSession;
+import java.rmi.RemoteException;
/**
* @author <a href="mailto:chris.laprun@jboss.com">Chris
Laprun</a>
@@ -100,7 +104,7 @@
public void testRender() throws Exception
{
RenderInvocation render =
createRenderInvocation(BasicMarkupBehavior.PORTLET_HANDLE, Mode.EDIT,
- WindowState.NORMAL, "someNS");
+ WindowState.NORMAL, "someNS");
FragmentResponse result = checkRenderResult(consumer.invoke(render),
"portlet1:edit:normal:someNS");
ExtendedAssert.assertEquals(15, result.getCacheControl().getExpirationSecs());
@@ -168,13 +172,15 @@
ExtendedAssert.assertEquals(1, behavior.getInitCookieCallCount());
}
- public void testInitCookiePerGroup() throws PortletInvokerException,
InvalidHandleFault
+ public void testInitCookiePerGroup() throws PortletInvokerException,
InvalidHandleFault, RemoteException, InvalidRegistrationFault, OperationFailedFault
{
- // need to setup with a specific service description behavior
- setUpWith(new GroupedPortletsServiceDescriptionBehavior());
+ BehaviorRegistry registry = producer.getBehaviorRegistry();
+ // need to setup with a specific service description behavior: we wrap the current
service description
+ setServiceDescriptionBehavior(new
GroupedPortletsServiceDescriptionBehavior(registry.getServiceDescriptionBehavior().getServiceDescription(null)));
+
String handle = PerGroupInitCookieMarkupBehavior.PER_GROUP_INIT_COOKIE_HANDLE;
- InitCookieMarkupBehavior behavior =
(InitCookieMarkupBehavior)producer.getBehaviorRegistry().getMarkupBehaviorFor(handle);
+ InitCookieMarkupBehavior behavior =
(InitCookieMarkupBehavior)registry.getMarkupBehaviorFor(handle);
ProducerSessionInformation sessionInfo = commonInitCookieTest(handle, behavior,
CookieProtocol.perGroup);
ExtendedAssert.assertTrue(sessionInfo.isPerGroupCookies());
@@ -193,7 +199,7 @@
}
private ProducerSessionInformation commonInitCookieTest(String handle,
InitCookieMarkupBehavior behavior, CookieProtocol cookieProtocol)
- throws PortletInvokerException
+ throws PortletInvokerException
{
RenderInvocation render = createRenderInvocation(handle);
TestPortletInvocationContext invocationContext =
(TestPortletInvocationContext)render.getContext();
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/ServiceDescriptionTestCase.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/ServiceDescriptionTestCase.java 2008-07-07
16:14:32 UTC (rev 11319)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/ServiceDescriptionTestCase.java 2008-07-07
16:15:04 UTC (rev 11320)
@@ -26,18 +26,15 @@
import org.jboss.portal.portlet.Portlet;
import org.jboss.portal.portlet.PortletContext;
import org.jboss.portal.test.wsrp.v1.consumer.behaviors.BasicMarkupBehavior;
-import org.jboss.portal.test.wsrp.v1.consumer.behaviors.BasicServiceDescriptionBehavior;
import org.jboss.portal.test.wsrp.v1.consumer.behaviors.SessionMarkupBehavior;
-import java.util.Set;
-
/**
* @author <a href="mailto:boleslaw.dawidowicz@jboss.org">Boleslaw
Dawidowicz</a>
* @author <a href="mailto:chris.laprun@jboss.com">Chris
Laprun</a>
* @version $Revision$
* @since 2.4
*/
-public class ServiceDescriptionTestCase extends V1ConsumerBaseTest
+public class ServiceDescriptionTestCase extends InteropServiceDescriptionTestCase
{
public ServiceDescriptionTestCase() throws Exception
@@ -46,27 +43,18 @@
}
+ @Override
public void setUp() throws Exception
{
super.setUp();
- // override default service description behavior to make sure we have the correct
state
- producer.getBehaviorRegistry().setServiceDescriptionBehavior(new
BasicServiceDescriptionBehavior());
- consumer.refreshProducerInfo();
+
+ // use strict mode
+ setStrict(true);
}
- public void testGetportlets() throws Exception
+ public void testUsesRelaxedMode()
{
- //invoke consumer
- Set returnedPortlets = consumer.getPortlets();
-
- //assert we have our two portlets
- ExtendedAssert.assertEquals(2, returnedPortlets.size());
- Portlet[] portletArray = (Portlet[])returnedPortlets.toArray(new Portlet[0]);
- Portlet p1 = portletArray[0];
- Portlet p2 = portletArray[1];
-
-
ExtendedAssert.assertTrue((p1.getContext().getId().equals(BasicMarkupBehavior.PORTLET_HANDLE)
&& p2.getContext().getId().equals(SessionMarkupBehavior.PORTLET_HANDLE)) ||
- (p2.getContext().getId().equals(BasicMarkupBehavior.PORTLET_HANDLE) &&
p1.getContext().getId().equals(SessionMarkupBehavior.PORTLET_HANDLE)));
+ ExtendedAssert.assertTrue(isStrict());
}
public void testGetPortlet() throws Exception
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/V1ConsumerBaseTest.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/V1ConsumerBaseTest.java 2008-07-07
16:14:32 UTC (rev 11319)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/V1ConsumerBaseTest.java 2008-07-07
16:15:04 UTC (rev 11320)
@@ -24,22 +24,9 @@
import org.jboss.portal.common.junit.ExtendedAssert;
import org.jboss.portal.portlet.Portlet;
-import org.jboss.portal.portlet.PortletInvokerException;
import org.jboss.portal.portlet.info.MetaInfo;
import org.jboss.portal.test.wsrp.WSRPConsumerBaseTest;
-import org.jboss.portal.test.wsrp.framework.BehaviorRegistry;
-import org.jboss.portal.test.wsrp.framework.ServiceDescriptionBehavior;
-import org.jboss.portal.test.wsrp.framework.support.MockConsumerRegistry;
import org.jboss.portal.test.wsrp.framework.support.ServiceObjectFactory;
-import org.jboss.portal.test.wsrp.v1.consumer.behaviors.BasicMarkupBehavior;
-import org.jboss.portal.test.wsrp.v1.consumer.behaviors.BasicPortletManagementBehavior;
-import org.jboss.portal.test.wsrp.v1.consumer.behaviors.EmptyMarkupBehavior;
-import
org.jboss.portal.test.wsrp.v1.consumer.behaviors.InitCookieNotRequiredMarkupBehavior;
-import org.jboss.portal.test.wsrp.v1.consumer.behaviors.NullMarkupBehavior;
-import
org.jboss.portal.test.wsrp.v1.consumer.behaviors.PerGroupInitCookieMarkupBehavior;
-import org.jboss.portal.test.wsrp.v1.consumer.behaviors.PerUserInitCookieMarkupBehavior;
-import org.jboss.portal.test.wsrp.v1.consumer.behaviors.ResourceMarkupBehavior;
-import org.jboss.portal.test.wsrp.v1.consumer.behaviors.SessionMarkupBehavior;
/**
* @author <a href="mailto:boleslaw.dawidowicz@jboss.org">Boleslaw
Dawidowicz</a>
@@ -66,34 +53,5 @@
public void setUp() throws Exception
{
super.setUp();
- setUpWith(new ServiceDescriptionBehavior());
}
-
- protected void setUpWith(ServiceDescriptionBehavior serviceDescriptionBehavior) throws
PortletInvokerException
- {
- // reset producer state
- producer.reset();
-
- // reset the behaviors
- BehaviorRegistry registry = producer.getBehaviorRegistry();
- registry.setPortletManagementBehavior(new
BasicPortletManagementBehavior(registry));
- registry.setServiceDescriptionBehavior(serviceDescriptionBehavior);
- registry.registerMarkupBehavior(new BasicMarkupBehavior(registry));
- registry.registerMarkupBehavior(new EmptyMarkupBehavior(registry));
- registry.registerMarkupBehavior(new
InitCookieNotRequiredMarkupBehavior(registry));
- registry.registerMarkupBehavior(new PerGroupInitCookieMarkupBehavior(registry));
- registry.registerMarkupBehavior(new PerUserInitCookieMarkupBehavior(registry));
- registry.registerMarkupBehavior(new NullMarkupBehavior(registry));
- registry.registerMarkupBehavior(new SessionMarkupBehavior(registry));
- registry.registerMarkupBehavior(new ResourceMarkupBehavior(registry));
-
- // use a fresh ConsumerRegistry
- consumer.getProducerInfo().setRegistry(new MockConsumerRegistry());
-
- // make sure we use clean producer info for each test
- consumer.refreshProducerInfo();
-
- // use cache to avoid un-necessary calls
- consumer.getProducerInfo().setExpirationCacheSeconds(120);
- }
}
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/behaviors/GroupedPortletsServiceDescriptionBehavior.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/behaviors/GroupedPortletsServiceDescriptionBehavior.java 2008-07-07
16:14:32 UTC (rev 11319)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/behaviors/GroupedPortletsServiceDescriptionBehavior.java 2008-07-07
16:15:04 UTC (rev 11320)
@@ -32,11 +32,18 @@
import java.rmi.RemoteException;
/**
+ * Wraps a service description to add group information on portlet descriptions...
+ *
* @author <a href="mailto:chris.laprun@jboss.com">Chris
Laprun</a>
* @version $Revision$
*/
public class GroupedPortletsServiceDescriptionBehavior extends
ServiceDescriptionBehavior
{
+ public GroupedPortletsServiceDescriptionBehavior(ServiceDescription sd)
+ {
+ serviceDescription = sd;
+ }
+
@Override
public ServiceDescription getServiceDescription(GetServiceDescription
getServiceDescription) throws OperationFailedFault, InvalidRegistrationFault,
RemoteException
{
Added:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/behaviors/interop/LiferayServiceDescriptionBehavior.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/behaviors/interop/LiferayServiceDescriptionBehavior.java
(rev 0)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/consumer/behaviors/interop/LiferayServiceDescriptionBehavior.java 2008-07-07
16:15:04 UTC (rev 11320)
@@ -0,0 +1,70 @@
+/*
+* 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.test.wsrp.v1.consumer.behaviors.interop;
+
+import org.jboss.portal.test.wsrp.framework.ServiceDescriptionBehavior;
+import org.jboss.portal.wsrp.core.LocalizedString;
+import org.jboss.portal.wsrp.core.PortletDescription;
+
+/**
+ * Liferay behavior as exhibited at
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4162201#...
+ *
+ * @author <a href="mailto:chris.laprun@jboss.com">Chris
Laprun</a>
+ * @version $Revision$
+ */
+public class LiferayServiceDescriptionBehavior extends ServiceDescriptionBehavior
+{
+ public LiferayServiceDescriptionBehavior()
+ {
+ /*
+ <portletHandle>98</portletHandle>
+<markupTypes>
+ <mimeType>text/html</mimeType>
+ <modes>wsrp:view</modes>
+ <windowStates>wsrp:normal</windowStates>
+ <windowStates>wsrp:minimized</windowStates>
+ <windowStates>wsrp:maximized</windowStates>
+ <locales>en_US</locales>
+</markupTypes>
+<groupID>98</groupID>
+<shortTitle lang='English'>
+ <value>javax.portlet.short-title.98</value>
+</shortTitle>
+<title lang='English'>
+ <value>Software Catalog</value>
+</title>
+ */
+ PortletDescription pd = createPortletDescription("98", null);
+ pd.getMarkupTypes()[0].getLocales()[0] = "en_US";
+ LocalizedString locString = pd.getShortTitle();
+ pd.setGroupID("98");
+ String lang = "English";
+ locString.setLang(lang);
+ locString.setValue("javax.portlet.short-title.98");
+ locString = pd.getTitle();
+ locString.setLang(lang);
+ locString.setValue("Software Catalog");
+
+ serviceDescription.setOfferedPortlets(new PortletDescription[]{pd});
+ }
+}
\ No newline at end of file
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/WSRPUtils.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/WSRPUtils.java 2008-07-07
16:14:32 UTC (rev 11319)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/WSRPUtils.java 2008-07-07
16:15:04 UTC (rev 11320)
@@ -317,7 +317,7 @@
{
ParameterValidation.throwIllegalArgExceptionIfNull(propertyDescription,
"RegistrationPropertyDescription");
PropertyDescription propDesc =
WSRPTypeFactory.createPropertyDescription(propertyDescription.getName().toString(),
- propertyDescription.getType());
+ propertyDescription.getType());
// todo: deal with languages properly!!
LocalizedString hint = propertyDescription.getHint();
@@ -342,7 +342,7 @@
{
ParameterValidation.throwIllegalArgExceptionIfNull(propertyDescription,
"PropertyDescription");
RegistrationPropertyDescription desc = new
RegistrationPropertyDescription(propertyDescription.getName(),
- propertyDescription.getType());
+ propertyDescription.getType());
desc.setLabel(getLocalizedStringOrNull(propertyDescription.getLabel()));
desc.setHint(getLocalizedStringOrNull(propertyDescription.getHint()));
@@ -394,7 +394,7 @@
{
ParameterValidation.throwIllegalArgExceptionIfNull(regLocalizedString,
"LocalizedString");
return
WSRPTypeFactory.createLocalizedString(toString(regLocalizedString.getLocale()),
- regLocalizedString.getResourceName(), regLocalizedString.getValue());
+ regLocalizedString.getResourceName(), regLocalizedString.getValue());
}
/**
@@ -448,7 +448,16 @@
}
catch (ConversionException e)
{
- throw new IllegalArgumentException(e);
+ if (WSRPUtils.strict)
+ {
+ throw new IllegalArgumentException(e);
+ }
+ else
+ {
+ log.debug("Was given an invalid language: '" + possiblyRelaxed
+ + "'. Since we're using relaxed validation, we will
assume " + Locale.ENGLISH + " to avoid crashing!", e);
+ return Locale.ENGLISH;
+ }
}
}
@@ -482,7 +491,7 @@
sb.append("(secure)");
}
sb.append("[M=").append(params.getMode()).append("][WS=").append(params.getWindowState()).append("]")
-
.append("[NS=").append(params.getNavigationalState()).append("]");
+
.append("[NS=").append(params.getNavigationalState()).append("]");
return sb.toString();
}
return null;
@@ -501,7 +510,7 @@
{
StringBuffer sb = new StringBuffer("InteractionParams");
sb.append("[IS=").append(interactionParams.getInteractionState()).append("]")
-
.append("[StateChange=").append(interactionParams.getPortletStateChange().getValue()).append("]");
+
.append("[StateChange=").append(interactionParams.getPortletStateChange().getValue()).append("]");
NamedString[] formParams = interactionParams.getFormParameters();
if (formParams != null)
{
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-wsrp-consumer-servicedescription-sar/META-INF/jboss-service.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-wsrp-consumer-servicedescription-sar/META-INF/jboss-service.xml 2008-07-07
16:14:32 UTC (rev 11319)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-wsrp-consumer-servicedescription-sar/META-INF/jboss-service.xml 2008-07-07
16:15:04 UTC (rev 11320)
@@ -24,14 +24,30 @@
<server>
<mbean
- code="org.jboss.portal.test.wsrp.v1.consumer.ServiceDescriptionTestCase"
- name="portal.test:test=ServiceDescription"
- xmbean-dd=""
- xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+
code="org.jboss.portal.test.wsrp.v1.consumer.ServiceDescriptionTestCase"
+ name="portal.test:test=ServiceDescription"
+ xmbean-dd=""
+
xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
<xmbean/>
<depends optional-attribute-name="TestDriverRegistry"
-
proxy-type="attribute">portal.test:service=TestDriverServer</depends>
+ proxy-type="attribute">portal.test:service=TestDriverServer
+ </depends>
<depends optional-attribute-name="Consumer"
proxy-type="attribute">portal.wsrp:service=WSRPConsumer</depends>
<depends optional-attribute-name="Producer"
proxy-type="attribute">portal.wsrp:service=WSRPProducer</depends>
</mbean>
+ <mbean
+
code="org.jboss.portal.test.wsrp.v1.consumer.InteropServiceDescriptionTestCase"
+ name="portal.test:test=LiferayServiceDescription"
+ xmbean-dd=""
+
xmbean-code="org.jboss.portal.jems.as.system.JBossServiceModelMBean">
+ <xmbean/>
+ <depends optional-attribute-name="TestDriverRegistry"
+ proxy-type="attribute">portal.test:service=TestDriverServer
+ </depends>
+ <depends optional-attribute-name="Consumer"
proxy-type="attribute">portal.wsrp:service=WSRPConsumer</depends>
+ <depends optional-attribute-name="Producer"
proxy-type="attribute">portal.wsrp:service=WSRPProducer</depends>
+ <attribute name="SDClassName">
+
org.jboss.portal.test.wsrp.v1.consumer.behaviors.interop.LiferayServiceDescriptionBehavior
+ </attribute>
+ </mbean>
</server>