Index: lams_central/src/java/org/lamsfoundation/lams/web/FedRegistryUpdateServlet.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/web/Attic/FedRegistryUpdateServlet.java,v diff -u -r1.1.2.1 -r1.1.2.2 --- lams_central/src/java/org/lamsfoundation/lams/web/FedRegistryUpdateServlet.java 3 Jul 2007 01:18:16 -0000 1.1.2.1 +++ lams_central/src/java/org/lamsfoundation/lams/web/FedRegistryUpdateServlet.java 31 Jul 2007 02:13:32 -0000 1.1.2.2 @@ -4,6 +4,10 @@ package org.lamsfoundation.lams.web; import java.io.IOException; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.HashMap; +import java.util.TimeZone; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; @@ -29,13 +33,24 @@ public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { + HashMap resultsMap = new HashMap(); + if (service ==null) { service = (IFederationService)WebApplicationContextUtils .getRequiredWebApplicationContext(getServletContext()).getBean("federationService"); } try { - service.updateFederationRegistry(); + resultsMap = service.updateFederationRegistry(); + // print time and date + Calendar cal = Calendar.getInstance(); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + sdf.setTimeZone(TimeZone.getDefault()); + response.getWriter().println(sdf.format(cal.getTime())); + // print results + response.getWriter().println(resultsMap.get(service.RESULTS_NEW)+" new servers."); + response.getWriter().println(resultsMap.get(service.RESULTS_UPDATED)+" servers updated."); + response.getWriter().println(resultsMap.get(service.RESULTS_DELETED)+" servers deleted."); } catch (FederationException e) { log.error("Error updating federation server registry: ", e); } Index: lams_common/src/java/org/lamsfoundation/lams/federation/service/FederationService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/federation/service/Attic/FederationService.java,v diff -u -r1.1.2.11 -r1.1.2.12 --- lams_common/src/java/org/lamsfoundation/lams/federation/service/FederationService.java 20 Jul 2007 02:58:53 -0000 1.1.2.11 +++ lams_common/src/java/org/lamsfoundation/lams/federation/service/FederationService.java 31 Jul 2007 02:13:33 -0000 1.1.2.12 @@ -45,7 +45,6 @@ public class FederationService implements IFederationService { private static Logger log = Logger.getLogger(FederationService.class); - private IUserManagementService service; public IUserManagementService getService() { @@ -307,8 +306,12 @@ return url; } - public void updateFederationRegistry() throws FederationException { + public HashMap updateFederationRegistry() throws FederationException { String url = getFederationRegistryURL(); + HashMap resultsMap = new HashMap(); + resultsMap.put(RESULTS_NEW, 0); + resultsMap.put(RESULTS_UPDATED, 0); + resultsMap.put(RESULTS_DELETED, 0); try { Document document = getXmlDocumentFromUrl(new URL(url)); @@ -323,13 +326,15 @@ if (existing == null) { // new fedServer service.save(fedServer); + resultsMap.put(RESULTS_NEW, new Integer(resultsMap.get(RESULTS_NEW).intValue()+1)); } else { // update existing fedServer existing.setName(fedServer.getName()); existing.setInstitution(fedServer.getInstitution()); existing.setUrl(fedServer.getUrl()); existing.setPrivateKey(fedServer.getPrivateKey()); service.save(existing); + resultsMap.put(RESULTS_UPDATED, new Integer(resultsMap.get(RESULTS_UPDATED).intValue()+1)); } newFedList.add(fedServer); } @@ -340,12 +345,15 @@ FederationServer fedServer = (FederationServer)fedList.get(j); if (newFedList.indexOf(fedServer)<0) { service.delete(fedServer); + resultsMap.put(RESULTS_DELETED, new Integer(resultsMap.get(RESULTS_DELETED).intValue()+1)); } } } } catch(MalformedURLException e) { log.error("Invalid federation registry URL: "+url, e); } + + return resultsMap; } public FederationServer getFedServerByURLHost(String host) throws FederationException { Index: lams_common/src/java/org/lamsfoundation/lams/federation/service/IFederationService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/federation/service/Attic/IFederationService.java,v diff -u -r1.1.2.8 -r1.1.2.9 --- lams_common/src/java/org/lamsfoundation/lams/federation/service/IFederationService.java 17 Jul 2007 05:36:22 -0000 1.1.2.8 +++ lams_common/src/java/org/lamsfoundation/lams/federation/service/IFederationService.java 31 Jul 2007 02:13:33 -0000 1.1.2.9 @@ -5,6 +5,7 @@ import java.io.IOException; import java.net.URL; +import java.util.HashMap; import java.util.List; import org.lamsfoundation.lams.federation.FederationException; @@ -23,6 +24,10 @@ */ public interface IFederationService { + public static String RESULTS_NEW = "new"; + public static String RESULTS_UPDATED = "updated"; + public static String RESULTS_DELETED = "deleted"; + public List getFederationServers(); public List getFederationLessons(); @@ -101,9 +106,10 @@ /** * Syncs local copy of federation servers with remote registry. + * @return HashMap containing no. of new, updated, and deleted servers as a result of update. * @throws FederationException */ - public void updateFederationRegistry() throws FederationException; + public HashMap updateFederationRegistry() throws FederationException; /** * Finds the fedServer whose URL matches the given host.