Modified: 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/tags/region_widget.tag
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/tags/region_widget.tag?rev=1397721&r1=1397720&r2=1397721&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/tags/region_widget.tag
 (original)
+++ 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/tags/region_widget.tag
 Fri Oct 12 21:07:09 2012
@@ -25,6 +25,7 @@ Template for rendering a RegionWidget in
 <%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"; %>
 <%@ taglib prefix="portal" uri="http://www.apache.org/rave/tags"; %>
 <%@ attribute name="regionWidget" 
type="org.apache.rave.portal.model.RegionWidget" required="true" 
description="The regionWidget object" %>
+<%@ attribute name="widget" type="org.apache.rave.portal.model.Widget" 
required="true" description="The Widget object" %>
 
 <c:set var="isLocked" value="${regionWidget.locked}" />
 <c:set var="isHideChrome" value="${regionWidget.hideChrome}" />
@@ -39,11 +40,11 @@ Template for rendering a RegionWidget in
             </c:if>
             <div id="widget-${regionWidget.id}-title" class="widget-title">
                 <c:choose>
-                    <c:when test="${not empty regionWidget.widget.titleUrl}">
-                        <a href="<c:out 
value="${regionWidget.widget.titleUrl}"/>" rel="external"><c:out 
value="${regionWidget.widget.title}"/></a>
+                    <c:when test="${not empty widget.titleUrl}">
+                        <a href="<c:out value="${widget.titleUrl}"/>" 
rel="external"><c:out value="${widget.title}"/></a>
                     </c:when>
                     <c:otherwise>
-                        <c:out value="${regionWidget.widget.title}"/>
+                        <c:out value="${widget.title}"/>
                     </c:otherwise>
                 </c:choose>
             </div>
@@ -96,7 +97,7 @@ Template for rendering a RegionWidget in
             </div>
 
             <%-- if widget is disabled then display notification in titlebar 
--%>
-            <c:if test="${regionWidget.widget.disableRendering}">
+            <c:if test="${widget.disableRendering}">
                 <div id="widget-${regionWidget.id}-disabled" 
class="widget-disabled-icon ui-icon ui-icon-alert" title="<fmt:message 
key="widget.chrome.disabled"/>"></div>
             </c:if>
         </div>
@@ -104,6 +105,6 @@ Template for rendering a RegionWidget in
 
     <div class="widget-prefs" 
id="widget-${regionWidget.id}-prefs-content"></div>
     <div class="widget" id="widget-${regionWidget.id}-body">
-        <portal:render-widget regionWidget="${regionWidget}" />
+        <portal:render-widget regionWidget="${regionWidget}" 
widget="${widget}" />
     </div>
 </div>
\ No newline at end of file

Modified: 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/tags/simple_regions.tag
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/tags/simple_regions.tag?rev=1397721&r1=1397720&r2=1397721&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/tags/simple_regions.tag
 (original)
+++ 
rave/branches/model-split/rave-portal-resources/src/main/webapp/WEB-INF/tags/simple_regions.tag
 Fri Oct 12 21:07:09 2012
@@ -24,10 +24,11 @@ simply render each region one after anot
 <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"; %>
 <%@ include file="/WEB-INF/jsp/includes/taglibs.jsp" %>
 <%@ attribute name="page" type="org.apache.rave.portal.model.Page" 
required="true" description="The Page object" %>
+<%@ attribute name="widgets" type="java.util.List" required="true" 
description="The Widgets" %>
 
 <%--@elvariable id="region" type="org.apache.rave.portal.model.Region"--%>
 <div class="widgetRow bottomRow">
     <c:forEach var="region" items="${page.regions}" varStatus="status">
-        <rave:region region="${region}" regionIdx="${status.count}" />
+        <rave:region region="${region}" regionIdx="${status.count}" 
widgets="${widgets}"/>
     </c:forEach>
 </div>
\ No newline at end of file

Modified: 
rave/branches/model-split/rave-portal/src/test/java/renderer/RenderServiceIntegrationTest.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-portal/src/test/java/renderer/RenderServiceIntegrationTest.java?rev=1397721&r1=1397720&r2=1397721&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-portal/src/test/java/renderer/RenderServiceIntegrationTest.java
 (original)
+++ 
rave/branches/model-split/rave-portal/src/test/java/renderer/RenderServiceIntegrationTest.java
 Fri Oct 12 21:07:09 2012
@@ -70,7 +70,7 @@ public class RenderServiceIntegrationTes
     private RestOperations restOperations;
 
     private static final String VALID_METADATA = 
"[{\"id\":\"gadgets.metadata\",\"result\"" +
-            
":{\"http://www.example.com/gadget.xml\":{\"data-snipped\":\"here-for-brevity\"}}}]";;
+            
":{\"http://www.widget-dico.com/wikipedia/google/wikipedia.xml\":{\"data-snipped\":\"here-for-brevity\"}}}]";;
 
     private static final String VALID_USER_ID = "2";
     private static final String VALID_USER_NAME = "john.doe";
@@ -113,10 +113,10 @@ public class RenderServiceIntegrationTes
         WidgetImpl w = new WidgetImpl();
         w.setType("OpenSocial");
         w.setId("1");
-        w.setTitle("Gadget Title");
-        w.setUrl("http://www.example.com/gadget.xml";);
+        w.setTitle("Wikipedia");
+        w.setUrl("http://www.widget-dico.com/wikipedia/google/wikipedia.xml";);
 
-        RegionWidget rw = new RegionWidgetImpl("1", w, region);
+        RegionWidget rw = new RegionWidgetImpl("1", w.getId(), region);
         region.setRegionWidgets(Arrays.asList(rw));
 
         RenderContext context = new RenderContext();

Modified: 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/main/java/org/apache/rave/provider/opensocial/service/impl/EncryptedBlobSecurityTokenService.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/main/java/org/apache/rave/provider/opensocial/service/impl/EncryptedBlobSecurityTokenService.java?rev=1397721&r1=1397720&r2=1397721&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/main/java/org/apache/rave/provider/opensocial/service/impl/EncryptedBlobSecurityTokenService.java
 (original)
+++ 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/main/java/org/apache/rave/provider/opensocial/service/impl/EncryptedBlobSecurityTokenService.java
 Fri Oct 12 21:07:09 2012
@@ -23,6 +23,7 @@ import org.apache.commons.io.FileUtils;
 import org.apache.rave.portal.model.RegionWidget;
 import org.apache.rave.portal.model.User;
 import org.apache.rave.portal.model.impl.*;
+import org.apache.rave.portal.repository.WidgetRepository;
 import org.apache.rave.portal.service.UserService;
 import org.apache.rave.provider.opensocial.exception.SecurityTokenException;
 import org.apache.rave.provider.opensocial.service.SecurityTokenService;
@@ -51,6 +52,7 @@ public class EncryptedBlobSecurityTokenS
     public static final String CLASSPATH_KEY_PREFIX = "classpath:";
 
     private UserService userService;
+    private WidgetRepository widgetRepository;
     private String container;
     private String domain;
 
