[Registry-dev] svn commit r17821 - in trunk/registry/modules/webapps/src/main: java/org/wso2/registry/web java/org/wso2/registry/web/beans java/org/wso2/registry/web/utils webapp/admin

chathura at wso2.com chathura at wso2.com
Mon Jun 2 23:34:51 PDT 2008


Author: chathura
Date: Mon Jun  2 23:34:51 2008
New Revision: 17821
URL: http://wso2.org/svn/browse/wso2?view=rev&revision=17821

Log:

Implemented the live announcements as a separate AJAX section.
Now retrieving the announcements are done in a separate thread from loading the the rest of the UI.
So the network slowdowns do not affect the loading of the UI (only announcement section will be slowed or not loaded on network problems).

Tested this by blocking the announcement loading thread and the rest of the UI loads fine with it.



Removed:
   trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/beans/AnnouncementsBean.java
Modified:
   trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
   trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/AnnouncementsUtil.java
   trunk/registry/modules/webapps/src/main/webapp/admin/promotion.jsp

Modified: trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java
URL: http://wso2.org/svn/browse/wso2/trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java?rev=17821&r1=17820&r2=17821&view=diff
==============================================================================
--- trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java	(original)
+++ trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/ControllerServlet.java	Mon Jun  2 23:34:51 2008
@@ -25,7 +25,6 @@
 import org.wso2.registry.web.actions.*;
 import org.wso2.registry.web.beans.AdminBean;
 import org.wso2.registry.web.beans.VersionsBean;
-import org.wso2.registry.web.beans.AnnouncementsBean;
 import org.wso2.registry.web.utils.*;
 
 import javax.servlet.ServletConfig;
@@ -612,6 +611,15 @@
 
             } else if (command.equals("/about")) {
                 request.getRequestDispatcher(UIConstants.ABOUT_JSP).forward(request, response);
+
+            } else if (command.equals("/getAnnouncement")) {
+
+                try {
+                    AnnouncementsUtil.sendAnnouncement(response);
+                } catch (RegistryException e) {
+                    // we can suppress this error without interfering the normal UI operations.
+                }
+
             } else if (command.equals("/removeUserFromRole")) {
 
                 RemoveUserRoleAction removeUserRoleAction = new RemoveUserRoleAction();
@@ -910,8 +918,6 @@
             re.printStackTrace();
         }
 
-        setAnnouncementsBean(request);
-
         try {
             request.getRequestDispatcher(UIConstants.RESOURCES_JSP)
                     .forward(request, response);
@@ -934,7 +940,6 @@
         }
 
         request.getSession().setAttribute(UIConstants.USER_MANAGEMENT_BEAN, userManagementAction);
-        setAnnouncementsBean(request);
 
         try {
             request.getRequestDispatcher(UIConstants.USER_MANAGEMENT_JSP).forward(request, response);
@@ -961,9 +966,6 @@
             e.printStackTrace();
         }
 
-
-        setAnnouncementsBean(request);
-
         try {
             request.getRequestDispatcher(UIConstants.ASSOCIATION_TREE_JSP).forward(request, response);
 
@@ -1003,9 +1005,6 @@
             e.printStackTrace();
         }
 
