From: <bra...@us...> - 2008-04-11 04:10:22
|
Revision: 2235 http://archive-access.svn.sourceforge.net/archive-access/?rev=2235&view=rev Author: bradtofel Date: 2008-04-10 21:10:27 -0700 (Thu, 10 Apr 2008) Log Message: ----------- FEATURE: implemented destroy() method, which locates all AccessPoints in the Spring configuration, and shuts each of them down. Modified Paths: -------------- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/webapp/RequestMapper.java Modified: trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/webapp/RequestMapper.java =================================================================== --- trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/webapp/RequestMapper.java 2008-04-11 04:09:26 UTC (rev 2234) +++ trunk/archive-access/projects/wayback/wayback-core/src/main/java/org/archive/wayback/webapp/RequestMapper.java 2008-04-11 04:10:27 UTC (rev 2235) @@ -24,7 +24,11 @@ */ package org.archive.wayback.webapp; +import java.io.IOException; import java.util.ArrayList; +import java.util.Collection; +import java.util.Iterator; +import java.util.Map; import java.util.logging.Logger; import javax.servlet.ServletContext; @@ -147,8 +151,41 @@ /** * clean up all WaybackContexts, which should release resources gracefully. */ + @SuppressWarnings("unchecked") public void destroy() { LOGGER.info("shutting down contexts..."); - //TODO: shut everything down + Class accessPointClass; + try { + accessPointClass = Class.forName(ACCESS_POINT_CLASSNAME); + Map beanMap = factory.getBeansOfType(accessPointClass); + Iterator beanNameItr = beanMap.keySet().iterator(); + Collection accessPoints = beanMap.values(); + while(beanNameItr.hasNext()) { + String apName = (String) beanNameItr.next(); + AccessPoint ap = (AccessPoint) beanMap.get(apName); + try { + LOGGER.info("Shutting down AccessPoint " + apName); + ap.shutdown(); + LOGGER.info("Successfully shut down " + apName); + } catch (IOException e) { + e.printStackTrace(); + } + } + for(Object o : accessPoints) { + if(o instanceof AccessPoint) { + AccessPoint ap = (AccessPoint) o; + try { + ap.shutdown(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |