Author: unibrew Date: 2006-05-13 19:22:04 -0400 (Sat, 13 May 2006) New Revision: 4215 Modified: labs/jbosslabs/trunk/portal-extensions/counters-ejb3/src/java/org/jboss/forge/counters/CountersEntity.java labs/jbosslabs/trunk/portal-extensions/counters-ejb3/src/java/org/jboss/forge/counters/CountersMDB.java labs/jbosslabs/trunk/portal-extensions/counters-ejb3/src/java/org/jboss/forge/counters/CountersService.java labs/jbosslabs/trunk/portal-extensions/counters-ejb3/src/java/org/jboss/forge/counters/CountersServiceBean.java labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/CountersServiceInterface.java labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCounterDescriptor.java labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDB.java labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDescriptor.java labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersWatcher.java Log: [JBLAB-665] DownloadCounters commented, cleared from SOD and properly tested. Modified: labs/jbosslabs/trunk/portal-extensions/counters-ejb3/src/java/org/jboss/forge/counters/CountersEntity.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/counters-ejb3/src/java/org/jboss/forge/counters/CountersEntity.java 2006-05-13 14:12:32 UTC (rev 4214) +++ labs/jbosslabs/trunk/portal-extensions/counters-ejb3/src/java/org/jboss/forge/counters/CountersEntity.java 2006-05-13 23:22:04 UTC (rev 4215) @@ -34,6 +34,7 @@ * * @author Ryszard Kozmik * + * EJB3 Entity which is used to persist in database all download counters for projects. */ @Entity @Table(name = "jblab_counters") @@ -47,6 +48,9 @@ private boolean visible; + /** + * Default constructor for CountersEntity sets its attributes to default values. + */ public CountersEntity () { this.path = ""; @@ -55,6 +59,9 @@ this.visible = true; } + /** + * Main constructor for CountersEntity which takes all possible values to set all its attributes. + */ public CountersEntity (String path, long initValue, String projectId, boolean visible, String order) { this.path = path; Modified: labs/jbosslabs/trunk/portal-extensions/counters-ejb3/src/java/org/jboss/forge/counters/CountersMDB.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/counters-ejb3/src/java/org/jboss/forge/counters/CountersMDB.java 2006-05-13 14:12:32 UTC (rev 4214) +++ labs/jbosslabs/trunk/portal-extensions/counters-ejb3/src/java/org/jboss/forge/counters/CountersMDB.java 2006-05-13 23:22:04 UTC (rev 4215) @@ -37,7 +37,8 @@ /** - * + * EJB3 Message Driven Bean class which is used for receiving messages from + * DownloadCounters. It is responsible for incrementing requested counter. * @author Ryszard Kozmik * */ @@ -53,6 +54,9 @@ private static Logger logger; + /** + * Just default constructor which gets Logger instance for this class. + */ public CountersMDB() { if (logger == null) @@ -62,6 +66,11 @@ } } + /** + * Method responsible for getting mesages sent from DownloadCounters. + * It gets message and increments a counter for given in message filepath. + * @param msg + */ public void onMessage(Message msg) { try @@ -71,7 +80,6 @@ CountersService countersService = (CountersService) ctx.lookup(CountersServiceInterface.jndiName); countersService.incrementCounter(txtMsg.getText()); - System.out.println("HELLO!!: "+txtMsg.getText()); } catch (NamingException e) { Modified: labs/jbosslabs/trunk/portal-extensions/counters-ejb3/src/java/org/jboss/forge/counters/CountersService.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/counters-ejb3/src/java/org/jboss/forge/counters/CountersService.java 2006-05-13 14:12:32 UTC (rev 4214) +++ labs/jbosslabs/trunk/portal-extensions/counters-ejb3/src/java/org/jboss/forge/counters/CountersService.java 2006-05-13 23:22:04 UTC (rev 4215) @@ -29,7 +29,7 @@ /** - * + * Local interface for CountersServiceBean class. * @author Ryszard Kozmik * */ Modified: labs/jbosslabs/trunk/portal-extensions/counters-ejb3/src/java/org/jboss/forge/counters/CountersServiceBean.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/counters-ejb3/src/java/org/jboss/forge/counters/CountersServiceBean.java 2006-05-13 14:12:32 UTC (rev 4214) +++ labs/jbosslabs/trunk/portal-extensions/counters-ejb3/src/java/org/jboss/forge/counters/CountersServiceBean.java 2006-05-13 23:22:04 UTC (rev 4215) @@ -40,16 +40,22 @@ /** * * @author Ryszard Kozmik - * + * + * EJB3 Stateless Session Bean used as a service for managing DownloadCounters persistence. */ @Stateless @LocalBinding (jndiBinding=CountersServiceInterface.jndiName) public class CountersServiceBean implements CountersService { + // Registering with counters persistence context @PersistenceContext (unitName="counters") protected EntityManager em; + /** + * This method gets all counters from database and returns a Map object with them. + * @return Map<String,Counter> containging all download counters from database. + */ public Map<String,Counter> getCountersMap() { List<CountersEntity> countersRows = em.createQuery("from CountersEntity e").getResultList(); @@ -65,13 +71,16 @@ return countersMap; } + /** + * Persists downloadCounters given in execution parameter to database. + * @param downloadCounters + * Map<String,Counter> containing all download counters for all projects. + */ public void updateCounters(Map<String,Counter> downloadCounters) { - System.out.println("HELLO UPDATECOUNTERS"); synchronized (downloadCounters) { for (String path : downloadCounters.keySet()) { - System.out.println("UPDATING PATH: "+path); Counter counter = downloadCounters.get(path); CountersEntity ce = em.find(CountersEntity.class,path); if (ce==null) @@ -97,10 +106,18 @@ } } + /** + * Method increments counter for specified in parameter file path. + * @param path + * Filepath for which counter needs to be increased. + */ public void incrementCounter (String path) { - System.out.println("CountersService: "+path); CountersEntity ce = em.find(CountersEntity.class,path); + if (ce==null) + { + return ; + } ce.setCounterValue(ce.getCounterValue()+1); em.persist(ce); } Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/CountersServiceInterface.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/CountersServiceInterface.java 2006-05-13 14:12:32 UTC (rev 4214) +++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/CountersServiceInterface.java 2006-05-13 23:22:04 UTC (rev 4215) @@ -26,7 +26,7 @@ import java.util.Map; /** - * + * Interface showing what methods are in Session Bean service. * @author Ryszard Kozmik * */ Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCounterDescriptor.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCounterDescriptor.java 2006-05-13 14:12:32 UTC (rev 4214) +++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCounterDescriptor.java 2006-05-13 23:22:04 UTC (rev 4215) @@ -136,7 +136,7 @@ if (property.getNodeType()== Node.ELEMENT_NODE){ String visibilityAtt = XmlTools.getAttributeValue(property,VISIBILITY); boolean visibility = true; - if (visibilityAtt!=null && visibilityAtt.equals(FALSE)) { + if (visibilityAtt!=null && visibilityAtt.trim().compareToIgnoreCase(FALSE)==0) { visibility = false; } if (property.getNodeName().equals(LINK) && XmlTools.unmarshallText(property) != null Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDB.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDB.java 2006-05-13 14:12:32 UTC (rev 4214) +++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDB.java 2006-05-13 23:22:04 UTC (rev 4215) @@ -46,9 +46,18 @@ public class DownloadCountersDB extends DownloadCountersDescriptor { - + + // InitialContext is used for getting CountersEntity bean. protected InitialContext ctx; + /** + * Main constructor of this class which gets all counters from database, + * then it compares them with information gained from xml projects' descriptors + * and finally after synchronization database is updated with the changes. + * @param portalName + * @param cm + * ContentManager instance needed to get xml descriptors. + */ public DownloadCountersDB(String portalName, ContentManager cm) { super(); @@ -59,12 +68,6 @@ CountersServiceInterface countersService = (CountersServiceInterface) ctx.lookup(CountersServiceInterface.jndiName); downloadCounters = countersService.getCountersMap(); - - // SOD - for (String path : downloadCounters.keySet()) - { - System.out.println("SOD 1 Path: "+path+" Value: "+downloadCounters.get(path)); - } // Getting Map containing pairs of ProjectId and shotoku Node // which refers to projects' download counter descriptor. @@ -77,13 +80,6 @@ countersService.updateCounters(downloadCounters); - - // SOD - for (String path : downloadCounters.keySet()) - { - System.out.println("SOD 2 Path: "+path+" Value: "+downloadCounters.get(path)); - } - } catch (Exception e) { @@ -100,13 +96,6 @@ */ public void synchronizeWithFile(String portalName) { - - // SOD - for (String path : downloadCounters.keySet()) - { - System.out.println("SOD 4 Path: "+path+" Value: "+downloadCounters.get(path)); - } - try { CountersServiceInterface countersService = @@ -117,11 +106,6 @@ { getLogger().error("Failed to persist downloadCounters", e); } - // SOD - for (String path : downloadCounters.keySet()) - { - System.out.println("SOD 4.5 Path: "+path+" Value: "+downloadCounters.get(path)); - } } /** @@ -137,13 +121,14 @@ { // Status change to inform about counters modification. downloadCounters.get(link).increment(); - System.out.println("DownloadCounters: "+link); try { //CountersServiceInterface countersService = // (CountersServiceInterface) ctx.lookup(CountersServiceInterface.jndiName); //countersService.incrementCounter(link); + // This code sends message to counters' MDB with message + // containing filepath of which counter has to be increased QueueSession sess = null; Queue queue = null; queue = (Queue) ctx.lookup("queue/jblab_counters"); Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDescriptor.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDescriptor.java 2006-05-13 14:12:32 UTC (rev 4214) +++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersDescriptor.java 2006-05-13 23:22:04 UTC (rev 4215) @@ -245,12 +245,6 @@ removeLinksForProjects (projects); } - // SOD - for (String path : downloadCounters.keySet()) - { - System.out.println("SOD 3 Path: "+path+" Value: "+downloadCounters.get(path)); - } - // Iterating through projects nodes containing download counter descriptors. for (String projectId:counters.keySet()){ try { @@ -289,13 +283,7 @@ } } - - // SOD - for (String path : downloadCounters.keySet()) - { - System.out.println("SOD 5 Path: "+path+" Value: "+downloadCounters.get(path)); - } - + // Changing status to false becouse downloadCounters Map // is now synchronized with projects' download counter descriptors. changeStatus=false; @@ -308,24 +296,11 @@ * @param linksToDelete * List<String> of links which should be removed. */ - private synchronized void removeLinksFromCounting (List<String> linksToDelete) { - - // SOD - for (String path : downloadCounters.keySet()) - { - System.out.println("SOD 6 Path: "+path+" Value: "+downloadCounters.get(path)); - } - + private synchronized void removeLinksFromCounting (List<String> linksToDelete) { // Removing links which shouldn't be tracked any more. for (String link:linksToDelete) { downloadCounters.remove(link); } - - // SOD - for (String path : downloadCounters.keySet()) - { - System.out.println("SOD 7 Path: "+path+" Value: "+downloadCounters.get(path)); - } } /** @@ -360,30 +335,13 @@ * Project id name for which the links are added. */ private synchronized void addLinksForCounting (Map<String,Boolean> links,String projectId,Sorting sorting) { - // SOD - for (String path : downloadCounters.keySet()) - { - System.out.println("SOD 10 Path: "+path+" Value: "+downloadCounters.get(path)); - } // Adding new download links for tracking. for (String link:links.keySet()) { downloadCounters.put(link,new Counter(0,projectId,links.get(link),sorting)); } - // SOD - for (String path : downloadCounters.keySet()) - { - System.out.println("SOD 11 Path: "+path+" Value: "+downloadCounters.get(path)); - } } - private synchronized void removeLinksForProjects (Set<String> projects) { - - // SOD - for (String path : downloadCounters.keySet()) - { - System.out.println("SOD 8 Path: "+path+" Value: "+downloadCounters.get(path)); - } - + private synchronized void removeLinksForProjects (Set<String> projects) { Set<String> countersLinks = downloadCounters.keySet(); List<String> linksForRemoval = new LinkedList<String>(); for (String link: countersLinks) { @@ -392,12 +350,6 @@ } } downloadCounters.keySet().removeAll(linksForRemoval); - - // SOD - for (String path : downloadCounters.keySet()) - { - System.out.println("SOD 9 Path: "+path+" Value: "+downloadCounters.get(path)); - } } private synchronized Set<String> getTrackedProjects () { @@ -437,23 +389,7 @@ * Map<String,Long> containing link:value pairs. */ public synchronized Map<String,Long> getValuesForPortlet (String projectId) { - - System.out.println("GETVALUESFORPORTLET"); - System.out.println("PROJECTID: "+projectId); - // SOD - for (String path : downloadCounters.keySet()) - { - System.out.println("SOD 12 Path: "+path+" Value: "+downloadCounters.get(path)+ - " ProjectId: "+downloadCounters.get(path).getProjectId()+" Visible:"+downloadCounters.get(path).getVisible()); - } - Map<String,Boolean> links = getProjectLinks(projectId); - - //SOD - for (String project : links.keySet()) - { - System.out.println("SOD: PROJECTLINK: "+project+" BOOLEAN: "+links.get(project)); - } - + Map<String,Boolean> links = getProjectLinks(projectId); Map<String,Long> values = null; if (links.size()==0) { values = new Hashtable<String,Long>(0); @@ -508,18 +444,6 @@ values.put(link,downloadCounters.get(link).getValue()); } } - - for (String link : values.keySet()) - { - System.out.println("SOD: VALUES || LINK: "+link+" LONGVAL: "+values.get(link)); - } - - // SOD - for (String path : downloadCounters.keySet()) - { - System.out.println("SOD 13 Path: "+path+" Value: "+downloadCounters.get(path).getValue() + - " ProjectId: "+downloadCounters.get(path).getProjectId()+" Visible:"+downloadCounters.get(path).getVisible()); - } return values; } Modified: labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersWatcher.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersWatcher.java 2006-05-13 14:12:32 UTC (rev 4214) +++ labs/jbosslabs/trunk/portal-extensions/forge-common/src/java/org/jboss/forge/common/projects/DownloadCountersWatcher.java 2006-05-13 23:22:04 UTC (rev 4215) @@ -89,7 +89,7 @@ * If the object is changed the method returns new object if not returns null. */ public Object nodeUpdate(String portalName, Object currentValue) { - if (currentValue==null || rw.checkResources() + if (currentValue==null || rw.checkResources() || !checkForNewResources((DownloadCountersDescriptor)currentValue,portalName)) { return getDescriptor(portalName); } else if (((DownloadCountersDescriptor)currentValue).hasChanged()){ @@ -101,6 +101,12 @@ return null; } + /** + * Method checks if there was no new xml project' descriptor added. + * @param desc + * @param portalName + * @return + */ private boolean checkForNewResources (DownloadCountersDescriptor desc, String portalName) { return counterDescriptors.containsAll(desc.getDownloadDescriptors(portalName).keySet()); } |