[jboss-svn-commits] JBL Code SVN: r5282 - in labs/shotoku/trunk: shotoku-base/src/java/org/jboss/shotoku/tools shotoku-feeds/src/java/org/jboss/shotoku/feeds shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments shotoku-feeds/src/java/org/jboss/shotoku/feeds/data shotoku-feeds/src/java/org/jboss/shotoku/feeds/service shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag shotoku-feeds/src/web/WEB-INF
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Tue Jul 25 18:04:36 EDT 2006
Author: adamw
Date: 2006-07-25 18:04:32 -0400 (Tue, 25 Jul 2006)
New Revision: 5282
Added:
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments/
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments/CommentsNotAvialableException.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments/CommentsServlet.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments/FeedDoesNotExistException.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments/UnauthorizedToCommentException.java
Modified:
labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/tools/Tools.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/FeedFactory.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/FeedsService.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/AtomFeed.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/ConcreteTagFeed.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/Feed.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/FileBasedFeed.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/InformaBasedFeed.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/RdfFeed.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/RomeBasedFeed.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/Rss2Feed.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/TagFeed.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/service/FeedsServiceImpl.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/AggregatedFeedTagHandler.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/RemoteFeedTagHandler.java
labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/ShotokuFeedTagHandler.java
labs/shotoku/trunk/shotoku-feeds/src/web/WEB-INF/web.xml
Log:
http://jira.jboss.org/jira/browse/JBSHOTOKU-38
Modified: labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/tools/Tools.java
===================================================================
--- labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/tools/Tools.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-base/src/java/org/jboss/shotoku/tools/Tools.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -38,6 +38,7 @@
import org.jboss.mx.util.MBeanServerLocator;
import org.w3c.dom.Node;
import org.w3c.dom.NamedNodeMap;
+import org.w3c.dom.NodeList;
import javax.activation.MimetypesFileTypeMap;
@@ -99,6 +100,25 @@
}
/**
+ * @param root Node which children should be searched.
+ * @param name Name of the node that is being searched.
+ * @return A child node of the given one with the given name if such
+ * exists, or null otherwise.
+ */
+ public static org.w3c.dom.Node getNamedNode(org.w3c.dom.Node root,
+ String name) {
+ NodeList nl = root.getChildNodes();
+ for (int i=0; i<nl.getLength(); i++) {
+ Node n = nl.item(i);
+ if (name.equals(n.getNodeName())) {
+ return n;
+ }
+ }
+
+ return null;
+ }
+
+ /**
* From the given node, gets the value of the specified attribute.
*
* @param root
@@ -306,7 +326,7 @@
/**
* Checks if the given string represents a true value. For example, "true",
- * "yes", "TrUe" etc will return true.
+ * "yes", "TrUe", "1" etc will return true.
*
* @param s
* String to check.
@@ -318,7 +338,7 @@
}
s = s.trim().toLowerCase();
- return "true".equals(s) || "yes".equals(s);
+ return "true".equals(s) || "yes".equals(s) || "1".equals(s);
}
public static void checkName(String name) throws NameFormatException {
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/FeedFactory.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/FeedFactory.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/FeedFactory.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -22,7 +22,6 @@
package org.jboss.shotoku.feeds;
import org.jboss.shotoku.feeds.data.*;
-import org.apache.velocity.VelocityContext;
import java.io.File;
import java.util.HashMap;
@@ -58,7 +57,9 @@
* @param type Type of feed to create.
* @return A new instance of a feed of the given type.
*/
- public static NormalFeed getNewNormalFeed(String name, String displayName, String type) {
+ public static NormalFeed getNewNormalFeed(String name, String displayName,
+ String type,
+ Map<String, Object> attributes) {
Class feedClass = feedClasses.get(type);
if (feedClass == null) return null;
@@ -70,8 +71,9 @@
try {
File file = File.createTempFile("shotoku-feeds" + nextInt, type);
return (NormalFeed) feedClass.getConstructor(
- String.class, String.class, String.class, File.class).newInstance(
- name, displayName, type, file);
+ String.class, String.class, String.class, File.class,
+ Map.class).newInstance(name, displayName, type, file,
+ attributes);
} catch (Exception e) {
return null;
}
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/FeedsService.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/FeedsService.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/FeedsService.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -2,6 +2,7 @@
import org.jboss.shotoku.service.AdministratedService;
import org.jboss.shotoku.feeds.data.Feed;
+import org.jboss.shotoku.feeds.comments.FeedDoesNotExistException;
/**
* @author Adam Warski (adamw at aster.pl)
@@ -9,6 +10,10 @@
public interface FeedsService extends AdministratedService {
public Feed getFeed(String id, String name, String type);
+ public void addComment(String feedId, String feedName, String feedElement,
+ String feedType, String username, String title,
+ String content) throws FeedDoesNotExistException;
+
/*
* SERVICE MANAGEMENT METHODS
*/
Added: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments/CommentsNotAvialableException.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments/CommentsNotAvialableException.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments/CommentsNotAvialableException.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -0,0 +1,21 @@
+package org.jboss.shotoku.feeds.comments;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class CommentsNotAvialableException extends Exception {
+ public CommentsNotAvialableException() {
+ }
+
+ public CommentsNotAvialableException(String message) {
+ super(message);
+ }
+
+ public CommentsNotAvialableException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public CommentsNotAvialableException(Throwable cause) {
+ super(cause);
+ }
+}
Added: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments/CommentsServlet.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments/CommentsServlet.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments/CommentsServlet.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -0,0 +1,78 @@
+package org.jboss.shotoku.feeds.comments;
+
+import org.apache.xerces.parsers.DOMParser;
+import org.xml.sax.InputSource;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.jboss.shotoku.tools.Tools;
+import org.jboss.shotoku.feeds.tools.FeedsTools;
+
+import javax.servlet.http.HttpServlet;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.ServletException;
+import javax.servlet.ServletConfig;
+import java.io.IOException;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class CommentsServlet extends HttpServlet {
+ public void init(ServletConfig servletConfig) throws ServletException {
+ super.init(servletConfig);
+ }
+
+ protected void service(HttpServletRequest request,
+ HttpServletResponse response)
+ throws ServletException, IOException {
+ try {
+ // Getting the comment parameters.
+ String feedId = request.getParameter("id");
+ String feedName = request.getParameter("name");
+ String feedElement = request.getParameter("element");
+ String feedType = request.getParameter("type");
+
+ if (Tools.isEmpty(feedId) || Tools.isEmpty(feedType) ||
+ Tools.isEmpty(feedName) || Tools.isEmpty(feedElement)) {
+ throw new Exception("Invalid commented item parameters.");
+ }
+
+ // Paring the comment xml information contained in the POST data.
+ DOMParser parser = new DOMParser();
+ parser.parse(new InputSource(request.getInputStream()));
+ Document doc = parser.getDocument();
+
+ Node root = doc.getDocumentElement();
+ if (!"item".equals(root.getNodeName())) {
+ root = Tools.getNamedNode(root, "item");
+ if (root == null) {
+ throw new Exception("Invalid root xml node name.");
+ }
+ }
+
+ Node titleNode = Tools.getNamedNode(root, "title");
+ Node descriptionNode = Tools.getNamedNode(root, "description");
+
+ if (titleNode == null || descriptionNode == null) {
+ throw new Exception("Insufficient comment information.");
+ }
+
+ String title = Tools.unmarshallText(titleNode);
+ String description = Tools.unmarshallText(descriptionNode);
+
+ // Adding the comment.
+ FeedsTools.getService().addComment(feedId, feedName, feedType,
+ feedElement, request.getRemoteUser(), title, description);
+
+ response.setStatus(200);
+ } catch (CommentsNotAvialableException e) {
+ // TODO
+ } catch (UnauthorizedToCommentException e) {
+ // TODO
+ } catch (FeedDoesNotExistException e) {
+ // TODO
+ } catch (Exception e) {
+ response.sendError(400, e.getMessage());
+ }
+ }
+}
Added: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments/FeedDoesNotExistException.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments/FeedDoesNotExistException.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments/FeedDoesNotExistException.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -0,0 +1,21 @@
+package org.jboss.shotoku.feeds.comments;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class FeedDoesNotExistException extends Exception {
+ public FeedDoesNotExistException() {
+ }
+
+ public FeedDoesNotExistException(String message) {
+ super(message);
+ }
+
+ public FeedDoesNotExistException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public FeedDoesNotExistException(Throwable cause) {
+ super(cause);
+ }
+}
Added: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments/UnauthorizedToCommentException.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments/UnauthorizedToCommentException.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/comments/UnauthorizedToCommentException.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -0,0 +1,21 @@
+package org.jboss.shotoku.feeds.comments;
+
+/**
+ * @author Adam Warski (adamw at aster.pl)
+ */
+public class UnauthorizedToCommentException extends Exception {
+ public UnauthorizedToCommentException() {
+ }
+
+ public UnauthorizedToCommentException(String message) {
+ super(message);
+ }
+
+ public UnauthorizedToCommentException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+ public UnauthorizedToCommentException(Throwable cause) {
+ super(cause);
+ }
+}
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/AtomFeed.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/AtomFeed.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/AtomFeed.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -22,13 +22,15 @@
package org.jboss.shotoku.feeds.data;
import java.io.File;
+import java.util.Map;
import com.sun.syndication.feed.synd.SyndFeed;
import org.jboss.shotoku.feeds.tools.FeedsConstants;
public class AtomFeed extends RomeBasedFeed {
- public AtomFeed(String name, String displayName, String type, File file) {
- super(name, displayName, type, file);
+ public AtomFeed(String name, String displayName, String type, File file,
+ Map<String, Object> attributes) {
+ super(name, displayName, type, file, attributes);
}
@Override
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/ConcreteTagFeed.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/ConcreteTagFeed.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/ConcreteTagFeed.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -4,6 +4,7 @@
import javax.servlet.http.HttpServletRequest;
import java.io.OutputStream;
import java.io.IOException;
+import java.util.List;
/**
* @author Adam Warski (adamw at aster.pl)
@@ -42,4 +43,20 @@
public void release() {
tagFeed.release();
}
+
+ /*
+ * Comments are not available for concretized feeds.
+ */
+
+ public boolean getCommentsEnabled() {
+ return false;
+ }
+
+ public boolean getCommentsModerated() {
+ return false;
+ }
+
+ public List<String> getGroupsAllowedToModerateComments() {
+ return null;
+ }
}
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/Feed.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/Feed.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/Feed.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -4,6 +4,7 @@
import javax.servlet.http.HttpServletRequest;
import java.io.OutputStream;
import java.io.IOException;
+import java.util.List;
/**
* A base interface for feeds.
@@ -47,4 +48,28 @@
* be released (like temporary files).
*/
public void release();
+
+ /**
+ * Checks if comments are enabled for this feed. Should return true only if
+ * this is a Shotoku feed.
+ * @return True iff comments are enabled for this feed.
+ */
+ public boolean getCommentsEnabled();
+
+ /**
+ * Checks if comments need to be approved by a moderator to be visible
+ * publicly.
+ * @return True iff comments need to be approved by a moderator to be
+ * visible publicly.
+ */
+ public boolean getCommentsModerated();
+
+ /**
+ * Gets the groups that can moderate comments of elements of that feed.
+ * Should return a non-empty and non-null list only when this is a
+ * Shotoku feed.
+ * @return A list of group names that are allowed to moderate Shotoku
+ * comments of that feed's elements.
+ */
+ public List<String> getGroupsAllowedToModerateComments();
}
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/FileBasedFeed.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/FileBasedFeed.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/FileBasedFeed.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -35,6 +35,9 @@
import java.io.OutputStream;
import java.io.Writer;
import java.net.URL;
+import java.util.Map;
+import java.util.List;
+import java.util.Arrays;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpServletRequest;
@@ -45,11 +48,23 @@
private String displayName;
private String type;
- public FileBasedFeed(String name, String displayName, String type, File file) {
+ private boolean commentsEnabled;
+ private List<String> groupsAllowedToModerate;
+ private boolean commentsModerated;
+
+ public FileBasedFeed(String name, String displayName, String type,
+ File file, Map<String, Object> attributes) {
this.name = name;
this.displayName = displayName;
this.type = type;
this.file = file;
+
+ commentsEnabled = Tools.isTrue(
+ Tools.toString(attributes.get("commentsEnabled")));
+ commentsModerated = Tools.isTrue(
+ Tools.toString(attributes.get("commentsModerated")));
+ groupsAllowedToModerate = Arrays.asList(
+ Tools.toString(attributes.get("moderators")).split("[,]"));
}
public void generate(URL url) throws IOException {
@@ -136,4 +151,20 @@
public void release() {
file.delete();
}
+
+ /*
+ * Comments.
+ */
+
+ public boolean getCommentsEnabled() {
+ return commentsEnabled;
+ }
+
+ public boolean getCommentsModerated() {
+ return commentsModerated;
+ }
+
+ public List<String> getGroupsAllowedToModerateComments() {
+ return groupsAllowedToModerate;
+ }
}
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/InformaBasedFeed.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/InformaBasedFeed.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/InformaBasedFeed.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -12,11 +12,11 @@
import de.nava.informa.impl.basic.ChannelBuilder;
import de.nava.informa.parsers.FeedParser;
import de.nava.informa.utils.ItemComparator;
-import org.jboss.shotoku.feeds.data.NormalFeed;
public abstract class InformaBasedFeed extends FileBasedFeed {
- public InformaBasedFeed(String name, String displayName, String type, File file) {
- super(name, displayName, type, file);
+ public InformaBasedFeed(String name, String displayName, String type,
+ File file, Map<String, Object> attributes) {
+ super(name, displayName, type, file, attributes);
}
protected abstract ChannelExporterIF getExporter() throws IOException;
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/RdfFeed.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/RdfFeed.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/RdfFeed.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -23,14 +23,16 @@
import java.io.File;
import java.io.IOException;
+import java.util.Map;
import de.nava.informa.core.ChannelExporterIF;
import de.nava.informa.exporters.RSS_1_0_Exporter;
import org.jboss.shotoku.feeds.tools.FeedsConstants;
public class RdfFeed extends InformaBasedFeed {
- public RdfFeed(String name, String displayName, String type, File file) {
- super(name, displayName, type, file);
+ public RdfFeed(String name, String displayName, String type, File file,
+ Map<String, Object> attributes) {
+ super(name, displayName, type, file, attributes);
}
protected ChannelExporterIF getExporter() throws IOException {
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/RomeBasedFeed.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/RomeBasedFeed.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/RomeBasedFeed.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -23,11 +23,7 @@
import java.io.File;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.Date;
-import java.util.List;
+import java.util.*;
import com.sun.syndication.feed.synd.SyndEntry;
import com.sun.syndication.feed.synd.SyndFeed;
@@ -38,8 +34,9 @@
import com.sun.syndication.io.XmlReader;
public abstract class RomeBasedFeed extends FileBasedFeed {
- public RomeBasedFeed(String name, String displayName, String type, File file){
- super(name, displayName, type, file);
+ public RomeBasedFeed(String name, String displayName, String type,
+ File file, Map<String, Object> attributes){
+ super(name, displayName, type, file, attributes);
}
protected abstract void setFeedType(SyndFeed feed);
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/Rss2Feed.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/Rss2Feed.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/Rss2Feed.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -22,15 +22,15 @@
package org.jboss.shotoku.feeds.data;
import java.io.File;
-import java.io.IOException;
+import java.util.Map;
import com.sun.syndication.feed.synd.SyndFeed;
-import org.jboss.shotoku.feeds.data.RomeBasedFeed;
import org.jboss.shotoku.feeds.tools.FeedsConstants;
public class Rss2Feed extends RomeBasedFeed {
- public Rss2Feed(String name, String displayName, String type, File file) throws IOException {
- super(name, displayName, type, file);
+ public Rss2Feed(String name, String displayName, String type,
+ File file, Map<String, Object> attributes) {
+ super(name, displayName, type, file, attributes);
}
@Override
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/TagFeed.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/TagFeed.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/data/TagFeed.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -218,4 +218,20 @@
public void release() {
}
+
+ /*
+ * No comments allowed on tag feeds.
+ */
+
+ public boolean getCommentsEnabled() {
+ return false;
+ }
+
+ public boolean getCommentsModerated() {
+ return false;
+ }
+
+ public List<String> getGroupsAllowedToModerateComments() {
+ return null;
+ }
}
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/service/FeedsServiceImpl.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/service/FeedsServiceImpl.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/service/FeedsServiceImpl.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -6,6 +6,7 @@
import org.jboss.shotoku.feeds.FeedsService;
import org.jboss.shotoku.feeds.FeedsDescriptor;
import org.jboss.shotoku.feeds.FeedsConfigurationWatcher;
+import org.jboss.shotoku.feeds.comments.FeedDoesNotExistException;
import org.jboss.shotoku.feeds.data.Feed;
import org.jboss.shotoku.feeds.tools.FeedsConstants;
import org.jboss.shotoku.feeds.tools.FeedsTools;
@@ -50,6 +51,26 @@
return fds.get(id).getFeed(name, type);
}
+ public void addComment(String feedId, String feedName, String feedType,
+ String feedElement, String username,
+ String title, String content)
+ throws FeedDoesNotExistException {
+ System.out.println("ADD COMMENT:");
+ System.out.println("feedId = " + feedId);
+ System.out.println("feedName = " + feedName);
+ System.out.println("feedType = " + feedType);
+ System.out.println("feedElement = " + feedElement);
+ System.out.println("username = " + username);
+ System.out.println("title = " + title);
+ System.out.println("content = " + content);
+
+ Feed feed = getFeed(feedId, feedName, feedType);
+
+ if (feed == null) {
+ throw new FeedDoesNotExistException();
+ }
+ }
+
/*
* Update method.
*/
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/AggregatedFeedTagHandler.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/AggregatedFeedTagHandler.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/AggregatedFeedTagHandler.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -81,7 +81,7 @@
NormalFeed feed = FeedFactory.getNewNormalFeed(feedName,
Tools.toString(attributes.get(FeedsConstants.DISP_NAME_ATTR)),
- feedType);
+ feedType, attributes);
try {
feed.generate(toAggregate.toArray(new NormalFeed[0]),
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/RemoteFeedTagHandler.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/RemoteFeedTagHandler.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/RemoteFeedTagHandler.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -34,7 +34,8 @@
FeedsConstants.DISP_NAME_ATTR));
try {
- NormalFeed feed = FeedFactory.getNewNormalFeed(feedName, displayName, feedType);
+ NormalFeed feed = FeedFactory.getNewNormalFeed(feedName,
+ displayName, feedType, getAttributes());
feed.generate(new URL(address));
fd.addFeed(feedName, feedType, feed);
} catch (Exception e) {
Modified: labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/ShotokuFeedTagHandler.java
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/ShotokuFeedTagHandler.java 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/java/org/jboss/shotoku/feeds/tag/ShotokuFeedTagHandler.java 2006-07-25 22:04:32 UTC (rev 5282)
@@ -165,7 +165,8 @@
String feedName = getFeedName();
String feedType = getFeedType();
- NormalFeed newFeed = FeedFactory.getNewNormalFeed(feedName, displayName, feedType);
+ NormalFeed newFeed = FeedFactory.getNewNormalFeed(feedName,
+ displayName, feedType, attributes);
try {
vc.put("link", generateFeedLink(fd, true, feedName, feedType));
Modified: labs/shotoku/trunk/shotoku-feeds/src/web/WEB-INF/web.xml
===================================================================
--- labs/shotoku/trunk/shotoku-feeds/src/web/WEB-INF/web.xml 2006-07-25 21:59:28 UTC (rev 5281)
+++ labs/shotoku/trunk/shotoku-feeds/src/web/WEB-INF/web.xml 2006-07-25 22:04:32 UTC (rev 5282)
@@ -22,6 +22,11 @@
<servlet-class>org.jboss.shotoku.feeds.FeedsServlet</servlet-class>
</servlet>
+ <servlet>
+ <servlet-name>commentsServlet</servlet-name>
+ <servlet-class>org.jboss.shotoku.feeds.comments.CommentsServlet</servlet-class>
+ </servlet>
+
<filter-mapping>
<filter-name>filesFromRepoFilter</filter-name>
<url-pattern>/repo-access/*</url-pattern>
@@ -40,4 +45,9 @@
<servlet-name>feedsServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
+
+ <servlet-mapping>
+ <servlet-name>commentsServlet</servlet-name>
+ <url-pattern>/comments/*</url-pattern>
+ </servlet-mapping>
</web-app>
\ No newline at end of file
More information about the jboss-svn-commits
mailing list