Author: chris.laprun(a)jboss.com
Date: 2008-03-22 20:15:32 -0400 (Sat, 22 Mar 2008)
New Revision: 10367
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/build.xml
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/portlet/GetLocalesPortlet.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/producer/MarkupTestCase.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/producer/NeedPortletHandleTest.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/RequestProcessor.java
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-applicationscope-portlet-war/WEB-INF/portlet.xml
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-basic-portlet-war/WEB-INF/portlet.xml
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-dispatcher-portlet-war/WEB-INF/portlet.xml
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-encodeurl-portlet-war/WEB-INF/portlet.xml
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-getlocales-portlet-war/WEB-INF/portlet.xml
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-implicitcloning-portlet-war/WEB-INF/portlet.xml
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-markup-portlet-war/WEB-INF/portlet.xml
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-multivalued-portlet-war/WEB-INF/portlet.xml
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-renderparam-portlet-war/WEB-INF/portlet.xml
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-session-portlet-war/WEB-INF/portlet.xml
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-usercontext-portlet-war/WEB-INF/portlet.xml
Log:
- Improved locale support in WSRP:
+ Fixed an issue with the proper locale not being requested
+ Added more tests
- Improved support for multiple portlet per portlet-app in tests
(NeedPortletHandledTest.getPortletHandleFrom)
- Added supported-locale elements in portlet descriptors in test portlets.
Modified: branches/JBoss_Portal_Branch_2_7/wsrp/build.xml
===================================================================
--- branches/JBoss_Portal_Branch_2_7/wsrp/build.xml 2008-03-22 16:01:13 UTC (rev 10366)
+++ branches/JBoss_Portal_Branch_2_7/wsrp/build.xml 2008-03-23 00:15:32 UTC (rev 10367)
@@ -600,10 +600,11 @@
<!-- ImplicitCloning test portlet -->
<package-test-portlet archiveName="implicitcloning"
portletName="ImplicitCloning"/>
- <!-- Resourceportlet test portlet -->
+ <!-- Resource test portlet -->
<package-test-portlet archiveName="resource"
portletName="Resource"/>
- <!-- Multipart test portlet --><!--<package-test-portlet
archiveName="multipart" portletName="Multipart"/>-->
+ <!-- Multipart test portlet -->
+ <!--<package-test-portlet archiveName="multipart"
portletName="Multipart"/>-->
<!-- Application scope test portlet -->
<jar
jarfile="${build.lib.test}/test-applicationscope-portlet.war">
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/portlet/GetLocalesPortlet.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/portlet/GetLocalesPortlet.java 2008-03-22
16:01:13 UTC (rev 10366)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/portlet/GetLocalesPortlet.java 2008-03-23
00:15:32 UTC (rev 10367)
@@ -30,6 +30,7 @@
import javax.portlet.RenderResponse;
import java.io.IOException;
import java.io.PrintWriter;
+import java.util.Locale;
/**
* @author <a href="mailto:boleslaw.dawidowicz@jboss.com">Boleslaw
Dawidowicz</a>
@@ -41,14 +42,12 @@
protected void doView(RenderRequest request, RenderResponse response) throws
PortletException, PortletSecurityException, IOException
{
-
System.out.println("#GetLocalesPortlet doView()");
- request.getLocales();
+ Locale locale = request.getLocale();
response.setContentType("text/html");
PrintWriter writer = response.getWriter();
- writer.print("GetLocalesPortlet");
+ writer.print(locale.getDisplayName());
writer.close();
-
}
}
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/producer/MarkupTestCase.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/producer/MarkupTestCase.java 2008-03-22
16:01:13 UTC (rev 10366)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/producer/MarkupTestCase.java 2008-03-23
00:15:32 UTC (rev 10367)
@@ -47,7 +47,7 @@
import org.jboss.portal.wsrp.core.UpdateResponse;
import java.rmi.RemoteException;
-import java.util.List;
+import java.util.Locale;
/**
* @author <a href="mailto:chris.laprun@jboss.com">Chris
Laprun</a>
@@ -341,18 +341,18 @@
String getLocalesPortletArchive = "test-getlocales-portlet.war";
deploy(getLocalesPortletArchive);
- GetMarkup getMarkup = createMarkupRequestForCurrentlyDeployedPortlet();
+ GetMarkup getMarkup =
createMarkupRequest(getPortletHandleFrom("Incorrect"));
getMarkup.getMarkupParams().setLocales(new String[]{"en_US"});
- MarkupResponse response = null;
try
{
- response = markupService.getMarkup(getMarkup);
+ markupService.getMarkup(getMarkup);
//fail("Should have trown an UnsupportetLocaleFault"); // ideally cf
http://jira.jboss.com/jira/browse/JBPORTAL-857
ExtendedAssert.fail("Should have trown an exception"); // right now
}
catch (Exception expected)
{
+ // expected
}
finally
{
@@ -361,6 +361,52 @@
}
}
+ public void testGetMarkupWithoutDeclaredLocale() throws Exception
+ {
+ undeploy(DEFAULT_MARKUP_PORTLET_WAR);
+ String getLocalesPortletArchive = "test-getlocales-portlet.war";
+ deploy(getLocalesPortletArchive);
+
+ GetMarkup getMarkup = createMarkupRequest(getPortletHandleFrom("No
Declared"));
+
+ try
+ {
+ checkMarkupResponse(markupService.getMarkup(getMarkup),
Locale.getDefault().getDisplayName());
+ }
+ finally
+ {
+ undeploy(getLocalesPortletArchive);
+ }
+ }
+
+ public void testGetMarkupLocales() throws Exception
+ {
+ undeploy(DEFAULT_MARKUP_PORTLET_WAR);
+ String getLocalesPortletArchive = "test-getlocales-portlet.war";
+ deploy(getLocalesPortletArchive);
+
+ GetMarkup getMarkup =
createMarkupRequest(getPortletHandleFrom("Simple"));
+
+ try
+ {
+ getMarkup.getMarkupParams().setLocales(new String[]{"en",
"fr"});
+ MarkupResponse response = markupService.getMarkup(getMarkup);
+ checkMarkupResponse(response, Locale.ENGLISH.getDisplayName());
+
+ getMarkup.getMarkupParams().setLocales(new String[]{"fr",
"en"});
+ response = markupService.getMarkup(getMarkup);
+ checkMarkupResponse(response, Locale.FRENCH.getDisplayName());
+
+ getMarkup.getMarkupParams().setLocales(new String[]{"de",
"en"});
+ response = markupService.getMarkup(getMarkup);
+ checkMarkupResponse(response, Locale.ENGLISH.getDisplayName());
+ }
+ finally
+ {
+ undeploy(getLocalesPortletArchive);
+ }
+ }
+
public void testGetMarkupWithEncodedURLs() throws Exception
{
undeploy(DEFAULT_MARKUP_PORTLET_WAR);
@@ -516,28 +562,13 @@
try
{
- // get handles: current archive contains 2 portlets, one to set the application
scoped variable, another one to read it
- List<String> handles = getHandlesForCurrentlyDeployedArchive();
- String handle = handles.get(0);
- String setHandle, getHandle;
- if (handle.contains("Set"))
- {
- setHandle = handle;
- getHandle = handles.get(1);
- }
- else
- {
- getHandle = handle;
- setHandle = handles.get(1);
- }
-
// set appVar to value in the application scope by the first portlet
- PerformBlockingInteraction pbi =
WSRPTypeFactory.createDefaultPerformBlockingInteraction(setHandle);
+ PerformBlockingInteraction pbi =
WSRPTypeFactory.createDefaultPerformBlockingInteraction(getPortletHandleFrom("Set"));
pbi.getInteractionParams().setFormParameters(new NamedString[]{new
NamedString("appVar", "value")});
markupService.performBlockingInteraction(pbi);
// the second portlet reads the appVar value and outputs it
- GetMarkup gm = createMarkupRequest(getHandle);
+ GetMarkup gm = createMarkupRequest(getPortletHandleFrom("Get"));
MarkupResponse res = markupService.getMarkup(gm);
checkMarkupResponse(res, "appVar=value");
}
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/producer/NeedPortletHandleTest.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/producer/NeedPortletHandleTest.java 2008-03-22
16:01:13 UTC (rev 10366)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/test/wsrp/v1/producer/NeedPortletHandleTest.java 2008-03-23
00:15:32 UTC (rev 10367)
@@ -211,6 +211,20 @@
return getMarkup;
}
+ protected String getPortletHandleFrom(String partialHandle)
+ {
+ List<String> handles = getHandlesForCurrentlyDeployedArchive();
+ for (String handle : handles)
+ {
+ if (handle.contains(partialHandle))
+ {
+ return handle;
+ }
+ }
+
+ throw new IllegalArgumentException("Couldn't find a portlet handle
matching '" + partialHandle + "' in " +
currentlyDeployedArchiveName);
+ }
+
protected GetMarkup createMarkupRequest() throws Exception
{
return createMarkupRequestForCurrentlyDeployedPortlet();
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/RequestProcessor.java
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/RequestProcessor.java 2008-03-22
16:01:13 UTC (rev 10366)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/main/org/jboss/portal/wsrp/producer/RequestProcessor.java 2008-03-23
00:15:32 UTC (rev 10367)
@@ -199,11 +199,11 @@
for (int i = 0; markupType == null && i < desiredMIMETypes.length; i++)
{
String desiredMIMEType = desiredMIMETypes[i];
- for (int j = 0; j < markupTypes.length; j++)
+ for (MarkupType type : markupTypes)
{
- if (desiredMIMEType.equals(markupTypes[j].getMimeType()))
+ if (desiredMIMEType.equals(type.getMimeType()))
{
- markupType = markupTypes[j];
+ markupType = type;
break;
}
}
@@ -216,6 +216,45 @@
"None of the specified MIME types are supported by portlet '" +
portlet.getContext().getId() + "'", null);
}
+ // use user-desired locales
+ String[] locales = params.getLocales();
+ String[] supportedLocales = markupType.getLocales();
+ if (supportedLocales != null)
+ {
+ // reset markup type locales
+ markupType.setLocales(null);
+ boolean found = false;
+
+ // find the best match
+ for (String locale : locales)
+ {
+ for (String supportedLocale : supportedLocales)
+ {
+ if (locale.equals(supportedLocale))
+ {
+ markupType.setLocales(new String[]{locale});
+ found = true;
+ break;
+ }
+ }
+
+ if (found)
+ {
+ break;
+ }
+ }
+
+ // if no best match was found, use whatever the user gave us
+ if (!found)
+ {
+ markupType.setLocales(locales);
+ }
+ }
+ else
+ {
+ markupType.setLocales(locales);
+ }
+
// get the mode
String mode;
try
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-applicationscope-portlet-war/WEB-INF/portlet.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-applicationscope-portlet-war/WEB-INF/portlet.xml 2008-03-22
16:01:13 UTC (rev 10366)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-applicationscope-portlet-war/WEB-INF/portlet.xml 2008-03-23
00:15:32 UTC (rev 10367)
@@ -35,9 +35,11 @@
<portlet-mode>view</portlet-mode>
</supports>
+ <supported-locale>en</supported-locale>
+
<portlet-info>
<title>title</title>
- </portlet-info>
+ </portlet-info>
</portlet>
<portlet>
@@ -50,6 +52,8 @@
<portlet-mode>view</portlet-mode>
</supports>
+ <supported-locale>en</supported-locale>
+
<portlet-info>
<title>title</title>
</portlet-info>
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-basic-portlet-war/WEB-INF/portlet.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-basic-portlet-war/WEB-INF/portlet.xml 2008-03-22
16:01:13 UTC (rev 10366)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-basic-portlet-war/WEB-INF/portlet.xml 2008-03-23
00:15:32 UTC (rev 10367)
@@ -34,6 +34,8 @@
<portlet-mode>view</portlet-mode>
</supports>
+ <supported-locale>en</supported-locale>
+
<portlet-info>
<title>title</title>
</portlet-info>
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-dispatcher-portlet-war/WEB-INF/portlet.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-dispatcher-portlet-war/WEB-INF/portlet.xml 2008-03-22
16:01:13 UTC (rev 10366)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-dispatcher-portlet-war/WEB-INF/portlet.xml 2008-03-23
00:15:32 UTC (rev 10367)
@@ -34,6 +34,8 @@
<portlet-mode>view</portlet-mode>
</supports>
+ <supported-locale>en</supported-locale>
+
<portlet-info>
<title>title</title>
</portlet-info>
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-encodeurl-portlet-war/WEB-INF/portlet.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-encodeurl-portlet-war/WEB-INF/portlet.xml 2008-03-22
16:01:13 UTC (rev 10366)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-encodeurl-portlet-war/WEB-INF/portlet.xml 2008-03-23
00:15:32 UTC (rev 10367)
@@ -34,6 +34,8 @@
<portlet-mode>view</portlet-mode>
</supports>
+ <supported-locale>en</supported-locale>
+
<portlet-info>
<title>title</title>
</portlet-info>
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-getlocales-portlet-war/WEB-INF/portlet.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-getlocales-portlet-war/WEB-INF/portlet.xml 2008-03-22
16:01:13 UTC (rev 10366)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-getlocales-portlet-war/WEB-INF/portlet.xml 2008-03-23
00:15:32 UTC (rev 10367)
@@ -34,9 +34,42 @@
<portlet-mode>view</portlet-mode>
</supports>
+ <supported-locale>en</supported-locale>
+ <supported-locale>fr</supported-locale>
+
<portlet-info>
<title>title</title>
</portlet-info>
</portlet>
+ <portlet>
+ <portlet-name>No Declared Supported Locale Portlet</portlet-name>
+
<portlet-class>org.jboss.portal.test.wsrp.portlet.GetLocalesPortlet</portlet-class>
+
+ <supports>
+ <mime-type>text/html</mime-type>
+ <portlet-mode>view</portlet-mode>
+ </supports>
+
+ <portlet-info>
+ <title>title</title>
+ </portlet-info>
+ </portlet>
+
+ <portlet>
+ <portlet-name>Incorrect Supported Locale Portlet</portlet-name>
+
<portlet-class>org.jboss.portal.test.wsrp.portlet.GetLocalesPortlet</portlet-class>
+
+ <supports>
+ <mime-type>text/html</mime-type>
+ <portlet-mode>view</portlet-mode>
+ </supports>
+
+ <supported-locale>blah</supported-locale>
+
+ <portlet-info>
+ <title>title</title>
+ </portlet-info>
+ </portlet>
+
</portlet-app>
\ No newline at end of file
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-implicitcloning-portlet-war/WEB-INF/portlet.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-implicitcloning-portlet-war/WEB-INF/portlet.xml 2008-03-22
16:01:13 UTC (rev 10366)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-implicitcloning-portlet-war/WEB-INF/portlet.xml 2008-03-23
00:15:32 UTC (rev 10367)
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ JBoss, a division of Red Hat ~
- ~ Copyright 2007, Red Hat Middleware, LLC, and individual ~
+ ~ 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. ~
@@ -34,6 +34,8 @@
<portlet-mode>view</portlet-mode>
</supports>
+ <supported-locale>en</supported-locale>
+
<portlet-info>
<title>title</title>
</portlet-info>
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-markup-portlet-war/WEB-INF/portlet.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-markup-portlet-war/WEB-INF/portlet.xml 2008-03-22
16:01:13 UTC (rev 10366)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-markup-portlet-war/WEB-INF/portlet.xml 2008-03-23
00:15:32 UTC (rev 10367)
@@ -36,6 +36,8 @@
<portlet-mode>edit</portlet-mode>
</supports>
+ <supported-locale>en</supported-locale>
+
<portlet-info>
<title>title</title>
</portlet-info>
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-multivalued-portlet-war/WEB-INF/portlet.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-multivalued-portlet-war/WEB-INF/portlet.xml 2008-03-22
16:01:13 UTC (rev 10366)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-multivalued-portlet-war/WEB-INF/portlet.xml 2008-03-23
00:15:32 UTC (rev 10367)
@@ -35,6 +35,8 @@
<portlet-mode>view</portlet-mode>
</supports>
+ <supported-locale>en</supported-locale>
+
<portlet-info>
<title>title</title>
</portlet-info>
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-renderparam-portlet-war/WEB-INF/portlet.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-renderparam-portlet-war/WEB-INF/portlet.xml 2008-03-22
16:01:13 UTC (rev 10366)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-renderparam-portlet-war/WEB-INF/portlet.xml 2008-03-23
00:15:32 UTC (rev 10367)
@@ -34,6 +34,8 @@
<portlet-mode>view</portlet-mode>
</supports>
+ <supported-locale>en</supported-locale>
+
<portlet-info>
<title>Render Parameters Test</title>
</portlet-info>
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-session-portlet-war/WEB-INF/portlet.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-session-portlet-war/WEB-INF/portlet.xml 2008-03-22
16:01:13 UTC (rev 10366)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-session-portlet-war/WEB-INF/portlet.xml 2008-03-23
00:15:32 UTC (rev 10367)
@@ -34,6 +34,8 @@
<portlet-mode>view</portlet-mode>
</supports>
+ <supported-locale>en</supported-locale>
+
<portlet-info>
<title>Session Test</title>
</portlet-info>
Modified:
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-usercontext-portlet-war/WEB-INF/portlet.xml
===================================================================
---
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-usercontext-portlet-war/WEB-INF/portlet.xml 2008-03-22
16:01:13 UTC (rev 10366)
+++
branches/JBoss_Portal_Branch_2_7/wsrp/src/resources/tests/test-usercontext-portlet-war/WEB-INF/portlet.xml 2008-03-23
00:15:32 UTC (rev 10367)
@@ -34,6 +34,8 @@
<portlet-mode>view</portlet-mode>
</supports>
+ <supported-locale>en</supported-locale>
+
<portlet-info>
<title>title</title>
</portlet-info>