Author: chris.laprun(a)jboss.com
Date: 2010-06-14 16:43:13 -0400 (Mon, 14 Jun 2010)
New Revision: 3330
Modified:
components/wsrp/trunk/common/src/main/java/org/gatein/wsrp/spec/v1/V1ToV2Converter.java
components/wsrp/trunk/common/src/main/java/org/gatein/wsrp/spec/v1/V2ToV1Converter.java
components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/services/v1/V1MarkupService.java
Log:
- Fixed improper handling of returned values in MarkupService.
- Fixed incorrect StateChange conversion implementation.
Modified:
components/wsrp/trunk/common/src/main/java/org/gatein/wsrp/spec/v1/V1ToV2Converter.java
===================================================================
---
components/wsrp/trunk/common/src/main/java/org/gatein/wsrp/spec/v1/V1ToV2Converter.java 2010-06-14
19:26:04 UTC (rev 3329)
+++
components/wsrp/trunk/common/src/main/java/org/gatein/wsrp/spec/v1/V1ToV2Converter.java 2010-06-14
20:43:13 UTC (rev 3330)
@@ -31,6 +31,7 @@
import org.gatein.wsrp.WSRPExceptionFactory;
import org.gatein.wsrp.WSRPTypeFactory;
import org.gatein.wsrp.WSRPUtils;
+import org.oasis.wsrp.v1.V1CacheControl;
import org.oasis.wsrp.v1.V1ClientData;
import org.oasis.wsrp.v1.V1Contact;
import org.oasis.wsrp.v1.V1CookieProtocol;
@@ -40,6 +41,7 @@
import org.oasis.wsrp.v1.V1InteractionParams;
import org.oasis.wsrp.v1.V1ItemDescription;
import org.oasis.wsrp.v1.V1LocalizedString;
+import org.oasis.wsrp.v1.V1MarkupContext;
import org.oasis.wsrp.v1.V1MarkupParams;
import org.oasis.wsrp.v1.V1MarkupType;
import org.oasis.wsrp.v1.V1ModelDescription;
@@ -60,13 +62,16 @@
import org.oasis.wsrp.v1.V1ResourceList;
import org.oasis.wsrp.v1.V1ResourceValue;
import org.oasis.wsrp.v1.V1RuntimeContext;
+import org.oasis.wsrp.v1.V1SessionContext;
import org.oasis.wsrp.v1.V1StateChange;
import org.oasis.wsrp.v1.V1Telecom;
import org.oasis.wsrp.v1.V1TelephoneNum;
import org.oasis.wsrp.v1.V1Templates;
+import org.oasis.wsrp.v1.V1UpdateResponse;
import org.oasis.wsrp.v1.V1UploadContext;
import org.oasis.wsrp.v1.V1UserContext;
import org.oasis.wsrp.v1.V1UserProfile;
+import org.oasis.wsrp.v2.CacheControl;
import org.oasis.wsrp.v2.ClientData;
import org.oasis.wsrp.v2.Contact;
import org.oasis.wsrp.v2.CookieProtocol;
@@ -76,6 +81,7 @@
import org.oasis.wsrp.v2.InteractionParams;
import org.oasis.wsrp.v2.ItemDescription;
import org.oasis.wsrp.v2.LocalizedString;
+import org.oasis.wsrp.v2.MarkupContext;
import org.oasis.wsrp.v2.MarkupParams;
import org.oasis.wsrp.v2.MarkupType;
import org.oasis.wsrp.v2.ModelDescription;
@@ -96,11 +102,13 @@
import org.oasis.wsrp.v2.ResourceList;
import org.oasis.wsrp.v2.ResourceValue;
import org.oasis.wsrp.v2.RuntimeContext;
+import org.oasis.wsrp.v2.SessionContext;
import org.oasis.wsrp.v2.SessionParams;
import org.oasis.wsrp.v2.StateChange;
import org.oasis.wsrp.v2.Telecom;
import org.oasis.wsrp.v2.TelephoneNum;
import org.oasis.wsrp.v2.Templates;
+import org.oasis.wsrp.v2.UpdateResponse;
import org.oasis.wsrp.v2.UploadContext;
import org.oasis.wsrp.v2.UserContext;
import org.oasis.wsrp.v2.UserProfile;
@@ -555,7 +563,7 @@
{
if (v1StateChange != null)
{
- return StateChange.valueOf((v1StateChange.value()));
+ return StateChange.fromValue((v1StateChange.value()));
}
else
{
@@ -730,6 +738,103 @@
}
}
+ public static MarkupContext toV2MarkupContext(V1MarkupContext v1MarkupContext)
+ {
+ if (v1MarkupContext != null)
+ {
+ MarkupContext result;
+
+ byte[] binary = v1MarkupContext.getMarkupBinary();
+ String string = v1MarkupContext.getMarkupString();
+
+ if (string != null)
+ {
+ result = WSRPTypeFactory.createMarkupContext(v1MarkupContext.getMimeType(),
string);
+ }
+ else
+ {
+ result = WSRPTypeFactory.createMarkupContext(v1MarkupContext.getMimeType(),
binary);
+ }
+ result.setCacheControl(toV2CacheControl(v1MarkupContext.getCacheControl()));
+ result.setLocale(v1MarkupContext.getLocale());
+ result.setMimeType(v1MarkupContext.getMimeType());
+ result.setPreferredTitle(v1MarkupContext.getPreferredTitle());
+ result.setRequiresRewriting(v1MarkupContext.isRequiresUrlRewriting());
+ result.setUseCachedItem(v1MarkupContext.isUseCachedMarkup());
+
+ List<V1Extension> extensions = v1MarkupContext.getExtensions();
+ if (extensions != null)
+ {
+ result.getExtensions().addAll(WSRPUtils.transform(extensions, EXTENSION));
+ }
+
+ return result;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ private static CacheControl toV2CacheControl(V1CacheControl v1CacheControl)
+ {
+ if (v1CacheControl != null)
+ {
+ CacheControl result =
WSRPTypeFactory.createCacheControl(v1CacheControl.getExpires(),
v1CacheControl.getUserScope());
+ result.setValidateTag(v1CacheControl.getValidateTag());
+
+ List<V1Extension> extensions = v1CacheControl.getExtensions();
+ if (extensions != null)
+ {
+ result.getExtensions().addAll(WSRPUtils.transform(extensions, EXTENSION));
+ }
+
+ return result;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ public static SessionContext toV2SessionContext(V1SessionContext sessionContext)
+ {
+ if (sessionContext != null)
+ {
+ SessionContext result =
WSRPTypeFactory.createSessionContext(sessionContext.getSessionID(),
sessionContext.getExpires());
+ result.getExtensions().addAll(Lists.transform(sessionContext.getExtensions(),
EXTENSION));
+
+ return result;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ public static UpdateResponse toV2UpdateResponse(V1UpdateResponse updateResponse)
+ {
+ if (updateResponse != null)
+ {
+ UpdateResponse result = WSRPTypeFactory.createUpdateResponse();
+ result.setMarkupContext(toV2MarkupContext(updateResponse.getMarkupContext()));
+ String state = updateResponse.getNavigationalState();
+ if (state != null)
+ {
+
result.setNavigationalContext(WSRPTypeFactory.createNavigationalContextOrNull(new
OpaqueStateString(state), null));
+ }
+ result.setNewWindowState(updateResponse.getNewWindowState());
+
result.setPortletContext(toV2PortletContext(updateResponse.getPortletContext()));
+
result.setSessionContext(toV2SessionContext(updateResponse.getSessionContext()));
+ result.setNewMode(updateResponse.getNewMode());
+ return result;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
public static class V1ToV2Extension implements Function<V1Extension, Extension>
{
public Extension apply(V1Extension from)
Modified:
components/wsrp/trunk/common/src/main/java/org/gatein/wsrp/spec/v1/V2ToV1Converter.java
===================================================================
---
components/wsrp/trunk/common/src/main/java/org/gatein/wsrp/spec/v1/V2ToV1Converter.java 2010-06-14
19:26:04 UTC (rev 3329)
+++
components/wsrp/trunk/common/src/main/java/org/gatein/wsrp/spec/v1/V2ToV1Converter.java 2010-06-14
20:43:13 UTC (rev 3330)
@@ -99,6 +99,7 @@
import org.oasis.wsrp.v2.ResourceValue;
import org.oasis.wsrp.v2.RuntimeContext;
import org.oasis.wsrp.v2.SessionContext;
+import org.oasis.wsrp.v2.SessionParams;
import org.oasis.wsrp.v2.StateChange;
import org.oasis.wsrp.v2.Telecom;
import org.oasis.wsrp.v2.TelephoneNum;
@@ -223,7 +224,11 @@
V1RuntimeContext v1RuntimeContext =
WSRP1TypeFactory.createRuntimeContext(runtimeContext.getUserAuthentication());
v1RuntimeContext.setNamespacePrefix(runtimeContext.getNamespacePrefix());
v1RuntimeContext.setPortletInstanceKey(runtimeContext.getPortletInstanceKey());
-
v1RuntimeContext.setSessionID(runtimeContext.getSessionParams().getSessionID());
+ SessionParams sessionParams = runtimeContext.getSessionParams();
+ if (sessionParams != null)
+ {
+ v1RuntimeContext.setSessionID(sessionParams.getSessionID());
+ }
v1RuntimeContext.setTemplates(V2ToV1Converter.toV1Templates(runtimeContext.getTemplates()));
List<Extension> extensions = runtimeContext.getExtensions();
@@ -489,9 +494,17 @@
{
if (markupContext != null)
{
- V1MarkupContext v1MarkupContext = new V1MarkupContext();
- v1MarkupContext.setMarkupBinary(markupContext.getItemBinary());
- v1MarkupContext.setMarkupString(markupContext.getItemString());
+ byte[] binary = markupContext.getItemBinary();
+ String string = markupContext.getItemString();
+ V1MarkupContext v1MarkupContext;
+ if (string != null)
+ {
+ v1MarkupContext =
WSRP1TypeFactory.createMarkupContext(markupContext.getMimeType(), string);
+ }
+ else
+ {
+ v1MarkupContext =
WSRP1TypeFactory.createMarkupContext(markupContext.getMimeType(), binary);
+ }
v1MarkupContext.setCacheControl(toV1CacheControl(markupContext.getCacheControl()));
v1MarkupContext.setLocale(markupContext.getLocale());
v1MarkupContext.setMimeType(markupContext.getMimeType());
@@ -685,7 +698,7 @@
{
if (stateChange != null)
{
- return V1StateChange.valueOf(stateChange.value());
+ return V1StateChange.fromValue(stateChange.value());
}
else
{
@@ -721,7 +734,7 @@
{
if (sessionContext != null)
{
- V1SessionContext v1SessionContext =
WSRP1TypeFactory.createSessionContext(sessionContext.getSessionID(),
sessionContext.getExpires().intValue());
+ V1SessionContext v1SessionContext =
WSRP1TypeFactory.createSessionContext(sessionContext.getSessionID(),
sessionContext.getExpires());
v1SessionContext.getExtensions().addAll(Lists.transform(sessionContext.getExtensions(),
EXTENSION));
return v1SessionContext;
Modified:
components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/services/v1/V1MarkupService.java
===================================================================
---
components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/services/v1/V1MarkupService.java 2010-06-14
19:26:04 UTC (rev 3329)
+++
components/wsrp/trunk/consumer/src/main/java/org/gatein/wsrp/services/v1/V1MarkupService.java 2010-06-14
20:43:13 UTC (rev 3330)
@@ -112,9 +112,9 @@
v1SessionContext,
v1Extensions);
- v1MarkupContext.value = V2ToV1Converter.toV1MarkupContext(markupContext.value);
- v1SessionContext.value =
V2ToV1Converter.toV1SessionContext(sessionContext.value);
- v1Extensions.value = WSRPUtils.transform(extensions.value,
V2ToV1Converter.EXTENSION);
+ markupContext.value = V1ToV2Converter.toV2MarkupContext(v1MarkupContext.value);
+ sessionContext.value =
V1ToV2Converter.toV2SessionContext(v1SessionContext.value);
+ extensions.value = WSRPUtils.transform(v1Extensions.value,
V1ToV2Converter.EXTENSION);
}
catch (V1AccessDenied accessDenied)
{
@@ -195,8 +195,8 @@
redirectURL,
v1Extensions);
- v1UpdateResponse.value =
V2ToV1Converter.toV1UpdateResponse(updateResponse.value);
- v1Extensions.value = WSRPUtils.transform(extensions.value,
V2ToV1Converter.EXTENSION);
+ updateResponse.value =
V1ToV2Converter.toV2UpdateResponse(v1UpdateResponse.value);
+ extensions.value = WSRPUtils.transform(v1Extensions.value,
V1ToV2Converter.EXTENSION);
}
catch (V1AccessDenied accessDenied)
{