Author: ludovic
Date: 2008-02-11 01:04:58 +0100 (Mon, 11 Feb 2008)
New Revision: 7481
Modified:
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/api/ActivityStream.java
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityEventImpl.java
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityStreamImpl.java
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/plugin/ActivityStreamPluginApi.java
Log:
CURRIKI-1569 Activity Stream Core storage
Modified:
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/api/ActivityStream.java
===================================================================
---
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/api/ActivityStream.java
2008-02-10 23:24:49 UTC (rev 7480)
+++
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/api/ActivityStream.java
2008-02-11 00:04:58 UTC (rev 7481)
@@ -62,9 +62,15 @@
void addDocumentActivityEvent(String streamName, XWikiDocument doc, String
type, String title,
XWikiContext context) throws ActivityStreamException;
+ void addDocumentActivityEvent(String streamName, XWikiDocument doc, String
type, int priority, String title,
+ XWikiContext context) throws ActivityStreamException;
+
void addDocumentActivityEvent(String streamName, XWikiDocument doc, String
type, String title, List params,
XWikiContext context) throws ActivityStreamException;
+ void addDocumentActivityEvent(String streamName, XWikiDocument doc, String
type, int priority, String title, List params,
+ XWikiContext context) throws ActivityStreamException;
+
List searchEvents(String hql, boolean filter, int nb, int start,
XWikiContext context)
throws ActivityStreamException;
Modified:
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityEventImpl.java
===================================================================
---
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityEventImpl.java
2008-02-10 23:24:49 UTC (rev 7480)
+++
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityEventImpl.java
2008-02-11 00:04:58 UTC (rev 7481)
@@ -21,6 +21,7 @@
import java.util.Date;
import java.util.List;
+import java.util.ArrayList;
import org.xwiki.plugin.activitystream.api.ActivityEvent;
@@ -68,12 +69,12 @@
public String getDisplayTitle(XWikiContext context)
{
- return context.getWiki().parseMessage(title, context);
+ return context.getMessageTool().get(title, getParams());
}
public String getDisplayBody(XWikiContext context)
{
- return context.getWiki().parseMessage(body, context);
+ return context.getMessageTool().get(body, getParams());
}
public String getDisplayDate(XWikiContext context)
@@ -106,6 +107,16 @@
}
}
+ public List getParams() {
+ List params = new ArrayList();
+ params.add(getParam1());
+ params.add(getParam2());
+ params.add(getParam3());
+ params.add(getParam4());
+ params.add(getParam5());
+ return params;
+ }
+
public String getEventId()
{
return eventId;
Modified:
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityStreamImpl.java
===================================================================
---
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityStreamImpl.java
2008-02-10 23:24:49 UTC (rev 7480)
+++
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/impl/ActivityStreamImpl.java
2008-02-11 00:04:58 UTC (rev 7481)
@@ -150,12 +150,23 @@
public void addDocumentActivityEvent(String streamName, XWikiDocument doc,
String type, String title,
XWikiContext context) throws
ActivityStreamException
{
- addDocumentActivityEvent(streamName, doc, type, title, null, context);
+ addDocumentActivityEvent(streamName, doc, type,
ActivityEventPriority.ACTION, title, null, context);
}
+ public void addDocumentActivityEvent(String streamName, XWikiDocument doc,
String type, int priority, String title,
+ XWikiContext context) throws
ActivityStreamException {
+ addDocumentActivityEvent(streamName, doc, type, priority, title, null,
context);
+ }
+
public void addDocumentActivityEvent(String streamName, XWikiDocument doc,
String type, String title, List params,
XWikiContext context) throws
ActivityStreamException
{
+ addDocumentActivityEvent(streamName, doc, type,
ActivityEventPriority.ACTION, title, params, context);
+ }
+
+ public void addDocumentActivityEvent(String streamName, XWikiDocument doc,
String type, int priority, String title, List params,
+ XWikiContext context) throws
ActivityStreamException
+ {
ActivityEvent event = newActivityEvent();
event.setStream(streamName);
event.setPage(doc.getFullName());
@@ -163,7 +174,7 @@
event.setWiki(doc.getDatabase());
}
event.setDate(doc.getDate());
- event.setPriority(ActivityEventPriority.ACTION);
+ event.setPriority(priority);
event.setType(type);
event.setTitle(title);
event.setBody(title);
@@ -174,17 +185,14 @@
public List searchEvents(String hql, boolean filter, int nb, int start,
XWikiContext context)
throws ActivityStreamException
{
- String searchHql = "select act.* from ActivityEvent as act " + hql;
- String filterQuery =
- ", ActivityEvent act2 where act.eventId=act2.eventId and
act.priority=max(act2.priority)";
+ String searchHql;
+
if (filter) {
- searchHql += filterQuery;
+ searchHql = "select act from ActivityEventImpl as act,
ActivityEventImpl as act2 where act.eventId=act2.eventId and " + hql + " group
by act.requestId having (act.priority)=max(act2.priority) order by act.date
desc";
+ } else {
+ searchHql = "select act from ActivityEventImpl as act where " +
hql + " order by act.date desc";
}
- if (!hql.contains("order by")) {
- searchHql += " order by act.date desc";
- }
-
try {
return context.getWiki().search(searchHql, nb, start, context);
} catch (XWikiException e) {
@@ -201,32 +209,32 @@
public List getEventsForSpace(String space, boolean filter, int nb, int
start,
XWikiContext context) throws
ActivityStreamException
{
- return searchEvents("where act.space='" + space + "'", filter, nb,
start, context);
+ return searchEvents("act.space='" + space + "'", filter, nb, start,
context);
}
public List getEventsForUser(String user, boolean filter, int nb, int
start,
XWikiContext context) throws
ActivityStreamException
{
- return searchEvents("where act.user='" + user + "'", filter, nb,
start, context);
+ return searchEvents("act.user='" + user + "'", filter, nb, start,
context);
}
public List getEvents(String stream, boolean filter, int nb, int start,
XWikiContext context)
throws ActivityStreamException
{
- return searchEvents("where act.stream='" + stream + "'", filter, nb,
start, context);
+ return searchEvents("act.stream='" + stream + "'", filter, nb, start,
context);
}
public List getEventsForSpace(String stream, String space, boolean filter,
int nb, int start,
XWikiContext context) throws
ActivityStreamException
{
- return searchEvents("where act.space='" + space + "' and act.stream='"
+ stream + "'",
+ return searchEvents("act.space='" + space + "' and act.stream='" +
stream + "'",
filter, nb, start, context);
}
public List getEventsForUser(String stream, String user, boolean filter,
int nb, int start,
XWikiContext context) throws
ActivityStreamException
{
- return searchEvents("where act.user='" + user + "' and act.stream='" +
stream + "'",
+ return searchEvents("act.user='" + user + "' and act.stream='" +
stream + "'",
filter, nb, start, context);
}
@@ -274,7 +282,7 @@
}
/*
- public FeedEntry getFeedEntry(ActivityEvent event, XWikiContext context) {
+ public SyndEntry getFeedEntry(ActivityEvent event, XWikiContext context) {
return null;
} */
Modified:
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/plugin/ActivityStreamPluginApi.java
===================================================================
---
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/plugin/ActivityStreamPluginApi.java
2008-02-10 23:24:49 UTC (rev 7480)
+++
xwiki-products/curriki/trunk/plugins/activitystream/src/main/java/org/xwiki/plugin/activitystream/plugin/ActivityStreamPluginApi.java
2008-02-11 00:04:58 UTC (rev 7481)
@@ -20,16 +20,16 @@
package org.xwiki.plugin.activitystream.plugin;
import org.xwiki.plugin.activitystream.api.ActivityStream;
-import org.xwiki.plugin.activitystream.api.ActivityEvent;
import org.xwiki.plugin.activitystream.api.ActivityStreamException;
import com.xpn.xwiki.XWikiContext;
import com.xpn.xwiki.api.Document;
-import com.xpn.xwiki.doc.XWikiDocument;
import com.xpn.xwiki.plugin.PluginApi;
import com.xpn.xwiki.plugin.XWikiPluginInterface;
import java.util.List;
+import java.util.ArrayList;
+import java.util.Iterator;
/**
* API for [EMAIL PROTECTED] ActivityStreamPlugin}
@@ -52,7 +52,7 @@
return ((ActivityStreamPlugin) getPlugin()).getActivityStream();
}
- public void addActivityEvent(ActivityEvent event) throws
ActivityStreamException {
+ public void
addActivityEvent(org.xwiki.plugin.activitystream.api.ActivityEvent event)
throws ActivityStreamException {
if (hasProgrammingRights()) {
getActivityStream().addActivityEvent(event, context);
}
@@ -70,6 +70,12 @@
}
}
+ public void addDocumentActivityEvent(String streamName, Document doc,
String type, int priority, String title) throws ActivityStreamException {
+ if (hasProgrammingRights()) {
+ getActivityStream().addDocumentActivityEvent(streamName,
doc.getDocument(), type, priority, title, context);
+ }
+ }
+
public void addActivityEvent(String streamName, String type, String title,
List params) throws ActivityStreamException {
if (hasProgrammingRights()) {
getActivityStream().addActivityEvent(streamName, type, title,
params, context);
@@ -82,9 +88,15 @@
}
}
+ public void addDocumentActivityEvent(String streamName, Document doc,
String type, int priority, String title, List params) throws
ActivityStreamException {
+ if (hasProgrammingRights()) {
+ getActivityStream().addDocumentActivityEvent(streamName,
doc.getDocument(), type, priority, title, params, context);
+ }
+ }
+
public List searchEvents(String hql, boolean filter, int nb, int start)
throws ActivityStreamException {
if (hasProgrammingRights()) {
- return getActivityStream().searchEvents(hql, filter, nb, start,
context);
+ return wrapEvents(getActivityStream().searchEvents(hql, filter,
nb, start, context));
} else {
return null;
}
@@ -92,7 +104,7 @@
public List getEvents(boolean filter, int nb, int start) throws
ActivityStreamException {
if (hasProgrammingRights()) {
- return getActivityStream().getEvents(filter, nb, start, context);
+ return wrapEvents(getActivityStream().getEvents(filter, nb, start,
context));
} else {
return null;
}
@@ -100,7 +112,7 @@
public List getEventsForSpace(String space, boolean filter, int nb, int
start) throws ActivityStreamException {
if (hasProgrammingRights()) {
- return getActivityStream().getEventsForSpace(space, filter, nb,
start, context);
+ return wrapEvents(getActivityStream().getEventsForSpace(space,
filter, nb, start, context));
} else {
return null;
}
@@ -108,7 +120,7 @@
public List getEventsForUser(String user, boolean filter, int nb, int
start) throws ActivityStreamException {
if (hasProgrammingRights()) {
- return getActivityStream().getEventsForUser(user, filter, nb,
start, context);
+ return wrapEvents(getActivityStream().getEventsForUser(user,
filter, nb, start, context));
} else {
return null;
}
@@ -116,7 +128,7 @@
public List getEvents(String streamName, boolean filter, int nb, int
start) throws ActivityStreamException {
if (hasProgrammingRights()) {
- return getActivityStream().getEvents(streamName, filter, nb,
start, context);
+ return wrapEvents(getActivityStream().getEvents(streamName,
filter, nb, start, context));
} else {
return null;
}
@@ -124,7 +136,7 @@
public List getEventsForSpace(String streamName, String space, boolean
filter, int nb, int start) throws ActivityStreamException {
if (hasProgrammingRights()) {
- return getActivityStream().getEventsForSpace(streamName, space,
filter, nb, start, context);
+ return
wrapEvents(getActivityStream().getEventsForSpace(streamName, space, filter, nb,
start, context));
} else {
return null;
}
@@ -132,10 +144,22 @@
public List getEventsForUser(String streamName, String user, boolean
filter, int nb, int start) throws ActivityStreamException {
if (hasProgrammingRights()) {
- return getActivityStream().getEventsForUser(streamName, user,
filter, nb, start, context);
+ return wrapEvents(getActivityStream().getEventsForUser(streamName,
user, filter, nb, start, context));
} else {
return null;
}
}
-
+
+ protected List wrapEvents(List events) {
+ List result = new ArrayList();
+ if (events != null) {
+ for (Iterator iter = events.iterator(); iter.hasNext();) {
+ Object obj = iter.next();
+ org.xwiki.plugin.activitystream.api.ActivityEvent event =
(org.xwiki.plugin.activitystream.api.ActivityEvent) obj;
+ org.xwiki.plugin.activitystream.plugin.ActivityEvent
wrappedEvent = new org.xwiki.plugin.activitystream.plugin.ActivityEvent(event,
getXWikiContext());
+ result.add(wrappedEvent);
+ }
+ }
+ return result;
+ }
}
_______________________________________________
notifications mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/notifications