Author: dam...@jb... Date: 2006-06-07 20:43:10 -0400 (Wed, 07 Jun 2006) New Revision: 4662 Added: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/Tools.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagmeSet.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java Removed: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Tools.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeService.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusConfWatcher.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusPortlet.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/Last7DaysStatusPlugin.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/ScoresService.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresMDB.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/GetScoresRequestImpl.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/protocol/GetScoresRequest.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/templates/Columns.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/ScoresManager.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/ScoresManagerSync.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/maven.xml labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMe.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingService.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingServiceAsync.java labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/public/TagMe.html Log: MERGED: -r 4329:4380 https://svn.labs.jboss.com/labs/jbosslabs/trunk . for Labs 1.1 testing. Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeService.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeService.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-service/src/java/org/jboss/forge/service/ForgeService.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -160,11 +160,11 @@ //timer.scheduleTimer(DEFAULT_TIMER_INTERVAL); // Enabling administration for this service. - Tools.getService().addAdministratedService(new AdministratedServiceGetter() { + /*Tools.getService().addAdministratedService(new AdministratedServiceGetter() { public AdministratedService getService() { return ForgeHelper.getForgeManagement(); } - }); + });*/ log.info("Forge service created, with timer interval: " + getTimerInterval()); } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/Status.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -22,6 +22,7 @@ package org.jboss.forge.status; +import java.sql.Timestamp; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -71,6 +72,8 @@ /** Projects present in the Status Matrix */ private Projects projects; + private Timestamp timestamp; + private Logger log; /** @@ -92,13 +95,13 @@ PluginsValues pluginsValues; try { - // Get current scores + // Get latest available scores + ScoresManager.init(portalName, serviceConf); + pluginsValues = ScoresManager.getLatestScores(); - ScoresManager.init(portalName, serviceConf); + // Compute and save current scores ScoresManager.save(projects, pluginsConf); - - pluginsValues = ScoresManager.getCurrentScores(); - + timestamp = ScoresManager.requestCurrentScores(); } catch (ScoresSaveException e) { log.error("Saving scores failed ", e); return; @@ -203,4 +206,17 @@ return colMap; } + public boolean needsUpdate() { + + PluginsValues pluginsValues = ScoresManager.getScores(timestamp); + + if (pluginsValues == null) { + return false; + } + + //TODO refresh scores + + return true; + } + } \ No newline at end of file Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusConfWatcher.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusConfWatcher.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusConfWatcher.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -29,8 +29,11 @@ import org.jboss.shotoku.cache.ChangeType; import org.jboss.shotoku.cache.ShotokuResourceWatcher; -public class StatusConfWatcher extends ShotokuResourceWatcher<String, StatusDescriptor> { +public class StatusConfWatcher extends + ShotokuResourceWatcher<String, StatusDescriptor> { + public StatusConfWatcher(long interval) {} + private StatusDescriptor getDesc(String portalName) { return new StatusDescriptor(portalName, getContentManager(portalName)); } @@ -49,7 +52,8 @@ /* Watch all project.xml files. * We assume that they contain entries used by plugins */ - Set<String> projectXmlPathsSet = Locations.getProjectXmlPathsSet(portalName); + Set<String> projectXmlPathsSet = + Locations.getProjectXmlPathsSet(portalName); for (String projectXmlPath : projectXmlPathsSet) { addWatchedPath(key, projectXmlPath); @@ -59,7 +63,14 @@ } @Override - protected void update(String key, StatusDescriptor currentObject, Map<String, ChangeType> changes) { + /* Called only when some of the watched resources changes. */ + public void update(String key, StatusDescriptor currentObject, + Map<String, ChangeType> changes) { put(key, getDesc(key)); } + + @Override + public void update(String key, StatusDescriptor desc) { + desc.update(); + } } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusDescriptor.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -83,6 +83,8 @@ } public DelegateContext getContext() { + + update(); return context; } @@ -102,5 +104,12 @@ Node root = parser.getDocument().getDocumentElement(); return root; } + + public void update() { + + if (status.needsUpdate()) { + fillContext(); + } + } } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusPortlet.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusPortlet.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/StatusPortlet.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -29,7 +29,7 @@ import org.jboss.forge.common.ForgeHelper; import org.jboss.forge.status.common.Locations; -import org.jboss.forge.status.common.Tools; +import org.jboss.forge.status.tools.Tools; import org.jboss.portal.common.context.DelegateContext; import org.jboss.portal.core.servlet.jsp.PortalJsp; Deleted: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Tools.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Tools.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/common/Tools.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -1,21 +0,0 @@ -package org.jboss.forge.status.common; - -import org.jboss.forge.status.StatusDescriptor; -import org.jboss.forge.status.StatusConfWatcher; - -import org.jboss.shotoku.aop.CacheItem; - -/** - * Common functions. - * @author Pawel Wrzeszcz - */ -public class Tools { - - @CacheItem - private static StatusConfWatcher conf; - - public static synchronized StatusDescriptor getDesc(final String portalName) { - return conf.get(portalName); - } - -} Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/Last7DaysStatusPlugin.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/Last7DaysStatusPlugin.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/plugins/Last7DaysStatusPlugin.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -23,7 +23,6 @@ package org.jboss.forge.status.plugins; import java.util.Calendar; -import java.util.Date; import java.util.Properties; import org.jboss.forge.common.projects.Projects; @@ -74,13 +73,11 @@ long prevValue; Calendar cal = Calendar.getInstance(); - Date now = cal.getTime(); cal.add(Calendar.DAY_OF_MONTH,-7); - Date prev = cal.getTime(); try { prevValue = ScoresManagerSync.getValue( - insidePlugin.getId(), projectId, prev,now); + insidePlugin.getId(), projectId, cal); } catch (GetScoresException e) { return 0; } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/ScoresService.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/ScoresService.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/ScoresService.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -22,7 +22,7 @@ package org.jboss.forge.status.service; -import java.util.Date; +import java.util.Calendar; import java.util.List; import org.jboss.forge.common.projects.Projects; @@ -39,8 +39,8 @@ public void save(Projects projects, List<PluginConf> pluginsConf, String portalName) throws ScoresSaveException; - public PluginsValues getPluginsValues(String portalName, Date date) + public PluginsValues getPluginsValues(String portalName, Calendar cal) throws GetScoresException; - public boolean hasPluginsValues(String portalName, Date date); + public boolean hasPluginsValues(String portalName, Calendar cal); } \ No newline at end of file Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresMDB.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresMDB.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresMDB.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -23,7 +23,7 @@ package org.jboss.forge.status.service.impl; import java.sql.Timestamp; -import java.util.Date; +import java.util.Calendar; import java.util.List; import javax.ejb.ActivationConfigProperty; @@ -109,13 +109,12 @@ private static void handleRequest(GetScoresRequest getScoresRequest) { - Date date = getScoresRequest.getDate(); - Date toDate = getScoresRequest.getToDate(); + Calendar cal = getScoresRequest.getCalendar(); Timestamp timestamp = getScoresRequest.getTimestamp(); PluginsValues pluginsValues = null; try { - pluginsValues = ScoresManagerSync.getScores(date, toDate); + pluginsValues = ScoresManagerSync.getScores(cal); } catch (GetScoresException e) { log.error(e); //TODO return; //?? Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/ScoresServiceImpl.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -37,7 +37,6 @@ import javax.ejb.Remote; import org.jboss.annotation.ejb.LocalBinding; -import org.jboss.annotation.ejb.Management; import org.jboss.annotation.ejb.RemoteBinding; import org.jboss.annotation.ejb.Service; @@ -68,7 +67,6 @@ */ @Service(objectName=Tags.STATUS_SERVICE_NAME) -@Management(ScoresService.class) @Local(ScoresServiceLocal.class) @LocalBinding(jndiBinding=Constants.STATUS_LOCAL_SERVICE) @Remote(ScoresServiceRemote.class) @@ -161,18 +159,17 @@ * @return scores from the given date * @throws GetScoresException */ - public PluginsValuesImpl getPluginsValues(String portalName, Date date) + public PluginsValuesImpl getPluginsValues(String portalName, Calendar cal) throws GetScoresException { log.info("Returning plugins values..."); // null date means today - if (date == null) { - Calendar cal = Calendar.getInstance(); - date = cal.getTime(); + if (cal == null) { + cal = Calendar.getInstance(); } - String key = getNodeName(date); + String key = getNodeName(cal); PluginsValuesImpl v = values.get(key); if (v == null) { // Not in cache => get value and store it @@ -190,7 +187,7 @@ } if (dir != null) { - v = getPluginsValues(dir, date); + v = getPluginsValues(dir, cal); log.info("Finished."); values.put(key,v); } @@ -206,12 +203,12 @@ * @return * @throws GetScoresException */ - private PluginsValuesImpl getPluginsValues(Directory dir, Date date) + private PluginsValuesImpl getPluginsValues(Directory dir, Calendar cal) throws GetScoresException { // Get appropriate node Node node = null; - String nodeName = getNodeName(date); + String nodeName = getNodeName(cal); try { node = dir.getNode(nodeName); @@ -319,15 +316,16 @@ /** * Gets name of Node containing saved data from specified datestamp. - * Notice that only year, month and day matter in passed <code>date</code>. + * Notice that only year, month and day matter in passed <code>cal</code>. * - * @param date datestamp * @return Node name */ - private String getNodeName(Date date) { + private String getNodeName(Calendar cal) { SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + Date date = cal.getTime(); + return df.format(date); } @@ -336,18 +334,17 @@ */ private String getCurrentNodeName() { - Calendar cal = Calendar.getInstance(); - Date today = cal.getTime(); + Calendar today = Calendar.getInstance(); return getNodeName(today); } - public boolean hasPluginsValues(String portalName, Date date) { + public boolean hasPluginsValues(String portalName, Calendar cal) { PluginsValuesImpl pluginsValues = null; try { - pluginsValues = getPluginsValues(portalName, date); + pluginsValues = getPluginsValues(portalName, cal); } catch (GetScoresException e) { return false; } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/GetScoresRequestImpl.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/GetScoresRequestImpl.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/impl/protocol/GetScoresRequestImpl.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -23,8 +23,7 @@ package org.jboss.forge.status.service.impl.protocol; import java.sql.Timestamp; -import java.util.Date; - +import java.util.Calendar; import org.jboss.forge.status.service.protocol.GetScoresRequest; /** @@ -34,26 +33,20 @@ private static final long serialVersionUID = 7844595317056960170L; - private Date date; - private Date toDate; + private Calendar cal; private Timestamp timestamp; - public GetScoresRequestImpl(Date date, Date toDate, + public GetScoresRequestImpl(Calendar cal, Timestamp timestamp) { - this.date = date; - this.toDate = toDate; + this.cal = cal; this.timestamp = timestamp; } - public Date getDate() { - return date; + public Calendar getCalendar() { + return cal; } - public Date getToDate() { - return toDate; - } - public Timestamp getTimestamp() { return timestamp; } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/protocol/GetScoresRequest.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/protocol/GetScoresRequest.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/service/protocol/GetScoresRequest.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -24,16 +24,14 @@ import java.io.Serializable; import java.sql.Timestamp; -import java.util.Date; +import java.util.Calendar; /** * @author Pawel Wrzeszcz */ public interface GetScoresRequest extends Serializable { - public Date getDate(); - - public Date getToDate(); + public Calendar getCalendar(); public Timestamp getTimestamp(); Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/templates/Columns.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/templates/Columns.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/templates/Columns.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -86,14 +86,6 @@ orderPluginId = XmlTools.getChildNodeValue(pageRoot, Tags.ORDER_PLUGIN_ELEMENT); } - - /** - * @param projects Projects present in the Status Matrix - */ - public Columns(Projects projects) { - this.projects = projects; - columns = new ArrayList<Column>(); - } /** * Adds to the columns list columns defined in columnsRoot. Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/ScoresManager.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/ScoresManager.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/ScoresManager.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -24,7 +24,7 @@ import java.io.Serializable; import java.sql.Timestamp; -import java.util.Date; +import java.util.Calendar; import java.util.List; import java.util.Properties; @@ -62,7 +62,7 @@ public static void init(String portalName, ServiceConf serviceConf) { - ScoresManagerSync.init(portalName, serviceConf); //TODO inheritance + ScoresManagerSync.init(portalName, serviceConf); isRemote = serviceConf.isRemote(); System.out.println("remote: " + isRemote); @@ -85,23 +85,22 @@ } } - public static PluginsValues getScores(Date date, Date toDate) + public static Timestamp requestScores(Calendar cal) throws GetScoresException { - //TODO toDate Timestamp timestamp = new Timestamp(System.currentTimeMillis()); GetScoresRequest getScoresRequest = - new GetScoresRequestImpl(date, toDate, timestamp); - - // Send message + new GetScoresRequestImpl(cal, timestamp); + try { sendMessage(Constants.GET_SCORES_MESSAGE, getScoresRequest); } catch (Exception e) { throw new GetScoresException(e); } - PluginsValues pluginsValues = null; + return timestamp; + /* int attempts = 0; for (;;) { @@ -121,38 +120,47 @@ throw new GetScoresException(e); } } + */ + } + + public static Timestamp requestCurrentScores() + throws GetScoresException { - return pluginsValues; + Calendar cal = Calendar.getInstance(); + + return requestScores(cal); } - /** - * For the specified plugin returns historical project score - * from the given <code>date</code> in the past. - * If scores from specified day are not available, - * the next available scores saved at the day before or equal - * to <code>toDate</code> are returned. - * - * Notice that only year, month and day matter in passed dates. - * - * @return project score from the given date for specified plugin - * @throws GetScoresException - */ - public static long getValue(String pluginId, String projectId, - Date date, Date toDate) - throws GetScoresException { + public static PluginsValues getScores(Timestamp timestamp) { + - PluginsValues pluginsValues = getScores(date, toDate); - - return pluginsValues.getPluginValue(pluginId, projectId); + PluginsValues pluginsValues = RecordManager.get(timestamp); + + System.out.println("attempt"); + + return pluginsValues; } - - public static PluginsValues getCurrentScores() + + public static PluginsValues getLatestScores() throws GetScoresException { - Date now = new Date(); + Calendar cal = Calendar.getInstance(); + int attempts = 0; - return getScores(now, now); + for(;;) { + + if (ScoresManagerSync.hasScores(cal)) { + return ScoresManagerSync.getScores(cal); + } + + if ((attempts++) == Constants.MAX_ATTEMPTS) { + return null; + } + + cal.add(Calendar.DAY_OF_MONTH, -1); + } } + private static void sendMessage(String name, Serializable request) throws NamingException, JMSException { @@ -179,5 +187,4 @@ sender.send(message); session.close (); } - } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/ScoresManagerSync.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/ScoresManagerSync.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/ScoresManagerSync.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -22,7 +22,7 @@ package org.jboss.forge.status.tools; -import java.util.Date; +import java.util.Calendar; import java.util.List; import java.util.Properties; @@ -76,14 +76,14 @@ service.save(projects, pluginsConf, portalName); } - public static PluginsValues getScores(Date date, Date toDate) + public static PluginsValues getScores(Calendar cal) throws GetScoresException { PluginsValues pluginsValues = null; try { ScoresService service = getService(); - pluginsValues = service.getPluginsValues(portalName, date); + pluginsValues = service.getPluginsValues(portalName, cal); } catch (Exception e) { throw new GetScoresException(e); } @@ -95,12 +95,21 @@ return pluginsValues; } + public static boolean hasScores(Calendar cal) { + + ScoresService service; + try { + service = getService(); + } catch (NamingException e) { + return false; + } + + return service.hasPluginsValues(portalName, cal); + } + /** * For the specified plugin returns historical project score * from the given <code>date</code> in the past. - * If scores from specified day are not available, - * the next available scores saved at the day before or equal - * to <code>toDate</code> are returned. * * Notice that only year, month and day matter in passed dates. * @@ -108,10 +117,10 @@ * @throws GetScoresException */ public static long getValue(String pluginId, String projectId, - Date date, Date toDate) + Calendar cal) throws GetScoresException { - PluginsValues pluginsValues = getScores(date, toDate); + PluginsValues pluginsValues = getScores(cal); return pluginsValues.getPluginValue(pluginId, projectId); } @@ -119,9 +128,9 @@ public static PluginsValues getCurrentScores() throws GetScoresException { - Date now = new Date(); + Calendar now = Calendar.getInstance(); - return getScores(now, now); + return getScores(now); } private static ScoresService getService() throws NamingException { Copied: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/Tools.java (from rev 4380, labs/jbosslabs/trunk/portal-extensions/forge-status/src/java/org/jboss/forge/status/tools/Tools.java) Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/maven.xml =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/maven.xml 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/maven.xml 2006-06-08 00:43:10 UTC (rev 4662) @@ -28,8 +28,8 @@ </goal> <goal name="deploy"> - <!--<ant:copy file="target/tagme-servlet.war" toDir="${local.deploy.dir}" />--> - <ant:copy file="target/tagme-servlet.war" toDir="/home/tomek/jboss/park_rozrywki/server/default/deploy" /> + <ant:copy file="target/tagme-servlet.war" toDir="${local.deploy.dir}" /> + <!--<ant:copy file="target/tagme-servlet.war" toDir="/home/tomek/jboss/park_rozrywki/server/default/deploy" />--> </goal> <goal name="clean"> Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/TagMeServlet.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -25,6 +25,7 @@ import java.util.Vector; import org.jboss.labs.tagme.gwt.client.TaggingService; +import org.jboss.labs.tagme.services.TagMeTagger; import org.jboss.logging.Logger; import com.google.gwt.user.server.rpc.RemoteServiceServlet; @@ -37,20 +38,49 @@ */ private static final long serialVersionUID = 1L; - public Vector getTags(String path) { - Vector vect = new Vector(); + public Vector getTags(String path, String clas) { + Vector vect = null; - vect.add("piwo"); vect.add("wodka"); vect.add("kefir"); + /*vect.add("piwo"); vect.add("wodka"); vect.add("kefir"); vect.add("słoń"); vect.add("kulfon"); vect.add("kret"); - vect.add("polska"); vect.add("europa"); vect.add("świat"); + vect.add("polska"); vect.add("europa"); vect.add("świat");*/ - Collections.sort(vect); + try { + TagMeTagger tagger = (TagMeTagger)Class.forName(clas).newInstance(); + + vect = tagger.getTags(path); + + Collections.sort(vect); + } catch (InstantiationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalAccessException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } return vect; } - public void addTag(String user, String path, String tag) { - + public void addTag(String user, String path, String clas, String tag) { + try { + TagMeTagger tagger = (TagMeTagger)Class.forName(clas).newInstance(); + + tagger.addTag(user, path, tag); + log.info("Tag added: User: "+user+" Path: "+path+" Tag: "+tag); + } catch (InstantiationException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (IllegalAccessException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (ClassNotFoundException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMe.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMe.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMe.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -39,6 +39,18 @@ public class TagMe implements EntryPoint { + private static final String TAG_PREFFIX = "tagMeSet"; + + private static final String DIV_PREFFIX = "tagMeDiv"; + + private static final String PATH_PREFIX = "tagMePath"; + + private static final String USER_PREFIX = "tagMeUser"; + + private static final String CLASS_PREFIX = "tagMeClass"; + + private Vector sets = new Vector(); + /** * Native method in JScript to access gwt:properties (couldn't find anything * in the mans for it) You add this on the page with <meta @@ -49,9 +61,22 @@ * @return value of property */ public static native String getProperty(String name) /*-{ - return parent.__gwt_getMetaProperty(name); + return parent.__gwt_getMetaProperty(name); }-*/; + public static native String getPropertiesUnsplited() /*-{ + var __gwt_all = ''; + + for (var tag in parent.__gwt_metaProps) { + __gwt_all += tag + ';'; + } + return __gwt_all; + }-*/; + + public String[] getPropertyNames() { + return getPropertiesUnsplited().split(";"); + } + /* * (non-Javadoc) * @@ -59,86 +84,43 @@ */ public void onModuleLoad() { // this is executed on the script start + String[] propNames = getPropertyNames(); - RootPanel.get().add(new Button("ClickMe", new ClickListener() { + // find correct props describing where tagme buttons should be placed + for (int i = 0; i < propNames.length; i++) { + //Window.alert(propNames[i]); + if (propNames[i] != null && propNames[i].startsWith(TAG_PREFFIX)) { + //Window.alert("found: "+propNames[i]); + String suff = getProperty(propNames[i]); - public void onClick(Widget sender) { + String div = getProperty(DIV_PREFFIX + suff); + String path = getProperty(PATH_PREFIX + suff); + String user = getProperty(USER_PREFIX + suff); + String clas = getProperty(CLASS_PREFIX + suff); - Window.alert("props: " + getProperty("tomek") + " oraz " - + getProperty("adam")); - VerticalPanel panel = new VerticalPanel(); - - final FlexTable table = new FlexTable(); - - panel.add(table); - - final Vector textBoxes = new Vector(); - - for (int i = 0; i < 3; i++) { - TextBox box = new TextBox(); - textBoxes.add(box); - panel.add(box); + //Window.alert("Added: "+propNames[i]+" div: "+div+" path: "+path+" user: "+user); + if (div != null && path != null && user != null && clas != null) { + TagmeSet set = new TagmeSet(div, path, user, clas); + sets.add(set); } + else { + Window.alert("Wrong set: "+suff+" div= "+div+" path= "+path+" user= "+user+" class= "+clas); + } + } + } - TaggingServiceAsync tagging = (TaggingServiceAsync) GWT - .create(TaggingService.class); + for (int i = 0; i < sets.size(); i++) { + TagmeSet set = (TagmeSet) sets.get(i); + String path = set.getPath(); + String user = set.getUser(); + String clas = set.getClas(); + RootPanel.get(set.getDiv()).add(getButton(path, user, clas)); + } + } - ServiceDefTarget endpoint = (ServiceDefTarget) tagging; - endpoint.setServiceEntryPoint("/tagme-servlet/tag/"); + private Button getButton(String path, String user, String clas) { - AsyncCallback callback = new AsyncCallback() { - public void onSuccess(Object result) { - Vector vect = (Vector) result; - - int cols = (int) Math.sqrt(vect.size()); - - for (int i = 0; i < vect.size(); i++) { - table.setText(i / cols, i % cols, (String) vect - .get(i)); - } - } - - public void onFailure(Throwable caught) { - Window.alert("Error ! " + caught.getMessage()); - } - }; - - // call AJAX methos, after that callback is going to be executed - tagging.getTags("path", callback); - - panel.add(new Button("Save", new ClickListener() { - - public void onClick(Widget sender) { - TaggingServiceAsync tagging = (TaggingServiceAsync) GWT - .create(TaggingService.class); - - ServiceDefTarget endpoint = (ServiceDefTarget) tagging; - endpoint.setServiceEntryPoint("/tagme-servlet/tag/"); - - AsyncCallback callback = new AsyncCallback() { - public void onSuccess(Object result) { - Window.alert(result.toString()); - } - - public void onFailure(Throwable caught) { - Window.alert("Error ! " + caught.getMessage()); - } - }; - - tagging.getTags(((TextBox) textBoxes.get(0)).getText(), - callback); - } - - })); - - PopupPanel popUp = new PopupPanel(true); - - popUp.add(panel); - - popUp.show(); - } - - })); + return new Button("ClickMe", new TagMeShowPopupListener(path, user, clas)); } } Copied: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java (from rev 4380, labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeClickListener.java) Copied: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java (from rev 4380, labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagMeShowPopupListener.java) Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingService.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingService.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingService.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -39,14 +39,7 @@ * Path to get tags * @return collection of tags */ - public Vector getTags(String path); + public Vector getTags(String path, String clas); - /** - * Adds tag (not implemented yet) - * - * @param user - * @param path - * @param tag - */ - public void addTag(String user, String path, String tag); + public void addTag(String user, String path, String clas, String tag); } Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingServiceAsync.java =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingServiceAsync.java 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TaggingServiceAsync.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -31,8 +31,8 @@ * */ public interface TaggingServiceAsync { - public void getTags(String path, AsyncCallback callback); + public void getTags(String path, String clas, AsyncCallback callback); - public void addTag(String user, String path, String tag, + public void addTag(String user, String path, String clas, String tag, AsyncCallback callback); } Copied: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagmeSet.java (from rev 4380, labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/client/TagmeSet.java) Modified: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/public/TagMe.html =================================================================== --- labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/public/TagMe.html 2006-06-08 00:40:38 UTC (rev 4661) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/gwt/public/TagMe.html 2006-06-08 00:43:10 UTC (rev 4662) @@ -1,19 +1,38 @@ <html> - <head> + <head> + <meta name='gwt:property' content='tagMeSetTomek=tomek'> + <meta name='gwt:property' content='tagMeDivtomek=tomek'> + <meta name='gwt:property' content='tagMePathtomek=/tagme/tomek'> + <meta name='gwt:property' content='tagMeUsertomek=kulfon'> + <meta name='gwt:property' content='tagMeClasstomek=org.jboss.labs.tagme.services.ShotokuTaggingService'> + + <meta name='gwt:property' content='tagMeSetAdam=adam'> + <meta name='gwt:property' content='tagMeDivadam=adam'> + <meta name='gwt:property' content='tagMePathadam=/tagme/adam'> + <meta name='gwt:property' content='tagMeUseradam=monika'> + <meta name='gwt:property' content='tagMeClassadam=org.jboss.labs.tagme.services.ShotokuTaggingService'> + + <meta name='gwt:property' content='tomek=ziomek'> + <meta name='gwt:module' content='org.jboss.labs.tagme.gwt.TagMe'> - <meta name='gwt:property' content='tomek=ziomek'> + <title>Hello</title> </head> <body bgcolor="white"> - <meta name='gwt:property' content='adam=siadam'> - <script language="javascript" src="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/gwt.js"></script> + <script language="javascript" src="/tagme-servlet/www/org.jboss.labs.tagme.gwt.TagMe/gwt.js"></script> Pod tym <br /> - <div id="TopMenu"> + <div id="tomek"> </div> <br /> ale nad tym + + + <div id="adam"> + + </div> + </body> </html> Copied: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services (from rev 4380, labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services) Deleted: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java 2006-05-23 15:46:10 UTC (rev 4380) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -1,104 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2005, JBoss Inc., and individual contributors as indicated - * by the @authors tag. See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this software; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA, or see the FSF site: http://www.fsf.org. - */ -package org.jboss.labs.tagme.services; - -import java.util.Iterator; -import java.util.Map; -import java.util.Vector; - -import org.jboss.logging.Logger; -import org.jboss.shotoku.ContentManager; -import org.jboss.shotoku.Node; -import org.jboss.shotoku.exceptions.RepositoryException; -import org.jboss.shotoku.exceptions.ResourceDoesNotExist; -import org.jboss.shotoku.exceptions.SaveException; - -public class ShotokuTaggingService implements TagMeTagger { - - private static final String SHOTOKU_TAG = "tag"; - - private static final Logger log = Logger.getLogger(ShotokuTaggingService.class); - - public Vector getTags(String path) { - log.info("Getting tags for: "+path); - ContentManager manager = ContentManager.getContentManager(); - - Vector<String> tags = new Vector<String>(); - - Node node; - try { - node = manager.getNode(path); - - Map<String, String> map = node.getProperties(); - - for (String key : map.keySet()) { - log.info(key); - if (key.startsWith(SHOTOKU_TAG)) { - tags.add(map.get(key)); - } - } - } catch (RepositoryException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ResourceDoesNotExist e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - return tags; - } - - public void addTag(String user, String path, String tag) { - log.info("Adding tag: "+tag+" for node: "+path); - ContentManager manager = ContentManager.getContentManager(); - - Node node; - - try { - node = manager.getNode(path); - - if (!getTags(path).contains(tag)) { - int i = 0; - while (node.getProperty(SHOTOKU_TAG + ":" + user + ":" + i) != null) { - i++; - } - - node.setProperty(SHOTOKU_TAG + ":" + user + ":" + i, tag); - - try { - node.save("Saving tag: "+tag+" by: "+user); - } catch (SaveException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - } - } catch (RepositoryException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch (ResourceDoesNotExist e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - } - -} Copied: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java (from rev 4380, labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/ShotokuTaggingService.java) Deleted: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java =================================================================== --- labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java 2006-05-23 15:46:10 UTC (rev 4380) +++ labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java 2006-06-08 00:43:10 UTC (rev 4662) @@ -1,31 +0,0 @@ -/* - * JBoss, Home of Professional Open Source - * Copyright 2005, JBoss Inc., and individual contributors as indicated - * by the @authors tag. See the copyright.txt in the distribution for a - * full listing of individual contributors. - * - * This is free software; you can redistribute it and/or modify it - * under the terms of the GNU Lesser General Public License as - * published by the Free Software Foundation; either version 2.1 of - * the License, or (at your option) any later version. - * - * This software is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this software; if not, write to the Free - * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA - * 02110-1301 USA, or see the FSF site: http://www.fsf.org. - */ -package org.jboss.labs.tagme.services; - -import java.util.Vector; - -public interface TagMeTagger { - public Vector getTags(String path); - - - public void addTag(String user, String path, String tag); -} Copied: labs/jbosslabs/branches/qa/jbosslabs/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java (from rev 4380, labs/jbosslabs/trunk/portal-extensions/forge-tagme/src/java/org/jboss/labs/tagme/services/TagMeTagger.java) |