-
-        setAnnouncementsBean(request);
-
         try {
             request.getRequestDispatcher(UIConstants.RESOURCE_TREE_JSP).forward(request, response);
 
@@ -1020,7 +1019,6 @@
 
         AdminBean adminBean = AdminUtil.getAdminBean(request);
         request.getSession().setAttribute(UIConstants.ADMIN_BEAN, adminBean);
-        setAnnouncementsBean(request);
 
         try {
             request.getRequestDispatcher(UIConstants.ADMIN_JSP).forward(request, response);
@@ -1057,7 +1055,6 @@
         }
 
         request.getSession().setAttribute(UIConstants.ACTIVITY_BEAN, recentActivityAction);
-        setAnnouncementsBean(request);
 
         try {
             request.getRequestDispatcher(UIConstants.ACTIVITY_AJAX_JSP).forward(request, response);
@@ -1074,7 +1071,6 @@
         RecentActivityAction recentActivity = new RecentActivityAction();
         recentActivity.setRequest(request);
         request.getSession().setAttribute(UIConstants.ACTIVITY_BEAN, recentActivity);
-        setAnnouncementsBean(request);
 
         try {
             request.getRequestDispatcher(UIConstants.ACTIVITY_JSP).forward(request, response);
@@ -1090,7 +1086,6 @@
         AdvancedSearchAction advancedSearchAction = new AdvancedSearchAction();
         advancedSearchAction.setRequest(request);
         request.getSession().setAttribute(UIConstants.ADVANCED_SEARCH_BEAN, advancedSearchAction);
-        setAnnouncementsBean(request);
 
         try {
             request.getRequestDispatcher(UIConstants.ADVANCED_SEARCH_JSP).forward(request, response);
@@ -1124,7 +1119,6 @@
         }
 
         request.getSession().setAttribute(UIConstants.ADVANCED_SEARCH_BEAN, advancedSearchAction);
-        setAnnouncementsBean(request);
 
         try {
             request.getRequestDispatcher(UIConstants.ADVANCED_AJAX_SEARCH_JSP).forward(request, response);
@@ -1148,7 +1142,6 @@
         }
 
         request.getSession().setAttribute(UIConstants.SEARCH_BEAN, searchAction);
-        setAnnouncementsBean(request);
 
         try {
             request.getRequestDispatcher(UIConstants.SEARCH_JSP).forward(request, response);
@@ -1171,7 +1164,6 @@
         }
 
         request.getSession().setAttribute(UIConstants.USER_BEAN, userDetailsAction);
-        setAnnouncementsBean(request);
 
         try {
             request.getRequestDispatcher(UIConstants.USER_JSP).forward(request, response);
@@ -1182,11 +1174,6 @@
         }
     }
 
-    private void setAnnouncementsBean(HttpServletRequest request) {
-        AnnouncementsBean announcementsBean = AnnouncementsUtil.getAnnouncementsBean();
-        request.getSession().setAttribute(UIConstants.ANNOUNCEMENTS_BEAN, announcementsBean);
-    }
-
     private void setErrorMessage(HttpServletRequest request, String message) {
         request.getSession().setAttribute(UIConstants.ERROR_MESSAGE, message);
     }

Deleted: trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/beans/AnnouncementsBean.java
URL: http://wso2.org/svn/browse/wso2/None?pathrev=17820

Modified: trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/AnnouncementsUtil.java
URL: http://wso2.org/svn/browse/wso2/trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/AnnouncementsUtil.java?rev=17821&r1=17820&r2=17821&view=diff
==============================================================================
--- trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/AnnouncementsUtil.java	(original)
+++ trunk/registry/modules/webapps/src/main/java/org/wso2/registry/web/utils/AnnouncementsUtil.java	Mon Jun  2 23:34:51 2008
@@ -16,14 +16,23 @@
 
 package org.wso2.registry.web.utils;
 
-import org.wso2.registry.web.beans.AnnouncementsBean;
 import org.wso2.registry.announcement.Announcement;
+import org.wso2.registry.exceptions.RegistryException;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.PrintWriter;
+import java.io.IOException;
 
 public class AnnouncementsUtil {
 
-    public static final String ANNOUNCEMENTS_URL = "http://wso2.com/announcements/registry/1.0/index.html";
+    private static Log log = LogFactory.getLog(AnnouncementsUtil.class);
 
-    public static AnnouncementsBean getAnnouncementsBean() {
+    public static final String ANNOUNCEMENTS_URL =
+            "http://wso2.com/announcements/registry/1.0/index.html";
+
+    public static void sendAnnouncement(HttpServletResponse response) throws RegistryException {
 
         Announcement announcement = new Announcement();
         String annConent = announcement.get(null, ANNOUNCEMENTS_URL);
@@ -32,8 +41,22 @@
             annConent = "";
         }
 
-        AnnouncementsBean announcementsBean = new AnnouncementsBean();
-        announcementsBean.setAnnouncements(annConent);
-        return announcementsBean;
+        PrintWriter writer = null;
+        try {
+            writer = response.getWriter();
+            writer.println(annConent);
+            writer.flush();
+
+        } catch (IOException e) {
+
+            String msg = "Failed to send announcement text. " + e.getMessage();
+            log.error(msg, e);
+            throw new RegistryException(msg, e);
+
+        } finally {
+            if (writer != null) {
+                writer.close();
+            }
+        }
     }
 }

Modified: trunk/registry/modules/webapps/src/main/webapp/admin/promotion.jsp
URL: http://wso2.org/svn/browse/wso2/trunk/registry/modules/webapps/src/main/webapp/admin/promotion.jsp?rev=17821&r1=17820&r2=17821&view=diff
==============================================================================
--- trunk/registry/modules/webapps/src/main/webapp/admin/promotion.jsp	(original)
+++ trunk/registry/modules/webapps/src/main/webapp/admin/promotion.jsp	Mon Jun  2 23:34:51 2008
@@ -1,10 +1,5 @@
-<%@ page import="org.wso2.registry.web.beans.AnnouncementsBean" %>
-<%@ page import="org.wso2.registry.web.UIConstants" %>
 <%@ page contentType="text/html;charset=UTF-8" language="java" %>
 
-<%
-    AnnouncementsBean announcementsBean = (AnnouncementsBean) request.getSession().getAttribute(UIConstants.ANNOUNCEMENTS_BEAN);
-%>
 <h2 class="sub-headding-about">About</h2>
 <div class="promotionDivContent">
     <a href="http://wso2.org/wiki/display/registry/WSO2+Registry+User+Guide"  target="_blank" class="area">User guide</a>
@@ -17,12 +12,13 @@
 
     <div class="promotionDivTitle" onclick="showHideCommon('getTrainingDiv');">NEWS</div>
     <div id="getTrainingDiv" class="aboutBack">
-        <% if (announcementsBean != null) { %>
-        <%=announcementsBean.getAnnouncements()%>
-        <% } %>
     </div>
 </div>
 
+<script type="text/javascript" xml:space="preserve">
+    new Ajax.Updater('getTrainingDiv', '/wso2registry/system/getAnnouncement', { method: 'get' });
+</script>
+
 
 <!--<h3>WSO2 Registry Training</h3>-->
 <!--<span>-->



More information about the Registry-dev mailing list