@@ -58,12 +60,14 @@ public class EncryptedBlobSecurityTokenS
 
     @Autowired
     public EncryptedBlobSecurityTokenService(UserService userService,
+                                             WidgetRepository widgetRepository,
                                              
@Value("${portal.opensocial_security.container}") String container,
                                              
@Value("${portal.opensocial_security.domain}") String domain,
                                              
@Value("${portal.opensocial_security.encryptionkey}") String encryptionKey) {
         this.userService = userService;
         this.container = container;
         this.domain = domain;
+        this.widgetRepository = widgetRepository;
 
         if (encryptionKey.startsWith(EMBEDDED_KEY_PREFIX)) {
             this.blobCrypter = new 
BasicBlobCrypter(encryptionKey.substring(EMBEDDED_KEY_PREFIX.length()));
@@ -140,7 +144,7 @@ public class EncryptedBlobSecurityTokenS
 
         //Create a new RegionWidget instance from it so we can use it to 
generate a new encrypted token
         RegionWidget regionWidget = new 
RegionWidgetImpl(Long.toString(securityToken.getModuleId()),
-                new WidgetImpl("-1", securityToken.getAppUrl()),
+                "-1",
                 new RegionImpl("-1", new PageImpl("-1", 
userService.getUserByUsername(securityToken.getOwnerId()).getId()), -1));
 
         //Create and return the newly encrypted token
@@ -152,7 +156,7 @@ public class EncryptedBlobSecurityTokenS
         User user = userService.getAuthenticatedUser();
 
         Map<String, String> values = new HashMap<String, String>();
-        values.put(AbstractSecurityToken.Keys.APP_URL.getKey(), 
regionWidget.getWidget().getUrl());
+        values.put(AbstractSecurityToken.Keys.APP_URL.getKey(), 
widgetRepository.get(regionWidget.getWidgetId()).getUrl());
         values.put(AbstractSecurityToken.Keys.MODULE_ID.getKey(), 
String.valueOf(regionWidget.getId()));
         values.put(AbstractSecurityToken.Keys.OWNER.getKey(),
                 
String.valueOf(userService.getUserById(regionWidget.getRegion().getPage().getOwnerId()).getUsername()));

Modified: 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java?rev=1397721&r1=1397720&r2=1397721&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java
 (original)
+++ 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/main/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRenderer.java
 Fri Oct 12 21:07:09 2012
@@ -20,10 +20,8 @@
 package org.apache.rave.provider.opensocial.web.renderer;
 
 import org.apache.rave.exception.NotSupportedException;
-import org.apache.rave.portal.model.Page;
-import org.apache.rave.portal.model.PageType;
-import org.apache.rave.portal.model.RegionWidget;
-import org.apache.rave.portal.model.RegionWidgetPreference;
+import org.apache.rave.portal.model.*;
+import org.apache.rave.portal.repository.WidgetRepository;
 import org.apache.rave.portal.web.renderer.RegionWidgetRenderer;
 import org.apache.rave.portal.web.renderer.RenderScope;
 import org.apache.rave.portal.web.renderer.ScriptLocation;
@@ -53,14 +51,17 @@ public class OpenSocialWidgetRenderer im
     private OpenSocialService openSocialService;
     private SecurityTokenService securityTokenService;
     private ScriptManager scriptManager;
+    private WidgetRepository widgetRepository;
 
     @Autowired
     public OpenSocialWidgetRenderer(OpenSocialService openSocialService,
                                     SecurityTokenService securityTokenService,
-                                    ScriptManager scriptManager) {
+                                    ScriptManager scriptManager,
+                                    WidgetRepository widgetRepository) {
         this.openSocialService = openSocialService;
         this.securityTokenService = securityTokenService;
         this.scriptManager = scriptManager;
+        this.widgetRepository = widgetRepository;
     }
 
     //Note the widgets.push() call.  This defines the widget objects, which are
@@ -95,7 +96,7 @@ public class OpenSocialWidgetRenderer im
      */
     @Override
     public String render(RegionWidget item, RenderContext context) {
-        String type = item.getWidget().getType();
+        String type = widgetRepository.get(item.getWidgetId()).getType();
         if (!Constants.WIDGET_TYPE.equals(type)) {
             throw new NotSupportedException("Invalid widget type passed to 
renderer: " + type);
         }
@@ -135,16 +136,18 @@ public class OpenSocialWidgetRenderer im
             isDefault = isDefaultSubPage(page);
         }
 
+        Widget widget = widgetRepository.get(item.getWidgetId());
+
         return String.format(SCRIPT_BLOCK,
                 item.getRegion().getId(),
                 Constants.WIDGET_TYPE,
                 item.getId(),
-                item.getWidget().getUrl(),
+                widget.getUrl(),
                 securityTokenService.getEncryptedSecurityToken(item),
-                openSocialService.getGadgetMetadata(item.getWidget().getUrl()),
+                openSocialService.getGadgetMetadata(widget.getUrl()),
                 userPrefs.toString(),
                 item.isCollapsed(),
-                item.getWidget().getId(),
+                widget.getId(),
                 item.isLocked(),
                 item.isHideChrome(),
                 pageId,

Modified: 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/test/java/org/apache/rave/provider/opensocial/service/SecurityTokenServiceTest.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/test/java/org/apache/rave/provider/opensocial/service/SecurityTokenServiceTest.java?rev=1397721&r1=1397720&r2=1397721&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/test/java/org/apache/rave/provider/opensocial/service/SecurityTokenServiceTest.java
 (original)
+++ 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/test/java/org/apache/rave/provider/opensocial/service/SecurityTokenServiceTest.java
 Fri Oct 12 21:07:09 2012
@@ -21,6 +21,7 @@ package org.apache.rave.provider.opensoc
 
 import org.apache.rave.portal.model.*;
 import org.apache.rave.portal.model.impl.*;
+import org.apache.rave.portal.repository.WidgetRepository;
 import org.apache.rave.portal.service.UserService;
 import 
org.apache.rave.provider.opensocial.service.impl.EncryptedBlobSecurityTokenService;
 import org.apache.shindig.auth.SecurityToken;
@@ -43,6 +44,7 @@ import static org.junit.Assert.assertNot
 @RunWith(Parameterized.class)
 public class SecurityTokenServiceTest {
     private UserService userService;
+    private WidgetRepository widgetRepository;
     private SecurityTokenService securityTokenService;
     private String encryptionKey;
 
@@ -51,6 +53,7 @@ public class SecurityTokenServiceTest {
     private Region validRegion;
     private RegionWidget validRegionWidget;
     private Widget validWidget;
+    private Widget bogusWidget;
 
     private final String VALID_REGION_WIDGET_ID = "1";
     private final String VALID_USER_ID = "1";
@@ -79,7 +82,8 @@ public class SecurityTokenServiceTest {
     public void setup() throws MalformedURLException {
 
         userService = createMock(UserService.class);
-        securityTokenService = new 
EncryptedBlobSecurityTokenService(userService, "default", "default",
+        widgetRepository = createMock(WidgetRepository.class);
+        securityTokenService = new 
EncryptedBlobSecurityTokenService(userService, widgetRepository, "default", 
"default",
                 encryptionKey);
 
         validPerson = new UserImpl(VALID_USER_ID, VALID_USER_NAME);
@@ -92,7 +96,9 @@ public class SecurityTokenServiceTest {
         validWidget.setType("OpenSocial");
         validWidget.setTitle("Widget Title");
 
-        validRegionWidget = new RegionWidgetImpl(VALID_REGION_WIDGET_ID, 
validWidget, validRegion);
+        bogusWidget = new WidgetImpl("-1", VALID_URL);
+
+        validRegionWidget = new RegionWidgetImpl(VALID_REGION_WIDGET_ID, 
validWidget.getId(), validRegion);
         validRegion.setRegionWidgets(Arrays.asList(validRegionWidget));
     }
 
@@ -102,6 +108,9 @@ public class SecurityTokenServiceTest {
         expect(userService.getUserById(VALID_USER_ID)).andReturn(validPerson);
         replay(userService);
 
+        
expect(widgetRepository.get(validWidget.getId())).andReturn(validWidget);
+        replay(widgetRepository);
+
         SecurityToken securityToken = 
securityTokenService.getSecurityToken(validRegionWidget);
         validateSecurityToken(securityToken);
     }
@@ -116,6 +125,9 @@ public class SecurityTokenServiceTest {
         expect(userService.getUserById(expectedOwnerId)).andReturn(new 
UserImpl(expectedOwnerId, expected));
         replay(userService);
 
+        
expect(widgetRepository.get(validWidget.getId())).andReturn(validWidget);
+        replay(widgetRepository);
+
         SecurityToken securityToken = 
securityTokenService.getSecurityToken(validRegionWidget);
         validateSecurityToken(securityToken, expected);
     }
@@ -126,6 +138,9 @@ public class SecurityTokenServiceTest {
         expect(userService.getUserById(VALID_USER_ID)).andReturn(validPerson);
         replay(userService);
 
+        
expect(widgetRepository.get(validWidget.getId())).andReturn(validWidget);
+        replay(widgetRepository);
+
         String token = 
securityTokenService.getEncryptedSecurityToken(validRegionWidget);
         assertNotNull(token);
     }
@@ -136,6 +151,9 @@ public class SecurityTokenServiceTest {
         expect(userService.getUserById(VALID_USER_ID)).andReturn(validPerson);
         replay(userService);
 
+        
expect(widgetRepository.get(validWidget.getId())).andReturn(validWidget);
+        replay(widgetRepository);
+
         String encryptedToken = 
securityTokenService.getEncryptedSecurityToken(validRegionWidget);
         assertNotNull(encryptedToken);
 
@@ -150,6 +168,10 @@ public class SecurityTokenServiceTest {
         
expect(userService.getUserById(VALID_USER_ID)).andReturn(validPerson).anyTimes();
         replay(userService);
 
+        
expect(widgetRepository.get(validWidget.getId())).andReturn(validWidget);
+        
expect(widgetRepository.get(bogusWidget.getId())).andReturn(bogusWidget);
+        replay(widgetRepository);
+
         String encryptedToken = 
securityTokenService.getEncryptedSecurityToken(validRegionWidget);
         assertNotNull(encryptedToken);
 

Modified: 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java?rev=1397721&r1=1397720&r2=1397721&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java
 (original)
+++ 
rave/branches/model-split/rave-providers/rave-opensocial-provider/rave-opensocial-client/src/test/java/org/apache/rave/provider/opensocial/web/renderer/OpenSocialWidgetRendererTest.java
 Fri Oct 12 21:07:09 2012
@@ -22,6 +22,7 @@ package org.apache.rave.provider.opensoc
 import org.apache.rave.exception.NotSupportedException;
 import org.apache.rave.portal.model.*;
 import org.apache.rave.portal.model.impl.*;
+import org.apache.rave.portal.repository.WidgetRepository;
 import org.apache.rave.portal.web.renderer.RenderScope;
 import org.apache.rave.portal.web.renderer.Renderer;
 import org.apache.rave.portal.web.renderer.ScriptLocation;
@@ -47,6 +48,7 @@ public class OpenSocialWidgetRendererTes
     private SecurityTokenService securityTokenService;
     private ScriptManager scriptManager;
     private Renderer<RegionWidget> renderer;
+    private WidgetRepository widgetRepository;
 
     private static final String VALID_GADGET_URL = 
"http://www.example.com/gadget.xml";;
     private static final String VALID_METADATA = "metadata";
@@ -59,10 +61,11 @@ public class OpenSocialWidgetRendererTes
     @Before
     public void setup() {
         renderContext = new RenderContext();
+        widgetRepository = createMock(WidgetRepository.class);
         scriptManager = createStrictMock(ScriptManager.class);
         openSocialService = createNiceMock(OpenSocialService.class);
         securityTokenService = createNiceMock(SecurityTokenService.class);
-        renderer = new OpenSocialWidgetRenderer(openSocialService, 
securityTokenService, scriptManager);
+        renderer = new OpenSocialWidgetRenderer(openSocialService, 
securityTokenService, scriptManager, widgetRepository);
     }
 
     @Test
@@ -95,11 +98,16 @@ public class OpenSocialWidgetRendererTes
         w.setId(WIDGET_ID);
         w.setType(Constants.WIDGET_TYPE);
         w.setUrl(VALID_GADGET_URL);
+
+        expect(widgetRepository.get(w.getId())).andReturn(w);
+        expect(widgetRepository.get(w.getId())).andReturn(w);
+        replay(widgetRepository);
+
         Region region = new RegionImpl(REGION_ID);
         region.setPage(subPage);
         RegionWidget rw = new RegionWidgetImpl(REGION_WIDGET_ID);
         rw.setCollapsed(VALID_COLLAPSED);
-        rw.setWidget(w);
+        rw.setWidgetId(w.getId());
         rw.setRegion(region);
         rw.setHideChrome(VALID_HIDE_CHROME);
         rw.setLocked(VALID_LOCKED);
@@ -145,12 +153,17 @@ public class OpenSocialWidgetRendererTes
         Page page = new PageImpl();
         page.setPageType(PageType.USER);
         
-        WidgetImpl w = new WidgetImpl();
+        WidgetImpl w = new WidgetImpl(WIDGET_ID);
         w.setType(Constants.WIDGET_TYPE);
+
+        expect(widgetRepository.get(w.getId())).andReturn(w);
+        expect(widgetRepository.get(w.getId())).andReturn(w);
+        replay(widgetRepository);
+
         Region region = new RegionImpl(REGION_ID);
         region.setPage(page);
         RegionWidget rw = new RegionWidgetImpl();
-        rw.setWidget(w);
+        rw.setWidgetId(w.getId());
         rw.setRegion(region);
 
         final String markup =
@@ -161,7 +174,7 @@ public class OpenSocialWidgetRendererTes
             " metadata: null," +
             " userPrefs: {}," +
             " collapsed: false, " +
-            " widgetId: null," +
+            " widgetId: " + WIDGET_ID + "," +
             " locked: false," +
             " hideChrome: false," +
             " subPage: {id: null, name: '', isDefault: false}" +
@@ -176,11 +189,15 @@ public class OpenSocialWidgetRendererTes
 
     @Test(expected = NotSupportedException.class)
     public void render_invalid() {
-        WidgetImpl w = new WidgetImpl();
+        WidgetImpl w = new WidgetImpl("1");
         w.setType("NONE");
         w.setUrl("http://www.example.com/gadget.xml";);
+
+        expect(widgetRepository.get(w.getId())).andReturn(w);
+        replay(widgetRepository);
+
         RegionWidget rw = new RegionWidgetImpl("1");
-        rw.setWidget(w);
+        rw.setWidgetId(w.getId());
 
         renderer.render(rw, null);
     }

Modified: 
rave/branches/model-split/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/service/impl/W3CWidget.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/service/impl/W3CWidget.java?rev=1397721&r1=1397720&r2=1397721&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/service/impl/W3CWidget.java
 (original)
+++ 
rave/branches/model-split/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/service/impl/W3CWidget.java
 Fri Oct 12 21:07:09 2012
@@ -34,6 +34,10 @@ public class W3CWidget extends WidgetImp
        
        public W3CWidget() {
        }
+
+    public W3CWidget(String id) {
+        super(id);
+    }
        
        /**
         * @return the width

Modified: 
rave/branches/model-split/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java?rev=1397721&r1=1397720&r2=1397721&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java
 (original)
+++ 
rave/branches/model-split/rave-providers/rave-w3c-provider/src/main/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRenderer.java
 Fri Oct 12 21:07:09 2012
@@ -21,6 +21,7 @@ package org.apache.rave.provider.w3c.web
 
 import org.apache.rave.exception.NotSupportedException;
 import org.apache.rave.portal.model.*;
+import org.apache.rave.portal.repository.WidgetRepository;
 import org.apache.rave.portal.service.UserService;
 import org.apache.rave.portal.service.WidgetProviderService;
 import org.apache.rave.portal.web.renderer.RegionWidgetRenderer;
@@ -51,13 +52,15 @@ public class W3cWidgetRenderer implement
     private final WidgetProviderService widgetService;
     private final UserService userService;
     private ScriptManager scriptManager;
+    private WidgetRepository widgetRepository;
 
     @Autowired
     public W3cWidgetRenderer(@Qualifier("wookieWidgetService") 
WidgetProviderService widgetService,
-                             UserService userService, ScriptManager 
scriptManager) {
+                             UserService userService, ScriptManager 
scriptManager, WidgetRepository widgetRepository) {
         this.widgetService = widgetService;
         this.userService = userService;
         this.scriptManager = scriptManager;
+        this.widgetRepository = widgetRepository;
     }
 
     /**
@@ -92,7 +95,7 @@ public class W3cWidgetRenderer implement
      */
     @Override
     public String render(RegionWidget item, RenderContext context) {
-        Widget widget = item.getWidget();
+        Widget widget = widgetRepository.get(item.getWidgetId());
         if(!WIDGET_TYPE.equals(widget.getType())) {
             throw new NotSupportedException("Invalid widget type passed to 
renderer: " + widget.getType());
         }
@@ -122,7 +125,8 @@ public class W3cWidgetRenderer implement
         //
         // Get the Rave Widget for this regionWidget instance
         //
-        W3CWidget contextualizedWidget = (W3CWidget) 
widgetService.getWidget(user, sharedDataKey, item.getWidget());
+        Widget widget = widgetRepository.get(item.getWidgetId());
+        W3CWidget contextualizedWidget = (W3CWidget) 
widgetService.getWidget(user, sharedDataKey, widget);
 
         //
         // TODO make this do something useful; currently these preferences 
aren't
@@ -174,7 +178,7 @@ public class W3cWidgetRenderer implement
                 height,
                 width,
                 item.isCollapsed(),
-                item.getWidget().getId(),
+                item.getWidgetId(),
                 item.isLocked(),
                 item.isHideChrome(),
                 pageId,

Modified: 
rave/branches/model-split/rave-providers/rave-w3c-provider/src/test/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRendererTest.java
URL: 
http://svn.apache.org/viewvc/rave/branches/model-split/rave-providers/rave-w3c-provider/src/test/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRendererTest.java?rev=1397721&r1=1397720&r2=1397721&view=diff
==============================================================================
--- 
rave/branches/model-split/rave-providers/rave-w3c-provider/src/test/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRendererTest.java
 (original)
+++ 
rave/branches/model-split/rave-providers/rave-w3c-provider/src/test/java/org/apache/rave/provider/w3c/web/renderer/W3cWidgetRendererTest.java
 Fri Oct 12 21:07:09 2012
@@ -22,6 +22,7 @@ package org.apache.rave.provider.w3c.web
 import org.apache.rave.exception.NotSupportedException;
 import org.apache.rave.portal.model.*;
 import org.apache.rave.portal.model.impl.*;
+import org.apache.rave.portal.repository.WidgetRepository;
 import org.apache.rave.portal.service.UserService;
 import org.apache.rave.portal.service.WidgetProviderService;
 import org.apache.rave.portal.web.renderer.Renderer;
@@ -51,6 +52,7 @@ public class W3cWidgetRendererTest {
     private UserService userService;
     private RenderContext renderContext;
     private ScriptManager scriptManager;
+    private WidgetRepository widgetRepository;
 
     @Before
     public void setup() {
@@ -59,7 +61,8 @@ public class W3cWidgetRendererTest {
         wookieService = createNiceMock(WidgetProviderService.class);
         userService = createNiceMock(UserService.class);
         scriptManager = createNiceMock(ScriptManager.class);
-        renderer = new W3cWidgetRenderer(wookieService, userService, 
scriptManager);  
+        widgetRepository = createMock(WidgetRepository.class);
+        renderer = new W3cWidgetRenderer(wookieService, userService, 
scriptManager, widgetRepository);
     }
 
     @Test
@@ -88,18 +91,22 @@ public class W3cWidgetRendererTest {
         subPage.setPageType(PageType.SUB_PAGE);
         page.getSubPages().add(subPage);
 
-        W3CWidget w = new W3CWidget();
+        W3CWidget w = new W3CWidget("1");
         w.setType(Constants.WIDGET_TYPE);
         w.setUrl("http://example.com/widgets/1";);
         Region region = new RegionImpl(REGION_ID);
         region.setPage(subPage);
         RegionWidget rw = new RegionWidgetImpl(REGION_WIDGET_ID);
-        rw.setWidget(w);
+        rw.setWidgetId(w.getId());
         rw.setRegion(region);
 
         W3CWidget wookieWidget = new W3CWidget();
         wookieWidget.setUrl(VALID_WIDGET_INSTANCE_URL);
 
+        expect(widgetRepository.get("1")).andReturn(w);
+        expect(widgetRepository.get("1")).andReturn(w);
+        replay(widgetRepository);
+
         expect(wookieService.getWidget(eq(user), eq(rw.getId().toString()), 
isA(Widget.class))).andReturn(wookieWidget);
         replay(wookieService);
 
@@ -109,11 +116,14 @@ public class W3cWidgetRendererTest {
 
     @Test(expected = NotSupportedException.class)
     public void render_invalid() {
-        Widget w = new WidgetImpl();
+        Widget w = new WidgetImpl("1");
         w.setType("NONE");
         w.setUrl(VALID_WIDGET_URL);
         RegionWidget rw = new RegionWidgetImpl("1");
-        rw.setWidget(w);
+        rw.setWidgetId(w.getId());
+
+        expect(widgetRepository.get("1")).andReturn(w);
+        replay(widgetRepository);
 
         RenderContext renderContext = createNiceMock(RenderContext.class);
         renderer.render(rw, renderContext);


Reply via email to